Uploaded by sergo03031997

сжатие изображений

advertisement
Алгоритмы сжатия
изображений
Сжатие – представление информации в
более эффективном виде, влекущее за
собой уменьшение объема данных (как
правило).
В основном алгоритмы сжатия используют
свойства графических данных:
 избыточность
– группы одинаковых
символов;
 предсказуемость – часто повторяющиеся
одинаковые комбинации символов;
 необязательность – данные, мало влияющие
на человеческое восприятие (цвет).
Классификация методов сжатия

Сжатие без потерь
 кодирование
информации меньшим
числом битов без ее искажения

Сжатие с потерями
 кодирование
информации с потерей той ее
части, которая несущественна для
представления данных
 применимо не для любых данных
Оценки методов сжатия








Степень сжатия
Качество сжатия
Скорость сжатия, в том числе отдельно
компрессия и декомпрессия изображения
Симметричность (по времени)
Возможность масштабирования
Устойчивость к ошибкам
Учет специфики изображения
Стоимость аппаратной реализации или/и
эффективность программной реализации
Критерии сравнения различных
методов сжатия
Худший, средний, лучший коэффициенты
сжатия
 Класс изображений
 Симметричность
 Потери качества
 Особенности алгоритма

Классы изображений

Класс 1. Изображения с небольшим количеством
цветов (4-16) и большими областями, заполненными
одним цветом. Плавные переходы цвета отсутствуют.
(деловая графика – гистограммы, диаграммы, графики)

Класс 2. Изображения с плавными переходами
цветов, построенные на компьютере (графика
презентаций, САПР, векторные изображения 3d объектов)

Класс 3. Фотореалистичные изображения.(Цифровые
или отсканированные фотографии)

Класс 4. Фотореалистичные изображения с
наложением деловой графики (реклама)
Сжатие без потерь
RLE (Run Length Encoding)
 LZW (Lempel, Ziv, Welch)
 Метод Хаффмана (Huffman)

Алгоритм группового кодирования
RLE




Изображение вытягивается в цепочку байт по строкам
растра.
Серия повторяющихся величин (значений пиксела)
заменяется одной величиной и количеством ее
повторений.
Abbbbbbbccdddeeee – 1a7b2c3d4e
Этот подход хорошо работает с длинными сериями
повторяющихся величин, т.е. с изображениями с
большими областями постоянной яркости (или цвета).
Используется во многих форматах bitmap файлов –
TIFF, GEM, PCX и других.
Возможные проблемы могут быть связаны с порядком
записи величины и количества повторений: 1a7b2c3d4e
или a1b7c2d3e4.
Характеристики RLE

Худший, средний, лучший коэффициенты
сжатия: 32 – 2 – 0.5

Класс изображений: небольшое количество
цветов (деловая и научная графика)

Симметричность: 1

Особенности алгоритма: не требует
дополнительной памяти при архивации и
разархивации, быстро работает.
Алгоритм LZW (словарный алгоритм)



Метод назван по первым буквам фамилий его
разработчиков: Lempel, Ziv, Welch.
Сжатие осуществлянтся за счет одинаковых
цепочек байт (шаблонов). Алгоритм создает
таблицу кодов, представляющих
повторяющиеся пиксельные «узоры», начиная с
простой таблицы и формирует более
эффективную таблицу по мере своего
продвижения – этот алгоритм является
адаптивным.
Включен в несколько форматов файлов: GIF,
TIFF (с правом выбора).
Пример работы алгоритма LZW
кукушкакукушонкукупилакапюшон
Характеристики LZW

Худший, средний, лучший коэффициенты
сжатия:0.7 – 4 –1000

Класс изображений: 8-битные изображения,
построенные на компьютере.

Симметричность: 1, при оптимальном
построении.
Алгоритм Хаффмана

Использует частоту появления исходных байт в
изображении. При этом более короткие коды
используются для часто повторяющихся
величин, и наоборот. Присвоения хранятся в
таблице перекодировки.

Требует двух проходов по изображению. В
первый проход создается статистическая
модель, т.е. каждой величине ставится в
соответствие число ее повторений; во второй
проход – кодируются данные. Для кодировки
используются алгоритмы построения бинарных
деревьев.
Характеристики алгоритма
Хаффмана

Худший, средний, лучший коэффициенты сжатия: 8 –
1.5 – 1 (единственный алгоритм, который не
увеличивает размер исходных данных в худшем
случае, не считая хранения таблицы перекодировки)

Класс изображений: практически не применяется
непосредственно к изображениям, обычно
используется как один из этапов компрессии по
более сложной схеме, например, в JPEG

Симметричность: 2 (за счет необходимости двух
проходов)
Сжатие с потерями
JPEG
 JPEG 2000 (Wavelet)
 Фрактальное сжатие

Оценка потерь качества

Базовая метрика оценки качества сжатия –
PSNR (peak-to-peak signal-to-noise ratio)

Хорошо работает только на высоком качестве.
Алгоритм JPEG
Разработан в 1991 г. группой экспертов в
области фотографии (Joint Photographic
Expert Group – подразделение в рамках
ISO) специально для сжатия 24-битных
изображений.
 Основу алгоритма составляет дискретное
косинусное преобразование Фурье (DCT)
 Оперирует блоками 8х8, внутри которых
яркость и цвет меняются сравнительно
плавно.

1. RGB

YUV
Пересчет изображения в пространство
Яркость-Цвет
2. Прореживание



Изображение разбивается на прямоугольники 8х8
пикселов.
Данные о цвете подвергаются прореживанию (как
правило). Например, для каждых 4 значений Y берут
по 1 значению U и V, что уже сокращает объем
данных на 50% практически без потерь качества
восприятия.
Параметры прореживания зависят от требуемой
степени сжатия и качества восстановленного
изображения.
3. DCT (discrete cosine transform)



DCT превращает исходные данные в частоты,
содержащие информацию о том, насколько
быстро меняются яркость и цвет пикселов.
DCT раздельно применяется к цвету и яркости
для прямоугольников 8х8 с нумерацией от (0,0)
в левом верхнем углу (низкие частоты) до (7,7) в
правом нижнем (высокие частоты).
Плавные изменения цвета соответствуют
низкочастотной составляющей, резкие скачки –
высокочастотной.
Формула DCT :
4. Квантование


Квантование устанавливает точность, с которой будет
храниться каждая из величин.
Каждое из значений DCT делится на фактор
квантования и округляется до целого, при этом
используется таблица факторов квантования 8х8.



В общем случае таблицы для Y и для U и V
различны.
Данные низкой частоты F(0,0) (без изменений)
оказываются более важными, чем данные
высокой частоты F(7,7). В соответствии с этим
типичные таблицы имеют низкий фактор для
F(0,0) – от 1 до 16 и высокий для F(7,7) – около
100.
При декодировании исходные величины
умножают на факторы квантования. Например,
значения DCT от 120 до 135 и фактор 16 дают
на выходе 8, а после восстановления
преобразуются в 8 * 16 = 128 – аппроксимация
входного значения.
5. Вытягивание в цепочку


Высокочастотные компоненты после
квантования, как правило, обращаются в
ноль.
Полученные значения вытягиваются в
цепочку в зигзагообразном порядке, в
начале компоненты
самой низкой частоты:
F(0,0) – F(0,1) – F(1,0) - …
- F(6,7) – F(7,6) – F(7,7)
6. Свертывание и кодирование

Свертывание полученного на предыдущем
этапе вектора с помощью группового
кодирования. В результате образуются
пары типа (пропустить, число), где
пропустить – счетчик пропускаемых нулей,
число – значение, которое необходимо
поставить в следующую ячейку.
Например: вектор (42 3 0 0 0 -2 0 0 0 0
1) …
будет свернут в пары (0,42) (0,3)
(3,-2) (4,1) …

Кодирование данных методом Хаффмана
Достоинства и недостатки JPEG






Наилучшее сжатие для фотоизображений ввиду
отсутствия там резких линий (букв) и больших областей
однотонной окраски. Стандарт де-факто для хранения,
обработки и передачи фотоизображений.
Регулируемая степень сжатия.
Резкие линии после обработки по алгоритму JPEG
выглядят слегка размытыми, а в однотонной окраске
появляются переливы (муар).
При больших степенях сжатия возникает эффект
блочности.
Довольно медленная программная обработка.
Существование несовместимых реализаций из-за
необязательных дополнений в стандарте.
Характеристики алгоритма JPEG

Степень сжатия: 2-200 (задается пользователем)

Класс изображений: полноцветные 24-битные
изображения или изображения в градациях
серого без резких переходов цветов (фотографии)

Симметричность: 1

Характерные особенности: эффект блочности при
высоких степенях сжатия и «ореолы» вокруг
резких вертикальных и горизонтальных границ.
ПримерJPEG

Фотография заката в формате JPEG с уменьшением
степени сжатия слева направо
Сравнение JPEG и JPEG2000







Большая степень сжатия при том же качестве для
высоких степеней сжатия
Поддержка кодирования отдельных областей с лучшим
качеством
DCT заменено на DWT (wavelet-преобразование), что
позволило избежать блочности и достичь плавного
проявления изображения
Вместо кодирования по методу Хаффмана
используется более эффективное арифметическое
кодирование
Поддержка сжатия без потерь
Поддержка сжатия 1-битных изображений
Поддержка прозрачности при помощи отдельного
канала
JPEG и JPEG2000
при сжатии в 30 раз
Характеристики алгоритма
JPEG2000

Степень сжатия: 2-200 (задается пользователем).
Возможно сжатие без потерь

Класс изображений: полноцветные 24-битные
изображения или изображения в градациях серого
без резких переходов цветов (фотографии). 1-битные
изображения

Симметричность: 1-1.5

Характерные особенности: эффект блочности при
очень высоких степенях сжатия. Позволяет
повышать качество в отдельных областях.
Фрактальное сжатие
изображений
Фрактальное сжатие – алгоритм с
потерей информации, появившийся в
1992 году.
 Одним из важных свойств фракталов
является самоподобие – отдельные
части фракталов по форме похожи на
весь фрактал в целом. На этом
самоподобии основан алгоритм
фрактального сжатия изображений.

Задание фракталов при помощи
IFS

Один из способов построения
фракталов – с помощью системы
итеративных функций (Iterated
Functions System – IFS). Он
заключается в последовательном
итеративном расчете координат
новых точек в пространстве:
xk+1 = a*xk + b*yk + e = Fх(xk , yk)
yk+1 = c*xk + d*yk + f = Fу(xk , yk)

Функции F – аффинное
преобразование, определяющее
форму фрактала. Требуется только
определить коэффициенты a,b,c,d,e,f.
Алгоритм со студентом





даем студенту изображение;
даем студенту компьютер;
запираем студента в комнате;
ждем, пока студент найдет систему
преобразований;
выпускаем студента из комнаты.
Базовые понятия фрактального
сжатия



Пусть  - множество всех возможных изображений.
Пусть также существует преобразование W:   .
W является объединением преобразований wi :
W(D) =  wi (si), где D – изображение, а si – какие-либо
(возможно перекрывающиеся) области изображения D.
Каждое преобразование wi переводит si в di. Таким
образом, W(D) =  di .
Изображение можно представить в виде функции от двух
переменных f(x,y).
На множестве всех таких функций введем метрику
(расстояние между изображениями) следующим образом:
(f,g) = max (| f(x,y) – g(x,y)|)
x,y



Доказано, что существует определенный класс
преобразований, для которых существует константа с<1,
такая, что для любых изображений f и g выполняется
неравенство:
(W(f),W(g))  c * (f,g)
Такие преобразования называются сжимающими, и для
них справедливо следующее утверждение: если к
какому-либо изображению F0 многократно применить
преобразование W
F1 = W(F0) ; F2 = W(F1) ; …
; Fi = W(Fi – 1)
то в пределе, при i стремящемся в бесконечность, мы
получим одно и то же изображение вне зависимости от
того, какое изображение мы взяли в качестве F0 :
lim Fi = F
i
Это конечное изображение F называют аттрактором
или неподвижной точкой преобразования W. При этом
если преобразования wi являются сжимающими, то их
объединение W тоже является сжимающим.
Схема компрессии


изображение D разбивают на участки di ,
называемые доменами (непересекающиеся
области, покрывающие все изображение).
для каждого домена находят ранговую область
si и преобразование wi такие, что выполняются
условия:
 si по размерам больше di.
 wi (si) имеет ту же форму, размеры и положение,
и di.
 значение (wi(si) , di) должно быть как можно
меньше.

запоминают коэффициенты аффинных
преобразований wi , положение ранговых
областей si и разбиение изображения на
домены.
что
Схема декомпрессии
создать какое-либо (любое!!!) начальное
изображение D0 ;
 многократно применить к нему
преобразование W (объединение wi);
 так как преобразование W сжимающее,
то после достаточного количества
итераций, изображение придет к
аттрактору и перестанет меняться.
Аттрактор и есть исходное изображение
после декомпрессии.

Декомпрессия
Характеристики фрактального
алгоритма

Степень сжатия: 2-100

Класс изображений: полноцветные 24-битные
изображения или 8-битные изображения в
градациях серого.

Симметричность: Существенно несимметричен, с
коэфиициентом, достигающим 10 000

Характерные особенности: эффект блочности при
очень высоких степенях сжатия. Позволяет
повышать качество в отдельных областях
Форматы графических файлов
BMP (DIB, Device Independent Bitmap)
 JPEG
 GIF (Graphics Interchange Format)
 TIFF (Tag Image File Format)
 EPS (Encapsulated PostScript)
 CGM (Computer Graphics Metafile)
 DXF (Drawing Interchange Format)
 PNG (Portable Network Graphics)

Продолжение
Цветовые модели
компьютерной графики
Свет –
это электромагнитное излучение
Цвет – это действие излучения на
глаз человека
излучаемый свет
поглощение света
ЦВЕТ
получается в процессе
излучения
отражения
описывается с помощью
цветовых моделей
RGB, CMY(K), HSL и др.
Аддитивная модель
англ. “add” – «присоединять»
Основными цветами являются:
RED – красный
GREEN – зеленый
BLUE – синий
Цвет получается в результате
суммирования трех цветов.
В палитре RGB каждый из цветов может менять свою
интенсивность от 0 до 255.
0 – интенсивность цвета минимальна
255 – интенсивность цвета максимальна
Аддитивный – при увеличении яркости отдельных цветов
результирующий цвет становится ярче.
Цветовой куб RGB-кодирования
Таблица цветов RGB
Красный
Зеленый
Синий
Цвет
0
0
0
Черный
255
0
0
Красный
0
255
0
Зеленый
0
0
255
Синий
0
255
255
Бирюзовый
255
255
0
255
0
255
Пурпурный
255
255
255
Белый
Желтый
Субтрактивная модель
англ. “subtract” – «вычитать»
Основными цветами являются:
Cyan – голубой
Magenta – пурпурный
Yellow – желтый
Каждый из них поглощает (вычитает)
определенные цвета из белого света,
падающего на печатаемую палитру.
В палитре CMY каждый из цветов может менять свою
интенсивность от 0 до 255.
0 – интенсивность цвета минимальна
255 – интенсивность цвета максимальна
Субтрактивный - при увеличении яркости отдельных
цветов результирующий цвет становится темнее.
Из-за особенностей типографских красок смесь трех
цветов дает не черный, а грязно – коричневый цвет.
Поэтому к основным цветам добавляют еще и черный.
Cyan – голубой;
Magenta – пурпурный;
Yellow – желтый;
Black – черный.
СMYK
Цветовой куб СMYK-кодирования
Таблица цветов СMYK
Голубой
Пурпурный
(нет красного) (нет зеленого)
Желтый
(нет синего)
Цвет
0
0
0
Белый
0
0
255
0
255
0
Пурпурный
255
0
0
Голубой
0
255
255
Красный
255
0
255
Зеленый
255
255
0
255
255
255
Желтый
Синий
Черный
Отличие в воспроизведении
цветов в моделях RGB и СMYK
Цветовая модель HSB
При работе в графических программах с помощью этой
модели очень удобно подбирать цвет, так как представление
в ней цвета согласуется с его восприятием человеком.
Hue — цветовой тон
Saturation — насыщенность
Brightness — яркость
Тон имеет 360 уровней,
а цвет и яркость по 100
уровней.
Цвет представляется как
комбинация параметров цвета:
тона, насыщенности и яркости.
Круговое расположение цветов модели HSB
Цвет на web – страницах кодируется в RGB и записывается в
шестнадцатеричной системе: #RRGGBB, - где RR, GG и BB –
яркости красного, зеленого и синего, записанные в виде
двух шестнадцатеричных цифр; это позволяет закодировать
256 значений от 0 (0016) до 255 (FF16) для каждой
составляющей.
Код
Цвет
#FFFFFF
Белый
#000000
Черный
#FF0000
Красный
#00FF00
Зеленый
#0000FF
Синий
#FFFF00
Желтый
#FF00FF
Фиолетовый
#00FFFF
Голубой
CIE Lab &
Adobe RGB vs sRGB
Download