Содержание статьи +
- TL;DR
- Почему это важно
- Что вообще такое «качество видео»
- PSNR – самая простая и самая старая
- SSIM – измеряем структуру, а не пиксели
- MS-SSIM – многомасштабное расширение
- VMAF – эра машинного обучения
- Считаем все четыре метрики во FFmpeg
- Когда какая метрика подводит – таблица для прода
- Применяем метрики на практике – BD-rate
- CAMBI, HDR-VMAF и куда движется индустрия
- Типичные ошибки
- Где здесь Фора Софт
- Ключевые тезисы
- Что почитать дальше
- Источники
TL;DR
Объективная метрика качества видео – это число, которое выдаёт алгоритм (а не человек), чтобы предсказать, насколько хорошо реальный зритель оценил бы картинку. Четыре метрики, которые в 2026 году решают почти все вопросы о видеосервисе, – это PSNR (peak signal-to-noise ratio), SSIM (structural similarity), MS-SSIM (его многомасштабное расширение) и VMAF (Video Multimethod Assessment Fusion от Netflix). Они намеренно не согласны друг с другом: PSNR измеряет попиксельную ошибку, SSIM – структурное сходство в том ключе, как видит глаз, а VMAF – это модель машинного обучения, обученная на тысячах человеческих оценок. Если выбрать неправильную, можно отгрузить видео, которое математика считает идеальным, а зритель – сломанным; если выбрать правильную комбинацию, вы сэкономите трафик, выиграете спор о битрейтной лестнице и будете точно знать, насколько хорош ваш энкодер.
Почему это важно
Если вы принимаете решение, как именно отгружать видео – стоит ли тратить больше CPU на кодирование, чтобы сэкономить трафик; добавлять ли новый кодек в стек; нормально ли выглядит ваш live-стрим на телефоне; реально ли работает свежий пайплайн сжатия, который вы только что включили, – вам нужно число, которому можно доверять. Субъективное тестирование, когда тридцать человек в комнате оценивают клипы, – это эталон, но оно медленное и дорогое: типичное лабораторное исследование стоит пятизначных денег и занимает недели. Объективные метрики дают вам быстрый, дешёвый и повторяемый прокси для этого человеческого суждения и позволяют энкодеру за час поднимать и опускать битрейт сотню раз, чтобы найти самую дешёвую настройку, при которой картинка всё ещё хороша. Ошибка в метрике – и энкодер оптимизирует не то: видео, которое выглядит резче, но фактически хуже, или которое выглядит ровнее, но при этом меньше по размеру, а зрители его всё равно ненавидят.
Эта статья – для продакт-менеджера, основателя, инженерного руководителя или operations lead, которому нужно читать цифры на дашборде энкодера, понимать отчёты по сравнению кодеков и спорить с вендором о том, какую конфигурацию выкатывать в прод. Мы начнём с того, что вообще такое «качество» с точки зрения человеческого глаза, разберём четыре стандартные метрики простым языком – с математикой, выписанной целиком при первом упоминании, – и закончим практическими правилами, по которым на стороне выбирают, какой метрике доверять в какой ситуации.
Что вообще такое «качество видео»
Слово качество в этой статье означает ровно одно: насколько хорошо реальный человек-зритель оценивает картинку. Не насколько математически близка она к оригиналу, не сколько бит ушло на её кодирование и не насколько умный использован кодек. Только: заметил ли зритель сжатие, и помешало ли оно ему смотреть.
Эталонный способ это измерить – провести субъективный тест: поставить оригинал рядом со сжатой копией, показать обе панели тренированных или нетренированных зрителей, попросить каждого оценить качество по пятибалльной шкале (5 = отлично, 4 = хорошо, 3 = удовлетворительно, 2 = плохо, 1 = очень плохо) и усреднить оценки. Среднее называется Mean Opinion Score, или MOS. Процедура стандартизирована Международным союзом электросвязи (ITU) в рекомендации ITU-T P.910, которая в редакции 2023 года вобрала в себя и прежнюю P.913 для современных устройств вроде смартфонов и планшетов. 1 Серьёзная лаборатория наберёт минимум 24 зрителя, откалибрует мониторы, выставит освещение комнаты и рандомизирует порядок клипов; всё, что меньше, индустрия считает несерьёзным.
Проблема в том, что субъективное тестирование плохо масштабируется. Типичный прогон энкодера выдаёт десять-двадцать уровней качества на клип, у стримингового сервиса каталог из миллионов клипов – никто не будет сажать тридцать человек в комнату на каждый энкод. Поэтому индустрия построила объективные метрики – алгоритмы, которые смотрят на исходный кадр и на сжатый кадр и выдают одно число, – пытающиеся предсказать, какой получился бы MOS, если бы лабораторный тест действительно провели. Хорошая объективная метрика на тысячах тестовых клипов сильно коррелирует с MOS; плохая – слабо. Вся игра в дизайне метрик: как заставить машину оценивать видео так, как это сделал бы человек.
В 2026 году в ходу три поколения объективных метрик. Они выстраивались друг над другом, и каждое следующее было реакцией на провалы предыдущего.
Семейство попиксельной ошибки – самый известный представитель – PSNR – смотрит, насколько каждый пиксель в сжатом кадре отстоит от того же пикселя в оригинале, усредняет ошибки и выдаёт число. Это быстро, просто и хорошо изучено математически. Это также неправильно в важных местах, потому что глаз человека не оценивает попиксельную ошибку так, как это делает математика.
Семейство структурного сходства – SSIM и его потомки – было ответом. Оно оценивает не сырое попиксельное расхождение, а разницу в локальной структуре: яркостные паттерны, контраст, рёбра. SSIM представили Чжоу Ван (Wang) и Алан Бовик (Bovik) в 2004 году, MS-SSIM (многомасштабное расширение) – годом раньше, в 2003-м, и это семейство до сих пор остаётся рабочей лошадкой каждой кодек-статьи. 2
Семейство перцептивно-обученных метрик – самый известный представитель – VMAF – пошло другим путём. Вместо того чтобы проектировать формулу руками, оно обучает модель машинного обучения на тысячах субъективно оценённых клипов и позволяет модели самой нащупать правильную комбинацию низкоуровневых признаков. Netflix выложил VMAF в open source в 2016 году, и он стал де-факто стандартом для сравнения кодеков и оптимизации битрейтных лестниц. 3
PSNR – самая простая и самая старая
PSNR, или peak signal-to-noise ratio (пиковое отношение сигнал/шум), – это метрика, которую каждый видеоинженер изучает первой и которую с 1980-х приводит каждая статья. Само название всё объясняет: пиковый сигнал разделить на шум, в децибелах. «Пиковый сигнал» – это максимально возможное значение пикселя (255 для 8-битного видео, 1023 для 10-битного, 4095 для 12-битного), а «шум» – это среднее попиксельное расхождение между исходным и сжатым кадром.
Арифметика делится на два шага. Сначала вы вычисляете среднеквадратичную ошибку, или MSE (mean squared error), между двумя кадрами: для каждого пикселя берёте разность, возводите в квадрат и усредняете по всему кадру. Затем подставляете MSE в логарифмическую формулу и называете результат PSNR.
MSE = (1 / N) × Σ (исходный_пиксель − сжатый_пиксель)²
PSNR = 10 × log₁₀ ( MAX² / MSE )где N – число пикселей в кадре, а MAX – максимальное значение пикселя (255 для 8-битного видео). PSNR измеряется в децибелах (dB), больше – лучше. Значения 30–50 dB – нормальный диапазон для сжатия с потерями; ниже 30 – картинка начинает заметно отличаться от оригинала; выше 45 – большинство зрителей при разумной дистанции просмотра уже не отличают сжатую копию от исходника. 4
Проговорим первый раз пример вслух, чтобы он осел. Допустим, ваш референсный и сжатый кадры – это 1920 × 1080 = 2 073 600 пикселей. Энкодер внёс в среднем небольшую попиксельную ошибку в 5 (по шкале 0–255). Тогда:
MSE = 5² = 25
PSNR = 10 × log₁₀ ( 255² / 25 )
= 10 × log₁₀ ( 65025 / 25 )
= 10 × log₁₀ ( 2601 )
= 10 × 3.415
≈ 34.2 dBPSNR в 34,2 dB лежит в диапазоне «хорошо, но не прозрачно». Если уменьшить ошибку вдвое – до 2,5 на пиксель, – PSNR вырастет примерно на 6 dB и составит около 40,2 dB, что большинство зрителей на телевизоре уже не отличит от исходника. Каждое удвоение MSE стоит около 3 dB; каждое удвоение пиксельной ошибки – около 6 dB. Запомните это правило, и большинство PSNR-значений будут моментально становиться понятны.
Два главных плюса PSNR – скорость и универсальность. Метрика считается в реальном времени на любом ноутбуке, её сообщает каждый энкодер, и за последние сорок лет её приводил каждый paper, так что PSNR – это lingua franca для исторических разговоров о кодеках.
Большая беда в том, что PSNR – не перцептивный. Глаз человека не одинаково внимателен к каждому пикселю. Мы прощаем огромные ошибки в плоских участках кадра, где не на что смотреть, и крайне чувствительны к мелким ошибкам у резких рёбер, лиц и текста. PSNR усредняет всё подряд и выдаёт одно число – поэтому кодек, который размазал лицо, но сохранил небо, может получить тот же PSNR, что и кодек, оставивший лицо чётким, но добавивший немного шума везде. Для математики эти два сжатия идентичны; для зрителя одно из них непригодно к показу. Хуже того, PSNR печально известен плохой оценкой размытия: сильно заблюренная копия исходника может получить высокий PSNR и при этом выглядеть очевидно деградировавшей. 5
Именно эта слабость и подтолкнула индустрию к семейству структурного сходства.
SSIM – измеряем структуру, а не пиксели
SSIM, или structural similarity (структурное сходство), представили Чжоу Ван (Wang) и Алан Бовик (Bovik) из Техасского университета в Остине в их знаковой статье 2004 года в IEEE Transactions on Image Processing – Image Quality Assessment: From Error Visibility to Structural Similarity. 2 У статьи более 50 000 цитирований – одна из самых цитируемых работ во всей обработке изображений – и она получила премию за лучшую статью IEEE Signal Processing Society. Любая метрика качества с тех пор – в каком-то смысле сноска к этой статье.
Идея та, что мы уже намекнули: зрительная система человека – это не детектор попиксельной ошибки, это детектор структуры. Вы смотрите на лицо и не измеряете цвет каждого отдельного волоска; вы воспринимаете пространственный узор света и тени, который сообщает мозгу: «это лицо». Две картинки с одинаковой пиксельной ошибкой могут выглядеть очень по-разному, если одна из них сохраняет этот пространственный узор, а другая ломает. Поэтому вместо того чтобы усреднять попиксельное расхождение, SSIM сравнивает изображения по трём перцептивным осям, перемножает результат и выдаёт число.
Три оси – это luminance (яркость), contrast (контраст) и structure (структура). Luminance – это средняя яркость небольшого участка: вы берёте окно 11 × 11 пикселей, усредняете их и сравниваете среднее у исходника со средним у сжатого. Contrast – это разброс яркости внутри того же окна: высокий в сложных регионах кадра, низкий в плоских. Structure – это пространственный паттерн светлого и тёмного внутри окна с уже вычтенным средним и нормированным разбросом, то есть тот самый признак, по которому глаз понимает «это волосы, это глаз, это нос». Каждая ось даёт оценку сходства от 0 (никак не похожи) до 1 (идентичны), и три оси перемножаются – это SSIM-индекс для одного окна. Окна скользят по всему кадру, и среднее – это SSIM-оценка кадра.
SSIM(x, y) = [luminance(x, y)]^α × [contrast(x, y)]^β × [structure(x, y)]^γПоказатели степени α, β, γ обычно берут равными 1, и уравнение сводится к произведению трёх членов. Индекс SSIM для произвольных сигналов лежит между -1 и 1, но на практике для двух реальных видеокадров он сидит между 0 и 1, где 1 = «сжатый кадр идентичен исходному», а меньшие числа означают меньшее сходство. Значения выше 0,99 типично прозрачны для зрителя; около 0,95 – очень хорошо; ниже 0,90 – отличие видно при внимательном сравнении; ниже 0,80 – очевидное низкобитрейтное сжатие. 6
Что это даёт сверху PSNR? Три вещи в порядке убывания важности.
Во-первых, SSIM гораздо лучше коррелирует с тем, что зрители реально сообщают на субъективных тестах, особенно для структурных искажений – блочности, ringing-артефактов и размытых рёбер. Сжатый кадр, потерявший текстуру кирпичной стены, получит низкую оценку по оси structure и, значит, низкий SSIM, даже если попиксельная ошибка мала. PSNR этого не видит, SSIM – видит.
Во-вторых, SSIM инвариантен к масштабу правильным способом. Умножьте все пиксели на константу – сделайте картинку ярче, – и SSIM остаётся около 1, потому что член luminance сокращается. PSNR при этом резко падает: глаз почти не замечает, а математика кричит.
В-третьих, SSIM – локален. Он считает оценку сходства на каждое окно 11 × 11 и усредняет по кадру. Одна область сильного повреждения заметно тянет среднее вниз – так же, как это сделал бы зритель, – а не разбавляется лёгкими плоскими регионами, как у PSNR.
SSIM всё ещё не идеален. Он плохо работает с движением (его проектировали под изображения, а не под видео), с тем, как глаз адаптируется на разных дистанциях, и с очень высокими разрешениями. Эти слабости породили две следующие доработки.
MS-SSIM – многомасштабное расширение
MS-SSIM, или multi-scale SSIM, на самом деле был опубликован раньше SSIM – в конференционной статье 2003 года тех же авторов плюс Эеро Симончелли (Simoncelli). 7 Идея «многомасштабности» становится очевидной, если задуматься, как глаз работает на разных дистанциях.
Когда вы смотрите видео на телефоне, поднесённом к лицу, вы видите мелкие детали – текстуру кожи, рёбра букв. То же самое видео, спроецированное на киноэкран и видимое с заднего ряда, выглядит мягче; вы перестаёте видеть мелочи и начинаете видеть общие формы. Восприятие сжатия зависит от того, что именно вы смотрите. Маленький пиксельный артефакт, очевидный на телефоне, может быть невидим на дистанции кинозала; крупное структурное искажение, которое в зале хорошо видно, может потеряться среди других отвлекающих факторов на телефоне.
MS-SSIM моделирует это, вычисляя SSIM на нескольких масштабах: считает SSIM на исходном разрешении, затем уменьшает кадр в два раза и считает снова, затем ещё в два – и так типично пять уровней. Пять SSIM-оценок объединяются с весами, откалиброванными по субъективным экспериментам: средние масштабы получают больший вес, потому что зрительная система человека наиболее чувствительна к среднечастотным деталям. Объединённый результат – это MS-SSIM-индекс кадра, тоже от 0 до 1.
На практике MS-SSIM – это то, что исследователи кодеков используют, когда им нужна структурная метрика, которую можно отстоять в paper. Он коррелирует с субъективными оценками заметно лучше, чем SSIM, особенно на высоком разрешении, и стал тем самым «SSIM», который все имеют в виду в 2026 году, когда пишут «SSIM». Современный FFmpeg выдаёт MS-SSIM через фильтр libvmaf (feature=name=ms_ssim), если попросить; старые фильтры ssim сообщают только оригинальный вариант 2004 года.
Расплата – стоимость: MS-SSIM работает примерно в 5 раз медленнее обычного SSIM, потому что трогает одни и те же пиксели пять раз. Для real-time мониторинга live-стрима это важно; для офлайновой оценки энкодера – нет.
VMAF – эра машинного обучения
VMAF, или Video Multimethod Assessment Fusion (видеооценка слиянием множества методов), Netflix представил в июне 2016 года как способ уйти от перцептивных слепых пятен PSNR и кризиса среднего возраста SSIM. 3 Идея простая: вместо того чтобы писать формулу руками, возьмите горсть существующих низкоуровневых метрик, скормите их машинному обучению и обучите модель на большой базе клипов, оценённых людьми. Модель сама поймёт, как лучше комбинировать входы, чтобы получить число, отслеживающее человеческое суждение.
Что идёт на вход VMAF? Три семейства низкоуровневых признаков, вычисляемых на каждой паре исходного и искажённого кадра:
- VIF (Visual Information Fidelity) на 4 масштабах – мера того, сколько информации из исходного кадра сохранил сжатый. VIF – метрика 2006 года Шейха (Sheikh) и Бовика (Bovik) из UT Austin; VMAF использует её модифицированную пошкальную версию.
- ADM (Additive Detail Measure, также называется DLM, Detail Loss Metric) на 4 масштабах – мера того, сколько «деталей» потерял сжатый кадр, отделённая от более общего ухудшения. ADM – метрика 2011 года Li, Krasula, Le Callet et al.
- Motion – простая мера того, насколько кадр меняется относительно предыдущего; нужна, чтобы модель по-разному взвешивала статичный и движущийся контент. 8
Итого девять признаков на кадр. VMAF подаёт их в регрессионную модель – SVM с радиально-базисным ядром в исходном релизе, а в последних bootstrap-моделях – random forest, – и модель выдаёт оценку по шкале 0–100. 100 = «перцептивно совпадает с референсом», 0 = «совсем не похоже». Типичный 1080p-энкод Netflix целится в VMAF 93–96 на верхней ступени битрейтной лестницы; всё, что ниже, – это лестница, уходящая вниз для медленных каналов.
VMAF обучается на субъективных оценках. Исходный тренировочный набор – несколько сотен клипов, оценённых во внутренней лаборатории Netflix; зрителям показывали каждый клип на откалиброванном 1080p телевизоре с дистанции в три высоты картинки (3H). Новые модели переобучают по мере накопления данных. 9 Это ключевое концептуальное отличие от PSNR и SSIM: у VMAF нет фиксированной формулы, у него есть фиксированная методика обучения. Сменили обучающие данные – сменили метрику.
У этого две стороны. С одной – VMAF гораздо лучше коррелирует с субъективным MOS, чем PSNR или SSIM: блог Netflix Tech сообщает коэффициенты Пирсона около 0,93–0,96 на валидационных наборах, тогда как PSNR на тех же наборах обычно держится в районе 0,6–0,7. 10 С другой – VMAF наследует все ограничения своих обучающих данных: он обучался на специфическом контенте (премиальное стримерское видео в стиле Netflix), при специфической дистанции просмотра (3H, «три высоты картинки») и на специфическом типе искажений (сжатие кодеком, не шум, не транспортные ошибки). Уведите VMAF за пределы этого конверта – оцените сильно апскейленный мобильный клип, скринкаст кода, синтетический тест-паттерн – и числам уже верить нельзя.
Шкала VMAF и правило шести очков
Шкала откалибрована так, что 100 – перцептивно прозрачно, а около 20 – это самый низкобитрейтный «ещё пригодный к просмотру» энкод в обучающей выборке Netflix. Большая часть того, что реально отгружают стриминги, лежит между 75 (нижняя мобильная ступень) и 96 (верхняя ступень).
Самое полезное число для запоминания – 6 очков = 1 JND, где JND – Just Noticeable Difference (минимальная заметная разница), наименьшее изменение качества, которое больше половины зрителей замечает при бок-о-бок сравнении. Netflix предложил это правило в 2017 году, и индустрия с тех пор по нему живёт: разрыв в шесть очков VMAF – это то, что заметит 75% зрителей в A/B-тесте, а разрыв в двенадцать очков – то, что заметит 90%. 11 На практике это означает:
- Если вы проектируете битрейтную лестницу, две соседние ступени не должны отличаться больше чем на 2 очка VMAF – тогда плеер сможет переключать качество вверх и вниз так, что зритель этого не заметит.
- Если ваша верхняя ступень даёт больше 95, вы тратите трафик на качество, которого аудитория не видит, – обычно можно ужать битрейт на 10–20% без жалоб.
- Если нижняя ступень даёт меньше 70, вы заставляете зрителей смотреть на качество, которое они воспринимают как поломку: либо поднимайте битрейт на этой ступени, либо перестаньте её отдавать.
Варианты VMAF – это не одно и то же число
В 2026 году «VMAF» – это не одно число, а небольшое семейство связанных. Четыре варианта, которые встречаются в инструментах и публикациях:
| Вариант | Слаг | Что оценивает | Когда использовать |
|---|---|---|---|
| Default | vmaf_v0.6.1 | 1080p TV, дистанция 3H, учитывает «enhancement gain» | Общая оценка SDR-стриминга |
| NEG | vmaf_v0.6.1neg | То же, но No Enhancement Gain | Оценка только кодека; шарпинг не накачивает оценку |
| Phone | vmaf_v0.6.1 + --phone-model | 1080p-клип на экране телефона | Тюнинг мобильной лестницы |
| 4K | vmaf_4k_v0.6.1 | 4K TV, дистанция 1.5H | Премиум UHD |
Самый недопонятый вариант – NEG (No Enhancement Gain). Netflix обнаружил в 2021 году, что дефолтный VMAF можно обмануть, специально перешарпив или усилив насыщенность до кодирования: такие трюки делали стоп-кадры визуально лучше, хотя движущееся видео становилось хуже. Вариант NEG эту лазейку закрывает, поэтому именно его правильно использовать при сравнении двух энкодеров, которые могут предобрабатывать картинку перед сжатием. NEG – для оценки кодека, default – для оценки end-to-end-пайплайна. 12
Phone-model – небольшая перекалибровка, более терпимая к ошибкам, потому что на телефоне видно меньше деталей. Один и тот же энкод, набирающий 78 в default-модели, может набрать 88 в phone-model – оба числа верны для своих условий просмотра. Иногда это неудобный вывод: для телефонов реально можно отдавать измеримо худший 480p-стрим, и никто не заметит.
4K-модель откалибрована под 4K-дисплей с дистанции 1.5H – это самая близкая реальная дистанция, на которой зритель сидит. Она требовательнее default-модели, и стоит ожидать, что 4K-оценки VMAF на той же исходной картинке будут на 2–4 очка ниже, чем у 1080p.
Считаем все четыре метрики во FFmpeg
Самый простой способ снять все четыре числа с одного энкода – фильтр libvmaf во FFmpeg, который доступен с FFmpeg 4.4 и получил CUDA-ускорение в FFmpeg 6.1. 13 Одна команда, одно чтение файла, все четыре метрики:
# Считаем VMAF (default model), PSNR, SSIM, MS-SSIM и CAMBI для encoded.mp4
# относительно reference.mp4. log_fmt=json пишет машинно-читаемый поадровый лог.
ffmpeg -i encoded.mp4 -i reference.mp4 \
-lavfi "libvmaf=feature='name=psnr|name=float_ssim|name=float_ms_ssim|name=cambi':log_fmt=json:log_path=metrics.json" \
-f null -Если сжатый файл по разрешению или частоте кадров не совпадает с референсом (а в реальной оценке битрейтной лестницы – почти всегда), сначала приведите его:
# Приводим сжатый файл (например, 720p30) к референсу (1080p60) до измерения
ffmpeg -i encoded_720p30.mp4 -i reference_1080p60.mp4 \
-lavfi "[0:v]scale=1920:1080:flags=bicubic,fps=60[dist];[dist][1:v]libvmaf=feature='name=psnr|name=float_ssim|name=float_ms_ssim'" \
-f null -Для GPU-ускорения на картах NVIDIA подменяйте на libvmaf_cuda – это даёт примерно 6-кратный прирост на 1080p и 4K и стало production-вариантом в Netflix и большинстве крупных энкодеров.
JSON-лог даёт покадровые числа – именно это и нужно, потому что одно среднее по длинному клипу прячет плохие моменты внутри хороших. Клип с одной ужасной секундой и 59 идеальными в среднем даёт VMAF 95; такой же клип со сглаженной плохой секундой тоже даёт VMAF 95. Минимум по кадрам обнажает разницу. Рекомендация Netflix (и наша) – отслеживать 5-й процентиль VMAF (худшие 5% кадров) как минимум так же внимательно, как и среднее.
Когда какая метрика подводит – таблица для прода
Ошибётесь с выбором – будете оптимизировать не то. Эту таблицу стоит держать перед глазами всякий раз, когда вы решаете, какие числа смотреть в первую очередь.
| Метрика | Что делает хорошо | Где подводит | Лучше всего подходит для |
|---|---|---|---|
| PSNR | Быстро, универсально, математически понятно, сообщается каждым энкодером | Не замечает размытия, плохо реагирует на резкий контент, игнорирует, где в кадре сидит ошибка | Исторические сравнения, sanity-проверки, тюнинг high-bitrate энкодов |
| SSIM | Коррелирует со структурными искажениями, инвариантен к сдвигу яркости | Одномасштабный, плохо тянет очень высокие разрешения, не для движения | Image-quality работы, старые кодек-paper'ы |
| MS-SSIM | Лучше корреляция, особенно на UHD; дёшево | Всё ещё формула «руками», без обучения | Кодек-исследования, офлайновая оценка UHD |
| VMAF (default) | Лучшая корреляция с MOS для SDR-стриминга на TV | Чувствителен к препроцессингу (шарпинг накачивает оценку), обучен на Netflix-контенте | Тюнинг лестницы, A/B-сравнение кодеков на профессиональном контенте |
| VMAF NEG | То же, но иммунный к трюкам с шарпингом | Чуть ниже корреляция на нешарпленном контенте | Чистая оценка кодека, честное сравнение энкодеров |
| VMAF phone | Откалиброван под мобильную дистанцию | Завышает качество, если использовать для TV/десктопа | Только мобильные битрейтные лестницы |
| VMAF 4K | Откалиброван под 4K на 1.5H | Занижает качество, если зритель сидит дальше | Премиум UHD |
| XPSNR | Лёгкий, перцептивно-взвешенный, рассчитан на HDR и UHD | Новее, индустриальное принятие меньше, чем у VMAF | HDR/VVC-кодирование, low-complexity мониторинг |
| CAMBI | Ловит banding, который остальные не видят | Только banding – для общего качества бесполезен | Валидация HDR-пайплайна, градиентный контент |
Правильный ответ в проде почти никогда не «использовать одну метрику». Реальные пайплайны считают три-четыре сразу – обычно PSNR + MS-SSIM + VMAF NEG + CAMBI – и смотрят на все одновременно. Если метрики расходятся, само это расхождение – полезный сигнал: оно обычно указывает на конкретный тип искажения. PSNR высокий, VMAF низкий → размытие; PSNR низкий, VMAF высокий → лёгкий пиксельный шум, который глаз не видит; SSIM высокий, но CAMBI тоже высокий → плавные градиенты с banding.
Применяем метрики на практике – BD-rate
Самое частое применение этих метрик в 2026 году – не оценка одного клипа, а сравнение двух кодеков. Стандартный инструмент для этого – BD-rate, или Bjøntegaard Delta rate, предложенный Гисле Бьёнтегаардом (Bjøntegaard) в рабочей группе ITU-T VCEG в 2001 году и до сих пор остающийся индустриальным способом выразить, насколько один кодек выигрывает у другого. 14
Идея – закодировать один и тот же контент на 4–6 разных битрейтах каждым кодеком, отложить на графике качество (PSNR, SSIM или VMAF – выбирайте сами) по Y и битрейт по X и провести гладкую кривую через точки. Две кривые – по одной на кодек – обычно похожи по форме. BD-rate отвечает на вопрос: при том же качестве на сколько меньше битрейта нужно кодеку B по сравнению с кодеком A? Ответ – среднее в процентах по перекрывающемуся диапазону качества. «AV1 даёт BD-rate +30% поверх H.264 на том же VMAF» означает: AV1 даёт ту же оценку VMAF при на 30% меньшем битрейте.
Подвох – и именно здесь вендоры сжигают друг друга в white paper'ах – в том, что BD-rate зависит от выбора метрики. Те же два кодека могут показать +30% по VMAF, +22% по MS-SSIM и +12% по PSNR. Ни одно число не «неправильное», просто каждое отвечает на чуть свой вопрос. Честная практика – приводить BD-rate против как минимум двух метрик (обычно PSNR + VMAF) и предупреждать читателя, когда числа расходятся.
Когда в сравнении кодеков приводят одно число BD-rate без указания метрики – это либо маркетинг, либо плохая наука. Спросите, какая метрика, какой контент, какие настройки энкодера и какой диапазон битрейтов. Ответ иногда оказывается неудобным для тех, кто это число цитирует.
CAMBI, HDR-VMAF и куда движется индустрия
Два улучшения, вышедшие за последние три года, закрывают реальные пробелы в стеке метрик.
CAMBI – Contrast-Aware Multiscale Banding Index – это банд-детектор Netflix, выложенный в open source в 2021 году и интегрированный в libvmaf с версии 2.3. 15 Banding – это видимый ступенчатый рисунок, который возникает на плавных градиентах (закатное небо, силуэт на просвет), когда уровней квантования не хватает, чтобы передать плавный переход. PSNR его почти не замечает; SSIM – не замечает; VMAF – не замечает. CAMBI – специализированная метрика, оценивающая только banding, и сейчас это стандартный «второй номер» рядом с VMAF для HDR и градиентного контента. В отличие от остальных, CAMBI идёт в обратную сторону: чем выше CAMBI, тем больше banding, то есть тем хуже. Меньше 1 – чисто, 1–5 – пограничное, выше 5 – «зритель заметит».
HDR-VMAF – расширение VMAF для HDR-контента, изначально разработанное Netflix вместе с Dolby Laboratories в 2021 году и уточняемое с тех пор. Обычный VMAF обучался на SDR (standard dynamic range) и неправильно оценивает абсолютные уровни яркости на HDR: блик в 1000 нит в тёмной комнате – это совсем другое перцептивное событие, чем тот же блик в светлой комнате. HDR-VMAF переобучен на клипах в PQ-домене (Perceptual Quantizer) с моделью среды просмотра. На момент написания в мае 2026 года отдельного open-source-релиза ещё нет, но методика хорошо задокументирована и поддерживается в крупных коммерческих инструментах. 16
За горизонтом стоит обратить внимание на два направления. XPSNR, расширенный перцептивно-взвешенный PSNR, разработанный Кристианом Хельмрихом (Helmrich) и Кристианом Штофферсом (Stoffers) в Fraunhofer HHI, – это лёгкая перцептивная метрика, которая бежит на скорости PSNR, а оценивает примерно как структурная. XPSNR уже включён в энкодер VVC от Fraunhofer (vvenc) и доступен как фильтр FFmpeg; на UHD HDR он коррелирует с субъективным MOS примерно как MS-SSIM, но в разы дешевле. 17 Нейросетевые метрики качества – проприетарные (MainConcept VMAF-E) и открытые (свежие transformer-модели в духе VQUAD) – начинают появляться в production-инструментах и, возможно, со временем заменят собой собранные руками признаки внутри VMAF на глубокую сеть. В 2026 году адаптация ещё мала, и мы рекомендуем относиться к ним как к дополнению к VMAF, а не как к замене.
Типичные ошибки
Пять самых частых ошибок, которые мы видим в production-пайплайнах, грубо упорядочены по ущербу:
Один средний показатель на длинный клип. Двухчасовой фильм со средним VMAF 92 может иметь пятнадцатисекундный отрезок со средним VMAF 55, и зритель увидит именно эти пятнадцать секунд. Всегда смотрите 5-й процентиль или минимум, а не только среднее.
Смешивание вариантов VMAF без указания модели. «Наш кодек выдал VMAF 88» – это бессмыслица без названия модели. NEG, default, phone и 4K могут расходиться на 5–10 очков на одном и том же энкоде. Указывайте модель в каждом отчёте.
Доверие PSNR при сравнении перцептивно разных кодеков. PSNR может предпочесть размытую копию слегка зашумлённой, потому что размытие уменьшает попиксельную ошибку, а шум её увеличивает, хотя для глаза зашумлённый вариант лучше. Никогда не делайте выбор кодека на одном PSNR, когда битрейты различаются больше чем на 10%.
Сравнение энкодов разного разрешения без приведения. Энкод 720p и энкод 1080p того же исходника – это кадры разного размера; перед попиксельной метрикой один надо привести к другому, и само приведение вносит ошибку. Документируйте алгоритм масштабирования: bicubic и Lanczos дают измеримо разные значения PSNR.
Игнорирование экрана и дистанции просмотра. Клип со VMAF 84 на 65-дюймовом TV с 3H может дать VMAF 92 на телефоне в руке. Для мобильного контента используйте phone-model; не используйте default «на всё».
Где здесь Фора Софт
Фора Софт с 2005 года занимается видеостримингом, WebRTC, конференциями, видеонаблюдением, e-learning, телемедициной, OTT и AR/VR – за это время мы сдали 239+ проектов клиентам в каждой из этих вертикалей. В каждом из них вопрос «достаточно ли это видео хорошо, чтобы выкатить?» решает пайплайн метрик, а не глаз человека. Наш референсный стек качества для OTT- и VOD-клиентов считает PSNR, MS-SSIM, VMAF (default и NEG) и CAMBI на каждом энкоде и подсвечивает всё, где 5-й процентиль VMAF падает ниже договорного порога клиента. Для WebRTC и телемедицины, где сохранять референсный кадр для full-reference-метрики невозможно, мы используем no-reference-прокси и битстримовые признаки, периодически сверяемые с VMAF spot-чеками. Итог – мы знаем заранее, до клиента, насколько хорош каждый выход наших пайплайнов, и у нас есть цифры, которыми можно защитить бюджет на компьютинг, когда финансы спрашивают, зачем мы платим за лишний CPU.
Ключевые тезисы
- PSNR – самая простая и старая метрика: быстро, универсально, но слепа к расположению ошибки в кадре и плохо оценивает размытие.
- SSIM и MS-SSIM измеряют структурное сходство так, как это делает глаз, и для большинства контента коррелируют с субъективными оценками лучше, чем PSNR.
- VMAF – ML-модель, обученная на человеческих оценках, и в 2026 году это де-факто стандарт для сравнения кодеков и оптимизации битрейтных лестниц.
- 6 очков VMAF = 1 JND. Соседние ступени лестницы должны различаться не больше чем на 2 очка, чтобы переключение было незаметным.
- У VMAF несколько моделей (default, NEG, phone, 4K) – указывайте, какая именно; разница может доходить до 5–10 очков.
- Реальные пайплайны считают три-четыре метрики разом и смотрят на 5-й процентиль, а не только на среднее.
Что почитать дальше
- Как выбрать кодек для своего сервиса в 2026 году – превращаем эти числа в решение по кодеку
- Per-title и per-scene кодирование – используем VMAF, чтобы строить умные лестницы
- Полный гид по HDR – зачем CAMBI и HDR-VMAF нужны для премиум-контента
Источники
- ITU-T Recommendation P.910 (10/2023), Subjective video quality assessment methods for multimedia applications, ITU. https://www.itu.int/rec/T-REC-P.910 – обращение 2026-05-16. Эталонная методика субъективного тестирования, по которой валидируют все объективные метрики; в 2024 году поглотила прежнюю P.913.
- Zhou Wang, Alan C. Bovik, Hamid R. Sheikh, Eero P. Simoncelli, Image Quality Assessment: From Error Visibility to Structural Similarity, IEEE Transactions on Image Processing, vol. 13, no. 4, pp. 600–612, April 2004. https://ieeexplore.ieee.org/document/1284395 – обращение 2026-05-16. Фундаментальная статья по SSIM, более 50 000 цитирований.
- Reza Rassool et al., Toward A Practical Perceptual Video Quality Metric, Netflix Technology Blog, June 2016. https://netflixtechblog.com/toward-a-practical-perceptual-video-quality-metric-653f208b9652 – обращение 2026-05-16. Публичный анонс VMAF.
- Peak signal-to-noise ratio, Wikipedia, со ссылками на ITU-T J.247. https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio – обращение 2026-05-16. Канонические формула PSNR и диапазон 30–50 dB.
- FastPix, VMAF vs. PSNR vs. SSIM: Understanding Video Quality Metrics. https://fastpix.com/blog/understanding-vmaf-psnr-and-ssim-full-reference-video-quality-metrics – обращение 2026-05-16. Источник наблюдения «PSNR не видит размытия».
- Elecard, Interpretation of objective video quality metrics. https://www.elecard.com/page/article_interpretation_of_metrics – обращение 2026-05-16. Интерпретация порогов SSIM в production-инструментах.
- Zhou Wang, Eero P. Simoncelli, Alan C. Bovik, Multi-scale structural similarity for image quality assessment, 37th IEEE Asilomar Conference on Signals, Systems and Computers, November 2003. https://ece.uwaterloo.ca/~z70wang/publications/msssim.html – обращение 2026-05-16. Расширение MS-SSIM.
- Netflix VMAF documentation, Features. https://github.com/Netflix/vmaf/blob/master/resource/doc/features.md – обращение 2026-05-16. Описание экстракторов VIF, ADM и Motion в VMAF v0.6.x.
- Netflix VMAF v3.0.0 release notes. https://github.com/Netflix/vmaf/releases/tag/v3.0.0 – обращение 2026-05-16. Изменения v3.0, CUDA-ускорение и интеграция с FFmpeg 6.1.
- Christos Bampis, Zhi Li et al., VMAF: The Journey Continues, Netflix Technology Blog. https://netflixtechblog.com/vmaf-the-journey-continues-44b51ee9ed12 – обращение 2026-05-16. PCC и SROCC относительно MOS на внутренних датасетах Netflix.
- Jan Ozer, Finding the Just Noticeable Difference with Netflix VMAF, Streaming Learning Center. https://streaminglearningcenter.com/codecs/finding-the-just-noticeable-difference-with-netflix-vmaf.html – обращение 2026-05-16. Источник правила «6 очков VMAF = 1 JND».
- Jan Ozer, Netflix Addresses VMAF Hackability with New Model, Streaming Learning Center. https://streaminglearningcenter.com/blogs/netflix-addresses-vmaf-hackability-with-new-model.html – обращение 2026-05-16. Объяснение варианта NEG и того, почему шарпинг накачивает default-VMAF.
- FFmpeg libvmaf filter documentation, Netflix vmaf repository. https://github.com/Netflix/vmaf/blob/master/resource/doc/ffmpeg.md – обращение 2026-05-16. Канонический референс по использованию VMAF внутри FFmpeg.
- Christian Herglotz, Hannah Och et al., Bjøntegaard Delta (BD): A Tutorial Overview of the Metric, Evolution, Challenges, and Recommendations, arXiv:2401.04039, January 2024. https://arxiv.org/abs/2401.04039 – обращение 2026-05-16. Современный референс по BD-rate и его зависимости от метрики.
- Joel Sole, Lukáš Krasula et al., CAMBI, a banding artifact detector, Netflix Technology Blog, 2021. https://netflixtechblog.com/cambi-a-banding-artifact-detector-96777ae12fe2 – обращение 2026-05-16. Введение в CAMBI; в libvmaf с версии 2.3.
- Netflix и Dolby Laboratories, HDR-VMAF, Mile-High Video 2023. https://www.csimagazine.com/csi/netflix-reveals-hdrvmaf-solution.php – обращение 2026-05-16. Архитектура и валидация HDR-варианта.
- Christian R. Helmrich, Sebastian Bosse, Mischa Siekmann et al., A Study of the Extended Perceptually Weighted Peak Signal-to-Noise Ratio (XPSNR) for Video Compression, ITU Journal: ICT Discoveries, vol. 3, no. 1, 2020. https://www.itu.int/dms_pub/itu-s/opb/journal/S-JOURNAL-ICTS.V3I1-2020-8-PDF-E.pdf – обращение 2026-05-16. Спецификация XPSNR и референсная реализация Fraunhofer HHI.