Or better,
http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/#patternnoiseThe pattern noise we are seeing in the above images is not exactly fixed (it varies from frame to frame), and it's a scalar offset applied to each row, and then the same process is repeated for each column. So, to correct a 4096x3072 image, you will need 7168 scalars. In the Apertus sensor, I believe things are a little more complex than that (the offset seems to be dependent on image brightness, but I didn't find a clear relationship yet, and the constant offset model already gives pretty good results).
In 5D3, vertical stripes appear because each column ( modulo 8 ) has a different gain, so the artifact is visible only in highlights. That is, columns 1, 9, 17 and so on have one gain, columns 2, 10, 18 ... have some other gain, so in order to correct this artifact, one has to compute 8 gains (scalars). I believe this happens because the sensor is read out using 8 different circuits in parallel, each with slightly different electrical parameters.
Other cameras: I believe 6D and 700D use 4 circuits, 60D/600D/550D/5D2/50D use 2 circuits, and 500D uses only one circuit. I came to this conclusion by checking the values of the
sensor resolution registers (vertical resolution is always unscaled, while horizontal resolution is divided by 8, 4, 2 or 1, depending on the camera). Of course, this parallel readout affects the pattern noise as well (for example, on 60D, if you take the uncorrected
*) pattern noise from even columns, and then the one from odd columns, you get two independent random walks).
*) To completely disable Canon's pattern noise correction, one has to replace all the W+H offsets with 0 (they are passed via EDMAC to the HivShd module).
Hot pixels are another story, and they are usually easy to find and fix.