Back

Blog details

VMAF Explained: How Perceived Video Quality Is Measured

AIOZ Network
7 min readAugust 27, 2026
aioz-streamguide

PSNR is the metric everyone learns first, and the one working streaming engineers mostly stopped trusting. It compares pixels mathematically and correlates with what a human actually sees only loosely, somewhere around 0.6 to 0.7 on a 0-to-1 scale in Netflix's own validation testing. VMAF was built to fix that gap, and it now shows up directly inside AIOZ Stream's own quality-of-experience formula, not just in Netflix's encoding pipeline.

TL;DR:

  • VMAF (Video Multi-Method Assessment Fusion) fuses several distinct picture-quality features into one 0-100 score using a machine-learning model trained on real human viewers, not a fixed math formula.
  • It correlates with human judgment far better than PSNR or plain SSIM, around 0.93-0.96 versus roughly 0.6-0.7, per Netflix's own published validation.
  • There is no single VMAF model. A 1080p score assumes a specific viewing distance, a 4K TV uses a different model, and a phone screen uses a different one still, so a raw number is meaningless without knowing which model produced it.
  • VMAF can be fooled by sharpening and other enhancement filters, which is exactly why Netflix built a separate "No Enhancement Gain" mode for fair codec comparisons.
  • AIOZ Stream's own documented QoE composite model uses VMAF directly as its perceived-quality term, calling it "not mandatory" but the best available proxy for what a viewer actually sees.

Why PSNR and SSIM fall short

PSNR measures the mathematical difference between a compressed frame and its source, pixel by pixel. That's a fine engineering signal for some purposes, but it doesn't know that a small amount of blur in a busy, high-motion scene is nearly invisible to a viewer while the same numeric error in a static closeup on skin tone is glaring. SSIM improved on this by comparing local structure and contrast instead of raw pixel values, and it's a real step up, but it still isn't trained on what people actually report seeing, it's still a mathematical proxy for perception rather than a measurement of it. Netflix's own published validation puts PSNR's correlation with human subjective scores at roughly 0.6 to 0.7, which is usable for rough comparisons but not reliable enough to make a real per-title encoding decision on.

Video quality comparison on a monitor representing perceptual video quality measurement

What actually goes into a VMAF score

VMAF doesn't invent a new way of comparing pixels; it combines several existing ones and lets a trained model decide how much weight each deserves. The elementary features feeding in include VIF (Visual Information Fidelity, computed at four different spatial scales), ADM (Detail Loss Metric, which separates loss of detail from added noise), and a temporal feature that tracks frame-to-frame motion. Those features get fed into a regression model, originally a support vector machine with a radial basis kernel, more recently a random-forest variant in Netflix's newer bootstrap models, that was trained against real subjective scores. Netflix's own lab collected those scores by showing viewers clips on a calibrated 1080p display at a fixed viewing distance and having them rate quality directly, the same kind of panel testing broadcast standards bodies have used for decades. The model then learns the mapping from "these feature values" to "how a real panel of people actually rated this," which is the part PSNR and SSIM never do.

Reading the 0-100 scale correctly

The output is a single number from 0 to 100, where 100 means the encode is perceptually indistinguishable from its reference and 0 means it looks nothing like it. The scale is built to line up with a five-point subjective rating panel, "bad, poor, fair, good, excellent," with "bad" mapped to roughly 20 and "excellent" to 100. Streaming Learning Center's own best-practices testing found a score around 70 lands between a "good" and "fair" vote under the standard 1080p viewing condition, and scores in the mid-90s land solidly in "excellent." Common encoding guidance built on that same scale treats 90-95 as excellent for a large screen, 80-89 as good enough for social or fast-moving content, 70-79 as acceptable under real bandwidth constraints, and anything below 70 as noticeably degraded, though none of that is an official Netflix cutoff, it's downstream engineering practice built on top of the score.

The practical use of those bands shows up most directly in per-title encoding: picking the top rung of a bitrate ladder. Rather than encoding every title at the same fixed top-rate bitrate, an encoder can search for the lowest bitrate that still clears a target VMAF score, commonly somewhere in the 93-95 range for the highest rendition, and stop there instead of spending bits the metric says aren't buying any visible improvement. A slow-moving talking-head video might clear that target at a noticeably lower bitrate than a fast-motion sports clip, and a fixed one-size-fits-all top rate either wastes bandwidth on the easy content or shortchanges the hard content. That's the actual economic reason this metric matters beyond a QA checkbox: it turns "what bitrate is good enough" from a guess into a measurable target.

Why the model you use matters

A VMAF score isn't portable between viewing conditions the way a resolution or bitrate number is. Netflix's own model documentation ships a default model built around 1080p viewed at three times the screen height, a separate 4K model built around a much closer 1.5x-screen-height viewing distance, and a phone-specific model, because the same distorted video is perceived as higher quality on a small screen held close than on a large TV. Comparing a 4K-model score against a 1080p-model score, or quoting a bare number without saying which model produced it, isn't a small omission, it changes what the number actually means. In practice this trips up exactly the teams who should know better: a QA pipeline that runs the default 1080p model against 4K masters, or benchmarks a mobile-first product against the TV-viewing model, will report quality problems that don't exist for the audience actually watching, or miss real ones that do. The fix isn't complicated, just consistent, pick the model that matches the actual target screen and viewing distance for the content in question, and record which model produced a given score anywhere the number gets reported or compared later.

What VMAF gets wrong

Two limitations are worth taking seriously rather than glossing over. First, VMAF scores aren't comparable across different source content, only between different encodes of the same source. Netflix's own writing on the metric gives a clean example: a stream generated from a standard-definition source scoring 99 out of 100 doesn't mean it looks as good as an HD source scoring 99, both are near-perfect reproductions of very different starting points, not equally good pictures. Second, VMAF can be gamed, intentionally or not, by enhancement filters. A sharpening pass can push a VMAF score up without making the video genuinely closer to a clean, high-quality source, since sharpening changes exactly the kind of detail-edge information VMAF's ADM feature is sensitive to. Netflix built a "No Enhancement Gain" (NEG) variant specifically to strip that effect out for codec-versus-codec comparisons, where you want to know how well a compression algorithm performs, not how much a pre-processing filter flattered it.

Where VMAF shows up on AIOZ Stream

This isn't purely academic for anyone building on AIOZ Stream specifically. The platform's own documented quality-of-experience model expresses QoE as perceived quality, measured via VMAF, minus a rebuffer penalty and a startup penalty, plus a stability term for how often the player switches renditions, with a stated target of "high and steady rather than chasing the maximum." AIOZ Stream's docs are explicit that VMAF isn't a mandatory input, a team can run the platform without ever computing it, but they frame it as the best available proxy for what a viewer's eyes actually register, which matches how the wider industry treats it. The QoE article covers the full six-metric formula and its startup/rebuffer targets in depth; this one is about the single term inside it that does the heaviest lifting on picture quality specifically.

Frequently Asked Questions

Is a higher VMAF score always better?
Within the same source and same viewing model, yes. Across different sources or different VMAF models (1080p vs 4K vs phone), scores aren't directly comparable, so a higher number in a different context doesn't mean better quality.

What VMAF score should I target for a top-quality encode?
Industry encoding guidance built on Netflix's scale generally treats 90-95 as excellent and anything above 95 as visually transparent for most viewers, though this is downstream practice, not an official Netflix threshold, and depends on which VMAF model is used.

Can VMAF be fooled by sharpening filters?
Yes. Sharpening can raise a VMAF score without a genuine quality improvement, which is why Netflix built the No Enhancement Gain (NEG) model variant specifically for fair codec comparisons.

Is VMAF the same as PSNR or SSIM?
No. PSNR and SSIM are mathematical comparisons between two images. VMAF fuses several such features (including VIF and ADM) through a model trained on real human subjective ratings, which is why it correlates with perceived quality far better.

Does AIOZ Stream require VMAF to be computed?
No. AIOZ Stream's own documentation describes VMAF as "not mandatory" within its QoE composite model, while still treating it as the primary picture-quality proxy when it is available.

Why does the viewing distance matter for a VMAF score?
Because the same encode looks different at different viewing distances and screen sizes. Netflix ships separate models tuned for 1080p television viewing, 4K television viewing, and phone screens for exactly this reason.

References

We only send updates when meaningful changes ship, and you can unsubscribe anytime

Related Content

blog thumbnail

Best OBS Encoder Settings for 1080p and 720p (AIOZ Stream)

Choose OBS encoder settings for AIOZ Stream: the documented 1080p30 values, the missing 720p figure, NVENC vs x264, keyframes, 60 fps and a test procedure.

aioz-streamguide
6 min readOctober 16, 2026
blog thumbnail

OBS Studio Setup Guide for AIOZ Stream: RTMP, Scenes and Output Settings

Set up OBS Studio for AIOZ Stream: build a scene, connect with a Custom RTMP service and stream key, enter the documented output settings, and confirm the stream is live.

aioz-streamguide
6 min readOctober 13, 2026
blog thumbnail

How to Start a Livestream on AIOZ Stream: OBS and Mobile Setup

Seven steps to go live on AIOZ Stream with OBS or PRISM: stream key, session form, RTMP credentials, bandwidth math, and the first two minutes after you start.

aioz-streamguide
6 min readOctober 09, 2026
blog thumbnail

Live Streaming on AIOZ Stream: The Complete Guide

How live streaming on AIOZ Stream works: stream keys, sessions and saved media, OBS and PRISM setup over RTMP, restreaming, statistics, archiving, and what the docs leave out.

aioz-streamguide
7 min readOctober 06, 2026
blog thumbnail

What Is a Web3 Streaming Platform?

What separates a real web3 streaming platform from marketing language, and how AIOZ Stream's DePIN network, on-chain payments and W2E rewards measure up.

aioz-streamguide
6 min readOctober 02, 2026
blog thumbnail

Accessibility in Video Streaming: What WCAG Actually Requires

WCAG's five real video accessibility rules, why auto-captions usually fail them, what AIOZ Stream actually supports, and how the 2026 ADA deadline changes affect compliance.

aioz-streamguide
6 min readSeptember 29, 2026