Термин

Временная избыточность

Короткое определение

Корреляция между последовательными кадрами. Используется motion estimation и inter-prediction – главный источник эффективности видеосжатия.

Temporal redundancy (временна́я избыточность) – факт, что соседние кадры видео выглядят почти одинаково. Говорящая голова чуть-чуть двигается, фон не двигается совсем, футболист бежит по полю, а трава за ним не меняется. Кадр за кадром бо́льшая часть картинки – повторяющаяся информация. Использование этого – главная причина, по которой видео сжимается намного лучше, чем просто тысячи статичных изображений.

Кодеки реализуют это через `inter-prediction` и `motion-estimation`. Вместо хранения полного содержания каждого кадра энкодер описывает его как небольшое изменение относительно одного-двух предыдущих кадров (а с B-кадрами – ещё и следующих). Для большинства блоков он просто говорит «возьми предыдущий кадр, сдвинь этот патч 16×16 на 3 пикселя вправо и 2 пикселя вниз, скопируй сюда». Эта инструкция занимает несколько бит вместо тысяч, нужных для хранения того же патча «с нуля». Полную картинку (`i-frame`) энкодер сохраняет лишь раз в несколько секунд; всё между ними описано как разница.

Следствия для продукта. Статичный контент сжимается отлично – вебинар с говорящей головой комфортно живёт на 1 Mbps в 1080p. Контент с большим количеством движения сжимается плохо – снегопад, искрящаяся поверхность воды, конфетти на сцене разрушают temporal redundancy и требуют в 3–5 раз большего bitrate для приемлемой картинки. Поэтому стриминг спорта в пересчёте на зрителя стабильно дороже, чем скриптовая драма: ничего не равно предыдущему кадру.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.