Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
31
Добавлен:
10.06.2015
Размер:
175.1 Кб
Скачать

3 Базовые технологии сжатия видео Описание алгоритма компрессии

Технология сжатия видео в MPEGраспадается на две части: уменьшение избыточности видеоинформации во временном измерении, основанное на том, что соседние кадры, как правило, отличаются не сильно, и сжатие отдельных изображений.

Для того чтобы удовлетворить противоречивым требованиям и увеличить гибкость алгоритма, рассматривается четыре типа кадров:

  • I-кадры- кадры сжатые независимо от других кадров (I-Intra pictures),

  • P-кадры- сжатые с использованием ссылки на одно изображение (P-Predicted),

  • B-кадры- сжатые с использованием ссылки на два изображения (B-Bidirection),

  • DC-кадры- независимо сжатые с большой потерей качества (используются только при быстром поиске).

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

Рисунок 15.1.  I-кадры - независимо сжатые (I-Intrapictures), P-кадры - сжатые с использованием ссылки на одно изображение (P-Predicted), B-кадры - сжатые с использованием ссылки на два изображения (B-Bidirection)

Частота I-кадроввыбирается в зависимости от требований на время произвольного доступа и надежности потока при передаче через канал с ошибками. СоотношениеP-иB-кадровподбирается, исходя из требований к величине компрессии и ограничений декодера. Как правило, декодированиеB-кадровтребует больше вычислительных мощностей, однако позволяет повысить степень сжатия. Именно варьирование частоты кадров разных типов обеспечивает алгоритму необходимую гибкость и возможность расширения. Понятно, что для того, чтобы распаковатьB-кадр, мы должны уже распаковать те кадры, на которые он ссылается. Поэтому для последовательностиIBBPBBPBBPBBIBBPBBкадры в фильме будут записаны так:0**312645..., где цифры - номера кадров, а звездочкам соответствуют либоВ-кадрыс номерами -1 и -2, если мы находимся в середине потока, либо пустые кадры (ничего), если мы в начале фильма. Подобный формат обладает достаточно большой гибкостью и способен удовлетворять самым различным наборам требований.

Одним из основных понятий при сжатии нескольких изображений является понятие макроблока. При сжатии кадр из цветового пространства RGBпереводится в цветовое пространствоYUV. Каждая из плоскостей сжимаемого изображения (Y, U, V) разделяется на блоки 8x8, с которыми работает ДКП. Причем плоскостиUиV, соответствующие компоненте цветности берутся с разрешением в два раза меньшим (по вертикали и горизонтали), чем исходное изображение. Таким образом, мы сразу получаем сжатие в два раза, пользуясь тем, что глаз человека хуже различает цвет отдельной точки изображения, чем ее яркость (подробнее об этих преобразованиях смотрите в описании алгоритмаJPEG). Блоки 8x8 группируются в макроблоки. Макроблок - это группа из четырех соседних блоков в плоскости яркостной компонентыY(матрица пикселов 16x16 элементов) и два соответствующих им по расположению блока из плоскостей цветностиUиV. Таким образом, кадр разбивается на независимые единицы, несущие полную информацию о части изображения. При этом размер изображения должен быть кратен 16.

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

Алгоритм сжатия отдельных кадров в MPEGпохож на соответствующий алгоритм для статических изображений -JPEG. Если говорить коротко, то сам алгоритм сжатия представляет собой конвейер преобразований. Это дискретное косинусное преобразование исходной матрицы 8x8, квантование матрицы и вытягивание ее в векторv11,v12,v21,v31,v22,...,v88(зигзаг-сканирование), сжатие вектора групповым кодированием и, наконец, сжатие по алгоритму Хаффмана.

Соседние файлы в папке ЛР КГГ(новые лабы)