So, what's all this stuff about "sensor update"?
Just a small improvement in dynamic range in photo mode (around 0.3...
0.8 stops). We were able to fine-tune the amplifier gains in order to squeeze a little more highlight detail.
Graphs for the other cameras can be found here: http://www.magiclantern.fm/forum/index.php?topic=10111.msg97780#msg97780
[February 23] 5D3 reaches nearly 0.8 stops of improvement: 11.77 EV at ISO 115
, and also a new ISO 66
[January 17] 5D2 reaches 11.92 EV of dynamic range at ISO 81
.Only 0.5 EV? That's way too small!
Yes. You may take a look at Dual ISO
(which will get an additional 0.3...0.5 stop boost with this "sensor update"; also resolution issues were largely solved), or you may consider switching to Nikon.Wait a minute, that means less noise, right?
Well, it means you get a little more detail in highlights. This doesn't mean less noise per se
(the new ISOs will be just as noisy in shadows as the old ones), but it will let you shift the exposure to the right by 1/3 ... 2/3 EV and collect more photons. This
will result in lower noise.
For example, on 5D Mark III I could lower the ISO by 0.37 stops from 100, resulting a new ISO 77. After some more tweaking, I've got 0.6 stops below ISO 100 => ISO 66.Sample images?
No relevant samples yet, sorry.How exactly are you getting more highlight detail compared to Canon firmware?
The signal from the sensor seems to be amplified in 2 stages
: a CMOS amplifier (which operates in full stops - powers of 2 - and we have tweaked it when implementing Dual ISO
) and an ADTG
amplifier which can be configured in finer increments. After these two stages, the signal is digitized (with an ADC), probably tweaked digitally, and saved to CR2. We have noticed the ADTG amplifier tends to run a little "hot" (that means, it gets saturated a little too early - nothing to do with temperature).
To get the extra highlight detail, one has to reduce the gain for the ADTG amplifier until the ADC will no longer be saturated. At this point, the white level (maximum recorded level in the raw file) will begin to decrease and no more detail will be recovered (since now the CMOS itself or the CMOS amplifiers will get saturated instead).
To play with these gains, scroll down to the research tools section.Does this mean Canon did not fully optimize their sensor for low noise?
I'd say they simply left a safety margin in their code to make sure the ADC is always saturated (that is, to make sure white is always recorded as white).How are intermediate ISOs implemented in Canon cameras?
I will try to answer this question in a detailed paper (including how exactly I've reached the conclusion).
For now, you may take a look at these graphs: https://www.dropbox.com/sh/onppbwy44fqomxa/P75rs6pgTW What's with that message about f1.2 lenses?
According to DxO, Canon applies a digital ISO boost at wide apertures
(about 0.5 stops on APS-C cameras, and 0.2 stops on FF from my findings
) to compensate for light loss. Since the digital gain is burned into the CR2 files, at wide apertures you will lose a small amount of highlight details (under 0.1 stops on FF
, did not check on APS-C). Also you may get some extra noise from round-off errors, and if your raw editor does not handle white level properly, you may lose even more highlights (details here
We are going to fix this by turning off the digital gain.Any side effects?
None yet.What about Dual ISO?
You will be able to use both tweaks (it will just work).What about video?
I've got only 0.1 stops of improvement on 5D3, but didn't try too hard.What's the current state?
Research. We are trying to optimize the parameters that influence ISO, understand their effects (did we really gain 0.5 stops of DR or are we just daydreaming?) and port the results on other cameras. Scroll down for some research tools.Will it work on my camera?
- If you have a 550D or newer camera, it will most likely work.
- If you have a 7D, no idea yet.
If you have a 5D Mark II, 50D or 500D, don't get too excited. I've barely got 0.15 stops of improvement on 5D2.
- Confirmed working on 5D3, 550D, 600D, 650D, 700D, 60D, 6D, 5D2, 50D and 500D.How can I help?
- Play with the research tools below and report your findings.
- If you have access to laboratory equipment and you can measure the real ISO, you can help us check the validity of our ISO theory.Where's the download link?!??!?!!??!!!!!!!!!!!!!!!!!!?!?!?!?!?!
Take it easy, the current state is research
. As in, "If we knew what it was we were doing, it would not be called research, would it?"
But if you have some basic coding/math skills - enough so you can follow the entire discussion without getting dizzy - I have some nifty research tools for you:raw_diag.mo
- cross-platform, anyone can run it
This tool does technical analysis on the raw image data (black/white levels, noise, dynamic range, SNR curve):
Alternative: RawDigger (proprietary, nonfree).iso_regs.mo
- 5D3 only
, requires either the crop_rec build
, or a custom ML build from the iso-research branch:
A research tool (or hacker's tool if you prefer) that lets you change most ISO-related parameters on 5D Mark III only and study their effect. Details here
- cross-platform, requires
a custom ML build from the iso-research branch (on 5D3, the crop_rec build works fine as well):
The good old ADTG/CMOS tool
updated to also intercept DIGIC (ENGIO) registers.
For sources, please check the branch iso-research on the main repository.When it will be released?
When it's ready. I also want to summarize the findings in a small paper (like the Dual ISO PDF
), so I need a little time.Any recommended reading?
(main site: http://www.clarkvision.com/articles/
Now some fun stuff:
Compile ML with CONFIG_GDB=y and load the adtg_gui module. Override the column gain registers (0x8882-0x8888) to roughly half the original value.
My results (with 978bf96 and these changes; shutter 1/30):
ISO ADTG default white level noise stdev DR
100 0x41b 15282 6.62 10.96
160 0x435 13306 5.53 10.99
200 0x54c 15282 6.83 10.92
250 0x435 15282 8.55 10.60
1600 0x454 15282 11.87 10.12
ISOs altered with ADTG gain overriden to 0x250:
ISO ADTG overriden white level noise stdev DR
100 0x250 11911 3.68 11.38
160 0x250 9935 3.25 11.24
200 0x250 11924 3.88 11.31
250 0x250 11917 3.84 11.33
1600 0x250 11915 6.46 10.58
So... we can get almost half-stop of DR just by tweaking some registers?! Looking forward to see the RawDigger results.