In this post I talked about how some low-mean-value points in the data set can be truncated on the left of the histogram by in-camera firmware, and discussed a criterion based on signal-to-noise ratio (SNR) for leaving points out of the data set so that they don’t confuse the modeling of the camera-under-test’s read noise. Today I’d like to go into more detail about how I arrived at SNR = 2 as the criterion.
First off, what does SNR = 2 mean in terms of the histogram? It’s hard to say if it’s clipped (actually, if properly motivated, I could run a simulation) but if it’s not and the probability density function is Gaussian, having an SNR of 2 means that about 2 1/2 % of the distribution would be lopped off if the black point of the raw image were zero.
One of the things that is in the camera analysis software package is a camera simulator. It is a good idea to write a camera simulator whenever you write software to analyze camera output files, because it is a great way to test the program. As a side benefit, you can vary simulated camera parameters to test the consequences of analysis decisions, which is what I’ll report on here.
I set the program to simulate a camera with a full-well capacity of 100,000 electrons, a pre-amp read noise of 2 electrons, and a post-amp read noise of zero. I set it to have a raw file black point from 1 to 512 in powers of two. Then I ran the analysis program on the output, setting the data cleaning portion of the program to throw out data with SNR below a given value, varied that value systematically, and plotted the resulting modeled read noise.
For ISO 100:
The SNR used for the data cleaning is the horizontal axis, and the modeled RN in electrons is the vertical one. Since we know the right answer for the RN is 2 electrons, we want the threshold SNR that gives the modeled RN as close as possible to that number, which is in this case, an SNR of 2.
At ISO 800, which gives us more noise at the analog to digital convertor (ADC):
Now any threshold SNR below about 3 is OK.
At ISO 3200:
SNR’s of 2 and 3 seem to do well.
At ISO 6400:
Again, SNR’s of 2 or 3 look good.
Based on that, and other similar tests, I picked an minimum SNR of 2 for inclusion in the modeled data set.