M ULTIMEDIA Solomeshch Natalya

advertisement
MULTIMEDIA
Solomeshch Natalya
ОБЗОР



Цифровые данные, отображенные в область
преобразования, должны быть декоррелированными
(т.е. разделенными на элементы с минимальной
межкомпонентной зависимостью) и компактными (т.е.
большая часть энергии преобразованных данных
должна быть сконцентрирована в малом числе
значений или коэффициентов преобразования).
Необходимо, чтобы преобразование было обратимым.
Преобразование должно быть эффективным с точки
зрения его вычислимости (малый объем памяти,
возможность реализации в арифметике с
ограниченной точностью вычислений, малое число
арифметических операций в алгоритме и т.д.).
DCT





Y=AXAT
X=ATYA
X-матрица сэмплов
Y-матрица коэффициентов
А-матрица преобразования
ПРИМЕР
ШАБЛОНЫ

Базис DCT 4x4 и 8x8
ПРИМЕР
ПРИМЕР

ВЕЙВЛЕТЫ

Процесс двухмерного вейвлетного разложения
СКАЛЯРНЫЙ КВАНТОВАТЕЛЬ
ВЕКТОРНОЕ КВАНТОВАНИЕ




Разделить исходное изображения на области (например, блоки
пикселов размером М х N).
Выбрать в кодовой книге вектор, максимально близкий к текущей
области.
Переслать декодеру индекс, идентифицирующий выбранный вектор.
На стороне декодера реконструировать приближенную копию
области, используя выбранный вектор.
ПЕРЕУПОРЯДОЧЕНИЕ И
КОДИРОВАНИЕ НУЛЕЙ

Распределение коэффициентов
КОДИРОВАНИЕ СЕРИЯ-ЗНАЧЕНИЕ
КОДЫ ХАФФМАНА
Построение дерева Хаффмана. Чтобы построить таблицу кодов Хаффмана для
этого множества элементов, следует совершить итеративную процедуру
1. упорядочить элементы по возрастанию вероятностей;
объединить два элемента с наименьшими вероятностями в один узел и
2.присвоить этому узлу суммарную вероятность этих элементов;
3. переупорядочить оставшиеся элементы и узлы по возрастанию их
вероятностей и повторить шаг 2.
Процедура повторяется до тех пор, пока не останется только один «корень»,
содержащий все остальные узлы и элементы.
КОДЫ ХАФФМАНА







Исходный список: Исходные элементы обозначены квадратами.
Векторы (-2) и (+2) имеют наименьшие вероятности и являются
первыми кандидатами на слияние в узел А.
Шаг 1:
Созданный новый узел А (показан кружком) имеет
вероятность 0,2 (сумма вероятностей (-2) и (+2)). Теперь имеется три
элемента с вероятностью 0,2. Выбираем векторы (-1) н (+1) и
объединяем их в один узел В.
Шаг 2:
Узел А имеет теперь наименьшую вероятность (0,2),
за ним следует узел В и вектор (0). Сливаем А и В в один узел С.
Шаг 3:
Узел С и вектор (0) сливаются в узел D.
Конечное дерево: Все элементы (векторы) встроены в двоичное
дерево, состоящее из пяти элементов и четырех узлов. Каждый из
элементов называется листом дерева.
КОДИРОВАНИЕ ХАФФМАНА
С ПРЕДВАРИТЕЛЬНЫМИ
ВЫЧИСЛЕНИЯМИ
Коды VLC для коэффициентов
преобразования в MPEG-4 Video
(TCOEF) (приведены все коды <9 бит).
Коды VLC для разностей
векторов движения в MPEG-4
РАЗНОСТЬ ВЕКТОРОВ ДВИЖЕНИЯ
MVD
АРИФМЕТИЧЕСКОЕ КОДИРОВАНИЕ
АРИФМЕТИЧЕСКОЕ КОДИРОВАНИЕ
ГИБРИДНАЯ МОДЕЛЬ DPCM/DCT
ВИДЕОКОДЕКА

ПОТОК ДАННЫХ КОДЕРА









Имеется два основных пути прохождения данных в кодере: слева направо
(кодирование) и справа налево (реконструкция). Поток кодирования состоит в
следующем.
Входной видеокадр Fn подается на вход кодера и обрабатывается там
макроблоками (соответствующими областям из 16 х 16 сэмплов яркости и
хроматичности).
Кадр Fn сравнивается с ссылочным кадром, например с ранее
закодированным кадром Ff'_j. Функция оценки движения находит в Flt_l (или
в интерполированной по подсэмплам версии кадра ) область 16 х 16, которая
больше других «похожа» на текущий макроблок в F„ (при этом используется
некоторый критерий схожести макроблоков). Смещение текущего макроблока
по отношению к положению выбранного ссылочного макроблока записывается
в вектор движения MV.
На основе выбранного вектора движения VM строится прогноз
компенсированного движения Р (область 16 х 16, выбранная функцией оценки
движения).
Макроблок Р вычитается из текущего макроблока, и их разность D называется
остаточным макроблоком.
Макроблок D преобразуется с помощью DCT. Обычно макроблок D делится на
подблоки 8x8 или 4 х 4, и каждый подблок преобразуется отдельно.
Каждый подблок квантуется (X).
Для коэффициентов DCT всех подблоков делается переупорядочение и
результат кодируется символами «серия-значение».
Коэффициенты, векторы движения и связанные с ними информационные
заголовки каждого макроблока кодируются энтропийным кодером для
получения выходного сжатого битового потока.
ПОТОК ДАННЫХ ДЕКОДЕРА





Сжатый поток битов декодируется энтропийным
декодером для извлечения из него коэффициентов
преобразования, векторов движения и заголовков
каждого макроблока.
Обращается кодирование «серия-значение», и
делается обычное упорядочение коэффициентов. В
результате получается квантованный
преобразованный макроблок X.
Макроблок деквантуется, и к результату применяется
обратное преобразование DCT, что дает остаточный
макроблок D'.
Декодированный вектор движения используется для
нахождения позиции области 16 х 16 на предыдущем
(ссылочном) кадре F`n_1 копия которого хранится
декодером. Эта область становится прогнозом с
компенсацией движения Р.
Макроблок Р прибавляется к D', и получается
восстановленный макроблок, который сохраняется на
своей позиции на декодированном кадре F,'.
Download