Алгоритмы сжатия изображений

Все файлы могут храниться в сжатом и виде. Сжатие используется в том случае, если файл очень большой. М-д сжатия состоит из 2х частей: компрессор и декомпрессор. Компрессор включает математический алгоритм, кот исп-ся для уменьшения размеров файла. Декомпрессор содержит инфо, по кот можно восстановить файл. М-ды сжатия делятся на : м-ды с потерями и без потерь. При работе с видео чаще всего применяется сжатие с потерями, т к глаз не в состоянии воспринять потери в изображении при их быстрой смене.

RLE-сжатие («групповое кодирование»). Данный метод используют большинство растровых изображений. Он явл – ся м-дом сжатия без потерь. Кодирование происходит так: просматривается каждая строка изображения; при этом существует 2 вида прохода по строке: кодированный проход и литеральный. Кодированный проход всегда содержит байт для числа пикселей и байт для инфо о пикселях. Литеральный проход может содержать 5 или более байтов. В этом случае 1й байт всегда устанавливается в 0. Это означает, что проход явл-ся литерным. 2й байт принимает значение от 3 до 255. Здесь содержится инфо о том, сколько байтов последует далее. В этих байтах содержится литеральное значение пикселей. Заканчивается литерный подход двухбайтным граничным словом.

К положительным сторонам алгоритма, пожалуй, можно отнести только то, что он не требует дополнительной памяти при архивации и разархивации, а также быстро работает. Интересная особенность группового кодирования состоит в том, что степень архивации для некоторых изображений может быть существенно повышена всего лишь за счет изменения порядка цветов в палитре изображения.

LZW – сжатие. Он использует форматы tif* и gif*. Используется для сжатия только неподвижных изображений . Это сжатие без потерь. М-д работы с оттенками серого с 256-цветными индексированными цветами и истинным цветом. Сжатие осущ. за счёт уменьшения строки с идентичными значениями байтов до 1 слова кода. Затем происходит построчное сохранение инфо. Сжатие до 40 %.

CCITT – сжатие. Этот алгоритм был создан для сжатия факсимильных данных. Последовательности подряд идущих черных и белых точек в нем заменяются числом, равным их количеству. А этот ряд, уже в свою очередь, сжимается по Хаффману с фиксированной таблицей(Один из классических алгоритмов, известных с 60-х годов. Использует только частоту появления одинаковых байт в изображении. Сопоставляет символам входного потока, которые встречаются большее число раз, цепочку бит меньшей длины. И, напротив, встречающимся редко - цепочку большей длины. Для сбора статистики требует двух проходов по изображению). Определение: Набор идущих подряд точек изображения одного цвета называется серией. Длина этого набора точек называется длиной серии.

В таблице, приведенной ниже, заданы два вида кодов: Коды завершения серий - заданы с 0 до 63 с шагом 1; Составные (дополнительные) коды - заданы с 64 до 2560 с шагом 64.

Каждая строка изображения сжимается независимо. Мы считаем, что в нашем изображении существенно преобладает белый цвет, и все строки изображения начинаются с белой точки. Если строка начинается с черной точки, то мы считаем, что строка начинается белой серией с длиной 0. Например, последовательность длин серий 0, 3, 556, 10, ... означает, что в этой строке изображения идут сначала 3 черных точки, затем 556 белых, затем 10 черных и т.д.

JBIG - сжатие. Алгоритм разработан специально для сжатия однобитных черно-белых изображений. Например, факсов или отсканированных документов. При этом алгоритм разбивает их на отдельные битовые плоскости. JBIG позволяет управлять такими параметрами, как порядок разбиения изображения на битовые плоскости, ширина полос в изображении, уровни масштабирования. Распаковываться изображение на экране будет постепенно, как бы медленно “проявляясь”. При этом человек начинает анализировать картинку задолго до конца процесса разархивации.

JPEG –сжатие. Используется для сжатия изображений с непрерывными тонами. Особенно заметно сжатие при глубине цвета 24 бит. Данный метод явл-ся м-дом сжатия с потерями за счёт отбрасывания перехода между цветами, тк слабые переходы чел глаз не в состоянии уловить. Существенной положительной стороной алгоритма является то, что задается степень сжатия. Отрицательными сторонами алгоритма является то, что при повышении степени сжатия изображение распадается на отдельные квадраты (8x8). Также проявляется эффект Гиббса - ореолы по границам резких переходов цветов. (100:1)

Фрактальное сжатие. Основывается на том, что внешне случайные формы можно представить с использованием организованных структур, кот построены из различных узоров. Эти структуры и наз фракталом. При разбиении сложной структуры на набор фракталов можно хранить этот набор в меньшем Vпо сравнению с оригиналом. Главная особенность этого метода – это то, что изображение может масштабироваться без потерь.

Волновое сжатие. Ориентирован алгоритм на цветные и черно-белые изображения с плавными переходами. Идеален для картинок типа рентгеновских снимков. Коэффициент сжатия задается и варьируется в пределах 5-100. При попытке задать больший коэффициент на резких границах, особенно проходящих по диагонали, проявляется “лестничный эффект” - ступеньки разной яркости размером в несколько пикселов. Идея алгоритма заключается в том, что мы сохраняем в файл разницу - число между средними значениями соседних блоков в изображении, которая обычно принимает значения, близкие к 0. М-д сжатия без потерь. (300:1)