Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Самый новый ММТвО-1-11н.doc
Скачиваний:
120
Добавлен:
01.06.2015
Размер:
3.91 Mб
Скачать

1.7.5. Метод jpeg

Разработанный в 1990 году метод JPEG осуществляет сжатие цветных неподвижных изображений с непрерывно меняющимся цветом (например, фотографий) с потерями. Потери возникают потому, что для достижения высокой степени сжатия данные изменяются невосполнимо: после восстановлении сжатого изображения оно будет отличаться от исходного. Сжатие производится в несколько этапов [3-4, 6, 50], которые мы рассмотрим на примере кодирования 24-битного RGB-изображения размером 640×480 пикселов [6].

Этап 1. С целью повысить эффективность (большей степени) последующего сжатия данных производится преобразование базиса RGB в базис YUV, где составляющие: Y – яркость (интенсивность), U и V – цветность (2 цветоразностных сигнала U и V). По стандарту, соответствующему так называемому «белому С» или цвету облачного неба, RGB- и YUV-компоненты связаны между собой следующими соотношениями:

Y = 0,299×R + 0,587×G + 0,114×B;

U = R – Y;

V = B – Y.

Заметим, что композитный телесигнал представляет собой суммарный YUV-видеосигнал, получаемый сложением яркостного Y, модулированных цветоразностных сигналов U и V, образующих сигнал цветности, и синхроимпульсов. Причем частоты цветоразностных сигналов лежат в пределах полосы пропускания яркостного сигнала.

Для значений Y, U и V строятся отдельные матрицы, 8-битные элементы которых могут иметь значения 0-255.

Этап 2. Производится прореживание данных цветности – менее важных составляющих U и V. Например, отбрасывается информация о каждой четной строке и четном столбце пикселов. Возможны и другие близкие по смыслу варианты, например, когда значения цветности усредняются по квадратным блокам из 4 пикселов, что уменьшает размеры матриц цветности в 4 раза до размера 320×240. Такое сжатие является преобразованием с потерями, но глаз человека его практически не замечает. Уже на этом этапе общий объем данных уменьшается вдвое. Затем из каждого элемента вычитается число 128, чтобы переместить значение 0 в середину диапазона.

Изображение (кадр) делится на макроблоки 16×16 пикселов. Каждому макроблоку соответствует 6 блоков (сигнальных матриц) по 8×8 пикселов, из которых 4 несут информацию о яркости, а еще 2 определяют прореженные цветовые компоненты. Матрица Y содержит 4800 блоков, а матрицы U и V – по 1200 блоков каждая. Блоки используются для кодирования.

Этап 3. Для каждого из 7200 блоков отдельно выполняется дискретное косинусное преобразование (ДКП), являющееся частным случаем известного преобразования Фурье с базовыми функциями в виде косинусоид. Блок размера 8×8 пикселов с большой вероятностью должен содержать пикселы близкого цвета. При ДКП каждая из 7200 матрица 8×8 цветовая преобразуется в матрицу 8×8 частотных коэффициентов ДКП, характеризующих «энергию» каждого пиксела (производится так называемый перевод цвета в «частоту» – частотную область). Матрицы частотных коэффициентов можно рассматривать, как двумерный спектр изображения в горизонтальном и вертикальном направлениях, Причем, в такой матрице коэффициенты в левом верхнем углу соответствуют низкочастотной составляющей изображения, а в правом нижнем - высокочастотной [47].

Как правило, бóльшая часть энергии сосредоточена в области низких частот. Элемент (0,0) матрицы коэффициентов ДКП представляет собой среднее значение блока, остальные элементы содержат информацию о спектральной мощности каждой пространственной частоты [6]. Теоретически ДКП является преобразованием без потерь, но на практике использование чисел с плавающей точкой и трансцендентных функций приводит к ошибкам округления и потере части информации. Обычно значения элементов матрицы коэффициентов ДКП быстро убывают с удалением от элемента (0,0).

Этап 4. После ДКП каждая полученная матрица коэффициентов поэлементно делится на специально подобранную матрицу (или таблицу) квантования (квантуется, то есть преобразуется из непрерывной формы в дискретную). Элемент матрицы квантования представляет величину амплитуды соответствующей частоты. Известно, что чувствительность зрения человека к высокочастотным компонентам изображения (мелким деталям) меньше, чем к низкочастотным составляющим (крупным фрагментам). Поэтому квантование производится с переменным интервалом, то есть наибольшее число уровней квантования (значений, до которых производится округление) приходится на низкочастотную область, описывающую крупные объекты. В высокочастотной области, ответственной за мелкие детали изображения, происходит грубое округление значений до небольшого числа разрешенных уровней, и внешне результат выглядит как уменьшение разрешения [50].

При квантовании как раз и теряются данные, так как производится округление до ближайшего целого, а превращенные в 0 отсчеты уже нельзя восстановить. Разумеется, что квантование U- и V-составляющих выполняется более грубо.

Этап 5. Значение элемента (0,0) каждого блока заменяется его разностью с соответствующим значением в предыдущем блоке. Так как эти значения представляют собой усредненные величины своих блоков, они должны меняться медленно, следовательно, полученные разности должны быть невелики. Для остальных значений разности не вычисляются.

Этап 6. 64 элемента блока выстраиваются в ряд, к которому применяется кодирование длин серий. Чтобы сконцентрировать нули в конце ряда, сканирование блока выполняется от элемента (0,0) плотным диагональным зигзагом (влево-вправо перпендикулярно главной диагонали матрицы) до элемента (7,7): (0,0) → (0,1) → (1,0) → (2,0) → (1,1) → (0,2) → (0,3) → (1,2) → (2,1) → (3,0) → (4,0) → (3,1) → и т.д. (рис.1.43). Последовательность нулей в конце полученного ряда заменяется просто их числом (в данном примере – 38) [6, 52].

Этап 7. Общий список кодируется по методу Хаффмана с использованием стандартных фиксированных таблиц: часто повторяющемуся элементу присваивается короткий код, редкому элементу – длинный код.

Рис.1.43. Сканирование блока диагональным зигзагом

При декомпрессии все выполняется в обратном порядке.

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