Original discussion:
http://www.magiclantern.fm/forum/index.php?topic=10111.msg118232#msg118232I wanted to split the topic, but that would make the original discussion harder to follow, so I'm just copying the relevant parts here.
Finally finished stuffing around, and here is a good bunch of results. Enjoy!
https://www.dropbox.com/sh/ktc2kyabmozjofq/AAC7kSBnzX3E5cwoLn9nrsbYa
From the above data, I'll try to guess the
pixel binning factors from LiveView (and I'll ask SpcCb to double-check what follows):
My quick test, at ISO 6400:
gain read noise ratio (compared to 5x)
720p: 1.43 14.79 14.74
1080p: 0.88 14.75 9.07
5x: 0.097 23.64 1
Numbers from Audionut:
gain read noise ratio (compared to 5x)
ISO 100:
720p: 73.48 6.93 11.9 (note: it's very hard to tell how much is read noise
1080p: 53.78 6.54 8.7 and how much is Poisson noise from a nearly straight line)
5x: 6.15 5.98 1
photo: 5.11 6.77 0.83
ISO 200:
720p: 44.87 7.22 14.4
1080p: 27.50 6.76 8.84
5x: 3.11 6.26 1
photo: 2.58 7.08 0.83
ISO 400:
720p: 22.50 7.34 14.6
1080p: 13.94 6.90 9.05
5x: 1.54 6.70 1
photo: 1.27 7.61 0.82
ISO 800:
720p: 11.40 7.77 14.6
1080p: 7.07 7.32 9.06
5x: 0.78 7.32 1
photo: 0.66 8.60 0.85
ISO 1600:
720p: 5.80 8.78 14.7
1080p: 3.54 8.34 8.98
5x: 0.394 9.94 1
photo: 0.324 11.10 0.82
ISO 3200:
720p: 2.91 10.82 14.9
1080p: 1.81 10.45 9.23
5x: 0.196 14.75 1
photo: 0.166 16.28 0.85
ISO 6400:
720p: 1.41 14.81 14.7
1080p: 0.87 14.67 9.06
5x: 0.096 23.90 1
photo: 0.082 30.09 0.85
ISO 12800:
720p: 0.71 29.69 14.2
1080p: 0.44 29.44 8.8
5x: 0.050 58.40 1
Raw buffer sizes (active area):
- photo mode: 5796x3870
- 1080p: 1932x1290
- 1932x672 stretched (covers roughly 16:9 in LiveView)
Ratio between photo mode and 5x zoom: 0.83. If the 5x zoom captures a little more highlight detail, it's OK. The difference may be also because LiveView uses electronic shutter, while photo mode uses mechanical shutter. So, I'll use the 5x zoom as reference for the other LiveView modes.
From the above data, I now have very strong reasons to believe that 5D3 does a
3x3 binning in 1080p, and a
5x3 binning in 720p (5 lines, 3 columns).
(if you shoot 720p on 5D3, the desqueezing factor - to correct the aspect ratio of your footage- is therefore
exactly 5/3 = 1.67x)
A possible 3x3 binning (and easy to implement in hardware) would be to average each sensel and its 8 neighbours of the same color (considering the two greens as separate colors, as in the well-known four-color demosaicing algorithms). This binning scheme can be easily extended to 720p (5x3), but might cause some interesting artifacts on resolution charts.

A more complex 3x3 binning (very unlikely to be implemented in hardware, since it requires complex logic and knowledge about each pixel's color) could be:

(I'm showing it just for completeness, but I think the first pattern is the much more likely to be used).
If anybody could shoot some
resolution charts in LiveView (silent pictures in 5x, 1080p and 720p,
without touching the camera - I need more than pixel-perfect alignment), I can verify if these patterns are indeed the correct ones or not. If you don't use a remote release, you can take this test with the "Silent zoom bracket" option from the latest raw_diag to avoid camera movement.
Side note: the registers that control the downsizing factors are:
- Horizontal: CMOS[2], which also controls the horizontal offset; you can select full-res (1:1) or downsized by 3
- Vertical: ADTG 0x800C (2 for 1080p, 4 for 720p and 0 for zoom, so it should be the downsizing factor minus 1; other values are valid too)
Other cameras: I don't have much data, but from what I have, the binning factor seems to be 3. For example, the data from 50D (dsManning) looks like this:
gain read noise ratio (compared to photo)
ISO 100:
1080p: 7.67 5.34 3.4
photo: 2.26 6.15 1
ISO 200:
1080p: 4.20 5.48 3.85
photo: 1.09 6.52 1
ISO 400:
1080p: 2.04 5.89 3.4
photo: 0.60 7.97 1
ISO 800:
1080p: 1.04 7.30 3.4
photo: 0.31 10.94 1
ISO 1600:
1080p: 0.53 10.32 3.5
photo: 0.15 16.12 1
ISO 3200:
1080p: 0.53 10.45 nonsense :)
photo: 0.08 38.06 1
and from 500D (Greg):
gain read noise ratio (compared to photo)
ISO 100:
photo LV: 7.38 6.34 3.3
photo: 2.23 6.82 1
From the resolution charts (the first one I could find was
this), most cameras (except 5D3) show artifacts as if they were skipping lines, but not skipping columns.
Therefore, I believe the binning pattern looks like this:

but I'm waiting for your raw_diag tests to confirm (or reject) this theory.
Edit: confirmed on EOS M and 5D Mark II. From visual inspection, this method appears to be used on most other Canons.
An interesting conclusion is that 5D3 does not throw away any pixel in LiveView. Then you may wonder, why binning a full-res CR2 by 3x3 in post is cleaner? Simple: binning in software will average out
all noise sources, while binning in the analog domain (like the 5D3 does) will only average out the noise that got introduced before binning (here, the shot noise and maybe a small part of other types of noise), but cannot average out the noise that gets introduced after binning (here, the read noise, which is quite high on Canon sensors).
Therefore, at high ISO (where the shot noise is dominant), the per-pixel SNR on 5D3 1080p is improved by
up to*) log2(sqrt(9)) = 1.58 EV, compared to per-pixel SNR in crop mode. On the other cameras (3x1 binning), per-pixel SNR is improved by
up to log2(sqrt(3)) = 0.79 EV.
So, the noise improvement from the better binning method is
up to 0.8 EV at 1080p (ranging from 0 in deep shadows to 0.8 in highlights). That's right - throwing away 2/3 of your pixels will worsen the SNR by only 0.8 stops (maybe not even that).
*) If the binning would be done in software, you would simply drop the "up to" - the quoted numbers would be the real improvement throughout the entire picture
