I’ve done several studies on how much noise dither is enough to eliminate posterization.
The answer, for Gaussian noise dithering, is about 0.5 the least significant bit voltage, rms. When you’re doing the judging visually, in the tests I’ve run it’s hard to come up with a precise number, but it’s between 0.5 and 0.8. Other people have come up with higher numbers. The highest I’ve seen from a credible source is 1.6 counts, and I have not gotten enough information to reproduce the experiment that generated that number.
Recently, I was engaged in a discussion with someone about the salutary effects of dither, and he challenged me: “Sure, dither’s fine when you’ve got no detail, but you need precision to see the detail.”
Well, that was an interesting thought, and had a certain amount of reasonableness associated with it. If dither works by averaging, how’s it going to work when the averaging would destroy the thing you’re looking for?
You know me, I had to devise an experiment. I created this image:
It’s go no tones near white or black, so over and undershoot won’t be a problem. I reprogrammed my camera simulator to ignore photon noise, apply read noise only after the amplifier with rms value equal to a specified number of LSBs of the ADC. I ran the ADC at 3, 4, and 5 bits of precision. This gives the same effect as large Exposure pushes on underexposed images with cameras of greater precision.
Other model details:
- f/2 diffraction-limited lens
- 450, 550, and 650 nm light
- 4.88 um pixel pitch
- Adobe RGB RGGB CFA
- bilinear interpolation demosaicing
Here’s what you get with a 3 bit converter and very little noise, enlarged to 300%:
My first set of images had noise equal to half an LSB of the 3 bit converter, a full LSB for the 4 bit converter, and 2 LSBs for the 5 bit converter. Thus the noise voltage remains the same if the full scale voltage remains the same, regardless of the precision of the ADC.
You can see that the character of the noise is different in the three images, since it is quantized more finely in the higher-precision ones.
You can also see that the top line gets easier to read as the precision goes up. Maybe that guy was on to something.
Let’s increase the dither a bit, to 0.7 LSB of the 3 bit converter, 1.4 LSB for the 4 bit converter, and 2.8 LSBs for the 5 bit converter.
Now the differences are harder to see. I’d call them inconsequential.
Let’s increase the dither to 1.4 LSB of the 3 bit converter, 2.8 LSB for the 4 bit converter, and 5.6 LSBs for the 5 bit converter.
Now the differences are more about how the noise itself is quantized than anything else.
In general, it looks like 0.7 LSB of dither is sufficient to hold detail; adding precision while holding the noise voltage constant above that doesn’t appear to help much.