Способы сжатия видео

Способы сжатия видео

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

В зависимости от от того, насколько популярен стандарт и открыт для сторонних разработчиков количество реализованных кодеков может серьёзно различаться. Например, QuickTime — это проприетарный стандарт Apple, и кодек для него только один — разработанный той же Apple. А кодеки, созданные на основе открытого ASP MPEG-4, насчитывается больше десятка. Еще больше количество программных и аппаратных кодеков разработано для MPEG-2

Сжатие видео

Расцвет цифрового видео и телевидения связан с появлением чрезвычайно эффективных способов сжатия. Которые в сотни раз снижают требования к пропускной способности каналов передачи и объему дискового пространства, необходимого для хранения видеоданных. Для хранения минуты несжатого видео в AVI- или DV-формате может при нормальном разрешении картинки понадобиться около гигабайта, что даже по нынешним меркам впечатляет. Та же самая минута, но уже основательно пережатая современным кодеком, занимает 6–10 Мбайт.

Столь кардинальная «усушка и утруска» видео идет по двум основным направлениям. На первом этапе убирается так называемая временная избыточность, возникающая потому, что соседние кадры видеоряда, как правило, не сильно различаются друг от друга. Благодаря тому, что информация многократно повторяется можно переписывать не все кадры подряд. Полностью сохраняются лишь некоторые ключевые кадры, называемые еще Intra, или просто I-кадрами. Для других —Predictable, P-кадров — кодировщик записывает только то, чем они отличаются от предыдущего I-кадра. Возможен и третий тип —Bidirectional, или B-кадры, заимствующие фрагменты у соседей, идущих как перед, так и позади.

Выбор оптимальной частоты появления промежуточных P- и B-кадров имеет очень серьёзное значение для эффективного сжатия. Если их будет мало, то опорные кадры станут походить друг на друга и, соответственно, в поток будет записываться много излишней информации. Если промежуточных кадров будет чересчур много, то изменения по сравнению с I-кадрами будут слишком заметны. И это опять же уменьшит эффективность сжатия. Современные двухпроходные кодеки могут самостоятельно настраивать такого рода параметры на первом проходе, выдавая в результате поток с переменным битрейтом.

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

Почти все ныне используемые стандарты с компрессией предусматривают устранение временной избыточности с применением в той или иной форме компенсации движения. Исключение составляет разве что M-JPEG, который сжимает видео покадровым способом без каких-либо ссылок кадров друг на друга.

Сжатие видео

Сжатие отдельных кадров

Само по себе сжатие отдельных кадров (речь идет об I-кадрах целиком и разностной информации в P- и B-кадрах) осуществляется тремя основными способами:
с помощью DCT (дискретного косинусного преобразования), а также фрактального и вейвлетного методов.

Все три способа объединяет неизбежная потеря качества при кодировании. В меньшей степени это происходит при использовании DCT. Вернее, само по себе дискретное косинусное преобразование не приводит к снижению качества — оно без потерь пре-вращает небольшой фрагмент кадра — 8х8 или 16х16 точек — в набор коэффициентов, которым соответствуют более или менее значимые детали фрагмента. Наименее значимые детали, практически незаметные глазу, при сжатии отбрасываются. Картинку, обработанную таким образом, очень трудно отличить от начальной. Но если хорошо присмотреться и знать, где искать, найти отличия все-таки можно: на некоторых наклонных линиях будут заметны характерные «ступеньки», а при определенных условиях (например, если в кадре яркая вспышка), изображение может «развалиться» на квадраты. Методика сжатия, основанная на DCT, применяется в MPEG-1 и MPEG-2.

MPEG-4 использует механизм компрессии, который отыскивает на изображении контуры и текстуры объектов и работает примерно в пять раз эффективнее, чем упомянутый выше алгоритм — именно благодаря этому DVD-фильм, закодированный в MPEG-2, можно упаковать с помощью MPEG-4 на один CD. При чересчур высоком уровне компрессии на конечном кадре появляются очень заметные дефекты — оно как бы распадается на отдельные квадраты. Фрактальное кодирование, обладающее сходной эффективностью, при чрезмерном сжатии делает картинку нечеткой. Однако не степень сжатия играет ключевую роль в достижении качества. Применяя MPEG-4, можно добиться тех же результатов, что и с эталонным MPEG-2, только со значительно более скромными требованиями к доступному объему носителя или скорости канала.

Курсы видеомонтажа

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *