Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternaya_grafika.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
3.06 Mб
Скачать

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

Как и многая информация, графика может быть сжата. Это выгодно с точки зрения экономии памяти компьютера, так как, например, высококачественные изображения имеют размеры до нескольких десятков мегабайтов. Для файлов гра­фических изображений разработано множество схем и алгоритмов сжатия, основ­ными из которых являются следующие:

- групповое сжатие,

- кодирование методом Хаффмана,

- сжатие по схеме LZW,

- арифметическое сжатие,

- сжатие с потерями,

- преобразование цветов RGB в цвета YUV

В основе большинства схем сжатия лежит использование одного из следую­щих свойств графических данных: избыточность, предсказуемость и необязатель­ность. В частности, групповое кодирование (RLE) основано на использовании пер­вого свойства. Кодирование по методу Хаффмана и арифметическое кодирование, основанные на статистической модели, используют предсказуемость, предлагая более короткие коды для более часто встречающихся пикселей. Алгоритмы сжа­тия с потерями основаны на избыточности данных.

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

Рассмотрим подробнее несколько алгоритмов сжатия.

Групповое сжатие

Групповое сжатие представляет собой одну самых простых схем сжатия фай­лов. Суть его заключается в том, что серия повторяющихся величин заменяется единственной величиной и ее количеством. На примере можно заметить выгоду в длине между «aabbbbbbbcdddeeeeaaa» и «2a7blc3d4e3a». Данный алгоритм прост в реализации и хорошо сжимает графические файлы с большими однотонными областями. Групповое кодирование используется во многих форматах растровых файлов таких как TIFF, PCX и т. д.

Кодирование Методом Хаффмана

Смысл метода Хаффмана заключается в замене данных более эффективными кодами. Более короткие коды используются для замены более часто появляющих­ся величин. Например, в выражении abbbcccddeeeeeeeeef есть шесть уникальных величин, с частотами появления: а:1, b:3, c:3, d:2, e:9, f:l. Для образования мини­мального кода используется двоичное дерево. Алгоритм объединяет в пары эле­менты, появляющиеся наименее часто, затем пара объединяется в один элемент, а их частоты объединяются. Это действие повторяется до тех пор, пока элементы не объединятся в пары. В данном примере надо объединить а и f — это первая пара, а присваивается 0 ветвь, а f— 1-я.,Это означает, что 0 и 1 будут младшими битами кодов для а и f соответственно. Более старшие биты будут получены из дерева по мере его построения

' Суммирование частот дает в итоге 2. Два — теперь самая низкая частота, по­этому пара а и f объединяется с d (которая тоже имеет частоту 2). Исходной паре присваивается 0-я ветвь, ad — ветвь 1. Таким образом, код для а заканчивается на 00; для f— на 01, d заканчивается на 1 и будет на один бит короче по сравнению с кодами для а и f.

Дерево продолжает строится подобным образом так, что наименее распростра­ненные величины описываются более длинными кодами. Данное кодирование нуждается в точной статистике, выражающейся в том, как часто каждая величина появляется в файле. Следовательно, для работы по схеме Хаффмана необходимы два этапа: на первом этапе создается статистическая модель, на втором — кодиру­ются данные. Следует отметить, что компрессия и декомпрессия по Хаффману — достаточно медленный процесс.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]