Сжатие графических файлов

 

Сжатие графической информации основано на частичной потере информации. В самом деле, в изображении соседние пиксели (точки) мало различаются по яркости (светимости) и цвету. Особенностью является то обстоятельство, что глаз человека меньше различает именно светимость двух соседних точек. Поэтому модель данных YCbCr в большей степени ориентирована на сжатие, чем модель RGB. Для получения сжатого изображения применяют ортогональные преобразования данных. Ортогональные преобразования выполняют таким образом, чтобы большая часть данных при преобразовании получила маленькие (близкие к нулю значения) и лишь небольшая часть данных оказалась значимой. Затем выполняется квантование (округление данных) так, что малозначимые данные становятся равными 0. Дадим иллюстрацию сказанному. Пусть исходные данные представлены следующей матрицей:

 

.

 

Возьмем матрицу преобразования:

 

. (1.26)

 

Сначала найдем по правилам матричной алгебры произведение

 

,

 

Затем

 

. (1.27)

 

Получим

 

.

 

В этой матрице доминирует лишь небольшое число элементов. Можно выполнить квантование, например, следующим образом:

 

.

 

Именно эта операция (квантования) и приводит к потере данных, хотя эта потеря мало отражается на исходных данных. В самом деле, легко восстановить из (3.27) матрицу С:

 

. (1.28)

 

и, аналогично,

 

. (1.29)

 

С помощью (3.28), (3.29) получим восстановленную приближенную матрицу исходных данных:

 

.

 

После квантования получим

 

.

 

Эта последняя матрица очень близка к исходной матрице D (!).

Прежде всего, заметим, что матрица преобразования W должна строится специальным образом. Во-первых, она должна быть ортогональной, что означает, что векторное произведение любых ее двух строк или столбцов равно 0 (а это означает, что строки и столбцы матрицы не зависимы и, следовательно, определитель матрицы отличен от 0). Во-вторых, матрица W подбирается так, что сумма элементов только в первой строке и в первом столбце максимальны; в остальных строках и столбцах суммы элементов равны или близки к 0.

Из соображений, близких к рассмотренным, строится матрица дискретного косинусного преобразования (DCT-матрица), используемая в алгоритме JPEG. Матрица двумерного DCT-преобразования определяется из следующей формулы

 

. (1.30)

 

В (3.30)  – значение пикселя в строке x и столбце y квадратной матрицы пикселей размеров ;

 

 

Матрица одномерного DCT-преобразования использует расчетную формулу

 

. (1.31)

 

Заметим, что величины

 

 

изменяются для  и  так что в результате из них можно построить следующую матрицу преобразования (для )

 

 
1 1 1 1 1 1 1 1
0,981 0,831 0,556 0,195 -0,195 -0,556 -0,831 -0,981
0,924 0,383 -0,383 -0,924 -0,924 -0,383 0,383 0,924
0,831 -0,195 -0,981 -0,556 0,556 0,981 0,195 -0,831
0,707 -0,707 -0,707 0,707 0,707 -0,707 -0,707 0,707
0,556 -0,981 0,195 0,831 -0,831 -0,195 0,981 -0,556
0,383 -0,924 0,924 -0,383 -0,383 0,924 -0,924 0,383
0,195 -0,556 0,831 -0,981 0,981 -0,831 0,556 -0,195

 

Эта матрица является ортогональной и построена по тем же принципам, что и матрица W, которую мы рассмотрели выше. Нам остается коротко охарактеризовать алгоритм сжатия JPEG, основу которого составляет DCT-преобразование.

В JPEG используется цветовая модель YCrCb, где Y передает светимость пикселя. Преобразование DCT выполняется отдельно к светимости Y, и отдельно к матрице, кодирующей хроматические числа Cr и Cb. К светимости Y применяется одномерное DCT преобразование. Для компоненты <Cr, Cb> выполняется разбиение изображения на матрицы пикселей . К каждой из таких матриц применяется двумерное DCT-преобразование. Таким образом, выполняется сжатие с потерей информации.

Сокращение JPEG происходит от слов Joint Photographic Expert Group – совместная группа по фотографии. Проект JPEG стал стандартом в 1991г. – принят международной организацией стандартов ISO.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: