Что такое BDBR

Если вы уже занимались анализом качества видеокодирования и сравнением разных кодеков, то наверняка использовали кривые зависимости качества от битрейта или RD curves.

RD Curves

Так как по оси X отложены значения битрейта, а ось Y — показатель качества, то верхняя кривая говорит, что этот кодек кодирует с более высоким качеством на том же битрейте. Визуально кривые достаточно близко друг к другу и можно сделать ошибочный вывод, что по качеству они отличаются не сильно. Однако BDBR говорит, что кодеку с зелёной кривой необходимо добавить в среднем 45% битрейта, чтобы достичь качества второго — график RD Curve с посчитанным BDBR.

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

Для этой цели больше подходит «перевёрнутый» график, где по оси X — качество, а Y — необходимый битрейт:

Quality based RD Curves

Такой график визуально соответствует вопросу. Более «высокая» кривая теперь говорит, что этому кодеку недостаточно битрейта, чтобы соответствовать качеству второго.

Хорошо, мы определили, что в точке 90 VMAF красному необходимо 5,15 Мб/с, а зелёному — 9,89 Мб/с. Но этого недостаточно, чтобы понять, насколько один кодек лучше другого. Можно посмотреть разницу на границах и усреднить значения, и до бесконечности продолжать добавлять точки для усреднения общего показателя. Что по сути будет являться отношением площадей под кривыми.

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

Именно это и предложил Йисле Бьёнтегор в 2001 году для сравнения качества кодеков. Технически достаточно 4 точек для этого подхода. В моих тестах используется 10. С одной стороны это точнее. С другой — уменьшается вероятность выбросов между точками при интерполяции найденным полиномом, хотя и не на 100%.

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

Интерпретируется полученное значение непосредственно как коэффициент, на который надо в среднем увеличить (или уменьшить) битрейт, чтобы достичь качества сравниваемого кодека. Например, +45% говорит, что битрейт необходимо увеличивать на 45%. -15% — можно снизить битрейт на 15%, чтобы кодировать с тем же качеством.

Об этом же говорят и рекламные статьи. Если AV1 на 30% лучше, чем HEVC, то здесь утверждается, что можно кодировать с битрейтом на 30% ниже, но с тем же качеством, что и HEVC.

BDBR — относительная метрика. Под капотом можно использовать любые «абсолютные» метрики, как то VMAF, PSNR, SSIM и др. Зависит от конкретных задач и методики оценки. В моих тестах я использую все три и в скором времени планирую добавить SSIMULACRA2 и CIEDE2000 для более полной картины и отлавливания «хакинга» конкретных метрик.

BDBR расшифровывается как Bjontegaard Delta Bitrate.

Фото аватара
dmitry
http://www.vmetrix.tech

Leave a Reply