How Sensor Pattern Noise Works
Every camera sensor has a unique noise fingerprint — like a digital DNA. Here's how MaviCats uses it to verify photo authenticity.
Photo Response Non-Uniformity (PRNU)is a permanent pattern of tiny sensitivity differences across a camera sensor's pixels, caused by silicon manufacturing imperfections. This pattern is unique to each individual sensor and survives image processing, compression, and even editing. PRNU-based camera identification was first demonstrated by Lukáš, Fridrich & Goljan (2006) and is now used in digital forensics worldwide.
1. Noise Extraction
Isolating the sensor fingerprint from image content
Every digital photo contains two layers: the scene you photographed and subtle noise introduced by the camera sensor. SPN analysis separates these using a wavelet denoising filter — specifically CDF 9/7 (bior4.4) at 4 decomposition levels. The denoised image is subtracted from the original, leaving only the noise residual.
This noise residual contains both random shot noise (different each time) and the sensor's fixed pattern noise (PRNU) — a permanent "fingerprint" caused by manufacturing imperfections in the sensor's photodiodes.
n(x, y) = I(x, y) − F(I)(x, y)
2. Texture Masking
Removing scene contamination from the noise
Not all regions of the noise residual are equally useful. Highly textured areas — edges, foliage, text — leak scene information into the noise estimate, contaminating the fingerprint. SPN analysis applies Wiener shrinkage filtering to attenuate these regions.
The Wiener filter estimates the local signal variance and shrinks the noise in high-variance (textured) regions while preserving it in smooth areas where the sensor pattern is cleanest. This dramatically improves fingerprint quality.
ñ(x, y) = n(x, y) × σ²ₙ / (σ²ₙ + σ²ₛ)
3. Reference Averaging
Building a stable camera fingerprint from multiple photos
A single photo's noise residual is noisy itself — it contains both the fixed sensor pattern and random shot noise. By averaging the noise residuals from multiple photos taken by the same camera, the random components cancel out and the fixed PRNU pattern emerges clearly.
MaviCats requires a minimum number of reference images per resolution to build a signature (10 for low-res, 20 for high-res sensors). More images produce a stronger, more reliable fingerprint. Quality is measured as the proportion of sensor area where the PRNU signal exceeds the remaining random noise.
K̂(x, y) = (1/N) Σᵢ ñᵢ(x, y)
4. NCC Matching
Comparing a photo against the camera fingerprint
When a photo is uploaded, its noise residual is extracted and compared against each camera reference signature using Normalised Cross-Correlation (NCC). NCC measures the similarity between two patterns on a scale from −1 to +1, independent of their magnitudes.
The correlation is computed per-block across the image, then averaged. Higher NCC values indicate a stronger match. Because NCC is normalised, it works consistently regardless of image brightness or camera exposure settings.
ρ = Σ(n · K̂) / √(Σn² · ΣK̂²)
5. Threshold Classification
From correlation score to authentication verdict
The NCC score is classified into a verdict using empirically validated thresholds. These thresholds were determined through extensive testing across the Mavica camera collection.
The threshold system is designed to minimise false positives (incorrectly claiming a photo matches a camera) while still detecting legitimate matches. The "plausible" zone provides a buffer for lower-quality signatures or photos taken in challenging conditions.
Verdict Thresholds
The NCC score from step 4 is classified into one of these categories:
Signature Quality
Not all signatures are equally reliable. Quality depends on the number and variety of reference images used. The quality heatmapshown on each camera's page visualises signal strength across the sensor — brighter (cyan) regions have stronger PRNU signal, while darker (purple) regions are weaker.
Quality heatmap colour scale (OKLCh: purple → cyan)
Low-quality regions typically correspond to flat sensor areas (e.g. optical black borders) or areas where Wiener filtering was aggressive. Cameras with more reference images generally show higher overall quality and more uniform heatmaps.
Contributing to SPN Coverage
MaviCats builds camera signatures from photos uploaded by the community. Every Mavica photo you upload contributes to the signature for that camera model and resolution. Different resolutions are analyzed separately — a camera shooting at multiple resolutions will have independent signatures. Low-resolution sensors need at least 10 images, while higher-resolution sensors need 20 images for a reliable fingerprint.
Best practices for reference photos: Use a variety of scenes (outdoor, indoor, close-up, landscape). Avoid extremely dark or overexposed images. Original, unedited JPEG files from the camera produce the strongest fingerprints.
References
- Lukáš, J., Fridrich, J., & Goljan, M. (2006). "Digital Camera Identification from Sensor Pattern Noise." IEEE Transactions on Information Forensics and Security, 1(2), 205–214.
- Chen, M., Fridrich, J., Goljan, M., & Lukáš, J. (2008). "Determining Image Origin and Integrity Using Sensor Noise." IEEE Transactions on Information Forensics and Security, 3(1), 74–90.
- Nwokeji, J. C. (2026). "Source Camera Identification Using Sensor Pattern Noise." PhD Thesis.