Термин
DPB (Decoded Picture Buffer)
Набор reference-кадров, которые декодер держит в памяти для будущей prediction. Профили ограничивают размер DPB.
DPB – Decoded Picture Buffer – область памяти внутри декодера, в которой хранятся недавно декодированные кадры, чтобы будущие кадры могли на них ссылаться. Когда P-кадр говорит «моё содержимое в основном то же, что в кадре 200 мс назад, чуть сдвинутом», декодеру нужен этот более старый кадр всё ещё в памяти, чтобы реконструировать текущий. DPB – где эти reference-кадры живут. Современные кодеки разрешают одновременно до 16 кадров в DPB, и энкодер свободно выбирает, какие держать, а какие сбрасывать.
Зачем вообще об этом думать: на размер DPB есть жёсткое ограничение, задаваемое профилем и уровнем кодека. H.264 Level 4.1 (типичная настройка для 1080p) допускает DPB из 4 reference-кадров на 1080p; HEVC Level 5.1 – больше; у AV1 свои ограничения. Превышение лимита DPB означает, что декодер не справится; энкодер должен это учитывать при планировании reference-структуры. Это значимое ограничение, потому что больше reference-кадров обычно означает лучшее сжатие – но profile и level кодека ограничивают, сколько можно использовать.
Для продуктовой команды DPB – невидимая сантехника, всплывающая в ошибках совместимости. Типичный симптом: видео, закодированное с уровнем выше, чем поддерживает целевое устройство – скажем HEVC Level 6.0 – отказывается играть на телефоне или smart-TV, застрявшем на Level 5.1. Энкодер использовал больше reference-кадров, чем умещается в DPB устройства. Лечение: перекодировать с ограничением уровня под то, что реально поддерживает ваша аудитория (большинство энкодеров принимают параметр `-level`). Для массового 4K-стриминга HEVC Level 5.1 / AV1 Level 5.1 / VVC Level 5.1 покрывают практически все современные устройства.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.