I have some good news for 5D2 (credits go to Greg, he found it on 500D):
- SaturateOffset register works and I have moved the black level from 1024 to 64.
- According to my 5D3 theory, this would be equivalent to reducing ADTG gain by -0.091 EV (ISO 100->94).
- However, the dynamic range in raw_diag is showing an improvement of over 0.7 stops at ISO 100 (!)
What's going on?!
edit: diagnosed. In some Canon cameras, bad pixels are marked as 0 in the raw buffer (and then interpolated). In raw_diag, I was not doing any checks of the raw pixel values (so, a bunch of zeros compared to 1024 were bumping stdev a lot more than the same bunch of zeros compared to 64).
The real improvement was close to 0.1 stops, so the theory about Saturate Offset is still valid.
Updated raw_diag to skip hot pixels:
raw_diag.mo (source:
raw_diag.c)
(the bad pixel modification should be backported to ML raw.c)