Объективные метрики качества: PSNR, SSIM, MS-SSIM, VMAF

Автор: Николай СапуновОбновлено: август 202626 мин чтения
Содержание статьи +

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 – пошло другим путём. Вместо ручной разработки формулы оно обучает модель машинного обучения на тысячах субъективно оценённых клипов, позволяя модели самостоятельно определить оптимальную комбинацию низкоуровневых признаков. В 2016 году Netflix выпустил VMAF в open source, и он стал де-факто стандартом для сравнения кодеков и оптимизации битрейтных лестниц. 3

Рисунок 1. Три семейства объективных метрик качества видео и канонический год публикации каждой. PSNR пришёл из теории связи; SSIM и MS-SSIM – из исследований по обработке изображений; VMAF – от стримингового сервиса, которому нужно кодировать миллион клипов в год.

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 измеряется в децибелах (дБ): чем выше значение, тем лучше качество. Диапазон 30–50 дБ считается нормальным для сжатия с потерями; при значении ниже 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 dB

PSNR в 34,2 дБ находится в диапазоне «хорошо, но не прозрачно». Если уменьшить ошибку вдвое – до 2,5 на пиксель, – PSNR вырастет примерно на 6 дБ и составит около 40,2 дБ, что большинство зрителей на телевизоре уже не сможет отличить от оригинала. Каждое удвоение MSE даёт прирост около 3 дБ; каждое удвоение пиксельной ошибки – около 6 дБ. Запомните это правило, и большинство значений PSNR станут мгновенно понятны.

Два главных преимущества PSNR – скорость и универсальность. Метрику можно рассчитать в реальном времени на любом ноутбуке, её используют все энкодеры, и за последние сорок лет она фигурировала в каждом научном труде, так что PSNR стала lingua franca при обсуждении кодеков в историческом контексте.

Большая беда в том, что PSNR – не перцептивный. Глаз человека по-разному воспринимает разные участки изображения: мы легко прощаем значительные искажения на однородных участках, где нет деталей, но крайне чувствительны к мелким ошибкам на резких границах, лицах и тексте. PSNR усредняет всё без разбора и выдаёт одно число – поэтому кодек, который размыл лицо, но сохранил небо, может получить тот же PSNR, что и кодек, оставивший лицо чётким, но добавивший небольшой шум повсюду. Для математики эти два варианта сжатия одинаковы; для зрителя один из них совершенно непригоден для просмотра. Хуже того, PSNR печально известен своей неспособностью корректно оценивать размытие: сильно размытая копия оригинала может получить высокий PSNR и при этом выглядеть явно ухудшенной. 5

Рисунок 2. PSNR пошагово. MSE – среднеквадратичное попиксельное расхождение; логарифм превращает его в децибельную шкалу, где больше – лучше.

Именно эта слабость и побудила индустрию перейти к семейству структурного сходства.

SSIM – измеряем структуру, а не пиксели

SSIM, или structural similarity (структурное сходство), предложили Чжоу Ван (Wang) и Алан Бовик (Bovik) из Техасского университета в Остине в своей знаковой статье 2004 года в IEEE Transactions on Image ProcessingImage Quality Assessment: From Error Visibility to Structural Similarity. 2 У статьи более 50 000 цитирований – одна из самых цитируемых работ в области обработки изображений – и она удостоена премии за лучшую статью от IEEE Signal Processing Society. С тех пор любая метрика качества, по сути, является сноской к этой работе.

Идея, которую мы уже затронули, такова: зрительная система человека – это не детектор пиксельной ошибки, а детектор структуры. Вы смотрите на лицо и не анализируете цвет каждого отдельного волоска; вы воспринимаете пространственный узор света и тени, который сигнализирует мозгу: «это лицо». Две картинки с одинаковой пиксельной ошибкой могут выглядеть совершенно по-разному – если одна сохраняет этот узор, а другая его нарушает. Поэтому вместо усреднения пиксельных различий SSIM сравнивает изображения по трём перцептивным параметрам, перемножает результаты и выдаёт итоговое число.

Три оси – это luminance (яркость), contrast (контраст) и structure (структура). Яркость – это средняя яркость небольшого участка: берётся окно 11 × 11 пикселей, усредняются значения пикселей, и сравнивается среднее значение в оригинале со средним в сжатом изображении. Контраст – это разброс яркости внутри того же окна: он высокий в сложных участках кадра и низкий в однородных. Структура – это пространственный паттерн светлых и тёмных участков внутри окна, после вычитания среднего и нормализации разброса, то есть именно тот признак, по которому глаз распознаёт: «это волосы, это глаз, это нос». Каждая ось даёт оценку сходства от 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, поскольку компонент яркости сокращается. При этом PSNR резко падает: человеческий глаз почти не замечает изменений, а математический показатель «кричит».

В-третьих, SSIM – локальный метод. Он вычисляет оценку сходства для каждого окна 11 × 11 и усредняет её по всему кадру. Одна сильно повреждённая область существенно снижает среднее значение – так же, как это сделал бы зритель, – в отличие от PSNR, где такие дефекты «разбавляются» лёгкими однородными участками.

SSIM всё ещё не идеален. Он плохо справляется с движением (его создавали для статичных изображений, а не для видео), с адаптацией зрения на разных дистанциях и с очень высокими разрешениями. Эти недостатки привели к появлению двух последующих улучшений.

Рисунок 3. SSIM вычисляет три локальные оценки – luminance, contrast, structure – перемножает их и усредняет по всему кадру.

MS-SSIM – многомасштабное расширение

MS-SSIM, или multi-scale SSIM, на самом деле был опубликован раньше, чем SSIM – в конференционной статье 2003 года тех же авторов, а также Эеро Симончелли (Simoncelli). 7 Идея «многомасштабности» становится очевидной, если задуматься, как глаз воспринимает изображения на разных дистанциях.

Когда вы смотрите видео на телефоне, поднесённом близко к лицу, вы различаете мелкие детали – текстуру кожи, контуры букв. То же самое видео, спроецированное на киноэкран и просмотренное с заднего ряда, выглядит мягче: мелкие детали исчезают, а на первый план выходят общие формы. Восприятие сжатия зависит от того, что именно вы смотрите. Маленький пиксельный артефакт, заметный на телефоне, может быть незаметен с расстояния кинозала; крупное структурное искажение, хорошо различимое в зале, может затеряться среди других отвлекающих факторов на телефоне.

MS-SSIM моделирует этот процесс, вычисляя SSIM на нескольких масштабах: сначала рассчитывается SSIM на исходном разрешении, затем изображение уменьшается вдвое и оценка повторяется, после чего – ещё вдвое, и так обычно пять раз. Пять полученных SSIM-оценок объединяются с весами, откорректированными на основе субъективных экспериментов: средние масштабы получают больший вес, поскольку зрительная система человека наиболее чувствительна к среднечастотным деталям. Итоговый результат – это MS-SSIM-индекс кадра, также находящийся в диапазоне от 0 до 1.

На практике MS-SSIM – это та структурная метрика, которую исследователи кодеков используют, когда им нужно обосновать выбор в научной статье. Она заметно лучше коррелирует с субъективными оценками, чем классический SSIM, особенно на высоком разрешении, и именно её все имеют в виду в 2026 году, когда пишут «SSIM». Современный FFmpeg выдаёт MS-SSIM через фильтр libvmaf (feature=name=ms_ssim), если запросить; старые фильтры ssim сообщают только оригинальный вариант 2004 года.

Расплата – стоимость: MS-SSIM работает примерно в пять раз медленнее обычного SSIM, потому что обрабатывает одни и те же пиксели пять раз. Для реального времени мониторинга 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 года Ли, Красулы, Ле Калле и соавторов.
  • 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 за пределы этих условий – оцените сильно увеличенный мобильный клип, скринкаст кода или синтетический тестовый паттерн – и доверять полученным числам уже нельзя.

Рисунок 4. Архитектура VMAF. Три семейства низкоуровневых признаков поступают в ML-модель, обученную на тысячах человеческих оценок; модель выдаёт одно число от 0 до 100.

Шкала 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» – это не одно число, а небольшое семейство связанных метрик. В инструментах и публикациях встречаются четыре варианта:

ВариантСлагЧто оцениваетКогда использовать
Defaultvmaf_v0.6.11080p TV, дистанция 3H, учитывает «enhancement gain»Общая оценка SDR-стриминга
NEGvmaf_v0.6.1negТо же, но No Enhancement GainОценка только кодека; шарпинг не накачивает оценку
Phonevmaf_v0.6.1 + --phone-model1080p-клип на экране телефонаТюнинг мобильной лестницы
4Kvmaf_4k_v0.6.14K TV, дистанция 1.5HПремиум UHD

Самый недопонятый вариант – NEG (No Enhancement Gain). В 2021 году Netflix обнаружил, что стандартный VMAF можно обмануть, если специально усилить резкость или насыщенность изображения до кодирования: такие приёмы делали кадры визуально лучше, хотя качество движущегося видео ухудшалось. Вариант NEG закрывает эту лазейку, поэтому именно его следует использовать при сравнении двух энкодеров, способных предобрабатывать изображение перед сжатием. NEG – для оценки кодека, default – для оценки конечного пайплайна. 12

Phone-Model – небольшая перекалибровка, более терпимая к ошибкам, поскольку на экране телефона видно меньше деталей. Один и тот же энкод, набирающий 78 в default-модели, может получить 88 в phone-модели – оба значения корректны в своих условиях просмотра. Иногда это неудобный вывод: для телефонов реально можно отдавать измеримо худший 480p-стрим, и никто не заметит.

4K-модель откалибрована под 4K-дисплей с дистанции 1,5H – это максимально близкая к реальной дистанция, с которой зритель смотрит изображение. Она более требовательна, чем default-модель, и 4K-оценки VMAF на той же исходной картинке, как правило, на 2–4 балла ниже, чем у 1080p.

Рассчитываем все четыре метрики в FFmpeg

Самый простой способ получить все четыре метрики с одного энкодера – фильтр libvmaf в 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 – это обеспечивает примерно шестикратный прирост производительности при обработке 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Новее, индустриальное принятие меньше, чем у VMAFHDR/VVC-кодирование, low-complexity мониторинг
CAMBIЛовит banding, который остальные не видятТолько banding – для общего качества бесполезенВалидация HDR-пайплайна, градиентный контент

Правильный ответ в продакшене почти никогда не сводится к «использовать одну метрику». Реальные пайплайны обычно учитывают три–четыре одновременно – например, PSNR + MS-SSIM + VMAF NEG + CAMBI – и анализируют их все вместе. Если метрики расходятся, само это расхождение – уже полезный сигнал: оно обычно указывает на конкретный тип искажения. Высокий PSNR, но низкий VMAF → размытие; низкий PSNR, но высокий VMAF → лёгкий пиксельный шум, незаметный глазу; высокий SSIM, но высокий CAMBI → плавные градиенты с banding.

Рисунок 5. Какую метрику использовать в каждом стандартном продакшен-сценарии. Самые надёжные пайплайны вычисляют сразу несколько метрик и внедряют изменения в энкодер, только когда все показатели сходятся.

Применение метрик на практике – BD-оценка

Самое частое применение этих метрик в 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-скорость зависит от выбранной метрики. Те же два кодека могут показать +30% по VMAF, +22% по MS-SSIM и +12% по PSNR. Ни одно из этих чисел не является «неправильным» – просто каждое отвечает на немного разный вопрос. Честная практика – приводить BD-скорость по минимум двум метрикам (обычно PSNR и VMAF) и предупреждать читателя, когда результаты расходятся.

Когда при сравнении кодеков приводят одно число BD-rate без указания метрики – это либо маркетинг, либо плохая наука. Уточните: какая метрика использовалась, какой контент, какие настройки энкодера и в каком диапазоне битрейтов проводилось тестирование. Ответ иногда оказывается неудобным для тех, кто цитирует это число.

CAMBI, HDR-VMAF и куда движется индустрия

Два улучшения, появившиеся за последние три года, устраняют реальные пробелы в стеке метрик.

CAMBI – Contrast-Aware Multiscale Banding Index – это банд-детектор от Netflix, опубликованный в open source в 2021 году и интегрированный в libvmaf начиная с версии 2.3. 15 Бандинг – это видимый ступенчатый рисунок, возникающий на плавных градиентах (например, закатное небо или силуэт на просвет), когда недостаточно уровней квантования для передачи плавного перехода. PSNR его почти не замечает, SSIM – не замечает, VMAF – тоже не замечает. CAMBI – это специализированная метрика, оценивающая только бандинг, и сегодня она является стандартным «вторым показателем» наряду с VMAF для HDR-контента и изображений с градиентами. В отличие от других метрик, CAMBI работает в обратную сторону: чем выше значение CAMBI, тем сильнее выраженный бандинг, то есть тем хуже качество. Меньше 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-Enhanced) и открытые (новые трансформерные модели в духе 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-дюймовом телевизоре с дистанцией 3H может показать VMAF 92 на телефоне в руке. Для мобильного контента используйте модель phone; не применяйте default «на всё».

Где здесь Фора Софт

Фора Софт с 2005 года работает в сфере видеостриминга, WebRTC, видеоконференций, видеонаблюдения, e-learning, телемедицины, OTT и AR/VR – за это время мы реализовали более 250 проектов для клиентов в каждой из этих областей. В каждом из них вопрос «достаточно ли хорошо видео для релиза?» решает не человеческий глаз, а пайплайн метрик.

Наш эталонный стек оценки качества для OTT- и VOD-клиентов рассчитывает PSNR, MS-SSIM, VMAF (в стандартных и NEG-режимах) и CAMBI для каждого энкодинга, выделяя все случаи, где 5-й процентиль VMAF опускается ниже согласованного с клиентом порога. Для WebRTC и телемедицины, где хранение референсного кадра невозможно, мы применяем безреференсные прокси-метрики и признаки битстрима, периодически сверяя их с точечными замерами VMAF.

В результате мы заранее, ещё до клиента, знаем, насколько качественен каждый выход нашего пайплайна, и можем оперировать конкретными цифрами, защищая бюджет на вычислительные ресурсы, когда финансовая команда спрашивает: зачем мы платим за лишний CPU.

Ключевые тезисы

  • PSNR – самая простая и старая метрика: она быстрая и универсальная, но не учитывает расположение ошибок в кадре и плохо оценивает степень размытия.
  • SSIM и MS-SSIM измеряют структурное сходство так, как это воспринимает человеческий глаз, и для большинства типов контента коррелируют с субъективными оценками лучше, чем PSNR.
  • VMAF – это ML-модель, обученная на данных человеческих оценок, и к 2026 году она станет де-факто стандартом для сравнения кодеков и настройки битрейтных лестниц.
  • 6 очков VMAF соответствуют одному JND. Соседние уровни битрейта должны отличаться не более чем на 2 очка, чтобы переход между ними был незаметен.
  • У VMAF существует несколько моделей (default, NEG, phone, 4K) – обязательно указывайте, какая используется, поскольку различия между ними могут достигать 5–10 очков.
  • В реальных пайплайнах одновременно рассчитывают три–четыре метрики и анализируют 5-й процентиль, а не только среднее значение.

Что почитать дальше

Источники

  1. 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.
  2. 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 цитирований.
  3. 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.
  4. 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.
  5. 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 не видит размытия».
  6. Elecard, Interpretation of objective video quality metrics. https://www.elecard.com/page/article_interpretation_of_metrics – обращение 2026-05-16. Интерпретация порогов SSIM в production-инструментах.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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».
  12. 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.
  13. FFmpeg libvmaf filter documentation, Netflix vmaf repository. https://github.com/Netflix/vmaf/blob/master/resource/doc/ffmpeg.md – обращение 2026-05-16. Канонический референс по использованию VMAF внутри FFmpeg.
  14. 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 и его зависимости от метрики.
  15. 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.
  16. Netflix и Dolby Laboratories, HDR-VMAF, Mile-High Video 2023. https://www.csimagazine.com/csi/netflix-reveals-hdrvmaf-solution.php – обращение 2026-05-16. Архитектура и валидация HDR-варианта.
  17. 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.

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.