ВУЗ:
Составители:
Рубрика:
7. Групповое кодирование.
8. Кодирование Хаффмана.
При декодировании весь конвейер повторяется для обратных преобразований, начиная с конца.
6.3.2.2. Улучшение схемы алгоритма сжатия видеоданных
Существует несколько путей увеличения степени сжатия при применении общей схемы компрессии ви-
деоинформации.
Использование векторов смещений блоков. Простейший способ учитывать подобие соседних кадров – это
вычитать каждый блок сжимаемого кадра из соответствующего блока предыдущего.
Однако более гибким является алгоритм поиска векторов, на которые сдвинулись блоки текущего кадра по
отношению к предыдущему. Для каждого блока в изображении находится блок, близкий по некоторой метрике
(например, по сумме квадратов разности пикселов), в предыдущем кадре в некоторой окрестности текущего
положения блока (рис. 6.1). Если минимальное расстояние по выбранной метрике с блоками в предыдущем
кадре больше выбранного порога, блок сжимается независимо [3].
Рис. 6.1. Схема использования векторов смещений блоков
Таким образом, вместе с каждым блоком в поток теперь сохраняются координаты смещения максимально
похожего блока в предыдущем I- или Р-кадре, либо признак того, что данные сжаты независимо. Эти координа-
ты задают вектор смещения блока. В ситуациях, когда камера наезжает на объект или даёт панораму, использо-
вание векторов смещений блоков позволяет значительно уменьшить амплитуду разности кадров и, как следст-
вие, значительно поднять степень сжатия.
Анализ реальных фильмов показывает, что часто блок сдвигается не на кратное число пикселов, а, напри-
мер, на 10,4 пиксела (камера быстро движется вправо, план съёмки сдвигается равномерно и проходит полный
кадр размером 352 × 240 за 1,35 с). При этом оказывается, что для повышения степени сжатия выгодно строить
четыре области поиска векторов смещений: исходную, сдвинутую на полпиксела по горизонтали, сдвинутую на
полпиксела по вертикали и сдвинутую на полпиксела по горизонтали и по вертикали (по диагонали), которые
строятся с помощью достаточно быстрых алгоритмов билинейной или кусочно-линейной аппроксимации. Этот
приём также позволяет уменьшить разность между блоками и повысить степень сжатия при минимальной до-
полнительной информации, которую надо сохранять в файл (плюс 2 бита на каждый блок). Правда,
строить аппроксимированные блоки придётся и при декомпрессии, однако это сравнительно дешёвая по време-
ни операция, которая весьма незначительно увеличивает общее время декомпрессии.
Возможности по распараллеливанию работы алгоритма. Анализ обобщённой схемы алгоритма сжатия
видеоданных позволяет заметить, что он сравнительно легко распараллеливается. Изображение 320 × 288 со-
держит 330 макроблоков, которые можно кодировать и декодировать независимо. Каждый макроблок, в свою
очередь, содержит 6 блоков данных для ДКП. Распараллелить ДКП очень важно, так как, не считая поиска век-
торов смещения, это самая медленная операция. Заметим также, что остальные преобразования легко конвейе-
ризуются. В результате получается параллельно-конвейерная схема обработки потока видеоданных.
Возможно распараллелить обработку различных кадров, но данный шаг сопряжен со сложностями. Как
правило, компрессор строится таким образом, чтобы после сжатия изображение подвергалось обратным преоб-
разованиям. Таким образом, формируется кадр с потерями, а остальные кадры архивируются отталкиваясь от
него. Это позволяет не накапливать ошибки, получаемые ещё при квантовании. Таким образом, если на экране
между кадрами наблюдались большие изменения и качество изображения пришлось понизить, то при стабили-
зации изображения качество быстро повышается практически до качества исходного видеоряда. Неприятный
эффект, порождаемый этим приёмом, заключается в том, что появляется мерцание отдельных точек (или облас-
тей) изображения, значение цвета в которых округляется то в большую, то в меньшую сторону.
При распаковке возможности по параллельной обработке различных кадров достаточно ограничены, по-
скольку велика зависимость между кадрами в потоке (велик процент Р- и В-кадров).
Найденный
подобный блок
Сжимаемое
изображение
Окрестность
блока в пред.
кадре
Блок, для которого
мы ищем похожий
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »