- •1.1. Основные понятия
- •1.2. Понятие контекстного кодирования
- •1.3. Обзор методов цифровой видеокомпрессии
- •1.3.1. Общие идеи
- •1.3.2. Motion JPEG
- •1.3.4. MPEG-2
- •1.3.5. MPEG-4
- •1.4. Методы компенсации движения
- •1.4.1. Общие идеи
- •1.4.2. Полный перебор
- •1.4.3. Перебор соседних блоков
- •1.4.4. Трехшаговый алгоритм Koga и др.
- •1.4.5. Алгоритмы diamond search и cross-diamond search
- •1.5. Выводы
- •2. Алгоритм видеокомпрессии
- •2.1. Общая схема
- •2.2. Компенсация движения
- •2.3. Кодирование векторов движения
- •2.4. Уточняющее изображение
- •2.5. Кодирование цветоразностной информации
- •2.6. Вывод информации в битовый поток
- •3. Тестирование алгоритма
- •4. Оптимизация вычислений
2. Алгоритм видеокомпрессии
кадр, а например, на группу кадров; при этом у кодека была бы возможность оптимальным образом распределять битовые затраты внутри группы кадров.
2.5. Кодирование цветоразностной информации
Все вышеописанные действия для алгоритма видеокомпрессии относились к сжатию самой важной части данных – яркостному каналу (Y). Для сжатия цветоразностных каналов (U и V) была применена простейшая, но малоэффективная схема независимого покадрового сжатия изображения. Эти каналы, предварительно прореженные (так как человеческий глаз слабо чувствителен к цветоразностным компонентам и не заметит разницы между полным и прореженным каналом), сжимаются алгоритмом SPIHT с фиксированными битовыми затратами.
Более эффективной была бы схема, аналогичная схеме с компенсацией движения, примененной для сжатия Y-канала, но их можно кодировать значительно более грубо, то есть, во-первых, с прореживанием, а во-вторых, использовать менее точный метод компенсации движения.
2.6. Вывод информации в битовый поток
Рассмотрим вопросы организации закодированных данных в битовом потоке в пределах одного сжатого кадра.
После кодирования P-кадра получаются следующие двоичные данные, подлежащие выводу в поток:
–векторы движения {ri};
–флаги участия векторов движения в контекстном предсказании {fi };
–уточняющее изображение RY для Y-канала;
–изображение RU для U-канала;
–изображение RV для V-канала;
–номер кадра C .
Все эти данные упаковываются в один двоичный блок. В начале блока находится заголовок фиксированной длины (24 байта), в котором указаны длины всех массивов и номер кадра C . Далее идут «склеенные» друг с другом блоки данных без каких-либо интервалов между ними (см. рис. 19).
41
2. Алгоритм видеокомпрессии
{ri} {fi} |
RY RU RV |
Lr Lf LRY LRU LRV C |
|
Рис. 19. Упакованный P-кадр
Схема упаковки I-кадра и формат его заголовка аналогичны рассмотренным, за исключением того, что в заголовке используются только поля LRY (размер RY в байтах), LRU (размер RU в байтах), LRV (размер RV в байтах) и C , а поля Lr (длина {ri }) и Lf (длина {fi }) заполняются нулями (векторы движения и флаги для
контекстного предсказания в I-кадре отсутствуют); соответственно, в поле данных сразу после заголовка записывается массив RY , затем RU и RV .
Упакованный блок данных с заголовком подвергается инкапсуляции в поток данных более высокого уровня, который может быть любым, например, MPEG ES (elementary stream), Microsoft ASF, MOV и т.д. В этом потоке хранится общая информация о видеоданных: частота кадров, разрешение, тип цветового пространства. При использовании стандартных контейнеров MPEG поток типа ES упаковывается еще раз в контейнер более высокого уровня: MPEG TS (transport stream) или MPEG PS (program stream). Контейнер MPEG TS предназначен для потокового вещания по сетям передачи данных, а MPEG PS используется в основном для хранения информации в файлах.
2.7.Выводы
Вглаве 2 дано общее представление об устройстве предложенного алгоритма сжатия видеопоследовательности, подробно рассмотрены вопросы его реализации,
атакже приведены некоторые соображения по дальнейшему развитию кодека.
42
3. Тестирование алгоритма
3. Тестирование алгоритма
3.1. Общая схема тестирования
Для тестирования алгоритма были выбраны две стандартные 150-кадровых видеопоследовательности с разрешением CIF (352×224 пиксела) – Flower Garden и Tennis. Тестирование алгоритма видеокомпрессии на первой последовательности позволяет выяснить качество работы компенсации движения при монотонном перемещении сложной, насыщенной высокими частотами (цветочные клумбы) сцены.
Рис. 20. Кадр из последовательности Flower Garden
Вторая последовательность содержит быстро движущийся теннисный шарик, который сложно компенсировать (в этой диссертационной работе последовательность Tennis использовалась, в частности, для демонстрации неудачной компенсации на рис. 10, а исходные кадры из этой последовательности показаны на рис. 1); кроме того, в ней присутствуют «наезды» камеры и высокочастотный задний план, а также происходит смена сцены. Перед тестированием эти последовательности преобразовывались из цветных (YUV) в полутоновые, то есть учитывался только Y-канал, а цветоразностные каналы U и V не кодировались.
Результаты тестирования видеокодека и его сравнения со стандартным кодеком MPEG-2 [23] показаны на серии графиков ниже. Графики построены при разных битрейтах: 550, 620, 720, 830, 980, 1160, 1310, 1500 кбит/с. Мерой качества служит пиковое отношение сигнала к шуму PSNR (точнее, Y-PSNR – по яркостному каналу), являющееся логарифмической функцией MSE:
43