Practice with mock tests, learn from structured notes, and get your questions answered by a global forensic community, all in one place.
PRNU camera attribution requires a denoising step to isolate the sensor residual, averaging many residuals to build a reference pattern, and then computing the Peak-to-Correlation Energy statistic to decide whether a query image came from a specific camera.
Last updated:
Every digital photograph carries the camera sensor's PRNU fingerprint mixed into its noise floor, but you cannot see it. The scene content, quantisation from JPEG compression, and random shot noise all drown it out. Extracting PRNU from an image is an exercise in separation: use a denoising filter to strip away the part that looks like an image, and what remains is dominated by the fixed spatial pattern you care about.
The practical problem has two parts. First, estimating a reference PRNU pattern for a camera you want to fingerprint: take a set of images from that camera, denoise each one, and average the residuals so that random noise cancels and the stable PRNU accumulates. Second, testing a query image of unknown origin: denoise it, compare its residual to the reference using a correlation statistic, and decide whether the result is high enough to attribute the image to that camera.
This topic covers both parts in detail: the denoising options, the normalised cross-correlation and its PCE extension, the statistical hypothesis-testing framework, and the practical variables (image count, JPEG quality, resolution) that govern how reliable the result can be.
Strip out the image and what is left is the fingerprint.
The PRNU residual from a single image is computed as:
W_hat = I - F(I)
where I is the original pixel array and F(I) is the denoised version produced by a filter F. The residual contains the PRNU component (which is spatially correlated and fixed across images) plus random shot noise (which is independent across images and will average away). The quality of the residual depends entirely on how well F removes scene content without also removing the PRNU.
Two denoising approaches dominate the literature. Wavelet-based denoisers, commonly the Daubechies 8-tap filter used in the original Lukáš et al. implementation, operate by thresholding wavelet coefficients at each scale. They are computationally fast and work well for natural images. BM3D, introduced by Dabov et al. in 2007, achieves markedly better scene-content removal by exploiting self-similarity across the image through block matching. BM3D denoising residuals have a higher signal-to-noise ratio for PRNU than wavelet residuals, particularly for images with strong textural content, and it has become the preferred denoiser in high-accuracy PRNU systems.
One image gives you a noisy hint. Fifty give you a fingerprint.
The reference PRNU pattern for a camera is estimated by averaging the residuals from N images taken by that camera:
K_hat = (1/N) · sum(W_hat_i)
Because the random noise in each residual is independent, it averages toward zero with a rate proportional to 1/sqrt(N). The PRNU component, being constant across images, accumulates linearly. The signal-to-noise ratio of the reference therefore grows as sqrt(N), so doubling the number of images improves it by about 41 percent.
The images used for reference estimation should be varied in scene content: outdoor, indoor, bright, dark, textured, smooth. Using images that are too similar to each other (for example, a sequence of near-identical shots) means the scene-content residuals may partially correlate across images rather than cancelling, biasing the reference. In practice, casework analysts often work with whatever natural images are stored on a seized device, which tends to provide adequate variety.
NCC gives you a similarity score. PCE tells you whether to trust it.
Given a query noise residual W_hat_q and a reference pattern K_hat_c for candidate camera c, the normalised cross-correlation is:
NCC = corr(W_hat_q, K_hat_c) / (||W_hat_q|| · ||K_hat_c||)
This ranges from -1 to +1. For a true source-camera match on an uncompressed image, NCC values above about 0.01 are considered significant (the absolute scale is low because the signal rides on top of much larger random noise). For a non-source camera the value hovers near zero. The NCC threshold for a positive attribution decision depends on the resolution and the desired false-positive rate.
PCE improves on raw NCC by asking not just 'is the correlation high?' but 'how prominent is the correlation peak relative to the surrounding surface?' The cross-correlation is computed in the frequency domain (via FFT), yielding a two-dimensional correlation surface. PCE is the peak value of that surface divided by the energy of the rest of it:
PCE = peak^2 / ((1/(MN-1)) · sum_rest(values^2))
A sharp, isolated peak against a flat background gives a high PCE. A broad, noisy correlation surface with no clear peak gives a low PCE. For true camera matches, PCE values in the hundreds or thousands are common. For non-source cameras, PCE typically stays below 60. These distributions overlap only at the low end of the true-match distribution, which is precisely the regime that requires careful interpretation.
The PCE number is only useful if you know what it is compared against.
Camera attribution is framed as a binary hypothesis test. The null hypothesis H0 is that the query image was not taken by the candidate camera. The alternative H1 is that it was. The analyst sets a threshold PCE_threshold, and the decision rule is: if PCE >= PCE_threshold, attribute to this camera; otherwise do not.
The threshold is calibrated empirically by testing a validation set of true matches (images of known source) and non-matches (images from different cameras). The distribution of PCE values under H0 is estimated from non-source pairs, and PCE_threshold is set so that the false-positive rate (attributing to the wrong camera) is acceptably low. In forensic practice, false-positive rates of 1 in 10,000 or lower are targeted, with the exact rate depending on the size of the candidate pool.
| Decision outcome | What it means | Driven by |
|---|---|---|
| True positive (H1 accepted, correct) | Image correctly attributed to the source camera | High PCE from genuine PRNU match |
| False positive (H1 accepted, wrong) | Image wrongly attributed to a non-source camera | Chance high PCE; increases with pool size |
| True negative (H0 accepted, correct) | Image correctly excluded from non-source camera | Low PCE from unrelated noise patterns |
| False negative (H0 accepted, wrong) | Source image missed; not attributed correctly | Low PCE from heavy compression or processing |
How many images you need, and what compression does to the answer.
The number of reference images required for reliable attribution is not fixed. It depends on image resolution, JPEG quality, and the false-positive rate targeted. Several empirical studies have converged on practical guidance.
Resolution matters because more pixels means more PRNU samples per image, and more independent samples improve the correlation statistic. This is why smartphones with small sensors and then-lower resolutions in the early 2010s presented more challenging attribution cases than contemporary 20-megapixel cameras, even though their PRNU physics is identical.
Video is a sequence of compressed images, and the PRNU method adapts.
Video files present two complications for PRNU analysis: inter-frame compression and temporal correlation. Modern video codecs (H.264, H.265) compress most frames as motion-compensated differences from a reference frame rather than as independent images. Only I-frames (key frames) are encoded like independent JPEG images. P-frames and B-frames have different noise statistics and lower PRNU content.
The practical approach is to extract I-frames from the video and treat them as natural images for both reference estimation and query testing. Consecutive I-frames at typical video bit rates still contain enough PRNU signal for attribution, but the effective JPEG quality equivalent is often in the 70-85 range, meaning more frames are needed than photographs at the same nominal resolution. Studies by Taspinar et al. and others have confirmed that PRNU attribution from video I-frames is feasible with 200-500 frames and that the PCE distributions for true and false matches retain the same structure as still-image attribution.
Why are multiple images from a camera averaged during reference pattern estimation rather than using a single image?
Test yourself on Forensic Audio, Video and Image Analysis with free, timed mocks.
Practice Forensic Audio, Video and Image Analysis questionsSpotted an error in this page? Report a correction or read our editorial standards.