Noise in digital photos is very familiar to “pixel-peepers”. Noise obscures details, reduces dynamic range and looks bad when photos are viewed at large sizes. This post examines how ISO sensitivity, colour and exposure affect random noise levels. Random noise is usually dominant and more difficult to remove than fixed pattern noise (“dark noise”) and banding noise, which are not covered here. This post concludes with some tips for reducing random noise when taking digital photos.
Measuring noise with Raw Therapee and Argyll CMS
Camera profiling targets can be used for measuring digital photo noise. A fair evaluation requires “device RGB” images, without any colour processing, noise reduction and other enhancements. I used Raw Therapee to get raw photo linear RGB images:
- Processing Profile: Neutral.
- Input Profile: No profile.
- Output gamma: linear_g1.0 (this will disable the Output Profile).
- Spot White Balance on neutral grey patch.
- Crop to target and save as TIFF.
Next, I used Argyll CMS scanin to read the images. My chart was an X-Rite ColorChecker Digital SG:
scanin -v -p -a -dipn IMG_9999.tif ColorCheckerSG.cht ColorCheckerSGD50.cie
Argyll CMS generates a text file including mean patch RGB measurements and standard deviations (SD). I pasted these data into a spreadsheet and then computed coefficients of variation (CV = SD/mean). CVs measure relative noise levels. Engineers often prefer the signal to noise ratio (SNR ~ mean/SD = 1/CV), which is commonly reported in decibels: SNR = 10×log_10×((mean/SD)^2).
High ISO noise
Digital photographers know from experience that noise levels increase at higher ISO settings. I tested this by photographing my CCSG target at different ISO settings. The light source was direct afternoon sunlight, to minimise glare from the darker patches. I stopped the lens down to f/11, metered off a 18% grey card at ISO100 (shutter 1/250 s for this example) and took the first image. I then increased ISO in one stop increments (ISO200, 400 … 1600) and held the exposure value constant by halving the shutter speed for each successive image (1/500, 1/1000 … 1/4000). A constant exposure value is necessary for a fair comparison.
The graph below plots CVs versus reflectance. Dotted lines indicate middle-grey (18%) and 32 dB SNR. Middle-grey (L* = 50) is a good reference because most information in digital photos is usually present in the mid-tones. If middle-grey is noisy, people will notice. Middle-grey has a rather low 18% reflectance because human vision lightness response is non-linear. The SNR reference I have stolen from DxOMark: 24 dB (CV = 0.063 ) is bad SNR; 32 dB is good (CV = 0.025); and 38 dB (CV = 0.013) is excellent.
Coefficients of Variation (CV) for greyscale patches (reflectance = 0.7% to 91%) at different ISO settings. CVs for neutral grey patches computed as means of individual RGB channels. Camera: Canon EOS 400D Digital SLR. Target: X-Rite ColorChecker Digital SG.
The ISO effect appears as a higher “noise floor” at higher ISO settings. This is random amplifier noise (“read noise”). Read noise has a fixed level at each ISO setting and is additive. ISO800 and ISO1600 for my Canon 400D are noisy, from the shadows to the highlights, even though this test was in good light (Exposure Value 14.9).
Noise also decreases very rapidly with increasing signal levels. This suggests “shot noise”, which results from variations in photon counts at each photosite and follows a Poisson distribution, where the CV is the reciprocal square-root of the mean.
DxOMark has measured raw photo noise data for most digital SLR cameras. They present SNR, like in the next graph. For the Canon EOS 400D, DxOMark suggested a maximum ISO664 for good middle-grey SNR (nearest setting ISO400) and my results agree.
Signal to Noise Ratios (SNR) for greyscale patches (reflectance = 0.7% to 91%) at different ISO settings. Presentation like DxOMark’s Full SNR graph. Camera: Canon EOS 400D Digital SLR. Target: X-Rite ColorChecker Digital SG.
Colour noise (or “chroma” noise) should also be familiar to digital photographers, but I think less well understood. To investigate colour noise, I examined colour patches from the ISO100 photograph in afternoon sunlight used above.
CVs for individual RGB channels are compared in the graph below. For blue, the red signal is weak and just as noisy as for black. For red, the blue signal is weak and noisy. Green wavelengths are between blue (shorter wavelengths) and red (longer wavelength). The green channel has similar CVs for all three of these colour patches. Also observe that neutral patches reflect all wavelengths equally. A correct white balance is necessary.
Coefficients of Variation (CV) for red, green and blue patches plus white, middle-grey and black for reference. The dotted line equals 32 dB signal to noise. Camera: Canon EOS 400D Digital SLR. Target: X-Rite ColorChecker Digital SG.
Following the above results, in our photos we expect more red colour noise in blues and more blue colour noise in dark reds. The illuminant is also important. For example, tungsten lights have lots of red and very little blue wavelengths. Photographs in tungsten lighting will have higher blue colour noise compared to daylight, which has a more even spectrum.
Increasing the signal (photons counted) reduces shot noise (“Poisson noise”). The following graph uses data from my linearity testing post. It demonstrates that over-exposure reduces noise. Shadows, represented by the black patch, are most sensitive to exposure.
Coefficients of Variation (CV) for white, middle-grey and black versus exposure. Camera: Canon EOS 400D Digital SLR at ISO100. Target: X-Rite ColorChecker Digital SG. Base exposure (delta EV = 0) metered using a 18% grey card.
“Expose To The Right” (ETTR) has been promoted to increase resolution in shadows and critics have argued that ETTR is not necessary for newer, higher bit-depth cameras. However, ETTR also reduces noise, as demonstrated above. This is true for faster shutter speeds typical of hand-held photography and not for long exposures, where “dark noise” appears.
Solutions for random noise
There are several photographic techniques to reduce random noise:
- Use a better camera, which usually means a larger image sensor (reduce shot noise).
- Use a lower ISO setting (reduce read noise).
- Expose to the right (reduce shot noise).
- Supplement the natural light (e.g. flash, reflectors) if it is weak (reduce shot noise).
- Prefer broad, even spectrum artificial lighting (reduce colour noise).
- Use image averaging for static scenes and a tripod. This reduces noise levels everywhere.
- Use High Dynamic Range software to merge an overexposed image (with reduced shot noise in shadows) with a correctly exposed image. Two images may suffice and hopefully HDR effects can be disabled when not wanted.
All of the above techniques reduce noise in the raw photo data. Further software noise removal is often required for the final image. However, software can’t restore details that are lost in noise. And image sharpening tends to amplify noise. Low noise images save processing hassles.
Finally, here is an example where ETTR has reduced digital photo noise at ISO400.
Cape York, Queensland. Photographed in the afternoon with a Canon EOS 400D at ISO400.
Shadow noise detail at 200% from the above photo at base exposure (shutter 1/100 s). Raw photo processed in Raw Therapee with no noise reduction and no sharpening. There is subtle chroma noise in the shadows.
Shadow noise detail at 200% with ETTR (shutter 1/60 s). Exposure corrected by -0.74 stops (linear ×0.60) in Raw Therapee. If you have a decent display, you should be able to see an improvement over the base exposure.
Raw photo histogram in Raw Therapee for ETTR image above. ETTR can be recommended for this example, where the raw photo RGB channels are not clipped.