- •1 Обзор методов сжатия изображений
- •Общие понятия, связанные с изображениями
- •Требования к jpeg
- •Форматы графических файлов
- •Файлы bmp
- •1.3.2 Файлы pcx
- •1.3.3 Файлы jpeg
- •Сравнительная характеристика алгоритмов сжатия
- •Выбор и обоснование выбранного метода
- •Обоснование выбора метода сжатия изображения
- •Алгоритм архивации графики jpeg
- •2.2.1 Дискретное косинус преобразование
- •2.2.2 Этап Квантования
- •2.2.3 Этап Вторичного Сжатия
- •3. Разработка программно-аппаратных модулей
- •3.1 Разработка программного модуля на языке MatLab
- •4. Анализ вычислительной сложности
- •4.1 Требуемый объем памяти
- •Количество операций
- •Руководство пользователя
- •Заключение
- •Библиография
Сравнительная характеристика алгоритмов сжатия
В данном разделе были описаны методы сжатия изображений с потерей данных и без потерь. Перечень приведенных алгоритмов далеко не полон, но, дает представление об основных тенденциях развития алгоритмов архивации статических растровых изображений. Во-первых, это ориентация на фотореалистичные изображения с 16 миллионами цветов (24 бита). Во-вторых, использование сжатия с потерями, возможность за счет потерь регулировать качество изображений. В-третьих - использование избыточности изображений в двух измерениях. В-четвертых - появление существенно несимметричных алгоритмов. И, наконец, что для нас важнее всего - увеличивающаяся степень сжатия изображений.
Сейчас не редкость создание базы данных, хранящей изображения, активное использование изображений в программах. Критичность их размеров дает себя знать довольно быстро, поэтому резонно применить один или несколько алгоритмов сжатия. Возможно, идеальным решением будет воспользоваться парой-тройкой новых универсальных алгоритмов, а может быть, стоит разработать специальный. Для электронных фотографий из досье, отпечатков пальцев, рентгеновских снимков созданы специальные алгоритмы, обеспечивающие сжатие до 1000 раз. Если планируется создание большой многогигабайтной базы данных, содержащей однородную информацию, то уменьшение ее хотя бы в 10 раз - это уже серьезно.
При выборе алгоритмов важно понимать их положительные и отрицательные стороны. Если выбран алгоритм с потерей данных, то стоит понять его природу и условия, при которых изображения будут портиться. Использование новых оптимальных алгоритмов позволит сохранить качество изображений, десятки и сотни мегабайт дискового пространства, уменьшит трафик в сети. Методы сжатия развиваются очень быстро. Ежегодно появляются новые алгоритмы и десятки модификаций известных
Выбор и обоснование выбранного метода
Обоснование выбора метода сжатия изображения
В данном курсовом проекте реализуется сжатие изображений на основе дискретного косинусного преобразования, (дискретное косинусное преобразование используется в широко распространенном стандарте сжатия изображений - JPEG). Рассмотрим сравнительную характеристику выше рассмотренных алгоритмов сжатия изображений (таблица 2.1).
Таблица 2.1
Алгоритм |
Коэфф-ты сжатия |
На что ориентирован |
Потери |
Групповое кодирование (RLE) |
1/32 1/2 2/1 |
3,4 битные |
Нет |
LZW |
1/100 1/4 7/5 |
1-8 битные |
Нет |
Хаффмана |
1/8 2/3 1/1 |
1-битные |
Нет |
JBIG |
1.5 раза |
1-битные |
Нет |
Lossless JPEG |
2 раза |
24-битн. |
Нет |
Рекурс. сжатие (Wavelet) |
2-20 раз |
серые |
Да |
JPEG |
2-200 раз |
24-битн. |
Да |
Фрактальный |
2-2000 раз |
24-битн. |
Да |
При сохранении изображений, содержащих фотографии (изображения с 16 миллионами цветов (24 бита)), ни один формат не приведет к созданию файла меньшего размера, чем JPEG.
Это метод сжатия с потерей данных, который, жертвует качеством изображения для сохранения пространства на диске. Однако можно управлять тем, сколько данных потеряется во время операции сохранения. JPEG лучше всего использовать при сжатии изображений с непрерывным тоном (изображения, в которых цветовой контраст между ближайшими пикселями невелик). Любое изображение, которое включает постепенные цветовые переходы, как на фотографии, пригодно для JPEG-сжатия. JPEG - не самый лучший выбор для сохранения снимков экрана, векторных рисунков и других высококонтрастных изображений. Эти изображения лучше обрабатывать в формате TIFF с LZW-сжатием. Из таблицы видно, что большой коэффициент сжатия достигается при использование фрактального метода сжатия изображений, а остальные методы либо не дают достаточный коэффициент сжатия, либо ориентированы на меньшее количество бит. Сравним алгоритм архивации графики JPEG с фрактальной компрессией.
Во-первых, заметим, что и тот, и другой алгоритм оперируют 8-битными (в градациях серого) и 24-битными полноцветными изображениями. Оба являются алгоритмами сжатия с потерями и обеспечивают близкие коэффициенты архивации. И у фрактального алгоритма, и у JPEG существует возможность увеличить степень сжатия за счет увеличения потерь. Кроме того, оба алгоритма очень хорошо распараллеливаются.
Различия начинаются, если мы рассмотрим время, необходимое алгоритмам для архивации/разархивации. Так, фрактальный алгоритм сжимает в сотни и даже в тысячи раз дольше, чем JPEG. Распаковка изображения, наоборот, произойдет в 5-10 раз быстрее. Поэтому, если изображение будет сжато только один раз, а передано по сети и распаковано множество раз, то выгодней использовать фрактальный алгоритм.
JPEG использует разложение изображения по косинусоидальным функциям, поэтому потери в нем (даже при заданных минимальных потерях) проявляются в волнах и ореолах на границе резких переходов цветов. Именно за этот эффект его не любят использовать при сжатии изображений, которые готовят для качественной печати: там этот эффект может стать очень заметен.
Вытеснение JPEG фрактальным алгоритмом в повсеместном использовании произойдет еще, не скоро (хотя бы в силу низкой скорости архивации последнего), однако в области приложений мультимедиа, в компьютерных играх его использование вполне оправдано.
