Read Noise
Prepared 2007-11-25 by Bill Claff
Read noise (RN) is an important characteristic of a digital
sensor.
Read noise is the noise that comes from the process of reading photosite
values, even in the absence of light.
Typically read noise is computed by analyzing a pair of images taken at the
highest shutter speed of the camera.
However, there is a serious problem with this technique if the
values are clipped at 0 Analog to Digital Units (ADUs).
Clipped data is no longer a Gaussian distribution; the mean and standard
deviation will be too high.
Values for Nikon cameras are always clipped.
Fortunately, there is a technique to measure read noise in
such situations.
In these cases I fit the histogram of the ADU distribution for the dark image to
a normal distribution.
But, before we can start there is a complication.
Observe the following histogram for the D70 at ISO 100:
ADU |
R |
Gr |
Gb |
B |
0 |
785,339 |
754,217 |
769,269 |
763,007 |
1 |
251,393 |
255,868 |
253,766 |
254,533 |
2 |
205,661 |
212,469 |
209,397 |
211,335 |
3 |
0 |
0 |
0 |
0 |
4 |
135,905 |
143,844 |
139,907 |
141,533 |
5 |
74,300 |
80,135 |
77,260 |
78,100 |
6 |
33,812 |
37,395 |
35,439 |
36,005 |
7 |
12,431 |
14,326 |
13,412 |
13,756 |
8 |
0 |
4,271 |
41,98 |
4,356 |
9 |
3,929 |
0 |
0 |
1,072 |
10 |
945 |
1,167 |
1,079 |
0 |
11 |
229 |
253 |
227 |
247 |
12 |
47 |
44 |
33 |
48 |
Due to digital scaling that occurs after the analog to digital
conversion there are 0 values in the histogram.
Before fitting this data to a normal distribution we must rescale the data and
then afterwards rescale the results.
These scaling factors may very well vary from camera to camera.
For the D70 analyzed while preparing this article the scaling factors are 1.24,
1.21, 1.20, and 1.18 for the R, Gr, Gb, and B channels respectively.
As an example of just how well the data fits a normal distribution here is the fit and actual data for the red (R) channel data given in previous section:
The data‑point for ADU 0 was omitted from this graph to reduce the height of the y‑axis for readability.
Here are the results for all ISOs and channels for the D70:
ISO |
R |
Gr |
Gb |
B |
Ave |
200 |
2.26 |
2.26 |
2.26 |
2.26 |
2.26 |
400 |
4.24 |
4.25 |
4.24 |
4.24 |
4.24 |
800 |
8.39 |
8.38 |
8.39 |
8.38 |
8.38 |
1600 |
15.03 |
15.01 |
15.01 |
15.01 |
15.01 |
All values are in ADUs and have not been rescaled to reflect the digital scaling factors.
Note how consistent the values are across channels. The rightmost column shows the average value for that ISO.
Here is a plot of the read noise values versus ISO for the D70:
Note how beautifully ISOs 200 through 800 fit to a straight line.
I omitted ISO 1600 from the fit and it is shown on the chart
as an open circle slightly below the fitted line.
I did so because I believe that some form of noise reduction is performed by
the D70 at high ISOs.
This fit could be interpreted as separating the amplifier noise, the slope, from fixed noise, the intercept.
Here are the results for all ISOs and channels rescaled for the digital scaling factors for this D70:
ISO |
R |
Gr |
Gb |
B |
200 |
2.79 |
2.73 |
2.71 |
2.67 |
400 |
5.25 |
5.13 |
5.09 |
5.01 |
800 |
10.37 |
10.13 |
10.06 |
9.90 |
1600 |
18.57 |
18.14 |
18.02 |
17.73 |
These values are in ADUs and have been converted back to the domain as reported by the camera.
It’s not trivial but highly accurate read noise values can be determined with this technique.