E N D
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 Коды VLC для коэффициентов преобразования в MPEG-4 Video (TCOEF) (приведены все коды <9 бит).
Гибридная модель 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,'.