Canon Digital Rebel (300D) Noise Analysis
This document summarizes my attempt to characterize the noise of a Canon Digital Rebel (300D) as a function of ISO and Exposure Time. This is part of an ongoing attempt to answer the age-old question, "How long, and at what ISO, should each exposure be in order to maximize the Signal-to-Noise Ratio (SNR) of an astrophoto?".
Before going any further, please note that this entire analysis was carried out at room temperature (roughly 72°F), and I fully expect that these results might be significantly different if carried out at colder temperatures. That's on my "to be investigated" list.
Here is the basic methodology. I took eight "dark" (lens cap and viewfinder cap in place) exposures at all ISO settings (100, 200, 400, 800, 1600, 3200) and at several representative exposure lengths (0sec, 15sec, 30sec, 1min, 2min, 4min, 8min). Note that the 0s exposure was actually a 1/4000'th of a second exposure, the shortest the Digital Rebel allows. This 0s exposure was meant as an ISO-specific "offset" frame, figuring that any noise generated at such a short exposure in complete darkness was the result of biasing of the sensor array and/or read noise.
The following graphs show the RAW noise as a function of exposure length and ISO. The first is the RAW frames straight from the camera, converted to a CFA file in IRIS where the sigma (standard deviation) was computed (as an average of the sigma of each of the eight sample frames). The second is after "dark frame calibration", using the following processing chain in IRIS:- Compute an offset frame from the eight 0s exposures.
- Compute a dark frame from the eight Ns exposures, using the offset frame computed in #1.
- Subtract the offset and dark frames from the RAW frames, resulting in "Calibrated" frames.
- Compute and average the sigma of the Calibrated frames.
Here's before calibration:
Figure 1: Raw Noise, uncalibrated, unnormalized. |
And here's after calibration:
Figure 2: Calibrated Noise, unnormalized. |
My interpretation of Figures 1 and 2 is as follows:
- Calibration with good dark frames provides a very significant decrease in total noise.
- Something weird is going on at ISO 3200 (this is the hacked Wasia firmware which enables ISO 3200 on the 300D). Note how ISO 1600 and ISO 3200 give identical results! I'm beginning to suspect that the ISO 3200, in the Digital Rebel, is nothing more than a set of flags in the RAW image file saying, in effect, "pixel values in this image need to be multiplied by 2". (Note that this multiplication by 2 will indeed occur inside the camera when saving the images as JPG. But when saving them as CRW [RAW], it's as if you shot the frame at ISO 1600.) Perhaps this brilliant observation was obvious to everyone but me. <grin>
Note that these first two graphs are un-normalized; i.e., there's no compensation for ISO setting or exposure length. More interesting is to normalize the Noise by ISO and Exposure length, since one assumes the "signal" will be proportional to ISO and Exposure due to linearity of the CMOS sensor, and what we really seek is the Signal to Noise Ratio (SNR). Here are the "before" and "after" calibration graphs, now normalized for ISO and Exposure Length (and normalized so that ISO 1600 at 480s would result in a value of "1"):
Here's before calibration:
Figure 3: Raw Noise, uncalibrated, normalized. |
And here's after calibration:
Figure 4: Calibrated Noise, normalized. |
My interpretation of Figures 3 and 4 is as follows:
- ISO 3200 should be ignored, for the reason stated in my first set of observations above.
- The "repeatable noise" grows in proportion to the exposure time and ISO setting, whereas the "random noise" seems to grow much more slowly.
- Since the "repeatable noise" grows as fast as the signal beyond some point (~4min based on this data set), the only way to improve SNR beyond this point is to capture good dark frames and use them to process the image frames. Equivalently stated: don't bother to shoot longer than 4min exposures if you're not going to collect good darks.
- Since the "random noise" grows slower than the signal, increased exposure length can improve SNR indefinitely, up to the point at which saturation (clipping) occurs in the A/D converter. This is hardly an astonishing result; namely, that longer exposures will result in "less noisy" images.
- ISO 200 through ISO 1600 have remarkably similar noise characteristics over a fairly wide range of exposure lengths. In particular, above about 2min, they all perform nearly identically, holding all other variables constant. If anything, the higher ISOs appear to work slightly better than the lower ISOs with respect to SNR, but realize the higher the ISO the sooner an exposure will saturate (clip) and the lower will be the dynamic range available to the signal.
- I have no idea why ISO 100 seems to perform worse than the other ISO values at these exposure lengths. Anyone?
Since one of the advantages of DSLRs is getting a full-color image in each frame, it's interesting to scale the noise sigma in proportion to the "scale factors" typically applied during image processing to see how that affects the total noise. I use factors of {1.96, 1.00, 1.23} for Red, Green, and Blue respectively, when processing, so I scaled the noise sigma's in those channels by those factors and then combined the result to get an "RGB Balanced" noise estimate. The result is shown in Figures 5 and 6.
Here's before calibration:
Figure 5: RGB Balanced Noise, uncalibrated, normalized. |
And here's after calibration:
Figure 6: RGB Balanced Noise, calibrated, normalized. |
My interpretation of Figures 5 and 6 is as follows:
- ISO 3200 should again be ignored.
- Correcting for RGB Balance didn't really change the conclusion above; namely, that ISO 200 through ISO 1600 will provide similar noise performance, and that Dynamic Range and other considerations should prevail when picking an ISO value for long-exposure astrophotography.
- I still don't know why ISO 100 seems to produce worse results than the other ISO settings.
I'm still struggling with how to compute "available dynamic range" at the various settings, but part of the answer would seem to lie in how much of the A/D converter's number space is taken up by noise, especially at higher ISO and longer exposure lengths. This next graph provides the "mean" of the pixel values of the (uncalibrated) dark frames at the various settings:
Figure 7: Mean pixel value, uncalibrated, unnormalized. |
Figure 7 makes my brain hurt:
- First, ignore ISO 3200 for reasons already stated.
- Why does the mean go down, not up, as the exposure length increases!? (Remember, no "dark calibration" was performed on these frames for the purpose of generating Figure 7.)
- Why do ISO 100 through ISO 800 generally behave similarly, while ISO 1600 seems to have a completely different profile?
- Could there be something at work inside the camera to "drain" electrons, both noise and signal, during the integration period in order to provide more dynamic range to the signal for long exposures?
Comments? Please post them to the Yahoo digital_astro list (preferable) or .