Алгоритм JPEG

JPEG (Joint Photographic Experts Group) расшифровывается как объединенная группа экспертов по фотографии.

Основными э тапами алгоритма JPEG являются:

1-й этап: преобразование цветовой модели.

Рекомендовано использовать цветовую модель яркость/цветность (YCbCr), где Cb, Cr – каналы цветности, Y – канал яркости.

Обратное преобразование модели Y Cb Cr в модель RGB осуществляется с помощью подобных соотношений:

Это выражение взаимообратимое, то есть по значениям YCbCr всегда можно получить значения яркостей RGB. Данные в модели RGB характеризуют яркость каждого из цветов отдельных пикселей, их искажения заметны для ЗСЧ. В модели YCbCr основную долю воспринимаемой ЗСЧ информации составляют данные канала Y – яркости. Каналы цветности Cb и Cr несут второстепенную, вспомогательную информацию о высокочастотных, контрастных участках изображения, которые ЗСЧ воспринимаются слабо.

2-й этап: субдискретизация.

Состоит в прореживании каналов цветности для сокращения объема данных. Канал яркости (Y) субдискретизации не подвергается.

Субдискретизация выполняется по одному из правил:

1) Каналы цветности Cb и Cr разбиваются на пары значений. Сохраняется только первое значение из каждой пары, второе значение игнорируется. При восстановлении изображения оба значения из одной пары считаются тождественными.

Такой способ субдискретизации позволяет на сжать (сократить) данные изображения.


2) Второй способ субдискретизации состоит в разбиении изображения на четверки значений. Канал яркости не изменяется, три из четырех значений каналов цветности игнорируются. Такой способ сокращает данные изображения в 2 раза.

3-й этап: сегментирование изображения.

Сегментирование состоит в разбиении изображения на отдельные фрагменты (сегменты) равной длины и ширины. При некратности размера изображения восьми, соответствующие массивы дописываются нулями.

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


4-й этап: ДКП.

НЧ СЧ ВЧ
ДКП


Получаем массив коэффициентов ДКП.

5-й этап: квантование.

Квантование заключается в загрублении коэффициентов ДКП посредством деления абсолютных значений на соответствующие величины порога загрубления и округления их до ближайшего целого.

Предположим, имеем массив 8´8 значений яркостей пикселей (пространственная область). После выполнения прямого ДКП имеем массив 8´8 коэффициентов ДКП, в которых есть области НЧ, ВЧ, СЧ.

ЗСЧ наиболее чувствительна к изменению коэффициентов ДКП в НЧ области. Так проявляется одно из низкоуровневых свойств ЗСЧ, а именно частотная чувствительность.

Пусть также порог загрубления Р =10, тогда соответствующие коэффициенты ДКП уменьшаются пропорционально значению Р, т.е.: -675 à 68, 503 à 50, 205 à 21 и т.д. В результате ВЧ область, несущая вспомогательную, дополнительную информацию об изображении, как правило, обнуляется. НЧ и СЧ области будут содержать только те значения, которые превысят порог закругления Р, то есть все, что меньше 10 обнулится.

В спецификации JPEG значение порога закругления выбирается адаптивно в зависимости от требуемого качества изображения и соответствующих номеров коэффициентов ДКП. Если, например, коэффициенты ДКП проиндексированы символами i и j оба от 0…7, то для квантования используется массив 8´8 коэффициентов загрубления, вычисленных по формуле:

quality factor (фактор качества) – величина задаваемая пользователем алгоритма JPEG, устанавливающая величину сжатия и соответственно качества сжатого изображения.

Если QF=1, то коэффициенты ДКП загрубляются с использование следующей таблицы:

                   
                 
                 
                 
                 
                 
                 
                 
                 

При QF=5:

                   
                 
                 
                 
                 
                 
                 
                 
                 

Низкочастотные компоненты загрубляются слабо, а высокочастотные сильно.

QF по спецификации JPEG лежит в пределах от 1 до 25. При значении 25 гарантировано обнуляется ВЧ область.

5-й этап: считывание коэффициентов ДКП по правилу «змейки».

В результате имеем одномерный массив данных, абсолютные значения которого изменяются монотонно от сотен-тысяч до единиц.

6-й этап: кодирование длин серий.

Состоит в замене длинной серии значений двумя символами: собственное значение и количество повторов.

1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,1,1,1,0,1,0,0,0,1,1,…
1,7
0,15


7-й этап: оптимальное статистическое кодирование.

Например, кодирование по Хаффману и по Шеннону-Фано.



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



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