MPEG кодирование видео

Mpeg кодирование видео

Если бы вы записывали фильм в несжатом виде, то файл занял бы объем свыше 100 Гбайт. Стандарт MPEG-2 позволяет значительно уменьшить размер этого файла. Так, средний кинофильм может уместиться на одном DVD-диске емкостью 4,7 Гбайт. MPEG-кодировщики используют два основных принципа уменьшения количества данных: вместо того чтобы записывать фильм  как сумму кадров, кодировщик пытается удержать лишь различия между кадрами, поскольку два соседних кадра, как правило, очень похожи. Также кодировщики используют особенности человеческого зрения: информацию, которую глаз человека не воспринимает, кодировщик попросту отбрасывает. Чтобы применять данный метод, видеопоток структурируется по иерархическому методу.

Иерархия в MPEG: от видео к пикселю

Последовательность видеокадров содержит в заголовке общую информацию о фильме (размер, частоту кадров). Некоторое количество кадров составляет группу кадров (Group of Pictures). В ней находится изображение. Оно описывает положение кадра в GOP. Макроблок имеет размер 16х16 пикселей и состоит из различных блоков. Они представляют собой самый нижний уровень и содержат соответственно 8х8 (64) значений параметров яркости и цвета.

Центральный элемент: группа кадров

Первый уровень иерархии последовательности видеокадров называется группой кадров, которая состоит из 10-15 отдельных кадров (фреймов).  Вначале определяется опорный кадр — I-кадр (intra frame). Он несет в себе полную информацию об изображении. В фильме за одну секунду проходит примерно два опорных кадра. Затем осуществляется построение P-кадров (predicted frame). Каждый последующий P-кадр несет в себе информацию об изменении состояния предыдущего кадра. Напоследок восстанавливаются B-кадры (bidirectional predicted frames), количество которых в GOP наибольшее, но объем данных в них наименьший. Они строятся кодировщиком с учетом информации, содержащейся в предыдущих и последующих I- или P кадрах.

Кодирование mpeg

Как сжимается движение

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

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

Каждый макроблок описывает 16х16 пикселей одного участка изображения. В свою очередь он подразделяется еще на несколько блоков, которые отображают яркостные или цветовые характеристики данного макроблока. Эти блоки размером 8х8 пикселей обрабатываются с помощью специальной математической операции. При этом значения яркости и цветности преобразуются в частотные характеристики.  Теперь происходит процедура собственно компрессии, которая называется «квантование»: в связи с тем что человеческий глаз плохо воспринимает высокие частоты спектра, они удаляются; это позволяет уменьшить объем данных. В какой степени произвести квантование для отдельных частот, кодировщик вычисляет при помощи специальной таблицы (матрицы квантования). Он делит частоты на значения, которые находит в таблице, а полученный результат показывает, сколько места может освободить определенная частота. Каждый кодировщик имеет минимум одну матрицу для I-фреймов и одну для P- и B-фреймов. В кадре изменение цвета представляется не полной цветовой гаммой, а лишь ее «кусочками». В большинстве случаев такое различие едва заметно. И лишь в высококонтрастных сценах возникают артефакты, поскольку резкие переходы в пределах одного кадра не могут учитываться в процессе квантования. В таких случаях кодировщик будет воспроизводить лишь разноцветные квадраты, а отдельные детали при этом теряются.
Программа ВидеоМОНТАЖ - видеоредактор с интерфейсом на русском языке

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

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