Найти в Дзене
Sandrix

Использование B-кадров в качестве опорных кадров

При кодировании видео использование B-кадров в качестве опорных (B-frames as reference) — это часть процесса сжатия, который позволяет еще больше уменьшить объем видеофайла за счет использования межкадрового предсказания. В обычной ситуации B-кадры сами зависят от соседних I-кадров (ключевых кадров) или P-кадров (предсказанных кадров), но когда B-кадры используются как опорные, они также могут стать основой для предсказания других кадров в видеопоследовательности и повысить эффективность сжатия. Однако это увеличивает сложность декодирования, так как декодер должен обрабатывать не только информацию из соседних P-кадров, но и учитывать предсказания из B-кадров, что требует дополнительных вычислительных ресурсов. Использование опорных B-кадров положительно влияет на качество изображения при кодировании. Хотя влияние параметра на качество может быть незначительным, его эффективность возрастает с увеличением количества B-кадров. Представленные в статье тесты осуществлялись кодировщиком NV
Оглавление

При кодировании видео использование B-кадров в качестве опорных (B-frames as reference) — это часть процесса сжатия, который позволяет еще больше уменьшить объем видеофайла за счет использования межкадрового предсказания. В обычной ситуации B-кадры сами зависят от соседних I-кадров (ключевых кадров) или P-кадров (предсказанных кадров), но когда B-кадры используются как опорные, они также могут стать основой для предсказания других кадров в видеопоследовательности и повысить эффективность сжатия.

Однако это увеличивает сложность декодирования, так как декодер должен обрабатывать не только информацию из соседних P-кадров, но и учитывать предсказания из B-кадров, что требует дополнительных вычислительных ресурсов.

Использование опорных B-кадров положительно влияет на качество изображения при кодировании. Хотя влияние параметра на качество может быть незначительным, его эффективность возрастает с увеличением количества B-кадров.

Представленные в статье тесты осуществлялись кодировщиком NVENC, но тесты также проводились на Intel Quick Sync, где разница в параметрах была примерно одинаковой.

Режимы использования B-кадров

Существует три режима использования B-кадров в качестве опорных:

  • Disabled (Отключено) — B-кадры не используются в качестве опорных. Этот режим установлен по умолчанию.
Желтые стрелки указывают на опорные кадры. Только P-кадры (синего цвета)
Желтые стрелки указывают на опорные кадры. Только P-кадры (синего цвета)
  • Middle (Средний) — это означает, что среди всех B-кадров, присутствующих в структуре GOP, лишь половина из них будет выполнять роль опорных для других кадров.
1 P-кадр (синий цвет) и 2 B-кадра (зеленый)
1 P-кадр (синий цвет) и 2 B-кадра (зеленый)

Each (Каждый) — каждый B-кадр будет использоваться в качестве опорного.

P-кадры и каждый B-кадр
P-кадры и каждый B-кадр

Сценарии использования

Отключение опорных кадров (режим Disabled) негативно влияет на качество с повышением кол-ва B-кадров, так как увеличивается расстояние до ссылочных P и I-кадров. Этот режим идеально подходит при использовании 1 B-кадра.

Объективные тесты VMAF. Больше значения - Лучше качество
Объективные тесты VMAF. Больше значения - Лучше качество

Middle — это наиболее эффективный и универсальный режим. Кодировщик автоматически определяет наиболее "полезные" B-кадры, которые можно использовать в качестве опорных. Следует использовать в большинстве случаев, вне зависимости от кол-ва B-кадров.

-6

Each — данный режим актуален при использовании до 3 B-кадров. Использование каждого B-кадра в качестве опорного плохо подходит для динамичного контента, так как они являются самыми сжатыми кадрами и могут содержать устаревшие данные или ошибки.

-7

Заключение

Использование B-кадров в качестве опорных помогает улучшить сжатие видео, однако их большое количество может усложнить декодирование и негативно повлиять на качество для динамичного контента. Выбор оптимального режима зависит от особенностей контента и ресурсов системы. Обычно рекомендуется использовать 2 B-кадра, поэтому наиболее оптимальным сценарием можно назвать использование только половины B-кадров (режим Middle) в качестве опорных.