VMAF Explained: What the 0-100 Score Really Measures
Date Published
TL;DR >- VMAF (Video Multimethod Assessment Fusion) is Netflix's open-source, Emmy-winning quality metric, released in 2016, that fuses several sub-metrics into one 0-to-100 score (Netflix/vmaf GitHub).- It combines a visual information fidelity feature (VIF), a detail loss metric (DLM/ADM), and a temporal motion feature using SVM regression trained on human scores (Netflix Tech Blog).- Sharpening or contrast boosts can inflate VMAF without improving real quality, which is why VMAF-NEG (No Enhancement Gain) exists (Streaming Learning Center).- VMAF v1 (June 2026) adds banding (CAMBI) and color features, bounds the motion feature, and makes NEG the default; v0 and v1 scores are not interchangeable (Netflix Tech Blog).- On a single still image VMAF's motion feature is always 0, so it runs but is off-label for stills (Netflix/vmaf issue #1229).
VMAF has quietly become the number vendors quote when they claim their compression "looks the same." That makes it worth understanding precisely, because a metric you cannot interrogate is a metric you can be sold. VMAF is genuinely good, and it is also gameable, video-trained, and often quoted out of the context it was built for.
This post explains what VMAF fuses, what a score of 90 or 95 actually implies, how sharpening can inflate it, and what the June 2026 v1 release changed. It also gives the honest answer to the question martech teams keep asking: can I use VMAF on still images? For the wider map of quality metrics, see our complete guide to image compression. Here we settle VMAF.
What VMAF actually measures
VMAF is a fusion metric: it runs several established quality sub-metrics, then combines their outputs with a trained model into one score. Netflix open-sourced it in 2016, and it later won an Engineering Emmy (Netflix/vmaf GitHub). The original v0.6.x models fuse a multi-scale visual information fidelity feature (VIF), a detail loss metric (DLM, also called ADM), and a temporal motion feature, combined by support vector machine (SVM) regression (Netflix Tech Blog).
The design idea is that no single metric captures human judgment well, but a learned blend of complementary ones does better. VIF measures how much image information survives compression. The detail loss metric focuses on lost texture and structure. The motion feature captures temporal masking, the fact that the eye forgives more error in fast-moving content. The SVM learns how to weigh these against real human ratings.
That "trained on humans" part is the source of both its strength and its limits. The SVM is fit to subjective DMOS (differential mean opinion scores) gathered from human panels on Netflix's proprietary NFLX dataset, and the exact training sets are undisclosed (Wikipedia, VMAF). So VMAF is a model of a specific population's judgments on specific content, not a law of physics. That distinction runs through everything below.
VIF, detail loss, and motion features feed an SVM whose per-frame 0-100 score is pooled by arithmetic mean to approximate DMOS (Netflix Tech Blog).
What does a VMAF score of 90 or 95 mean?
A VMAF score sits on a 0-to-100 scale where roughly 100 means visually identical to the reference, and it is computed per frame then pooled over time. Each frame gets a 0-to-100 score, with 100 meaning the frame is essentially indistinguishable from the source, and the per-frame scores are pooled (by arithmetic mean) to approximate DMOS for the whole clip (Wikipedia, VMAF). Higher is better; the scale is anchored to human opinion, not to any absolute error.
The honest caveat is what the number does not precisely mean. It is tempting to translate points into perceptual steps, "so many points equals one just-noticeable difference," but there is no solid primary source for those conversions, so we will not repeat them. Treat VMAF as an ordinal, well-calibrated quality estimate, useful for comparing encodes, not as a ruler with certified perceptual units. For where perceptual steps are defined, see just-noticeable difference in image quality.
The score also depends on which model you run. VMAF ships several: a default 1080p model, a phone or cellular model added in 2017, and a 4K model from 2018 with viewing-distance variants (Wikipedia, VMAF). The same video can score differently under each, because each encodes an assumption about screen size and viewing distance. A quoted VMAF number without its model is under-specified, which is exactly the kind of missing context that makes a quality of 95 mean nothing on its own.
Citation capsule: VMAF produces a per-frame 0-to-100 score, where about 100 means visually identical to the reference, then pools frames by arithmetic mean to approximate DMOS (Wikipedia, VMAF). It ships multiple models (1080p default, phone, 4K), so a score is only interpretable alongside the model that produced it.
Can VMAF be gamed? Sharpening, contrast, and VMAF-NEG
Yes, and Netflix says so directly. Applying sharpening, contrast, or histogram equalization can raise VMAF without improving, and sometimes while degrading, actual subjective quality (Streaming Learning Center). The metric rewards apparent detail and contrast, so an encoder or filter that adds artificial crispness can inflate the number.
This matters commercially. If a vendor tunes its pipeline to maximize VMAF, it may be optimizing for the metric rather than for your viewers, a classic case of a measure becoming a target and ceasing to be a good measure. A processed frame that looks punchier can beat a faithful one on VMAF while being further from the source. For a buyer comparing "our VMAF is 96" claims, this is the single most important thing to know.
Netflix's fix is VMAF-NEG (No Enhancement Gain), a variant that detects and subtracts the inflation from enhancement operations, and Netflix recommends it specifically for encoder comparisons (Streaming Learning Center). When we evaluate vendor quality claims, the first question we ask is whether a quoted VMAF used NEG. If the answer is no, or "we're not sure," the number tells you how sharp the output looks, not how faithful it is, and those are different things. Fidelity is the property that survives adversarial tuning; apparent sharpness is not.
What changed in VMAF v1 (June 2026)?
VMAF v1, released in June 2026, is a substantial redesign, not a point update, and its scores are not comparable to the old v0 numbers. It adds a banding feature based on CAMBI, adds a color and chroma feature (a modified SpEED-QA), bounds the temporal motion feature, and makes NEG the default behavior; crucially, v0 and v1 scores are not interchangeable (Netflix Tech Blog).
Each change closes a known blind spot. The CAMBI banding feature catches the smooth-gradient banding that older VMAF missed, a real problem on skies and shadows. The color feature addresses the fact that v0 was heavily luma-focused and could overlook chroma degradation. Bounding the motion feature limits one of the terms most exploited for inflation, and defaulting to NEG bakes the anti-gaming stance into normal use rather than leaving it opt-in.
The practical warning is the non-interchangeability. Because most published explainers and many internal dashboards still describe v0.6.1, a team upgrading to v1 cannot compare new scores against old thresholds, a "VMAF 93" target set under v0 does not carry over. Any historical VMAF baseline has to be re-established under v1 before the numbers mean anything again.
Aspect | VMAF v0 (0.6.x) | VMAF v1 (June 2026) |
|---|---|---|
Core features | VIF, detail loss (DLM), motion | VIF, detail loss, bounded motion |
Banding | Not modeled | CAMBI banding feature added |
Color / chroma | Largely luma-focused | Color feature (modified SpEED-QA) added |
Enhancement gaming | NEG optional variant | NEG on by default |
Score compatibility | Baseline | Not interchangeable with v0 |
Sources: Netflix Tech Blog; Streaming Learning Center.
VIF, detail loss, and motion appear in both versions; v1 adds banding (CAMBI), color, and NEG by default (Netflix Tech Blog).
Can you use VMAF on still images?
You can run it, but it is off-label, and the reason is specific: VMAF's motion feature compares a frame to its neighbor, and on the first or only frame there is no neighbor, so the motion feature is always 0 (Netflix's own issue #1229) (Netflix/vmaf issue #1229). On a single still you are relying on the spatial features alone, with one of the fused inputs zeroed out.
The nuance is that this is not fatal, just partial. The spatial features VMAF uses, VIF and the detail loss metric, are legitimate image-quality measures in their own right, so a single-frame VMAF is not noise. But two problems remain. First, the SVM that fuses them was trained on video DMOS, not image DMOS, so its weighting is tuned for a viewing situation that a static photo does not match. Second, with motion pinned at 0, the model is operating outside the input distribution it learned on.
The right framing is that VMAF on stills is directionally useful, not authoritative. It will usually move the right way when quality genuinely changes, but it is not a substitute for image-specific metrics built and validated on still images, such as SSIM, Butteraugli, or SSIMULACRA2. If you need to certify still-image quality, use a still-image metric and treat VMAF as a cross-check at most. We go deeper on the purpose-built options in Butteraugli and SSIMULACRA2 perceptual metrics, and on the broader triangulation argument in PSNR vs SSIM vs looks-good-to-humans.
VMAF versus PSNR, SSIM, and image-specific metrics
VMAF usually correlates with human opinion better than PSNR or SSIM, because it is trained directly on human scores rather than on pixel error or structural similarity alone (Netflix Tech Blog). For video encoding decisions, that better correlation is why VMAF drives real bitrate savings: per-shot encoding tuned to VMAF saves roughly 10 to 15% additional bitrate over per-title at equal quality (arXiv:2310.15163).
But "correlates better" is not "is ground truth." VMAF is a model fit to a particular dataset, and it can be gamed, is video-trained, and depends on the chosen model and version. PSNR and SSIM are simpler and more transparent, and precisely because they measure different things, pixel error and structural similarity, they remain useful as independent cross-checks. The mature practice is triangulation: no single number decides, because each metric fails differently, an argument we make in full in measuring quality the way humans see it.
For still images specifically, the ordering shifts. Because VMAF's motion feature zeros out and its training is video-based, purpose-built still-image metrics deserve more weight there, while VMAF drops to a cross-check. At Inverity, we run multiple metrics per asset rather than trusting one, because a quality claim that rests on a single gameable number is closer to an advertisement than a measurement. That principle, verify rather than assert, is why we treat any lone VMAF figure as a starting point, not a verdict.
FAQ
What does a VMAF score of 90 or 95 mean?
It means the encode is close to the reference on VMAF's 0-to-100 scale, where about 100 is visually identical, scored per frame and pooled by mean (Wikipedia, VMAF). Higher is better, but the number depends on the model (1080p, phone, or 4K) and on the VMAF version, so a score is only meaningful with that context.
Can VMAF be gamed, and what is VMAF-NEG?
Yes. Sharpening, contrast, or histogram equalization can raise VMAF without improving real quality (Streaming Learning Center). VMAF-NEG (No Enhancement Gain) detects and subtracts that inflation and is recommended for encoder comparisons. Always ask whether a quoted VMAF used NEG; without it, the number can reflect sharpening rather than fidelity.
Can I use VMAF on still images?
You can run it, but it is off-label. On a single frame the motion feature is always 0, so you rely on spatial features only, and the model was trained on video, not image, opinion scores (Netflix/vmaf issue #1229). It is directionally useful but not a substitute for still-image metrics like SSIM or Butteraugli.
What changed in VMAF v1 versus v0.6.1?
VMAF v1 (June 2026) adds a CAMBI banding feature and a color feature, bounds the motion feature, and makes NEG the default; v0 and v1 scores are not interchangeable (Netflix Tech Blog). Teams must re-establish any historical VMAF thresholds under v1, since old targets set under v0 no longer apply.
Is VMAF better than PSNR or SSIM?
Usually it correlates with human opinion better, because it is trained on human DMOS rather than pixel error alone (Netflix Tech Blog). But it is a model, not ground truth, and it can be gamed. Best practice is to triangulate VMAF with PSNR and SSIM rather than trust any single metric.
Read the number, then read past it
VMAF earned its place. Fusing complementary sub-metrics and training the blend on human ratings gives it better correlation with real opinion than PSNR or SSIM, and it drives measurable encoding gains. That is why it became the industry's favorite quality number. It is also why it is worth scrutinizing.
The honest posture is to use VMAF and to know its edges: it can be inflated by sharpening unless you use NEG, it depends on the model and now the version, v0 and v1 are not comparable, and on a single still image its motion feature simply reads 0. Treat it as one well-built estimate among several, not as ground truth. If a vendor hands you a lone VMAF score, ask which model, which version, and whether it used NEG, then verify it against a metric built for your content. For the still-image tools that job actually calls for, continue with Butteraugli and SSIMULACRA2 perceptual metrics.