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

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

Особенности RLE для формата Targa.

Каждая строка сжимается отдельно, конец строки безусловен для алгоритма сжатия.

В сжатых кодах первым идет управляющий байт: старший бит управляющего байта сообщает тип следующей за ним группы. Если он

равен 1, то следующий за ним байтповторяемый, количество повторений определяется значением всех остальных битов управляющего байта+ 1. Если старший бит = 0, то следующая за управляющим группа байтов не подвергалась преобразованию, при этом длина этой группы определяется значением всех остальных битов управляющего байта+1. Пример: последовательность (шеснадцатеричные числа): 03h 12h 24h 33h

после обработки превратится в набор байтов12h 24h 33h 12h, а последо-

вательность 84h 03h - в набор 03h 03h 03h 03h 03h.

7.2.4. Формат GIF

Формат GIF (Graphics Interchange Format, Формат Взаимообмена Гра-

фикой). Преимущественное использование GIF23 – передача графических данных в режиме«онлайн» по компьютерным сетям. Эксклюзивный владелец –

CompuServe Incorporated. Основной формат GIF89a (стандарт 1990 года). Отли-

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

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

23

Читается [‘jif]

146

Идентификатор – шесть символов Блок изображения GIF89a или GIF87a. Завершитель файла – символ; Дескриптор экрана – обязательный блок, имеющий структуру, указанную на рисунке 72.

Глобальная палитра присутствует, если об этом указано в дескрипторе

экрана, при этом в палитре последовательно идутR, G и B байты начиная с число бит на пиксель нулевого цвета. Количество троек байтов равно 2число бит

на пиксель.

Блок изображения хранит растровые данные. В одном файле может быть несколько блоков изображения, и соответственно несколько изображений.

Рисунок 71– Общая структура файла формата GIF

Рисунок 72 – Дескриптор экрана Идентификатором блока изображения является символ. Завершителем

блока является нулевой байт. Структура дескриптора изображения представлена на рисунке 73.

147

Рисунок 73 – Структура дескриптора изображения Локальная палитра строится по тем же правилам, что и глобальная. Число

бит на пиксель в дескрипторе изображения определяет количество элементов в локальной палитре. Размер кода LZW указывает максимальное число битов, необходимое для представления декодированных данных. Как правило, оно совпадает с числом битов на пиксель. Структура блока кодов изображения приведена на рисунке 74.

Рисунок 74 – Блок кодов изображения

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

148

Рисунок 75 – Информационный блок GIF

Информационный блок GIF (см. рисунок 75) содержит в общем случае данные произвольной структуры и несёт дополнительную функцию обработки присутствующих в файле изображений(например, описание эффектов анимации) или текстовый комментарий. Структура блока приведена на рисунке76.

Идентификатором блока является символ !. Завершитель блока – нулевой байт.

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

Рисунок 76 – Структура блок расширения GIF

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

149