Сжатие статическим алгоритмом

Вначале переводят матрицу 8><8 в 64-элементный вектор при помощи «зигзаг»-сканирования (рис. 10.14), т. е. берем элементы с индексами (0, 0), (0, 1), (1,0), (2,0),... .

Схема обхода матрицы

Рис. 10.14. Схема обхода матрицы

Таким образом, в начале вектора мы получаем коэффициенты матрицы, соответствующие низким частотам, а в конце - высоким.

Далее сжимают значения вектора с помощью алгоритма группового кодирования. При этом получают пары типа (пропустить, число), где «пропустить» является счетчиком пропускаемых нулей, а «число» - значение, которое необходимо поставить в следующую ячейку. Так, вектор 42 3 0 0 0 -2 0 0 0 0 1 ... будет свернут в пары (0, 42) (0, 3) (3, -2) (4,1)....

Завершают сжатие изображения сжатием получившихся пар по алгоритму Хаффмана с фиксированной таблицей.

Распаковка (декодирование) данных в алгоритме JPEG

При восстановлении (распаковке, декодировании) все этапы выполняются в обратном порядке. Строка данных распаковывается, восстанавливается матрица квантованных данных. После этого производят перемножение значений на делители матрицы квантования. Поэтому сжатые данные должны содержать также информацию о том, с каким значением качества производилось сжатие. Далее восстановленная таким путем спектральная матрица перемножается вначале на ДКП-матрицу, а затем на транспонированную ДКП-матрицу. К полученным значениям добавляется число 128, которое вычиталось из значений матрицы изображения для смешения диапазона значений. Напоминаем, что эту процедуру, как и при сжатии, проделывают для Y, Св, CR отдельно. На последнем этапе осуществляется переход в систему RGB:

В заключение заметим, что стандарт JPEG является составной частью каждой хорошей программы обработки изображений. Спецификации JPEG открыто документируются, так что на практике существует множество отклонений от описанного здесь варианта. Как уже отмечалось, имеется вариант JPEG - lossless JPEG, нс приводящий к потерям качества. Однако применяется он очень редко, поскольку его достижимая степень сжатия сильно уступает вариантам с потерями.

В настоящее время все большее распространение получают алгоритмы рекурсивного (wavclctt) сжатия (например, JPEG2000).

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >