Trifid is a program which provides a noise model of CCD sensors and digital cameras. The model more accurately represents the types of noise that are likely to occur in real world imaging than would generally be achieved by using a more naive approach, such as simply adding Gaussian noise to an image. Although I have not objectively verified that this model produces more natural noise than a simpler approach, the results are nevertheless subjectively much more pleasing to my eye, and I am reasonably sensitive to the characteristics of a variety of natural types of image noise since I have spent many years capturing and processing images under extremely noisy conditions (long exposure astrophotography using low-end camera equipment).

The following images demonstrate what Trifid can do. We start with an input image which will be assigned the designation of noise-free regardless of its subjective appearance to us (although a clean low-noise image will work better):

From the input, a series of resulting images are generated which simulate capturing a photo under progressively lower-light situations without extending the exposure time (as would be impossible without a tripod to stablize the camera). The following images simulate 1/20th second exposures under daylight, evening, and full-moon illumination with auto-gain (auto-ISO).

Alternatively, we can simulate extended exposures. The same original was used as in the previous set, but this time, due to low illumination, extended exposures were captured (presumably on a tripod). Less noisy images result but are corrupted by CCD dark signal (loss-of-contrast) and hot pixels (amongst other less obvious degradations). The following images demonstrate 2 second full-moon-lit and 5 second quarter-moon-lit exposures with a temperature of 10 degrees Celsius (50F) with auto-gain (auto-ISO):

The characteristics of each component of the model are fully configurable through noise parameter files. Thus, the user can dial the severity of, say, dark current or amplifier noise (or anything else), up or down as per his or her choosing. Trifid models all of the basic components of CCD noise, including Bayer mosaic filtering, Poisson shot noise, dark current, read noise, hot pixels, amplifier noise, etc. Environmental factors, such as temperature, are realistically taken into account.

Trifid also provides the ability to perform wavelet soft shrinkage denoising using the steerable pyramid with four oriented filters. Each level and color can be denoised with an independent threshold if desired.

Trifid also provides the ability to calculate and sort conventional image quality metrics between a set of images, namely PSNR and Lab Delta E.

The source code is fully provided (in fact, you must build Trifid; the exectuable is not included in the download package), along with several basic noise parameter files, copious documentation, tutorials, sample images, and quick-start scripts. It is my hope this package will provide a starting point for other people who would like to extend this work toward more complete experiments and products of their own. In fact, it is entirely likely that my interpretation of the literature and implementation of the model is not entirely correct (it is surprisingly complicated), so I invite other researchers to investigate the method and consider their own variants, improvements, or corrections to the model.

Download Trifid (includes source code, sample images, and documentation)