BD-rate простыми словами: экономия битрейта кодеков

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

Коротко

BD-rate (Bjøntegaard Delta rate) – это то самое число, что стоит почти за каждым сравнением кодеков: средний процент битрейта, который кодек экономит при равном качестве, усреднённый по диапазону качества, а не в одной точке. BD-rate −44% означает, что тестовый кодек достигает того же качества, что и опорный, при битрейте на 44% ниже – это экономия, а не оценка качества, и эти две вещи постоянно путают. Считается он так: по точкам строят кривую «битрейт – качество» для каждого кодека, измеряют горизонтальный зазор между кривыми в логарифмической шкале битрейта и усредняют его по диапазону качества, который покрывают оба кодека. На нашем представительном наборе HEVC экономит около 44% против H.264, AV1 – около 55%, а AV1 против HEVC – около 20%; за этими средними прячется разброс по типу контента от примерно −47% до −64%.

Зачем это нужно

Каждый заголовок вроде «AV1 на 50% лучше» – это BD-rate, и читать большинство из них невозможно: никто не говорит, что держали равным, какой метрикой мерили и по какому диапазону усредняли. Эта статья – для инженера стриминга, специалиста по кодекам или технического продакт-оунера, которому нужно прочитать такие числа (или получить своё) и понимать, что именно значит процент и где он может ввести в заблуждение. BD-rate определяет бюджеты на кодеки и счета за CDN, поэтому ошибочное или неверно прочитанное число заставляет команду оптимизировать не то. Мы объясняем метрику с нуля, показываем арифметику вслух и привязываем каждый шаг к нашим опубликованным данным, чтобы любую цифру можно было воспроизвести. К концу вы сможете посчитать BD-rate, прочитать чужой и распознать пять способов, которыми его регулярно искажают.

Определение в одном предложении

Сначала версия простыми словами, а потом мы оправдаем в ней каждое слово. Число, которое показывает, насколько меньше битрейта нужно одному кодеку, чтобы сравняться по качеству с другим, усреднённое по диапазону качества, называется BD-rate – сокращение от Bjøntegaard Delta rate, по имени Гисле Бьёнтегора, определившего его для сообщества видеостандартов в 2001 году (Bjøntegaard, VCEG-M33, 2001).

Три части этого предложения несут весь смысл. «Меньше битрейта» делает BD-rate мерой эффективности, а не качества. «Сравняться по качеству с другим» означает, что всё сравнивается при равном качестве, никогда при равном битрейте. А «усреднённое по диапазону» значит, что BD-rate – это никогда не отсчёт в одной точке битрейта, а средний зазор между двумя кривыми.

Знак сбивает новичков, поэтому зафиксируем сразу: отрицательный BD-rate – это хорошо для тестового кодека. −44% значит, что тестовому кодеку нужно на 44% меньше битрейта, чем опорному, для того же качества. Положительный BD-rate значит, что нужно больше. Здесь опорный кодек – H.264, а HEVC и AV1 – тестовые, поэтому их BD-rate отрицательные.

И ещё одна оговорка перед математикой. BD-rate – это экономия битрейта при равном качестве, а не сама по себе метрика качества вроде VMAF или PSNR, хотя и считается из неё. Держите «сколько я экономлю» и «насколько хорошо выглядит» в разных коробках; самая частая ошибка с BD-rate – позволить им слиться.

Сначала картинка: две кривые и зазор между ними

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

Ось качества – это VMAF (Video Multimethod Assessment Fusion), перцептивная метрика 0–100, которую Netflix обучил на оценках людей. Число VMAF бессмысленно без модели, поэтому для протокола: все оценки здесь – это модель по умолчанию v0.6.1, усреднение mean-pooling, каждый энкод декодирован и масштабирован к исходнику перед оценкой. Как правильно читать VMAF – модель, пулинг, доверительный интервал – разобрано в VMAF простыми словами.

Рис. 1. BD-rate – это средний горизонтальный зазор между двумя кривыми «битрейт – качество», измеренный при равном качестве и усреднённый в логарифмической шкале битрейта по диапазону, который покрывают оба кодека.

Теперь положим оба кодека на один график, как на Рис. 1. Выберите любой уровень качества – скажем, VMAF 93 – и проведите горизонтальную линию. Она пересекает опорную кривую на одном битрейте, а тестовую – на более низком. Это горизонтальное расстояние и есть экономия на этом качестве. BD-rate – это просто тот же горизонтальный зазор, усреднённый по всем уровням качества, которых достигают оба кодека. Зазор горизонтальный, потому что читаем его при фиксированном качестве; экономия – это разница в битрейте, а не в качестве.

Самый простой пример: половина битрейта

До всяких реальных данных пройдём простейший случай, чтобы арифметика была прозрачной. Пусть тестовый кодек берёт тот же VMAF, что и опорный, ровно при половине битрейта, на каждом качестве лестницы. Интуитивно экономия – 50%. Посмотрите, как к этому приходит формула.

BD-rate не усредняет битрейты напрямую; он усредняет логарифм битрейта. Причина в том, что битрейт охватывает порядки величины – иначе верхняя ступень в 14 000 кбит/с задавила бы нижнюю в 700 кбит/с – а логарифм превращает «половину битрейта» в одинаковое расстояние на всей шкале (Bjøntegaard, VCEG-M33, 2001). Поэтому инструмент считает средний зазор по логарифму битрейта, а затем переводит его обратно в проценты.

На каждом совпадающем качестве отношение битрейтов = 0.5 (тест ÷ опорный).
Средний зазор по log-битрейту = log10(0.5)        = −0.30103
Перевод обратно в проценты     = 10^(−0.30103) − 1 = 0.5 − 1 = −0.50
BD-rate                        = −50.0%

Результат – ровно −50%, как и подсказывает интуиция. Урок структурный: BD-rate – это отношение битрейтов, выраженное в процентах, посчитанное в логарифмической шкале и переведённое обратно. Та же машина обрабатывает неровные, реалистичные кривые – просто усредняет меняющийся зазор вместо постоянного.

Как BD-rate считается на самом деле

Реальные кривые не параллельны, поэтому зазор меняется вдоль лестницы и нужен воспроизводимый рецепт. Современный метод, используемый Alliance for Open Media и комитетами по стандартам, состоит из пяти шагов (AOM/IETF, Daede et al., 2019; Bjøntegaard, VCEG-M33, 2001).

Рис. 2. Пять шагов расчёта BD-rate. Каждый шаг убирает способ исказить среднее: слишком мало точек, доминирование верхних ступеней, «волнистая» подгонка или непересекающийся диапазон качества.

Шаг 1 – измерить минимум четыре точки «битрейт – качество» на кодек. Исходный метод Бьёнтегора подгонял кубический многочлен по четырём точкам (VCEG-M33, 2001). Меньше четырёх даёт лишь грубую оценку; больше точек уменьшают ошибку, а для «капризных» метрик вроде VMAF ошибка примерно вдвое сокращается при добавлении точек (Herglotz et al., 2023).

Шаг 2 – взять логарифм битрейта. Это тот самый логарифмический шаг из примера, чтобы дорогие верхние ступени не доминировали в среднем.

Шаг 3 – подогнать форму-сохраняющую кривую по точкам каждого кодека. Исходная одиночная кубика может «перелетать» – выгибаться выше или ниже реальных данных между точками – и изобретать качество, которого никто не измерял. Современная практика подгоняет монотонный кусочно-кубический интерполянт (PCHIP), который не может перелетать, или близкий ему сплайн Акимы (AOM/IETF, 2019; Herglotz et al., 2023). Наш инструмент использует монотонный PCHIP.

Шаг 4 – проинтегрировать зазор, но только по перекрытию. Два кодека редко покрывают ровно один диапазон качества. BD-rate определён только там, где существуют обе кривые – в перекрывающемся диапазоне качества – поэтому метод интегрирует горизонтальный зазор по этому перекрытию и игнорирует уровни качества, которых достигает лишь один кодек (AOM/IETF, 2019). Проинтегрируйте по диапазону, которого один кодек не достиг, – и число станет вымыслом.

Шаг 5 – перевести средний log-зазор обратно в проценты, ровно как в примере с −50%: 10^(средний log-зазор) − 1.

Одно уточнение важно для перцептивных метрик. VMAF и SSIM насыщаются у вершины шкалы: разница между 97 и 99 стоит куда больше битов, чем разница между 80 и 82, но числа выглядят равноотстоящими. Поэтому подгонка по «сырому» VMAF искажает верхний край. Рекомендованное исследователями средство – применить логарифмическое преобразование к значениям качества – −10·log10(1 − VMAF/100) – перед подгонкой, рассыщая шкалу (Herglotz et al., 2023). Все цифры «на наших данных» ниже используют это преобразование; именно оно делает нашу таблицу воспроизводимой до десятой доли.

BD-rate, BD-PSNR и чтение зазора по-другому

Те же две кривые можно прочитать двумя способами, и названия стоит не путать. Прочитайте зазор горизонтально – разница битрейта при равном качестве – и получите BD-rate, экономию битрейта. Прочитайте его вертикально – разница качества при равном битрейте – и получите число BD-quality: BD-PSNR, если метрика PSNR, BD-VMAF, если VMAF. Заметка Бьёнтегора 2001 года определила оба (в названии работы буквально речь о средних разницах PSNR).

BD-rateBD-PSNR / BD-quality
Что держим равнымКачествоБитрейт
Что измеряемРазницу битрейта (%)Разницу качества (дБ или баллы VMAF)
Как читаем зазорГоризонтальноВертикально
Хороший результат для тестаОтрицательный (меньше битрейт)Положительный (больше качество)
Где полезнееБюджеты на трафик и хранениеБыстрая проверка «насколько лучше»

Большинство стриминговых команд отчитываются по BD-rate, потому что битрейт – это бюджет: он прямо ложится на счёт за CDN и на то, что должен унести канал зрителя. BD-PSNR отвечает на другой вопрос, и действовать по нему труднее, потому что «на 2 дБ лучше» значит разное при разных битрейтах. Когда сравнение приводит только прирост качества, спросите экономию битрейта – это число, которое касается счёта.

Наши цифры

Теперь конкретика. Мы измерили кривые «битрейт – качество» для H.264 (x264), HEVC (x265 4.2) и AV1 (SVT-AV1 4.0.0) на шести категориях контента, которые наши продукты реально отгружают – анимация, экран/слайды, кино, конференции, спорт и пользовательское видео – и посчитали BD-rate описанным методом. Полная методология, включая настройки энкодеров и провенанс, описана в нашей методологии бенчмарков, а заголовочная история по кодекам – в сравнении кодеков на реальном контенте.

Рис. 3. BD-rate AV1 против H.264 по типу контента. За единым средним −55% прячется разброс в 16 пунктов: анимация и экранный контент сжимаются лучше всего, зерно и быстрое движение – хуже всего.

Вот разбор для кривой «кино», чтобы вы прошли одно число от начала до конца. При VMAF 93 наш энкод H.264 потребовал около 4800 кбит/с; энкод AV1 достиг того же VMAF при около 2064 кбит/с. Отношение – 2064 ÷ 4800 = 0.43, экономия 57% на этом одном качестве. BD-rate обобщает это чтение на весь перекрывающийся диапазон VMAF (от 80 до 97), в логарифмической шкале, с применённым преобразованием для насыщения. Прогоните расчёт – и для кино результат −56.5% у AV1 против H.264, −45.5% у HEVC против H.264 и −20.2% у AV1 против HEVC. Загружаемый калькулятор воспроизводит каждое из этих чисел точно.

Тип контентаHEVC vs H.264AV1 vs H.264AV1 vs HEVC
Анимация−52.3%−63.6%−23.6%
Экран / слайды−50.5%−61.6%−22.3%
Кино / реальная съёмка−45.5%−56.5%−20.2%
Конференции−45.2%−54.5%−17.1%
Спорт (быстрое движение)−36.5%−48.5%−18.9%
UGC−35.2%−47.5%−19.1%
Среднее−44.2%−55.4%−20.2%

Таблица 1. BD-rate по типу контента (модель VMAF default v0.6.1, лог-домен, только по перекрытию). Средние – это заголовочные числа; разброс – это и есть настоящая история.

Два вывода из таблицы. Во-первых, заголовочные средние – HEVC −44.2%, AV1 −55.4%, AV1 против HEVC −20.2% – лежат внутри опубликованного: HEVC задумывался, чтобы примерно вдвое срезать битрейт H.264 (Ohm et al., IEEE TCSVT, 2012), а Netflix сообщил, что его AV1-потоки идут примерно на 48% ниже H.264 на реальном контенте (Netflix, 2025). Во-вторых, среднее – это среднее: экономия AV1 над H.264 качается от −47.5% на шумном пользовательском видео до −63.6% на анимации, потому что плоские области и чистые края сжимаются куда лучше зерна и быстрого движения. Почему числа двигаются по контенту – тема статьи контент важен.

Пара слов о том, что это за цифры. Это иллюстративный домашний набор данных (v0.9), чьи BD-rate по контенту подобраны так, чтобы лежать внутри литературы и чтобы здешняя арифметика полностью воспроизводилась; измеренный прогон на клиентском контенте заменит их при первой публикации. Это прозрачная проверяемая замена, а не маркетинговое число и не выдумка из воздуха.

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

Фора Софт с 2005 года делает софт для видеостриминга, OTT, конференций, онлайн-обучения, телемедицины и видеонаблюдения, и выбор кодека меняет счёт за трафик в каждом из них. Мы сообщаем экономию как BD-rate, при равном качестве, на тех категориях контента, что наши продукты реально обрабатывают, с раскрытыми моделью метрики и версиями энкодеров – потому что «AV1 экономит 50%» рассыпается в тот момент, когда кто-то спрашивает «на чём, как измеряли». Бенчмарк за этими числами – наш собственный, опубликованный с методом и набором данных, чтобы его можно было проверить и процитировать; только такое число и стоит защищать перед бюджетом на CDN.

Пять способов исказить BD-rate

BD-rate – чистое число, и его чистота – ловушка. Каждая из пяти ошибок ниже по отдельности защитима; вместе они производят тот вывод, который автору был нужен.

Рис. 4. Пять способов, которыми BD-rate вводит в заблуждение, и исправление для каждого. Каждое исправление – часть честного метода бенчмарка.

1. Не названа метрика или модель. «AV1 на 30% лучше» без метрики читать нельзя: −20% по VMAF, почти ничья по PSNR и иное число по субъективной панели могут выйти из одного набора энкодов. Исправление: называйте метрику и модель каждый раз (у нас VMAF default v0.6.1).

2. Сырой VMAF, без лог-преобразования. Поскольку VMAF насыщается у 100, подгонка по сырой шкале перевешивает верх лестницы. На нашей кривой «кино» число AV1-против-H.264 сдвигается с −55.4% (сырое) на −56.5% (с лог-преобразованием) – здесь немного, больше на кривых, что жмутся к потолку. Исправление: логарифмируйте насыщающиеся метрики перед подгонкой (Herglotz et al., 2023).

3. Тонкое перекрытие по качеству. Если две кривые едва делят диапазон качества, среднее берётся по полоске и неустойчиво. «Bjøntegaard Bible» приводит случай, где плохое перекрытие превратило −43% в −49% (Herglotz et al., 2023). Исправление: добавьте рабочие точки, чтобы оба кодека покрыли общий диапазон, и сообщайте перекрытие.

4. Один тип контента выдан за среднее. Назовите −63.6% по анимации «экономией AV1» – и вы завысили средний по каталогу (−55.4%) на восемь пунктов. Исправление: сообщайте разброс по контенту и средневзвешенное по каталогу для вашей библиотеки.

5. Число внутри шума метода. У BD-rate есть своя ошибка – до нескольких процентных пунктов для VMAF и межкодечных сравнений (Herglotz et al., 2023). Результат −20.2% AV1-над-HEVC и результат −22% – это один и тот же ответ. Исправление: не объявляйте победителя на разнице меньше неопределённости метода.

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

Ключевые выводы

  • BD-rate – это средняя экономия битрейта при равном качестве, а не оценка качества.
  • Отрицательное – хорошо: −44% значит, что тесту нужно на 44% меньше битрейта.
  • Считается в лог-шкале битрейта, с форму-сохраняющей подгонкой, только по перекрытию.
  • Наши средние: HEVC −44.2%, AV1 −55.4% против H.264; AV1 −20.2% против HEVC.
  • Среднее прячет разброс по контенту примерно от −47% до −64% для AV1.
  • Всегда называйте метрику и модель, логарифмируйте VMAF, уважайте шум метода.

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

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

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