Parametric model mixes noise types for realistic image synthesis

Parametric Gaussian Noise Mixer (PGNM): Unified Synthesis of Camera Noise and Film Grain

Computer Vision and Pattern Recognition

Summary

Digital images often have grainy noise that can come from cameras or simulated film. This paper presents a new way to create such noise by learning a statistical model from pairs of clean and noisy photos, without simulating the camera's physical process or requiring complex neural networks. The model separates noise patterns and uses a simple method to reproduce realistic noise quickly. It works well for both camera noise and film grain and can help train denoising software that performs close to those trained on real noisy images.

What this means in practice

  • For image processing engineers: Train denoisers with realistic synthetic noise matching camera and film grain characteristics, improving model relevance when real noisy data is scarce.
  • For visual effects artists: Generate authentic film grain and camera noise textures quickly for post-production and digital film work without manual tuning.

Authors

Mingyang Song

Abstract

Noise synthesis is commonly approached through physical models of image formation or neural networks trained to generate noisy images. We explore a middle ground: an explicit statistical model fitted directly from paired clean and noisy images. A normalized convolution correlates a Gaussian field across pixels and color channels, and a lookup maps each Gaussian value to a residual given the clean intensity. Because the field stays standard Gaussian, the two components are fitted separately, without reproducing the physical process or training a neural generator. With one formulation for camera noise from SIDD and simulated film grain from Newson, the model has the lowest average distribution and correlation errors on SIDD among the evaluated methods and remains competitive on film grain. A denoiser trained on its noise comes closest to one trained on real noise, and a 1080p frame renders in 10 ms on GPU.