Trying to combine the results from 5D3 and 6D (data from

Audionut and

Levas, no ISO tweaks applied).

Notice the 6D captures quite a bit more electrons than 5D3. You may say it's normal, because the 6D has lower resolution, so it captures more photons per pixel. However, the pixel count ratio is (5796*3870)/(5496*3670) = 1.1121, while the electron count ratio is about 1.1988. There are 0.11 EV not explained by the resolution difference. Let's find out what's going on.

Possible causes:

- systematic errors in my measurement method

- 6D uses lower ISOs than 5D3 (even if they both print the same value)

- 6D's sensor has a higher quantum efficiency

- a combination of the above

Theory:

- photon to electron ratio = quantum efficiency (assumming it's a sensor constant)

- equal ISOs = equal number of photons per area (light required to saturate the sensor)

- ISO doubles => half as many photons (or electrons) captured

- N pixels binned => number of photons (or electrons) per pixel increase N times

Assumming Canon full-stop ISOs in photo mode match the ones measured by some other method (let's say DxO), we can find a scaling factor for converting our electron counts into ISO, while matching the reference values in the least squares sense. I'll minimize the ISO difference, in EV, for ISO 100..6400:

`function err = crit_electrons(ref_electrons, measured_electrons, reference_isos)`

isos_estimated = 100 ./ (measured_electrons / ref_electrons);

err = norm(log2(isos_estimated) - log2(reference_isos));

end

function ref_electrons = fit_electrons(measured_electrons, isos_dxo)

ref_electrons = fminsearch(@(e) crit_electrons(e, measured_electrons, isos_dxo), 50000);

ref_electrons = round(ref_electrons);

end

Assuming Canon's full-stop ISOs are correct, the scaling factors are:

`isos = [ 100 200 400 800 1600 3200 6400 ];`

electrons_photo_5d3 = [ 67684 34146 16835 8735 4288 2197 1085 ];

electrons_photo_6d = [ 79546 42220 20643 10482 5215 2568 1271 ];

ref_electrons_5d3 = fit_electrons(electrons_photo_5d3, isos);

ref_electrons_6d = fit_electrons(electrons_photo_6d, isos);

=>

`ref_electrons_5d3 = 68787`

ref_electrons_6d = 82465

ref_electrons_6d / ref_electrons_5d3 = 1.1988

Now I'm going to assume Canon's full-stop ISOs are pretty much correct, but I'll keep the relative differences measured by DxO between the two cameras. That difference is...

`octave:1> isos_dxo_5d3 = [ 80 160 323 641 1280 2518 5179 ];`

octave:2> isos_dxo_6d = [ 80 153 311 616 1210 2400 4991 ];

octave:3> isos_dxo_5d3 ./ isos_dxo_6d

ans =

1.0000 1.0458 1.0386 1.0406 1.0579 1.0492 1.0377

octave:4> log2(mean(isos_dxo_5d3 ./ isos_dxo_6d))

ans = 0.054522

=> 6D ISOs are 0.055 EV lower than 5D3's.

Let's distribute the ISO difference equally between the two cameras, and redo the fit:

`iso_difference = log2(mean(isos_dxo_5d3 ./ isos_dxo_6d));`

ref_electrons_5d3 = fit_electrons(electrons_photo_5d3, isos * 2.^(iso_difference/2));

ref_electrons_6d = fit_electrons(electrons_photo_6d, isos * 2.^(-iso_difference/2));

=>

`ref_electrons_5d3 = 70099`

ref_electrons_6d = 80927

ref_electrons_6d / ref_electrons_5d3 = 1.1545

Getting closer. The ratio is still a bit higher than what I expect from the resolution difference, and since I don't have any other hypothesis to explain it, I'll say the 6D's quantum efficiency is a little higher:

`qe_ratio = log2(ref_electrons_6d / ref_electrons_5d3 * (5496*3670) / (5796*3870))`

0.053998

So, 6D's quantum efficiency seems to be 0.054 EV better than 5D3's, and its ISOs seem to be calibrated at 0.055 EV lower.

With these numbers, the ISOs estimated from electron counts become:

5D3:

`isos_720 = [ 100 163 326 644 1266 2519 5211 10277 ]`

isos_1080 = [ 82 160 316 622 1243 2429 5059 10049 ]

isos_crop = [ 80 157 318 630 1241 2495 5094 9777 ]

isos_photo = [ 104 205 416 803 1635 3191 6461 ]

And 6D:

`isos_720 = [ 100 220 363 668 1297 2491 4981 10201 ]`

isos_1080 = [ 89 170 320 619 1222 2406 4924 10082 ]

isos_crop = [ 83 167 322 625 1244 2413 4866 9739 ]

isos_photo = [ 102 192 392 772 1552 3151 6367 14555 ]

Graphs:

To compare the two graphs, I think it's better to normalize the results to some reference output size. I'll normalize movie 1080p results to 1920x1080 and photo mode results to 8 megapixels.

Normaling the 6D results from 1792x1008 to 1920x1080 gives the 5D3 0.1 EV advantage.

Normalizing to 8 megapixels gives the 5D3 a 0.075 EV advantage (compare with DxO results):

`norm_5d3 = log2(sqrt((5796*3870))) - log2(sqrt(8e6))`

norm_6d = log2(sqrt(5496*3670)) - log2(sqrt(8e6))

norm_5d3 = 0.74370

norm_6d = 0.66708

5D3 normalized DR: 11.6637 11.5737 11.4337 11.2037 10.7637 10.1437 9.2337

6D normalized DR: 12.1471 12.1571 11.9471 11.6671 11.2171 10.5371 9.7771 8.7071

Complete octave script:

dr.mPlease double-check my math, as I might be a little beyond Ballmer peak