Лекция: Алгоритм JPEG

Один из самых новых и мощных алгоритмов. Он является стандартом де-факто для полноцветных изображений. Алгоритм оперирует областями 8*8, на которых яркость и цвет меняются достаточно плавно. Вследствие этого, при разложении такой матрицы в двойной ряд по косинусам значимыми являются только первые коэффициенты. Т.о. сжатие осуществляется за счет плавности изменения цветов в изображении. В целом алгоритм основан на применении дискретно-косинусоидального преобразования (ДКП) к матрице изображения для получения новой матрицы коэффициентов. Для получения исходного изображения применяется обратное приобразование.

Алгоритм:

1. переводим изображения из RGB в модель YCrCb (яркость, хроматический красный, хроматический синий). За счет того, что человеческий глаз менее чувствителен к цвету, чем к яркости, появляется возможность архивировать массивы Cr, Cb с большими потерями.

2. разбиваем исходное изображение на матрицы 8*8

3. применяем ДКП к матрицам

 

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

4. квантование – деление рабочей матрицы на матрицу квантования

На этом шаге осуществляется управление степенью сжатия и происходят самые большие потери.

5.

переводим матрицу 8*8 в 64-элементный вектор при помощи зигзаг-сканирования. Т.о. получаем в начале вектора коэффициенты, соответствующие низким частотам, а в конце – высоким.

 

 

6. свертываем вектор с помощью алгоритма группового кодирования

7. свертываем получившиеся пары кодированием по Хаффману.

 

еще рефераты
Еще работы по информатике