Having a temperature-controlled camera at a steady temperature (even while imaging) makes it easier to test how the temperature affects the noise level of the CMOS and the readout electronics. The following tests were conducted:
- Gain at different ISO sensitivities
- Bias level and readout-noise at different temperatures and iso values
- Dark noise at different temperatures and iso values
The goal of these tests were to figure out if the cooling were adequate, and to find out which ISO and exposure settings would give the best SNR values. The tools used for the tests were BackyardEOS for capturing a whole lot of images, dcraw for getting the raw sensor data and a self-made python script for analyzing the images.
And a PID controlled peltier-cooled Canon EOS 1100D.
All temperature measurements in these tests are the temperature reported by the temperature sensor (DS18b20) glued (with thermal glue) to the copper cold-finger, which again is glued to the sensor back side. The onboard temperature sensor of the 1100D reported temperatures about 3-4 °C warmer than this. This temperature is however measured at the PCB, so this difference is to be expected, as the pcb is not coupled directly to the cold finger.
All .CR2 raw-files were converted using the following parameters to ensure that no scaling, interpolation or filtering were performed:
dcraw.exe -t 0 -D -4 -T <filename>
The tests were conducted without the EMI shielding of the CMOS-PCB in place, so this might have increased the bias noise values. New tests will hopefully be performed the next time the camera is opened and the EMI shielding remounted.
The methods for calculating gain and noise were found on Christian Buil’s homepage.
Gain measurements
Since gain should be the same regardless of sensor temperature, all images were captured at a steady sensor temperature of -7.5 °C to keep the bias level even. Tests were performed indoors, with a halogen light source and a white plastic cutting board for diffusing the light.
Two flats (F1 and F2) were taken for each iso value, using the histogram view in BackYardEOS to ensure adequate exposure (histogram peak at about 50% or more), as well as two bias (B1 and B2) with exposure time of 1/4000 s. The images were then cropped at the center 512×512 pixels. The gain (slope) were calculated using this equation:
[math]Gain = \frac{(\mu_{F1}+\mu_{F2})-(\mu_{B1}+\mu{B2})}{\text{Var}_{(F1-F2)}-\text{Var}_{(B1-B2)}} [/math]
The results of the gain measurements are presented in a log-log plot, together with the variance and mean for each image pair which are also shown in the plots below.
The gain is in units of Analog to Digital Unit per electron (ADU/e-), which gives the increase in pixel value for each electron (photon) detected. A gain of 1 is called the unity gain, and below this there will be signal loss due to inadequate amplification before digitization of the signal (not all detected photons will be counted).
For astrophotography use, ISO values above the unity gain (calculated to be ISO313) should be used, giving a minimum selectable ISO of 400. One can argue that increasing the ISO further does not increase the real signal intensity (as the number of electrons counted are the same, the ADU counts are just multiplied by a constant) and that higher ISOs are therefore not called for. However, as further tests shows this might not be the case.
Dark/thermal noise at different temperatures and exposures
Being able to precisely control the temperature, noise tests were conducted with a sensor temperature of 20 °C, 10 °C, 0 °C and -10 °C. Dark images (lens cap on) with exposure time of 15 s, 30 s, 60 s, 120 s, 180 s, 300 s and 600 s were recorded for iso values 400, 800 and 1600. The temperature were set in the PID-controller, and the image acquisition were started after the temperature had been stable for 2-3 minutes. Image acquisition were performed automatically using BackyardEOS. All in all, data collection took about 5 hours including waiting time for the camera to settle at the desired temperature.
The noise in the following plots were calculated by cropping the center 512 x 512 pixels, and calculating the standard deviation of the cropped image. As the resulting data is 4-dimensional, plots has been created for both noise vs exposure time and noise vs temperature.
First, noise vs exposure, where one can see at which exposure length temperature becomes a factor at different ISO values:
Next, the noise values has been plotted as a function of temperature at different ISO values:
Conclusion
As the plots above show, cooling the sensor below 0 °C gives virtually no improvement in noise level, even for ISO1600 and 10 minute exposures. At exposure times shorter than 60 s the read-out (bias) noise is dominating, and the dark noise has negligible contribution to the total image noise.
Cooling to a modest 10 °C should therefore sufficient to eliminate dark/thermal noise at exposure values shorter than about 180 s. At exposures longer than 180 s, cooling the sensor to 0 °C is sufficient.
For colder climates, the results above basically means that cascaded peltier elements are unnecessary, and only a modest cooling of ~15 °C below ambient should be enough.
Temperatures higher than 20 °C were not tested, due to the way the peltier cooling system is set up. A stock camera might get sensor temperatures up to 10-15 °C above ambient due to sensor self-heating and limited convection to carry the heat away. The true noise values of an uncooled 1100D is therefore unknown, but is assumed to give a much higher noise level than the ones measured here. Also, noise levels can probably vary a bit from camera to camera.
Also worth noting, is that the increase in noise between ISO400 and ISO800 is only about 30% at 0°C, no matter the exposure length, while the increase in signal strength due to twice the gain should be 100%. A similar, but somewhat lower ratio can be observed between ISO800 and ISO1600. This suggests that the SNR is better at higher ISO values. The price of course is lower dynamic range, since the sensor will be saturated sooner.
In the end, the incoming photon flux, the photon shot noise and the noise from light pollution (all corrected for sensor efficency (Q.E.)) should be taken into account if the truly optimal ISO and subframe length is to be calculated. Hopefully I’ll get back to this some day. In the meantime, I hope this information can be useful for anyone contemplating cooling their DSLR.
The python script used will be put up on the download portion of the site (eventually, when I’ll get around to commenting the code and writing a instruction for use).