Скачиваний:
477
Добавлен:
04.03.2014
Размер:
4.9 Mб
Скачать

Ааааааааааааааа

После RLE-кодирования та же строка займет все­­го два байта: 15А. Схемы RLE просты и быстры, но эффективность сжатия зависит от типа данных изображения, подлежащего кодированию. Черно-бе­лые изображе­ния, со­держащие значительно больше белого цве­­­­­та (напри­мер, страница книги), кодируются очень хорошо, поско­ль­ку включают большие объемы непрерывных данных постоянного цвета. Однако, сложные изображе­ния с большим количеством цветов, типа фотографий, кодируются значительно хуже.

Анализ эффективности алгоритмов сжатия без потерь показывает, что для черно-белых изображений наиболее эффективны модифицированные алгоритмы Хаффмана.

Схема сжатия без потерь Лемпела-Зива-Велча, названная в честь разработчиков LZW-сжатием является одной из наи­более распространенных в компьютерной графике. Этот метод применяется в различных форматах файлов изобра­жений в частности в GIF и TIFF, а также включен в стандарт сжатия для модемов V.42bis и post-Script Level 2. Основой метода явился созданный в 1977 г. А. Лемпелом и Д. Зивом первый компрессор из широко известного семейства архиваторов LZ. В соответствии с алгоритмом пер­вая часть файла передается без сжатия, и кодируются лишь та часть изображения, в которой содержатся уже переданные данные (например, где значения яркости повторяются). Ал­горитмы сжатия LZ77 широко использовались для сжатия текста, а также стали основой таких архивирующих программ как ZOO, LHA, PKZIP и ARJ. Алгоритмы сжатия LZ78 часто применялись для сжатия двоичных данных, например, бинарных изображений. В 1984 г. сотрудник фи­рмы Unisys Т. Велч модифицировал компрессор LZ78 с учетом применения высокоскоростных дисковых контроллеров. Алгоритм LZW относится к алгоритмам, основанным на словарях.

Подведем итоги.

Чем больше количество деталей в изображении, тем хуже оно сжимается. Это характерно для полутоновых изображений и изображения в истинных цветах. Степень сжатия составляет 5%. Палитровые изображения сжимаются без потерь весьма эффективно, особенно при использовании комбинации LZW и RLE (КДС) методов. В лучшем случае, степень сжатия достигает 50%. В то же время, использование этих методов сжатия иногда приводит к увеличению размера графического фай­ла.

Принципиально другой подход используется в методах сжатия изображений с потерей информации. Он основан на частотном представлении изображения. Действительно, инфо­р­мационное содержание виде­о­си­г­на­ла чаще удо­бно ана­лизи­ро­вать, не рассматривая его изменение во вре­мени, а раскладывая на частотные составляющие. Тогда, бла­годаря удалению менее существенных ко­м­понент можно упростить запоминание сигнала и, следовательно, уме­ньшить требуемую емкость памяти. Правда, некоторая часть информации теряется безвозвратно. Наиболее известным способом кодирования с потерей информации является сжатие с помощью ДКП (DCT). ДКП - это общее имя определенного класса операций, на которых базируются раз­­личные методы сжатия, в основе которых ле­жит цифровое частотное кодирование. Для примера рассмотрим процесс сжатия полутонового изображения, состоящего из матрицы байтовых элементов. На первом этапе производится преобразование значений яркости и цвета каждого элемента в частотную область. Для упрощения процедуры изображение разбивается на субматрицы размером 88 элементов, в которых определяются частотные сос­тав­ля­ющие фрагментов. Затем сокращают число этих составляющих, сохраняя только самые существенные, и, наконец, записы­вают их возможно более компа­к­тным способом.

ДКП определяется следующей процедурой:

PDCT = DCTPDCTT

Здесь P - блок изображения размером 88 элементов, P - блок дан­ных после ДКП, DCT - ма­трица ко­синусного преобразо­ва­ния, DCTT - соответствую­щая ей тра­н­­спон­иро­ван­ная матрица. Зна­ком обозна­че­но мат­ри­ч­ное ум­ножение.

Матрица ДКП имеет вид пре­дставленный на рис. 6.39. Для упрощения записи в каждом коэффициенте учтены только три цифры после запятой.

Процедура ДКП реализуется с помощью последовательности матричных перемножений, поблочно (размер блока 88 элементов). Сначала производится умножение видеоданных P на транспонированную ДКП матрицу DCTT, затем результат умножается на собственно матрицу ДКП. Результатом этого преобразования является новая матрица, численные значения элементов которой быстро уменьшаются от левого верхнего угла к правому нижнему (рис. 6.40). Она характеризует распределение частот в видеоданных: в левом верхнем углу размещаются наиболее важные данные. Сжатие выполняется путем устранения менее важных составляющих, для чего проводится квантование преобразованных (частотных) данных. Идея квантования заключается в выборке из матрицы тех составляющих изображения, которые превышают некоторый частотный порог. Выбор правильного порога является отдельной проблемой. Если он будет слишком высоким, то потеряется большая часть видеоданных, хотя и само сжатие будет значительным. Тогда восстановленное изображение будет сильно отличаться от исходного. На практике, можно обеспечить степень сжатия до 80%, прежде чем потери качества изображения будут заметными [ ]. Квантование осуществляется умножением «частотной матрицы» на матрицу делителей, определяемую с помощью алгоритма «дели­тель - качество». Так, при квантовании «с качеством 2» при котором потери прак­тически незаметны в матрице сохраняется лишь неболь­шое число ненулевых элементов, значения которых также невелики [ ]:

Полученные значения можно экономно запомнить, применяя, например, кодирование по Хаффману. Если установить зигзагообразную траекторию обхода коэффициентов, то можно получить очень длинную непрерывную последо­вательность из 26 нулей.

Восстановление сжатого изображения производится обратным ДКП. При этом все шаги выполняются в обратном порядке.

ДКП является очень эффективным способом сжатия. При его использовании необходимо в изображении выделить яркостную и цветовую компоненты. Поэтому если изображение представлено в цветовых моделях RGB или CMYK, его следует преобразовать в одну из аппаратно-независимых моделей - HSV или YUV. Яркостную информацию сжимают непосредственно, а цветовую с помощью ДКП. Следовательно, и палитровые изображения с помощью ДКП также не сжимаются. Это связано с тем, что в них цвет пикселей представлен не непосредственно, а лишь через индексы в таблице цветов. Поэтому палитровые изо­бражения тоже необходимо преобразовать в форму HSV или YUV моделей, что оправданно лишь в редких случаях.

Теперь рассмотрим некоторые особенности спецификации JPEG. На сегодняшний день JPEG является одним из наиболее актуальных направлений развития технологии сжатия изображений. Принцип JPEG-кодирования также не является одним алгоритмом сжатия; он может рассматриваться как набор методов сжатия, при­­годных для удовлетворения нужд пользователя. В основе JPEG лежит схема ДКП кодирования (рис. 6.41).

Аббревиатура JPEG про­­исходит от названия комитета по стандартам Jo­int Photo­graphic Experts Gro­up (дословно - объе­ди­нен­ная груп­па экспертов по фотографии), входящего в состав Международной организации по ста­н­дар­тизации (ISO). В 1982 году ISO сформировала группу экспертов по фотографии (PEG), возложив на нее обязанности по проведению исследований в области передачи видеосиг­налов неподвижных изображений и текстов по каналам ISDN (интеграль­ной цифровой сети связи). В 1987 году PEG и CCITT объединили свои группы в коми­тет, который должен был провести ис­сле­дования и выпустить один стандарт сжатия данных. Новый комитет получил название JPEG.

Схема JPEG была специально разработана для сжатия цветных и полутоновых (т.е. многограда­ци­он­ных) изображений - фото­графий и другой сло­жной графики. При этом анимация, черно-белые ил­люстра­ции и документы, а также типичная векторная графика, как правило, сжимаются плохо. Прак­тически JPEG хорошо работает только с изо­бра­жени­ями, имеющими глубину хотя бы 4 … 5 битов на цве­то­вой канал.

Алгоритм JPEG преобразует каждый компонент цветовой модели отдельно, что обеспечивает его полную независимость от любой модели цветового прост­ранства (напри­мер, от RGB, HSI или SMY). Лучшая степень сжатия достигается в слу­чае применения цветового пространства YUV или YCbCr. Спецификация на JPEG файлы показывает, что это расширение позволяет хранить одно и то же изображение с разными разрешениями в порядке иерархии. Так, изображение может быть сохранено с разрешениями 250250, 500500, 10001000 и 20002000 пикселей (что позволяет поддерживать его отображение на экранах мониторов с низким раз­решением, лазерных принтерах среднего разрешения и на высококачественных устройствах печати). Степень сжатия изображения с фотогра­фическим качеством может составить от 20:1 до 25:1 без заметной потери качества. Регулиро­вание качества кодировщика JPEG осуществляется с помощью Q-фак­тора. В различных программах обработки изображений используются разные диапазоны изменения Q-фактора, но типичные значения находятся в диапазоне 1... 100. При Q = 100 сжатие мало: изображение будет иметь значительный размер, но высокого качества. Оптимальное значение Q-фактора зависит от содержимого изображения и под­бирается индивидуально.

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

Компоненты цветности в JPEG кодируются методом субдискретизации. Суть этого подхода, заключающе­го­ся в уменьшении количества пикселей для каналов цветности, основана на меньшей чувствительности глаза к цветовой информации. Например, при сохранении цветного изображения размером 10001000 пикселей можно использовать все 10001000 пикселей яркости, но только 500500 пикселей для каждой компоненты цветности. При таком представлении каждый пиксель цветности будет охватывать ту же область, что и блок 22 пикселей яркости. Следовательно, для кодирования блока 22 требуется всего 6 пиксельных значений (4 значения яркости и по 1 значению для каждого канала цветности U и V). В несжатом виде такой блок требует 12 пиксельных значений (4 + 4 + 4). Существенно, что уменьшение объема данных на 50% практически не отражается на качестве большинства изображений.

Таким образом, при сжатии изображения в цветовой модели YUV яркостную компоненту Y (также как и полутоновые изображения) сжимают непосредственно. Информация о цвете U и V в соседних элементах изо­бра­жения объединяется. Так, при субдискретизации 4:2:2 про­изводится суммирование значений U и V для че­тырех соседних элементов, а запоминается только среднее значение. Тогда, даже несжатый по яркости, но суб­дис­­крети­зи­рованный по цвету массив из 4-х элементов изображения будет представлен 6 байтами, что соответствует 12 (48:4) би­там на элемент. Уже при этом достигается 50% сжатие информации. Еще более высокая степень сжатия достигается при субдискретизации 4:1:1, когда объединяются значения восьми соседних элементов. Благодаря этому количество данных на элемент изо­­бражения сокращается с 24 до 10 бит. Сжа­тие до­стигает 58%, хотя уже становятся заметными некоторые цветовые искажения. Большее сжатие применяют только для подвижных изображений. Стандарт JPEG предлагает несколько различных вариантов определения коэффициентов дискретизации, или относительных размеров каналов субдискретизации. Канал яркости всегда остается с полным разрешением (дискретизация 1:1). Для обоих каналов цветности обычно производится субдискретизация 2:1 в горизонтальном на­правле­нии и 1:1 или 2:1 - в вертикальном. При этом подразумевается, что пиксель цве­тности будет охватывать ту же область, что и блок 21 или 22 пикселей яркости. Согласно терминологии JPEG, эти процедуры называются 2hlv и 2h2v-дискретизацией соответственно.

В последние годы в СТЗ используется также и фрактальное сжатие изображений. Фрактальное кодирование  - это математический процесс, применяемый для кодирования растров, которые содержат реальное изображение, в со­вокупность математических данных, которые опи­сывают фрактальные свойства изображения. Фрак­тальное кодирование (наиболее известен формат FIF) ос­новано на том факте, что все естественные и боль­шинство искусственных объектов содержат из­быточную инфор­мацию в виде одинаковых, повторяющихся рисунков, которые называ­ются  фрак­талами. Фрактальное представление подобно векторной двухмерной и объемной графике оперирует математическими описаниями объектов, а не их реальными изображениями. Существен­ное различие между векторной и фрактальной графикой состоит в том, что фрактальные описания вы­водятся из реальных изображений объектов, тогда как векторные - это чисто искусственные структуры. Фрактальное кодирование изображения требует исключительно большого объема вычислений, включающего миллионы и даже миллиарды итераций. Декодирование фрактального изображения про­цесс гораздо более простой, так как вся трудоемкая работа была выполнена при поиске всех фрак­­талов во время кодирования. В процессе декодирования нужно лишь интерпретировать фрактальные коды, преобразовав их в растровое изображение. Фрактальное представление имеет два существенных достоинства. Во-первых, фрактальное изображение можно масштабировать без введения артефактов и потери деталей, как это характерно для растровых изображений. Во-вторых, размер физических данных, используемых для записи фра­ктальных кодов, значительно меньше (более чем в 100 раз) размера исходных растровых данных. Име­­­­н­­но этот аспект фрактальной технологии, называемый фракталь­ным  сжа­тием, вызвал наиболь­ший интерес в сфере формирования и воспроизведения компьютерных изображений.

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

В завершении приведем результаты сравнительного анализа некоторых известных графических форматов (табл. 6.16).

Таблица 6.16 . Степень сжатия базового изображения в некоторых форматах

Параметры изображения: 64048024

Сжатие без потерь

Сжатие с потерями

Формат

Размер (байты)

Формат

Размер (байты)

BMP

921656

JPEG (Q=0)

26591

IFF

751138

JPEG (Q=5)

45734

PCX

789801

JPEG (Q=8)

83256

PNG

310827

JPEG (Q=10)

114171

PNG-Adaptive

261427

FIF (Q=65)

15074

TGA-24

24921644

FIF (Q=85)

24740

TIFF-LZW

303976

FIF (Q=90)

31952

TIFF

929472

FIF (Q=100)

172542

GIF87 (8-bit)

141458

Подведем некоторые итоги. Простой способ получения графического файла заключается в использовании известной процедуры Print Screen. Полученный экранный кадр хорошо сжимается методом КДС (в формат РСХ), и LZW (в форматы GIF и TIF). Палитровое изображение методом КДС не сжимается совсем. Его лучше сохранять в форматах GIF и TIF (т.е. использовать LZW-метод). Метод JPEG для палитровых изображений неэффективен. Полутоновое изображение плохо сжимается и КДС и LZW методами. TIF-формат позволяет запоминать со сжатием изо­бражение в истинных цветах (известных как True Color).. С этой целью целесообразно использовать LZW-метод. Методы JPEG-сжатия эффективны и для полутоновых изображений и для изображений в истинных цветах. Но поскольку цветовая информация сжимается лучше (особенно при использовании субдискретизации), коэффициенты сжатия для полутоновых изображений оказываются меньшими, чем для True Color изображений, но большими, чем при сжатии без потерь (КДС и LZW).

Соседние файлы в папке Учебник - информационные системы