Что такое измерение качества видео: гайд

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

Кратко

Измерение качества видео – это практика превращения вопроса «насколько хорошо выглядит это видео?» в число, которое можно сравнивать, отслеживать и отстаивать, вместо мнения, меняющегося от зрителя к зрителю и день ото дня. Это сложнее, чем кажется, потому что измеряемое – то, что воспринимает человеческий глаз, – не равно попиксельной разнице, которую умеет считать компьютер, поэтому любая автоматическая оценка является прокси и должна проверяться по реальным оценкам людей. Истина (ground truth) – это субъективный тест, где люди оценивают клипы в контролируемых условиях и дают Mean Opinion Score (MOS); объективные метрики PSNR, SSIM и VMAF – быстрые заменители, приближающие эту оценку с известными слепыми зонами. Статья объясняет, что значит «качество» для сжатого видео, почему одно число – всегда сводка, а не вся правда, и какие четыре задачи решает программа измерения: сравнивать кодеры, задавать цели качества, ловить регрессии и доказывать доставленное качество.

Почему это важно

Если вы выпускаете видео – стриминг, видеозвонки, видеонаблюдение, онлайн-обучение или телемедицину, – кто-то в команде уже принимает решения о качестве, обычно на глаз и без числа. Это работает, пока не нужно выбрать между двумя кодерами, обосновать битрейт, объяснить, почему прошлый релиз выглядел хуже, или доказать клиенту, что доставленное видео было хорошим. Эта статья – фундамент остального раздела «Качество и измерение видео»: она даёт словарь и модель мышления, чтобы последующие разборы PSNR, SSIM и VMAF легли на твёрдую почву. Прочитав её, вы поймёте, почему число лучше мнения – и почему это число всё равно нужно читать аккуратно.

«Мне выглядит нормально» – это не измерение

Начнём с фразы, которую произносила каждая видеокоманда: «картинка выглядит нормально». Это похоже на ответ. Но это не измерение, и разрыв между этими двумя вещами – и есть причина существования всей дисциплины.

У измерения есть три свойства, которых нет у мнения. Оно воспроизводимо – повторите, и получите тот же результат. Оно масштабируемо – его можно применить к одному клипу или к миллиону потоков, не уставая. И оно сопоставимо – двух людей, две команды или два кодера можно поставить на одну шкалу и упорядочить. «Мне выглядит нормально» проваливает все три проверки. Это зависит от того, кто смотрит, на каком экране, при каком освещении и что человек видел минуту назад – лучше или хуже.

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

Перейти сразу к числу нельзя, потому что зрительная система человека видит не так, как считает компьютер. Глаз чувствительнее к яркости, чем к цвету, прощает ошибку в насыщенных текстурой областях охотнее, чем в гладких, тянется к лицам и движению и почти слеп к деталям, на которые сейчас не смотрит. Изменение, удваивающее «сырую» попиксельную ошибку, может быть невидимым, а крошечное изменение не в том месте – полоса на ясном небе, блок на щеке – бросается в глаза. Любое честное измерение обязано учитывать, что цель – воспринимаемое качество, а не арифметика над пикселями.

Что вообще значит «качество» для сжатого видео

Прежде чем измерять качество, нужно решить, какое именно качество имеется в виду, потому что слово прячет две разные идеи.

Первая – точность (fidelity): насколько доставленное видео близко к некоему оригиналу? Сжатие выбрасывает информацию, чтобы уменьшить файл, и точность спрашивает, насколько результат ушёл от источника. Это естественный вопрос, когда у вас есть эталонный мастер для сравнения – фильм, готовый рендер, записанный поток.

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

Обычно эти идеи согласуются, поэтому их и смешивают, но они могут разойтись. Современный ИИ-апскейлер способен выдать кадр, который зрителям нравится больше, чем низкое разрешение, из которого он построен: высокое воспринимаемое качество при низкой точности, потому что он придумал правдоподобные детали, которых в оригинале не было. (Как качество улучшают ML-моделями, – тема раздела AI for Video Engineering; здесь мы только измеряем результат.) Держите различие в кармане: бо́льшая часть раздела измеряет точность относительно эталона, но самые трудные реальные случаи эталона не имеют вовсе.

Вторая тонкость: «качество» – не одно измерение. Видео может быть резким, но дёргаться; гладким, но с полосами; идеально закодированным, но доставленным с трёхсекундной заморозкой. Качество картинки (как выглядит каждый кадр) и Quality of Experience – целостное сквозное ощущение от просмотра, включая зависания и задержку старта, – это разные измерения с разными инструментами. Мы аккуратно разделим их в QoE против QoS; пока держите в уме, что «качество» охватывает и кадр, и воспроизведение.

Истина: спрашивать людей, аккуратно

Поскольку качество живёт в человеческом восприятии, единственное истинное измерение – спросить людей; не мимоходом, а в контролируемых условиях, выстроенных так, чтобы ответ что-то значил. Это субъективное тестирование, и оно – фундамент, на котором держится вся область.

В субъективном тесте панель зрителей смотрит набор клипов в заданных условиях – откалиброванный экран, фиксированное расстояние просмотра, контролируемое освещение – и оценивает каждый. Самая частая шкала – пятибалльная Absolute Category Rating (ACR), где 5 – «отлично», 4 – «хорошо», 3 – «удовлетворительно», 2 – «плохо», 1 – «очень плохо». Усредните оценки всех для данного клипа – получите его Mean Opinion Score (MOS), единственное число, представляющее, как клип выглядел людям. Близкий родственник, Differential Mean Opinion Score (DMOS), оценивает, насколько искажённый клип деградировал относительно источника, что обостряет чувствительность к мелким искажениям.

Эти методы не импровизация. Они закреплены в международных стандартах – прежде всего в Рекомендации ITU-T P.910 (2023) для мультимедиа и Рекомендации ITU-R BT.500-15 для телевизионных изображений, – которые задают шкалы оценок, условия просмотра, число зрителей и обработку «сырых» данных. Субъективному тестированию посвящён отдельный блок; сейчас важен принцип: когда метрика и корректно проведённый субъективный тест расходятся, прав тест. Глаз – это истина. Метрика – модель глаза, не сработавшая на этом контенте.

Субъективный тест – это аккуратно проведённая дегустационная панель. Сделанный правильно, он даёт самый надёжный ответ о качестве. Сделанный плохо – слишком мало зрителей, неконтролируемый экран, наводящие инструкции – он выдаёт уверенные числа, которые ничего не значат, поэтому провести его хорошо – отдельное умение.

Быстрый прокси: объективные метрики

У субъективного тестирования есть один смертельный для повседневной инженерии недостаток: оно медленное и дорогое. Нельзя собирать панель при каждой правке настроек кодера и уж точно нельзя гонять её на каждом из миллионов файлов, которые кодирует сервис. Поэтому область построила объективные метрики – алгоритмы, которые смотрят на видео и считают оценку качества программно, за секунды, без людей в цикле.

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

Рис. 1. Цикл измерения. Люди дают истинную оценку (MOS); алгоритм даёт быстрый прокси; прокси заслуживает доверия только корреляцией с людьми.

В практике доминируют три объективные метрики, и каждую вы встретите подробно в Блоке 2. PSNR (Peak Signal-to-Noise Ratio) измеряет «сырую» попиксельную ошибку по шкале в децибелах – быстро, универсально и слабо предсказывает то, что видит глаз. SSIM (Structural Similarity Index Measure), представленная Wang, Bovik, Sheikh и Simoncelli в IEEE Transactions on Image Processing в 2004 году, сравнивает структуру двух изображений по шкале от 0 до 1 и следует за восприятием лучше PSNR. VMAF (Video Multimethod Assessment Fusion), открытая метрика Netflix, сплавляет несколько элементарных мер и обучалась прямо на субъективных оценках, выдавая число от 0 до 100; её модель по умолчанию предсказывает качество для 1080p-телевизора в гостиной. Каждая – своя модель одного и того же глаза, со своими сильными сторонами и слепыми зонами.

Метрика – это просто арифметика, и вот она

Полезно один раз увидеть, что метрика – не магия. PSNR – самый наглядный пример, потому что её можно посчитать руками.

Сначала измеряют среднюю квадратичную разницу между оригиналом и сжатым кадром, пиксель за пикселем – Mean Squared Error (MSE). Затем переводят в децибелы одной формулой:

PSNR = 10 · log10( MAX² / MSE )   [децибелы]

MAX – максимально возможное значение пикселя, 255 для стандартного 8-битного видео. Пусть сжатый кадр отличается от источника на среднюю квадратичную ошибку 25 (мало). Подставим:

PSNR = 10 · log10( 255² / 25 )
     = 10 · log10( 65025 / 25 )
     = 10 · log10( 2601 )
     = 10 · 3,415
     = 34,15 дБ

Вот и вся метрика: посчитать различия пикселей, возвести в квадрат и усреднить, взять логарифм. Большинство «хороших» значений PSNR – между 30 и 50 дБ, и выше лучше. Но заметьте, на что формула не смотрит: где находятся ошибки, попадают ли они на лицо или на траву, образуют ли видимую полосу или безвредно растворяются в текстуре. PSNR считает «неправильные» пиксели, как проверка орфографии считает неверные буквы – полезно, но слепо к тому, читается ли фраза. Именно эта слепота – причина существования SSIM и VMAF и того, почему ни одно число не бывает последним словом.

Три схемы измерения: full-, reduced- и no-reference

Есть ещё одно разделение, которое решает, какую метрику вы вообще можете применить, и оно постоянно сбивает новичков. Это вопрос о том, с чем сравнивать.

Метрике full-reference (полный эталон) нужен нетронутый оригинал рядом с искажённым видео, кадр в кадр. PSNR, SSIM и VMAF – все full-reference: они измеряют разницу между источником и результатом, поэтому работают, только если источник у вас есть. Это удобный случай – библиотека video-on-demand, тест кодера, регрессионный набор, – где мастер-файл лежит на диске.

Метрике reduced-reference (сокращённый эталон) не нужен весь оригинал – только компактный набор признаков, извлечённых из него, несколько чисел, путешествующих рядом с потоком. Это золотая середина, когда слать полный эталон непрактично, но «отпечаток» источника можно себе позволить.

Метрика no-reference (без эталона), также называемая слепой, получает только искажённое видео и обязана судить о качестве, не имея с чем сравнить – так человек может взглянуть на фото и сказать «выглядит пережатым», ни разу не видев оригинала. Это трудный случай, и он же самый частый в реальном мире: прямой эфир, видеозвонок, камера наблюдения, загруженный пользователем клип. Мастера нет, потому что поток с камеры уже и есть единственная существующая версия.

Рис. 2. Full-, reduced- и no-reference. Какую метрику можно применить, решает то, сколько осталось от оригинала.

Это важно до того, как назовёте оценку. Просить число VMAF для прямого эфира без мастера – ошибка категории: VMAF – full-reference, и сравнивать ему не с чем. Каждой схеме посвящена статья full-, reduced- и no-reference; правило, которое стоит унести: сначала назовите схему, потом метрику.

Почему одно число – всегда сводка

Допустим, вы выбрали метрику и прогнали её. Теперь у вас есть оценка. Последняя трудная истина статьи: оценка – это сводка, а сводки кое-что прячут.

Видео – это тысячи кадров. Метрика выдаёт оценку для каждого кадра, а затем сжимает их все в одно итоговое число – шаг, называемый пулингом (pooling). Самый очевидный способ – среднее арифметическое: сложить покадровые оценки и поделить. Но именно в среднем плохие моменты и прячутся.

Представьте два кодирования одного клипа из десяти сцен, оценённого 0–100 по сценам:

Кодирование A по сценам: 94 93 95 92 94 93 95 93 94 93  →  среднее = 93,6
Кодирование B по сценам: 96 97 96 70 97 96 97 96 97 96  →  среднее = 93,8

По среднему побеждает B, 93,8 против 93,6. Но у B есть сцена на 70 – заметно уродливый отрезок, который зритель увидит и запомнит, – тогда как A нигде не падает ниже 92. Среднее наградило кодирование с худшим худшим случаем. Поэтому опытные команды делают пулинг гармоническим средним или нижним перцентилем (скажем, 5-м – оценкой, ниже которой лежат худшие 5% кадров): оба наказывают плохие кадры, а не дают им усредниться. Пулингу посвящена отдельная статья в Блоке 2; здесь урок структурный.

Рис. 3. То же среднее, другое впечатление. Итоговое число скрыло одну ужасную сцену B – ту самую, которую зритель запомнит.
«Частая ошибка: доверять числу, не читая его этикетку. Оценка качества бессмысленна без четырёх данных: метрики (PSNR, SSIM, VMAF), модели (VMAF default / phone / 4K), пулинга (среднее, гармоническое, перцентиль) и контента, на котором её считали. «VMAF 95» сам по себе не говорит ничего – VMAF 95 на phone-модели не равен VMAF 95 на default-модели, а среднее 95 может прятать сцену на 70. Считайте любую «голую» оценку незавершённой, пока не знаете все четыре.»

Четыре задачи программы измерения

Когда понятия на месте, вот что измерение качества даёт. Программа измерения решает четыре задачи, и почти любая причина измерять сводится к одной из них.

Первая задача – сравнивать кодеры и настройки. Когда два кодека или две конфигурации заявляют о превосходстве, метрика, прогнанная на одном контенте, в одном разрешении, с одним эталоном и одной моделью, заканчивает спор числом, а не догадкой. Это та самая дисциплина «яблоки к яблокам», к которой раздел постоянно возвращается.

Вторая задача – задать цель и бюджет качества. Раз качество можно измерить, можно решить, сколько его достаточно – «каждый тайтл выходит при VMAF 93 и выше» – и потратить меньше всего бит на эту цель. Более высокая цель стоит битрейта и денег; измерение позволяет выбирать компромисс осознанно, а не наугад.

Третья задача – ловить регрессии. Встройте метрику в конвейер сборки как quality-gate, и изменение, тихо ухудшающее видео, будет помечено до того, как дойдёт до пользователей, а не после их жалоб. Так качество из того, что замечают в продакшене, превращается в то, что тестируют в CI/CD.

Четвёртая задача – доказать доставленное качество. Когда клиент, партнёр или регулятор спрашивает «было ли доставленное видео действительно хорошим?», обоснованное измерение – это ответ: задокументированное число с приложенным методом, а не скриншот и обещание.

Рис. 4. Четыре задачи. Почти любая причина измерять качество – одна из этих, и каждая требует сравнения «яблоки к яблокам».

Бизнес-обоснование каждой из них конкретно: измеренная экономия 5% битрейта при равном качестве – это 5% сокращения затрат на доставку на каждом потоке, а quality-gate, поймавший один плохой релиз, окупает всю программу.

Семейства метрик одним взглядом

Вот весь ландшафт в одной таблице. Читайте её как карту, а не как приговор – каждая последующая статья заполняет строку.

Сигнал качестваШкала и единицыЧто измеряетГде «лжёт» (слепая зона)Нужен эталон
MOS (субъективно)1–5 (ACR)Что реально воспринимают люди – истинаМедленно, дорого; нужна контролируемая панельПанель зрителей
PSNRдецибелы (дБ)«Сырую» попиксельную ошибку vs оригиналИгнорирует, где ошибки; слабо совпадает с глазомПолный оригинал
SSIM0–1Структурное сходство (яркость, контраст, структура)Пропускает часть временны́х и цветовых артефактовПолный оригинал
VMAF0–100Сплав признаков, обученный на MOSПривязан к обучающему контенту; «накручивается» резкостьюПолный оригинал
No-referenceпо-разномуКачество искажённого видео без оригиналаТруднее всего доверять; точность сильно зависит от контентаНе нужен

Табл. 1. Семейства сигналов качества. MOS – истина; остальные – прокси для неё, у каждого названа слепая зона. Всегда сопровождайте метрику её схемой эталона и моделью.

Таблица делает позицию раздела видимой. Нет единственной «лучшей» метрики – есть правильная метрика для задачи, читаемая с учётом её слепой зоны и проверяемая по глазу. Эта позиция и отличает что метрика может и не может сказать от маркетингового заявления, будто одно число решает всё.

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

Фора Софт строит видеопродукты с 2005 года – стриминг, WebRTC-видеозвонки, OTT, онлайн-обучение, телемедицину и видеонаблюдение, – и каждый из них живёт или умирает на доставленном качестве. Измерение – это то, как мы держим обещания, которые даёт работа по кодированию и стримингу: выбираем кодеры, сравнивая их «яблоки к яблокам», задаём per-title цели качества, закрываем релизы quality-gate, чтобы регрессия не дошла до зрителя, и отчитываемся о доставленном качестве перед клиентами с приложенным методом. Мы отвечаем не на вопрос «выглядит ли нормально?», а на «какое число, при каких условиях и где оно может ввести в заблуждение?». Наши собственные бенчмарк-данные, опубликованные в Блоке 7 этого раздела, существуют, чтобы вы могли проверить наш метод, а не верить на слово.

Главное

  • Измерение превращает «выглядит нормально» в воспроизводимое, масштабируемое, сопоставимое число.
  • Субъективный тест (MOS) – это истина; объективные метрики – прокси для неё.
  • Каждая объективная метрика проверяется по людям – при расхождении прав глаз.
  • Full-reference метрикам нужен оригинал; эфир и UGC – это no-reference.
  • Одно итоговое число прячет плохие кадры – всегда проверяйте пулинг и контент.
  • Программа измерения решает четыре задачи: сравнить, задать цель, поймать регрессии, доказать качество.

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

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

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