PSNR, or peak signal-to-noise ratio, is an objective full-reference metric that expresses how much a processed image or video frame differs from its original, as a ratio of the maximum possible pixel value to the mean squared error between the two, on a logarithmic decibel scale. Higher values mean the output is closer to the reference.
In video quality work, PSNR is the oldest and most widely reported measure for codec development and encoder tuning. It is fast, simple and fully reproducible, but it measures numerical fidelity rather than perceived quality, which is why it is now usually reported alongside SSIM and VMAF.
How PSNR is calculated
PSNR is calculated from the mean squared error (MSE) between the reference and the distorted frame. MSE is the average of the squared differences of every corresponding pixel value, and PSNR equals 10 times the base-10 logarithm of MAX squared divided by MSE, where MAX is the largest value a sample can take.
For 8-bit video MAX is 255, and for 10-bit video it is 1023. When the two frames are identical, MSE is zero and PSNR is mathematically infinite, so tools either report a capped value such as 100 dB or flag the frame as lossless. Because the scale is logarithmic, halving the MSE adds about 3 dB.
Video PSNR is normally computed per plane and per frame. Encoders report separate values for Y (luma), Cb and Cr, and many also give a weighted combination, commonly 6:1:1 for luma and the two chroma planes. A sequence score is then derived from the frame scores.
| Method | How it is computed | Behavior |
|---|---|---|
| Average of frame PSNR | Mean of per-frame dB values | Can hide short severe drops |
| Global (overall) PSNR | PSNR of the MSE averaged over all frames | Penalizes bad frames more strongly |
| Minimum frame PSNR | Lowest single-frame value | Exposes worst-case quality |
| Percentile PSNR | For example, the 5th percentile of frames | Robust view of poor segments |
Typical PSNR values and what they indicate
PSNR values are only meaningful relative to the same content and setup, but practitioners use rough bands for 8-bit lossy video. The ranges below are general guidance, not thresholds from any standard.
| Luma PSNR | Typical interpretation | Common context |
|---|---|---|
| Above 45 dB | Differences rarely visible | High-bitrate mezzanine and contribution |
| 40-45 dB | Very good, near transparent for most content | Premium streaming at the top rungs |
| 35-40 dB | Good, artifacts visible on close inspection | Typical streaming and broadcast |
| 30-35 dB | Fair, artifacts visible in motion and detail | Low-bitrate mobile renditions |
| Below 30 dB | Poor, obvious blocking and blur | Heavily constrained bitrates |
Differences between encodes matter more than absolute values. A gain of 0.5 dB at the same bitrate is significant in codec research, and BD-rate calculations convert PSNR curves into the percentage of bitrate saved for equal quality.
PSNR compared with SSIM and VMAF
PSNR differs from its neighbors in the Topic because it treats every pixel error equally, regardless of where it occurs or whether the eye can see it. SSIM models structural similarity in luminance, contrast and structure, and VMAF fuses several features with a machine learning model trained on viewer scores.
| Metric | What it measures | Scale | Correlation with viewers |
|---|---|---|---|
| PSNR | Pixel-level squared error | Decibels, unbounded | Moderate, content dependent |
| SSIM | Structural and contrast similarity | 0 to 1 | Better than PSNR on many distortions |
| MS-SSIM | SSIM across several scales | 0 to 1 | Better at varied viewing distances |
| VMAF | Fused perceptual features | 0 to 100 | Highest for typical streaming content |
The practical consequence is that PSNR remains the standard for comparing codecs on fixed test sets, where its mathematical transparency matters, while perceptual metrics guide product decisions about bitrate ladders and viewer experience.
Limitations and common misuse of PSNR
The central weakness of PSNR is that equal error energy does not mean equal visibility. Noise in a dark, flat sky is far more noticeable than the same error in grass texture, and PSNR scores both identically.
- Misalignment ruins the score: a one-frame offset or a shift of one pixel produces very low PSNR for a visually perfect copy.
- Blur can score well: smoothing removes high-frequency detail with modest squared error, so PSNR may favor soft encodes over sharp ones.
- Encoder tuning can game it: modes optimized for PSNR disable psycho-visual tools such as adaptive quantization, which often reduces perceived quality.
- Cross-content comparisons mislead: a cartoon and a grainy film at the same PSNR do not look equally good.
- Scaling and color conversion add error: references must match resolution, bit depth and chroma format exactly.
A sound methodology fixes these issues: align the frames precisely, compare at the reference resolution, report luma and chroma separately, and pair PSNR with a perceptual metric before drawing conclusions about how a video will look.
Where PSNR is used in video workflows
PSNR is used wherever engineers need a fast, deterministic fidelity check. Standardization groups use it in common test conditions for codecs such as HEVC, VVC and AV1, and encoder vendors use it in regression testing to detect unintended quality changes between software builds.
Operations teams also use it as a sanity check for transcoding pipelines: a sudden drop of several decibels between releases flags a bug long before a viewer complains. In these roles its lack of perceptual modeling is acceptable, because the question is whether output changed, not how good it looks.
Stripped to the essentials
PSNR compares a compressed video with the original pixel by pixel and turns the total difference into one number in decibels. A higher number means fewer differences.
It works like grading a copy of a drawing by measuring how far every line strays from the original. That is fair and repeatable, but it does not know which mistakes people actually notice, so a score that looks good on paper can still look worse to a viewer.
Where it is applied
An encoding engineer at a streaming service tests a new encoder build before rollout. She encodes 20 reference clips at four bitrates with the old and new builds and computes global luma PSNR and VMAF for every output against the 10-bit masters.
One sports clip shows a drop from 38.9 dB to 36.2 dB at 3 Mbps, while the other clips change by less than 0.1 dB. Frame-level analysis reveals that a rate control change starves fast pans of bits. The build is held back, the bug is fixed, and the regression never reaches viewers. VMAF confirms the drop was visible, which makes the PSNR alarm actionable.