CMOS/ADTG/Digic register investigation on ISO

Started by a1ex, January 10, 2014, 12:11:01 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Greg

Playback filter?

Image :


It looks like a dual iso   :D



ItsMeLenny


Greg


naturalsound


Audionut

What about breaking the register lists up further?

List only these types,

ADTG2
ADTG4
ADTG6

COF0
COF1
COF2

etc.

When you are deep into a bunch of registers, its rather slow to navigate all the way back to the top of the menu to change editing step.

Menu caret would be extremely useful and remove the need for editing step.

I normally edit in steps of 16 first, and then if there is a register that tickles my fancy, I like to then edit by 1.

Audionut

Canon 5D3 - ISO 100 - 1/100s - Lens unscrewed.

ADTG pre-gain only (otherwise Canon defaults), from 0-200 in steps of 10.

Slightly blurred color checker, 100x100 pixel sample patch, and noting the average raw levels (black subtracted), in one of the green channels, together with patch stdev, and optical black stdev.

WL  stdev OB

2739 30.0 5.29
2852 30.5 5.50
2967 32.3 5.71
3092 33.4 5.96
3229 34.7 6.23
3361 35.5 6.46
3497 38.2 6.74
3644 39.2 7.00
3789 40.6 7.26
3958 43.0 7.61
4118 43.8 7.87
4281 46.1 8.28
4473 47.7 8.60
4658 50.0 8.96
4855 52.7 9.33
5063 53.7 9.74
5272 56.8 10.2
5497 57.7 10.5
5722 61.2 11.0
5969 63.6 11.4
6198 66.3 11.9
6468 69.2 12.4
6737 71.5 12.9
7028 75.5 13.5
7326 79.3 14.0
7611 82.6 14.7




ADTG gain, 0.0 EV through -1.00 EV in 0.05 EV steps.

WL  sdtev OB
10035 83.4 6.49
9925 80.2 6.29
9362 76.8 6.14
9032 75.9 5.92
8733 71.9 5.75
8427 68.9 5.49
8133 67.4 5.31
7850 63.8 5.18
7584 62.3 5.00
7319 60.2 4.83
7263 58.3 4.60
6828 55.2 4.46
6600 54.1 4.32
6365 51.8 4.15
6158 51.0 4.03
5942 48.0 3.87
5739 47.5 3.76
5543 45.0 3.57
5358 43.1 3.49
5174 42.6 3.33
4989 41.8 3.23



ADTG gain, -1.10 EV through -2.30 EV in 0.10 EV steps.

WL  sdtev OB
4655 38.2 3.02
4345 35.9 2.83
4047 33.2 2.57
3782 30.8 2.38
3519 28.6 2.20
3285 27.0 2.08
3065 25.3 1.95
2865 23.7 1.80
2666 21.8 1.68
2429 20.4 1.59
2321 19.2 1.49
2168 18.1 1.41
2022 16.9 1.31

vroem

Quote from: a1ex on February 23, 2014, 02:10:23 PM
Dynamic range series (ISO 100-12800 in Canon menu, ADTG gain at sweet spot, ADTG2/4[8,9,A,B] at 36 for ISO 100 and 0 for all other ISOs, CMOS patches enabled.


ISO    DR
66     11.589 + 0.1
115    11.772
230    11.649
460    11.427
912    10.968
1750   10.369
3333   9.610
6400   8.834

I made this DR chart. Is it correct?


Greg

The values ​​saturate offset and black/white, such as ISO 200


a1ex

Quote from: vroem on February 25, 2014, 04:00:36 PM
I made this DR chart. Is it correct?

Looks fine to me.

On the shadow end, one may argue that because of half resolution, you lose log2(sqrt(1/2)) = 0.5 stops (and it makes sense if you look at this test). I didn't do the math to see if it's really 0.5, but it's probably close.

I should probably update the formulas from the menu => some settings like 800/1600 might result in worse shadows than either of them according to this theory. Didn't try to see if it's true or not, and the blending algorithm wasn't exactly optimized for situations like this.

Greg

c0F0[819c] 0xf87 -> 0x20
c0F0[8034] 0x1079 -> 0x1e70 (less value to improve DR, but cause vertical stripes blue channel, wrong white point blue channel - http://www.magiclantern.fm/forum/index.php?topic=10111.msg103483#msg103483)


SpcCb

Quote from: a1ex on February 25, 2014, 04:57:43 PM
(...)
On the shadow end, one may argue that because of half resolution, you lose log2(sqrt(1/2)) = 0.5 stops (and it makes sense if you look at this test). I didn't do the math to see if it's really 0.5, but it's probably close.
(...)
I did the math for dual_iso* to compare with some tests; according to the sigma and Nyquist matching algorithm of the Aliasing Minimization and Zipper Elimination demosaicing, with multi-pass >4 and considering the matrix intrication at the source, the lose of DR should be less than 1/2 stops for all the spectral range in daylight photography.

*did for some special wavelengths, not relevant here.

a1ex

Quote from: Audionut on February 25, 2014, 05:28:48 PM
fe - default 0x4, lower values reduce stdev, higher values increase stdev

This one is interesting, try setting it to 0 in both ADTG2 and ADTG4. With raw_diag I can measure 11.83 stops, but my intuition says it might be a little more.

@SpcCb: can you share some more details about how you did the math?

(I tried to understand the AMaZE algorithm, but only figured out how to call it; if you can shed some light, I'm interested)

Audionut

Quote from: a1ex on February 25, 2014, 10:27:20 PM
With raw_diag I can measure 11.83 stops,

Same here.

It seems to do this to the highlights.



I was only using ADTG pre-gain/gain, CMOS tweak and yet another gain.  Naturally, the WL was pretty low.  I bumped the lens back into electronic mode and hit 11.91 EV.

So then I unscrewed the lens and changed Digital Gain from 0x200 to 0x220, and again 11.91 EV.  This seemed to clean the highlight zebras also.

This configuration also looks to clean the highlights a little @ ISO 100 with pre-gain 0

@vroem
I really like that graph.  It visualises in a simple manner.  I like how it shows the linear loss in highlights, and the non-linear gain in the shadows.  Of course, using ML ISO, the loss in the shadows isn't as great as with Canon ISO.

Greg

500D has the same problem when trying to gain more than 0.33EV.
Up to 0.4EV occur on the blue channel.

Audionut

Quote from: Greg on February 25, 2014, 08:21:42 PM
c0F0[819c] 0xf87 -> 0x20

This one is saturate offset on 5D3.

Quote from: Greg on February 25, 2014, 08:21:42 PM
c0F0[8034] 0x1079 -> 0x1e70 (less value to improve DR, but cause vertical stripes blue channel, wrong white point blue channel - http://www.magiclantern.fm/forum/index.php?topic=10111.msg103483#msg103483)

I can't find this one on 5D3.  So many registers  :o
I did find c0F3[8034] 0x0

Looks like the faint banding is happening at other ISOs also, here is ISO 200

Canon


ML

a1ex

When you get these artifacts in highlights, one of the gains is too low (below its sweet spot).

0xFE seems to control 3 amplifiers triggered by bits (valid values from 0 to 7):

gains = [0    1     2     3     4     5     6     7   ]
diffs = [0    0.08  0.11  0.17  0.54  0.65  0.72  0.86]


so changing it from 4 to 3 might be already too much (you may need to compensate by increasing some other gain).

@Audionut: can you do the noise tests (WL + stdev + OB) for this register too?

Audionut

For clarity, this sample set was taken at 1/60s.  Same setup as previous test.  Also, my OB measurement is 10 pixels from left, 500 px from top, 90px wide and 2000px high.

ADTG[0xFE] - 0 through 7.

WL  stdev OB
1144 14.9 4.70
1205 16.3 4.91
1237 16.4 5.05
1314 17.2 5.29
1673 21.9 6.54
1809 24.0 6.96
1881 24.7 7.28
2087 27.4 7.99

a1ex

Based on the data from Audionut, I've computed how much noise we gain (or lose) by increasing each of these 3 gains.




Think at ISO 100 vs 200: you increase the gain and you get lower noise (cleaner shadows). There is a point in keeping this kind of gains at large values (you may clip highlight detail, but you get cleaner shadows in return). So, the 0xFE gain is one of these gains that help reducing noise.

Also think at ISO 3200 vs 6400: you increase the gain, but there's little or no improvement in noise. You want to keep this kind of gains at smaller values (because you may clip highlight detail and you get nothing in return). The other two gains have only a minor impact on the measured noise, so we want to keep them as low as possible.

Now, from these numbers, can we draw a conclusion regarding the position of each amp in the processing chain? Can we say the order is CMOS[0] -> 0xFE -> 888x + SaturateOffset -> 8/9/A/B -> ADC?

(note that I've renamed them back to their register address, because I'm no longer sure whether 8/9/A/B is before 888x or viceversa)

Audionut

Would it be useful to measure saturateOffset?  I can do that when I get home later tonight.

a1ex


mk11174

500D/T1i  550D/T2i  600D/T3i  700D/T5i

a1ex

That's it. Can you also do the aperture and shutter series?

mk11174

Quote from: a1ex on February 26, 2014, 10:45:52 AM
That's it. Can you also do the aperture and shutter series?
will try and post if works.
500D/T1i  550D/T2i  600D/T3i  700D/T5i

mk11174

500D/T1i  550D/T2i  600D/T3i  700D/T5i

Audionut

edit:  I neglected to unscrew the lens

ADTG[0xFE] looks a little bumpy, here it is in reverse.

WL  stdev OB
1856 25.9 7.97
1676 23.9 7.21
1625 22.5 6.93
1499 20.9 6.47
1164 16.4 5.25
1111 15.4 5.00
1068 15.5 4.88
1012 14.4 4.66


SaturateOffset - 2000 through 100, in steps of 100.  BL is the reported black level in the file.
iso_regs reported default for this register 3148.  iso_regs only allowed adjustment up to 2000.

WL  stdev OB  BL
4633 41.8 6.53 883
4658 42.9 6.49 782
4619 41.4 6.80 681
4659 43.4 6.50 580
4696 42.5 6.49 478
4677 41.5 6.86 377
4646 41.9 6.54 275
4677 41.7 6.57 174
4668 42.2 6.63 73
4573 40.5 0.0
4508 41.0 0.0
4416 41.3 0.0
4330 41.8 0.0
4185 41.2 0.0
4156 42.2 0.0
3999 41.3 0.0
3897 41.8 0.0
3812 41.3 0.0
3729 42.6 0.0
3644 42.7 0.0


Here is the same test images as above, but measuring from a darker grey patch.

WL stdev
770 14.4
776 14.7
717 14.7
726 14.8
730 15.0
727 14.9
724 14.5
727 14.6
726 15.1
687 14.7
590 15.3
490 14.6
391 14.4
282 14.6
193 14.9
82 15.2
0.6 2.83
0.0 0.0
0.0 0.0
0.0 0.0