activexray / activexray/nkscan

Extend dynamic range with bracketed exposure + linear merge

Aperta
#35 14 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
47
Fork
8
Merge medio
1g 4h
PR unite (30g)
5

Descrizione

## Problem

We currently meter by setting exposure (via CCD integration) from a single pass, attempting to get the high-percentile tail just under full-scale. This is the correct approach for protecting Dmin (the least-dense part of a negative), but it's a single exposure, so the dark end of the raw histogram (Dmax) is only as far above the sensor's noise floor as the film's own density allows for.

If a strips Dmax-Dmin exceeds what the sensor can resolve in one integration, there is no single exposure that can fix it.
Pushing exposure higher to lift the dark end will just clip Dmin.

Calibration curves already know the fixed sensor dark offset, so the actual floor is a hardware constant and not something AE can resolve.

## Proposal

Take two (or more) passes per frame.

- a short pass, metered as we currently do protecting Dmin
- a longer pass, metered to push Dmax further above the noise floor

Then, we merge them into a wide linear buffer by pixel per pixel per channel the highest exposure sample that isn't clipped rescaled by the known exposure ratio.
This is basically HDR (bracket + merge into a radiance map).

This is easier though than traditional camera HDR because we
1. know the response and it's linear because we're working with raw CCD data
2. The subject is perfectly static.

We also don't need to tone-map because the merged result is still linear, no gamma correction or anything weird.

## Open questions

- We need to confirm that this is worth it. We will grab a few dense negatives and measure how many stops of headroom the current single-pass dark end sits above the noise floor to see how much this buys in practice.
- Capture time will double, so maybe this needs some kind of heuristic, or we just pass a flag?

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.