chapter Frédo approved
13.14 Denoising TLDR⧉
For ordinary photographic work, start with a pretrained denoiser designed for your input. The practical choices are what to capture, how much detail to retain, and how to judge the result.
- Preserve raw data when available. Match the denoiser to the camera data and processing domain it expects; a model for raw sensor noise and one for processed RGB solve different problems. In a custom pipeline, check black levels, image scaling, and noise units before tuning strength (Chapter 13.1, Noise models, transforms, and benchmarks).
- Use multiple frames when motion and capture time permit. Four aligned, independent exposures of unchanged duration halve noise standard deviation. Moving subjects and occlusions reduce that gain locally; splitting a fixed total exposure adds read noise. Use a temporal method for video and inspect ghosting, flicker, and delay (Chapter 13.2, Denoising by averaging, Chapter 13.10, Video denoising).
- Set strength by the detail you need to preserve. Inspect hair, foliage, fabric, small text, and isolated highlights at full resolution and at the intended display size. Some remaining grain is preferable to erased texture. More plausible texture from a generative method does not establish that the camera recorded it. Keep the original and record whether the output uses generative reconstruction (Chapter 13.9, Generative denoising with diffusion models).
- Test on your own images. Compare identical inputs, inspect the removed residual, and use reference error and perceptual measures when a reliable reference exists. Include difficult scenes and measure latency and memory. A benchmark winner may behave differently on your camera (Chapter 13.12, Measuring a denoiser).
- For implementation, use BM3D Dabov et al. 2007 as a baseline requiring no learned weights. Reserve median filtering for sparse impulses or defects; ordinary spatial smoothing also removes detail. Train a new model when available models fail your domain. Noisy-target training can help, but requires the independence and alignment assumptions developed in Chapter 13.8, Denoising without clean data.