Автор работы: Пользователь скрыл имя, 08 Октября 2011 в 14:00, курсовая работа
Многие программы и приложения предлагают пользователю графический интерфейс (GUI), который значительно упрощает работу пользователя и позволяет легко интерпретировать полученные результаты. Компьютерная графика используется в полиграфии при переводе сложных массивов данных в графическое представление.
Введение 3
1. Показатель степени сжатия файлов 4
2. Алгоритм RLE 5
3. Алгоритм LZW 5
4. Алгоритм ДИКМ и JPEG-LS 6
5. Стандарт сжатия JPEG 7
5. Другие виды сжатия информации 9
Заключение 17
Список использованных источников 19
1. Двухуровневое
(или монохроматическое)
2. Полутоновое
изображение. Каждый пиксел
3. Цветное изображение.
Существует несколько методов
задания цвета, но в каждом
из них участвуют три
4. Изображение
с непрерывным тоном. Этот тип
изображений может иметь много
похожих цветов (или полутонов). Когда
соседние пикселы отличаются
всего на единицу, глазу
5. Дискретно-тоновое
изображение (оно еще
6. Изображения,
подобные мультфильмам. Это цветные
изображения, в которых
Интуитивно становится
ясно, что каждому типу изображений
присуща определенная избыточность,
но все они избыточны по-разному.
Поэтому трудно создать один метод,
который одинаково хорошо сжимает
любые типы изображений. Существуют
отдельные методы для сжатия двухуровневых
образов, непрерывно-тоновых и
На настоящий
момент известны два наиболее широко
распространенных алгоритма сжатия
с потерей информации: JPEG и JPEG2000.
Алгоритм JPEG имеет в своей основе
дискретное косинусное преобразование
(ДКП), которое применяется к
Алгоритм необычайно прост в реализации. Групповое кодирование — от английского Run Length Encoding (RLE) — один из самых старых и самых простых алгоритмов архивации графики. Изображение в нем вытягивается в цепочку байт по строкам растра. Сжатие в RLE происходит за счет того, что в исходном изображении встречаются цепочки одинаковых байт. Замена их на пары <счетчик повторений, значение> уменьшает избыточность данных.
В первом алгоритме признаком счетчика служат единицы в двух верхних битах считанного файла:
Соответственно оставшиеся 6 бит расходуются на счетчик, который может принимать значения от 1 до 64. Строку из 64 повторяющихся байтов мы превращаем в два байта, т.е. сожмем в 32 раза.
Алгоритм рассчитан
на деловую графику — изображения
с большими областями повторяющегося
цвета. Ситуация, когда файл увеличивается,
для этого простого алгоритма
не так уж редка. Ее можно легко
получить, применяя групповое кодирование
к обработанным цветным фотографиям.
Для того, чтобы увеличить изображение
в два раза, его надо применить
к изображению, в котором значения
всех пикселов больше двоичного 11000000 и
подряд попарно не повторяются. Данный
алгоритм реализован в формате PCX.
Второй вариант этого алгоритма имеет больший максимальный коэффициент архивации и меньше увеличивает в размерах исходный файл.
Признаком повтора
в данном алгоритме является единица
в старшем разряде
Как можно легко
подсчитать, в лучшем случае этот алгоритм
сжимает файл в 64 раза (а не в 32 раза,
как в предыдущем варианте), в
худшем увеличивает на 1/128. Средние
показатели степени компрессии данного
алгоритма находятся на уровне показателей
первого варианта. Похожие схемы компрессии
использованы в качестве одного из алгоритмов,
поддерживаемых форматом TIFF, а также в
формате TGA.
Название алгоритм
получил по первым буквам фамилий
его разработчиков — Lempel, Ziv и Welch.
Сжатие в нем осуществляется за счет
одинаковых цепочек байт. Процесс
сжатия выглядит достаточно просто. Мы
считываем последовательно
Алгоритм LZW имеет несколько особенностей своей реализации в формате сжатия изображений gif. Первая особенность – это переменный размер кода таблицы цепочек, который не может превышать 12 бит, т.е. не превышать числа 4095. Вторая особенность состоит в использовании двух специальных кодов – это код обновления (реинициализации) таблицы цепочек, и код завершения потока символов .
В самом начале своей работы алгоритм определяет количество цветов, используемых в изображении. В случае GIF их максимум может быть 256, т.к. любое изображение, даже с большим набором цветов преобразуется в 256 цветовое пространство. Минимум может быть 2 цвета. Если используется только два цвета, то начальный размер кодов в таблице равен 3 битам. Причем коду 0 ставится цвет 0, а коду 1 – цвет 1. Коды 4 и 5 соответствуют коду очистки таблицы и коду. При большем количестве цветов размер кода таблицы равен числу бит N, приходящихся на один пиксел. При этом специальные коды равны. Начальный размер кодов в таблице записывается в заголовок GIF файла.
Кодирование пикселей изображения начинается кодами размером бит. По мере накопления таблицы будут увеличиваться значения кодов и как только очередной код достигает значения, то это значит, что значение необходимо увеличить на 1, иначе значение кода превысит прежний размер в бит.
Разработчики
формата GIF ограничили максимальный размер
кодов в таблице 12 битами. Это
значит, что когда код достигает
значения, то размер увеличивать уже
нельзя. Но в то же время и размер
кодов становится больше 12 бит. Как
разрешить данную ситуацию? Простым
решением является выполнить перегенерирование
таблицы последовательностей, после
чего она будет содержать только
цепочки длины, равной 1, т.е. значения
пикселей и плюс специальные коды.
Таким образом, она перейдет в
то же состояние, в котором была на момент
начала кодирования изображения. А для
того, чтобы декодировщик знал, что в определенный
момент произошло перегенерирование таблицы,
кодировщик в выходной поток записывает
код управляющего символа.
LZW - это способ сжатия данных, который извлекает преимущества при повторяющихся цепочках данных. Поскольку растровые данные обычно содержат довольно много таких повторений, LZW является хорошим методом для их сжатия и раскрытия.
Особенность LZW
заключается в том, что для
декомпрессии нам не надо сохранять
таблицу строк в файл для распаковки.
Алгоритм построен таким образом, что
мы в состоянии восстановить таблицу
строк, пользуясь только потоком
кодов.
Данный метод кодирования основывается на предположении наличия корреляционной связи между соседними отсчетами изображения. В этом случае значение последующего отсчета оценивается на основе предыдущих Полученная оценка используется для формирования разностного сигнала , которая будет тем меньше, чем точнее построена текущая оценка. Можно доказать, что при наличии корреляционной зависимости между отсчетами сигнала, дисперсия ошибок оценивания будет меньше дисперсии исходного сигнала . Следовательно для представления можно использовать меньше уровней, чем для сигнала , т.е. каждый отсчет может быть представлен не 8 битами, а меньшим числом – обычно 4 битами.
В общем случае оценка элемента строится на основе линейной комбинации нескольких предыдущих отсчетов:
,
где - набор весовых коэффициентов, которые выбираются из условия минимума дисперсии ошибки : .
Вектор весовых коэффициентов можно найти путем дифференцирования данного выражения и приравнивания результат нулю.
Полученная ошибка подвергается равномерному квантованию с шагом согласно следующей формуле:
.
В результате возникает шум квантования . Для того, чтобы величина шума не накапливалась при восстановлении сигнала, оценки элементов строят на основе восстановленных значений. Таким образом получаем следующую схему алгоритма кодирования.
Алгоритм ДИКМ применяется в стандарте JPEG при сжатии изображений без потерь. В начале отсчеты исходного изображения заменяются на целочисленные разности между истинным значением яркости пиксела и его целочисленным (округленным) прогнозом. При этом прогноз текущего пиксела строится по трем ближайшим соседям.
Затем, полученные
целочисленные разности сжимаются
кодами Хаффмана и формируется выходной
файл сжатого изображения. Алгоритм
ДИКМ строит прогноз на основе предыдущих
значений отсчетов. Однако известно, что
лучший прогноз можно построить,
если использовать не только предыдущие,
но и последующие отсчеты в
изображении относительно оцениваемого.
Алгоритм, использующий эту идею при
построении оценок прогноза пикселов
изображения носит название «иерархическая
сеточная интерполяция».
5. Стандарт сжатия JPEG
Алгоритм разработан группой экспертов в области фотографии (Joint Photographic Expert Group) специально для сжатия 24-битных и полутоновых изображений в 1991 году. Этот алгоритм не очень хорошо сжимает двухуровневые изображения, но он прекрасно обрабатывает изображения с непрерывными тонами, в которых близкие пикселы обычно имеют схожие цвета. Обычно глаз не в состоянии заметить какой-либо разницы при сжатии этим методом в 10 или 20 раз.
Алгоритм основан на ДКП, применяемом к матрице непересекающихся блоков изображения, размером 8х8 пикселей. ДКП раскладывает эти блоки по амплитудам некоторых частот. В результате, получается матрица, в которой многие коэффициенты, как правило, близки к нулю, которые можно представить в грубой числовой форме, т.е. в квантованном виде без существенной потери в качестве восстановления.