Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций по КГ.pdf
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
2.2 Mб
Скачать

VII. ФОРМАТЫ ГРАФИЧЕСКИХ ФАЙЛОВ

7.1. Основные понятия

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

Симметричность – отношение какой-либо характеристики алгоритма кодирования к аналогичной характеристике при декодировании. Характеризует ресурсоемкость процессов кодирования и декодирования. Например, симметричность по времени кодирования-декодирования или симметричность по -ис пользуемой памяти.

Потери качества – исчезновение из сжатого изображения части информации, которая была в исходном. Одна из серьезных проблем компьютерной графики заключается в том, что до сих пор не найден адекватный критерий оценки потерь качества изображения. А теряется оно постоянно— при оцифровке, при переводе в ограниченную палитру цветов, при переводе в другую систему цветовоспроизведения. Например, расчёт среднеквадратичного отклонения значений пикселей при понижении общей яркости изображения всего на 5% даст величину гораздо большую, чем в случае изображения со“снегом” — резким изменением цвета отдельных точек, полосами или “муаром”, при этом для глаза ситуация совершенно противоположна. Лучше всего потери качества изображений оценивают наши глаза. Отличной считается архивация, при которой невозможно на глаз различить первоначальное и разархивированное изображения. Хорошей — когда сказать, какое из изображений подвергалось архивации, можно только сравнивая две находящихся рядом картинки. При дальнейшем увеличении степени сжатия, как правило, становятся заметны побочные эффекты, характерные для данного алгоритма.

7.2. Растровые форматы файлов и алгоритмы сжатия

7.2.1. Формат PCX и групповое кодирование

Алгоритм группового кодирования (RLE – run-length encoding) – рассчитан на деловую графику, т.е. изображения с большими областями повторяющегося цвета. Ситуация, когда файл увеличивается, для этого простого алгоритма не

137

так уж редка. Ее можно легко получить, применяя групповое кодирование к цветным фотоизображениям. Симметричность по времени – примерно единица.

Для формата PCX алгоритм группового кодирования выглядит следующим образом (рисунок 63): группа одинаковых байтов заменяется двумя: бай- том-повторителем и повторяемым байтом. Сжатие выполняется для каждой строки пикселей отдельно.

Рисунок 63 – Алгоритм группового кодирования

В байте-повторителе два старших разряда всегда единицы. Младшие шесть разрядов содержат число повторений, таким образом, максимальная длина повторяемой цепочки – 63 байта. Если же байт уникален (не повторяется), то он записывается так: если два старших разряда – нули (значение меньше C0h), байт записывается без изменений. В противном случае значение байта пишется с байтом-повторителем, у которого количество повторений равно единице.

Описание формата PCX.

Это один из первых форматов– стандартов для хранения цветных изображений, впервые использовавшийся в редактореPC Paintbrush (Zsoft Corp.), впоследствии лицензированный Microsoft. Файлы изображений начинаются с заголовка длиной 128 байт (рисунок 64). Оставшаяся часть файла состоит из практически всегда подвергнутых сжатию графических данных ,ив некоторых случаях, следующей за ними дополнительной цветовой палитры.

Размер одной несжатой строки изображения находится какNPlanes * Bytes_per_Line. Общие размеры изображения вычисляются как Xmax – Xmin + 1 по горизонтали и Ymax – Ymin + 1 по вертикали. При переходе между слоями не происходит прерывания процесса декодирования и добавляется информация о

138

цвете к той же строке пикселей. Кодовая группа, как правило, завершается при достижении конца строки пикселей.

Рисунок 64 –Структура заголовка файла формата PCX

Палитра в формате PCX.

Если в изображении не более16 цветов, то используется 48-элементная палитра в заголовке файла, состоящая из RGB-троек байтов. При этом в каждом байте палитры допустимы значения от 0 до 255.

256-цветная палитра хранится в конце файла, после графических данных. При этом она может храниться в двух вариантах:

а) cначала идет байт со значением 0Ah, затем идет 256 троек байтов красного, зелёного и синего, но в каждом байте используются только младшие 6 битов каждой компоненты цвета;

139

б) cначала идет байт со значением 0Ch, затем 256 троек байтов для красного, зеленого, синего цветов, в каждом таком байте значимыми являются

старшие 6 битов.

Pежим True Color (16 млн. цветов) несвойственен для формата PCX, однако может поддерживаться. При этом в формировании палитры нет необходимости, видеоданные (после декодирования) представляют собой не смещения в таблице цветов, как во всех прочих режимах, а тройки байтов для красной, зеленой и синей компоненты цвета.

Если в файле задана не одна цветовая плоскость, то палитра также не используется. Четыре плоскости трактуются как плоскостиR, G, B, I. Последняя представляет собой биты удваивания интенсивности цвета.

Прежде всего при чтении требуется проанализировать следующие поля в заголовке файла (отметим, ни одно из этих полей никак не связано с режимом работы видеокарты);

Рисунок 65 – Поля в заголовке файла.

Если прочитанное в заголовке полеVersion равно 5, 256-цветная палитра может присутствовать в файле. Однако номер версии файла неоднозначно определяет способ представления изображения.

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

140