Безэталонная оценка качества видео для live и UGC

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

Кратко

Безэталонная (no-reference) метрика оценивает, насколько хорошо выглядит видео, имея на входе только само искажённое видео – без чистого оригинала для сравнения. Это единственный вариант для live-трансляции (мастер не доходит до плеера) и для пользовательского контента, UGC (загрузка уже искажена, поэтому чистого оригинала нет нигде). Задача делится на два семейства: битстрим- и параметрические модели, читающие закодированный поток (ITU-T P.1203, P.1204), и пиксельные слепые метрики, смотрящие только на декодированную картинку – от классических NIQE, BRISQUE и VIIDEO до обучаемых VIDEVAL, RAPIQUE, UVQ от Google, FAST-VQA и DOVER. Эти модели полезны, но заметно менее надёжны, чем полноэталонная метрика: лучшие достигают примерно 0,83–0,88 корреляции с оценками людей на том контенте, на котором обучались, и резко проседают на другом – поэтому любую безэталонную оценку нужно подавать как интервал, а не как точку.

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

Большая часть видео, которое сегодня смотрят, не имеет чистого оригинала для сравнения: live-спорт, видеозвонок, камера наблюдения или клип, снятый на телефон и загруженный в соцсеть. Полноэталонные метрики, на которых стоит весь этот раздел – PSNR, SSIM, VMAF – требуют этот оригинал кадр за кадром, поэтому здесь они просто не запускаются. Статья – для инженера стриминга, конференций или платформы, которому нужно поставить число качества на контент без эталона и понять, какую безэталонную метрику взять, насколько ей верить и как развернуть её в проде. Возьмёте не ту модель или назовёте её число без доверительного интервала – и будете оптимизировать сигнал качества, который не отражает того, что реально видит зритель.

Два случая, где нет оригинала для сравнения

Начнём со слова, которое задаёт всю проблему. Полноэталонная метрика требует чистый оригинал – мастер-файл, с которого стартовал энкодер – и оценивает искажённую копию, сравнивая их кадр за кадром. Безэталонная (слепая) метрика получает только искажённое видео и должна оценить качество, не имея с чем сравнивать. (Полная классификация полноэталонных, частично-эталонных и безэталонных схем – в статье полный, частичный и безэталонный – три схемы измерения; здесь речь о безэталонных метриках для двух самых трудных реальных случаев.)

К «отсутствию эталона» эти два случая приходят по-разному. Первый – live. Когда поток с камеры кодируется и стримится в реальном времени, чистый мастер не лежит рядом с плеером, точкой раздачи или зондом мониторинга – сравнивать не с чем, и нередко число нужно выдать за секунды, пока поток ещё идёт. Даже если источник где-то и есть, он не там, где происходит измерение.

Второй – пользовательский контент (UGC): клипы с телефонов, записи экрана и видео с веб-камер, которые люди загружают на платформу. Ловушка тоньше: файл, который можно назвать оригиналом, есть, но он уже искажён. Его сняли на маленькую матрицу, один раз сжали в камере, может быть, смонтировали и пересохранили, а затем загрузили. Инженеры называют это нечистым эталоном (unpristine reference): «мастер», сам по себе полный искажений. Команда YouTube в Google сформулировала следствие прямо – большинство UGC-загрузок нечисты, поэтому эталонные оценки «становятся неточными и противоречивыми» для UGC, ведь одна и та же разница пикселей значит совсем разное в зависимости от того, насколько хороша была загрузка изначально (Wang et al., Rich Features for Perceptual Quality Assessment of UGC Videos, CVPR 2021).

Рис. 1. Два пути к «без эталона». Live: чистый мастер не доходит до точки измерения. UGC: единственный доступный «оригинал» – это загрузка, которая уже искажена (нечистый эталон).

Почему полноэталонные метрики здесь ломаются

Полноэталонная метрика – это машина разностей. VMAF, SSIM и PSNR выравнивают искажённый кадр против чистого и измеряют, насколько они далеки друг от друга; оценка осмысленна ровно настолько, насколько оригинал безупречен. (Что измеряет VMAF и где он ошибается – см. VMAF: объяснение.)

Уберите оригинал – и вычитать не из чего. В live-потоке у плеера нет мастера, поэтому VMAF там вообще нельзя вычислить. Можно посчитать VMAF на этапе кодирования, против источника, который проглотил live-энкодер – это реальное и полезное измерение, – но оно оценивает кодирование, а не доставленную картинку, которую получил зритель; об этом разрыве – в статье связь объективных метрик с QoE.

UGC ломает полноэталонные метрики хуже, потому что метрика запускается, но лжёт. Если вычесть транскодированный клип из его нечистой загрузки, вы измерите лишь качество, потерянное при транскодинге, а не общее качество, которое видит зритель – и, хуже того, наградите энкодер за бережное сохранение блюра, шума и блочности самой загрузки. Бенчмарк 2024 года, построенный именно на нечистых эталонах (BVI-UGC), проверил десять полноэталонных и одиннадцать безэталонных метрик на транскодинге UGC и обнаружил, что все они коррелируют с мнением людей ниже 0,6 – слабо для области, где хорошая полноэталонная метрика берёт 0,9 на чистом контенте. Поэтому безэталонная оценка – это не «полноэталонная без эталона». Это другая, более трудная задача: оценить абсолютное качество по одной только картинке.

Что на самом деле оценивает безэталонная метрика

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

Семейство 1 – битстрим- и параметрические модели

Первое семейство никогда не смотрит на картинку как на пиксели. Оно читает закодированный поток и его метаданные – кодек, разрешение, частоту кадров, битрейт, квантование, типы кадров, потери пакетов – и предсказывает качество по тому, как видео закодировано. Этот подход стандартизирован для стриминга. ITU-T P.1203 (2017) предсказывает сессионную оценку 1–5 и работает в четырёх режимах по объёму доступной информации: от режима 0 (только метаданные – кодек, разрешение, частота кадров, битрейт) до более глубокого доступа к битстриму. Более новое семейство ITU-T P.1204 (2023) расширяет это до 4K тремя вариантами: битстрим-модель (P.1204.3), частично-эталонная пиксельная (P.1204.4) и гибридная безэталонная пиксельная (P.1204.5). Они дёшевы, масштабируются на миллионы потоков и естественны там, где вы владеете энкодером и можете читать поток – это случай продакшен-мониторинга из статьи мониторинг качества в проде. Их слепое пятно – обратная сторона силы: параметры кодирования говорят, что сделало сжатие, но почти ничего – насколько хорош был источник до кодирования; а именно это UGC и портит.

Семейство 2 – пиксельные слепые метрики

Второе семейство смотрит только на декодированные пиксели, как глаз зрителя, и это то, что большинство понимает под «безэталонным качеством видео». У него два поколения.

Старшее поколение построено на статистике естественных сцен (NSS) – на том, что неискажённые естественные изображения и видео подчиняются устойчивым статистическим закономерностям, а блюр, шум и сжатие измеримо их нарушают. Считайте это метрикой, которая запомнила, как выглядит «естественная» статистика видео, и измеряет, насколько ваш клип от неё отклонился. BRISQUE (Mittal, Moorthy & Bovik, IEEE TIP 2012) делает это для одного кадра по локально нормализованной яркости и обучается на оценённых людьми искажениях. NIQE (Mittal, Soundararajan & Bovik, IEEE SPL 2013) использует ту же статистику, но полностью без обучения: он оценивает отклонение картинки от модели, подогнанной к корпусу чистых естественных фото, не требуя ни одной оценки человека. Для видео V-BLIINDS (Saad, Bovik & Charrier, IEEE TIP 2014) добавляет к пространственной NSS модель движения и обучается, а VIIDEO (Mittal, Saad & Bovik, IEEE TIP 2016) работает без обучения, предсказывая качество по внутренним закономерностям естественного видео. Модели без обучения привлекательны тем, что разворачиваются где угодно без размеченных данных, но они же наименее точны на «диком» реальном контенте.

Новое поколение обучаемое: оно тренируется на больших наборах реальных видео, оценённых людьми, и потому ловит искажения, которые ручные признаки упускают. VIDEVAL (Tu, Wang, Birkbeck, Adsumilli & Bovik, IEEE TIP 2021) сливает отобранные 60 из 763 статистических признаков в одну эффективную модель и задал бенчмарк UGC-VQA. RAPIQUE (Tu et al., IEEE OJSP 2021) сочетает признаки статистики сцен с глубокими свёрточными признаками ради скорости. UVQ от Google (CVPR 2021, открыт в 2022) запускает три подсети – по контенту, по искажениям и по сжатию – и сводит их в оценку 1–5 с диагностическим обоснованием, обучаясь на наборе YouTube-UGC. Передний край исследований – трансформеры: FAST-VQA (ECCV 2022) считает эффективно, сэмплируя небольшие «фрагменты» видео вместо каждого пикселя, а DOVER (ICCV 2023) разделяет эстетическое качество UGC и его техническое качество. Эти обучаемые модели – самые точные из доступных, но только на контенте, на котором обучались.

Рис. 2. Полноэталонная метрика вычитает чистый мастер из искажённого кадра. У безэталонной мастера нет: она оценивает качество по одному искажённому видео – либо по битстриму, либо по модели того, как выглядят хорошие пиксели.

Два семейства кратко для сравнения:

СемействоЧто читаетПримеры моделейЧто измеряет хорошоГде ошибается
Битстрим / параметриказакодированный поток и метаданныеITU-T P.1203, P.1204.3, P.1204.5урон сжатия, дёшево и на масштабене видит качество источника до кодека – слабое место UGC
Пиксели – ручные NSSдекодированные пикселиNIQE, BRISQUE, VIIDEO, V-BLIINDSразворачивается почти без размеченных данныхслабы на «диком» UGC; без обучения – хуже всего
Пиксели – обучаемыедекодированные пикселиVIDEVAL, RAPIQUE, UVQ, FAST-VQA, DOVERточнее всех на UGC, похожем на обучениепадают на несовпадающих данных; нужен ваш контент
Рис. 3. Два семейства безэталонных метрик, с примерами моделей и тем, где каждое ошибается. Выбирайте по тому, что можете прочитать – закодированный поток или декодированные пиксели.

Насколько это точно, без прикрас

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

Числа это подтверждают. Точность сообщают через SROCC (ранговую корреляцию Спирмена – насколько метрика ранжирует клипы так же, как люди, где 1,0 – идеально, 0 – случайно) и PLCC (линейную корреляцию Пирсона после подгонки). На одном большом «диком» UGC-наборе вроде LSVQ (около 39 000 клипов; Ying et al., Patch-VQ, CVPR 2021) лучшие обучаемые модели – FAST-VQA и DOVER – достигают примерно 0,83 SROCC, а сильнейшие свежие модели подбираются к 0,88. Хорошо, но не те 0,94+, что берёт настроенная полноэталонная метрика на чистом контенте.

Жёстче – обвал при смене набора данных. Модель, обученная на одном распределении контента и проверенная на другом, резко проседает, потому что обучаемая метрика хороша ровно настолько, насколько видела данные. Кросс-данные для ручных моделей отрезвляют – NIQE около 0,18–0,46 SROCC и BRISQUE около 0,31–0,58 на несовпадающих наборах – и даже глубокие модели теряют, когда тестовый контент отличается от обучающего. Бенчмарк BVI-UGC выше – тот же урок на нечистых эталонах: все проверенные метрики упали ниже 0,6. Практический смысл прямой: модель, проверенная на снятых на телефон соцсетевых клипах, может быть почти бесполезна на записях экрана, видеонаблюдении или медицинском видео – и вы не узнаете об этом, пока не проверите.

Поэтому правило честности – процедурное. Сообщайте SROCC, PLCC и RMSE выбранной модели на контенте, похожем на ваш, по процедуре из статьи валидация метрик по оценкам людей и стандартной статистики ITU-T P.1401, которая подгоняет монотонную логистическую кривую, отображающую метрику на шкалу мнений, и затем сообщает остаточную ошибку. Именно эта остаточная ошибка превращает одно число в интервал.

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

Безэталонная оценка – это интервал, а не точка

Сделаем неопределённость конкретной через арифметику. Допустим, вы проверили безэталонную модель на наборе, похожем на ваш контент, подогнали логистическое отображение P.1401 из её сырого выхода на шкалу мнений 1–5 и измерили остаточный RMSE = 0,42 MOS – реалистичное число для хорошей слепой модели на «диком» видео. RMSE – это типичный зазор между предсказанием модели и реальной оценкой группы людей.

Один клип тогда получает, скажем, предсказанный MOS 3,8. Переведём RMSE в 95%-й интервал обычным способом:

интервал = z × RMSE        (z = 1,96 для 95%)
интервал = 1,96 × 0,42  =  0,82 MOS
оценка   = 3,8 ± 0,82  →  примерно от 3,0 до 4,6

Значит «3,8» честно означает «где-то от 3,0 до 4,6». Теперь сравним два кодирования: клип A предсказывает 3,8, клип B – 4,1. Разница 0,3, заметно внутри интервала 0,82 – их диапазоны сильно пересекаются, поэтому метрика не может их различить. Объявить B победителем – значит принять шум за сигнал; та же дисциплина управляет субъективными и полноэталонными сравнениями в статье отчёт о контроле качества: никогда не венчайте победителя при пересекающихся интервалах.

Рис. 4. Та же арифметика картинкой: интервал ±0,82 вокруг каждой оценки (интервал = 1,96 × RMSE, RMSE = 0,42). Клип A и клип B различаются на 0,3 – внутри интервала, поэтому диапазоны пересекаются и метрика не может выбрать победителя.

Воспроизвести этот расчёт и обернуть в интервал свои оценки можно инструментом разбора безэталонных оценок, идущим со статьёй; флаг --demo печатает ровно этот пример.

Как развернуть безэталонную оценку для live и UGC

Переведём всё это в развёртывание. Важны пять решений.

Выбирайте семейство по тому, где вы сидите. Если вы внутри тракта раздачи и можете читать закодированный поток – своя live- или VOD-раздача – битстрим- или параметрическая модель (P.1203 / P.1204) дёшева, масштабируется и прямо сворачивается в сессионную оценку, как описано в статье метрики на стороне плеера. Если у вас только декодированные пиксели – приём UGC, экран live-мониторинга, регистратор видеонаблюдения – нужна пиксельная слепая метрика.

Уважайте бюджет задержки для live. Считать каждый пиксель каждого кадра в реальном времени редко по карману. Новые обучаемые модели проектируются под это: фрагментное сэмплирование FAST-VQA оценивает горсть мелких участков вместо всего кадра, а битстрим-модели дёшевы по построению. Берите модель, чья стоимость укладывается во время, которое у вас есть до момента, когда нужна оценка.

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

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

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

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

При чём здесь Фора Софт

Фора Софт делает live-видео – конференции, телемедицину, видеонаблюдение и стриминг – с 2005 года, и почти ни у чего из этого нет чистого эталона в точке, где нам нужно измерять. У телемедицинского звонка, у потока с камеры и у загруженного пользователем клипа нет мастера для сравнения, поэтому мы опираемся на безэталонную оценку: битстрим-модель там, где владеем кодированием, и пиксельную слепую метрику там, где есть только картинка – каждую подобрав под контент и сообщая с доверительным интервалом, а не голым числом. Поскольку обучаемые слепые метрики несут смещение своих обучающих данных, мы перепроверяем их против оценок людей на собственном контенте клиента, прежде чем доверить им гейт качества – по датированной, воспроизводимой методике из нашей методологии бенчмарков. Дисциплина та же, что проповедует весь раздел: называйте, что метрика измеряет, и называйте, где она ошибается.

Главное

  • Безэталонные метрики оценивают качество по одному искажённому видео – единственный вариант для live (нет мастера) и UGC (нечистый мастер).
  • Полноэталонные метрики не запускаются на live и вводят в заблуждение на UGC, где меряют лишь потери транскодинга против искажённого оригинала.
  • Два семейства: битстрим/параметрика (P.1203, P.1204) и пиксельные слепые метрики (NIQE, BRISQUE, VIIDEO; VIDEVAL, UVQ, FAST-VQA, DOVER).
  • Лучшие обучаемые модели берут около 0,83–0,88 SROCC на знакомом контенте и обваливаются на новом; сообщайте точность на контенте, похожем на ваш.
  • Слепая оценка – это интервал, а не точка: подавайте её с RMSE модели и не венчайте победителя A/B при пересекающихся интервалах.
  • Подберите модель под контент, перепроверьте на своих клипах, сэмплируйте на масштабе и сочетайте оценку картинки с QoE доставки.

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

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

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