Yesterday and the day before, I wrote a post aimed at discovering the relationship between dither and quantizing precision when resolving detail was the main criterion. The conclusion was that, just as for the avoidance of posterization (see here, here, and here), half a least-significant bit (LSB) was enough noise for most purposes. For critical judgements, it looked like 0,7 bits was slightly better.
Today I’ll repeat the experiment with a couple of changes. First, I reduces the target contrast so that the dynamic rnge is about 1 LSB with a 3 bit ADC. Here it is at 300% magnification.
Second, in response to a reader comment, in order to facilitate comparisons, I changed the camera simulator so that the read noise image is the same simulated voltage across all ADC precisions. Doing that without rendering the camera simulator less useful for other purposes turned out to be a little tricky. I ended up adding the ability for the simulator to work with stored pre-amp and post-amp read noise images. Then I set the post-amp read noise to zero, the unity-gain ISO to 100, the set ISO to 100, the pre-amp read noise to some value for 3 bit precision. For the four-bit precision, I set the ISO to 200, and for 5 bit precision the ISO was set to 400.
Other camera simulator details:
- f/2 diffraction-limited lens
- 450, 550, and 650 nm light
- 4.88 um pixel pitch
- Adobe RGB GBRG CFA
- 100% fill factor
- AHD demosaicing
Here’s a set with 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.
Increasing 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:
Increasing the dither to 1 LSB of the 3 bit converter, 2 LSB for the 4 bit converter, and 4 LSBs for the 5 bit converter.
My conclusions are as before: half a bit rms of Gaussian noise is good enough dither for most purposes, 0.7 bits is a little better, but going to 1 LSB noise doesn’t help. As before, it is apparent that increasing the precision makes the read noise less objectionable.
If anyone has ideas for other useful test targets, I’d be interested in hearing them. I may try a real scene next.