Курс лекций по компьютерной геометрии и графике
  256Компьютерная графикаКГиГТема № 2. Форматы графических файлов

Тема № 2 Форматы графических файлов

Страницы: 1 2 3 4 5 6 7

Страница 5

Локальная таблица цветов

Локальная таблица цветов необязательна. Если установлен бит 'M' байта 10 в дескрипторе изображения, то далее следует локальная таблица цветов, которая относится только к последующему изображению. После обработки изображения цветовую таблицу следует привести к той, которая была определена после дескриптора экрана. Число битов на пиксел также следует восстановить к тому значению, которое было определено в дескрипторе экрана, после того, как закончится обработка изображения.

Растровые данные

Формат самого изображения определен как серия значений номеров пикселов, которые образуют изображение. Пикселы запоминаются слева направо последовательно по строкам изображения. По умолчанию строки записываются последовательно, сверху вниз. В том случае, если установлен бит 'I' в байте 10 дескриптора изображения, то порядок строк при записи изображения соответствует четырех проходному процессу. При первом проходе записывается каждая 8-ая строка, начиная с верхней строки окна изображения. При втором проходе записывается каждая 8-ая строка, начиная с пятой строки сверху. На третьем проходе записывается каждая 4-ая строка, начиная с третьей строки окна. Четвертый проход завершает изображение, записывая каждую вторую строку, начиная со второй строки сверху.


Рис. 5 Графическое описание процесса декодирования

Рис. 5 Графическое описание процесса декодирования


Значения пикселов изображения обрабатываются как цветовые индексы, указывающие на существующую таблицу цветов. В результате получается цветовое значение из таблицы, которое реально воспроизводится на экране. Эти серии цветовых индексов, число которых равно ширине изображения * высоту изображения, пропускаются через поток данных изображения GIF по одному значению на пиксел, сжимаются и упаковываются в соответствии с версией алгоритма сжатия LZW.

Терминатор GIF

Для того чтобы обеспечить синхронизацию с окончанием файла изображения GIF, декодер GIF должен обрабатывать окончание режима GIF по символу шестнадцатеричное 0x3B или ';', найденному после окончания обработки изображения. По соглашению декодирующие программы должны делать паузу и ждать действий, указывающих, что пользователь готов к продолжению. Это может быть возврат каретки, введенный с клавиатуры или щелчок кнопкой мыши. Для интерактивных приложений эти действия пользователя должны быть переданы в ядро программы как перевод каретки, для того, чтобы вычислительный процесс мог продолжаться.

Расширенный блок GIF

Для того чтобы обеспечить аккуратное расширение определения GIF, необходим механизм для определения упаковки внутри потока данных GIF. Указанное расширение было определено и документировано CompuServe для того, чтобы предусмотреть управляемый способ усовершенствований.

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

 
биты
7 6 5 4 3 2 1 0 № байта  
0 0 1 0 0 0 0 1 1 '!' – Идентификатор расширенного блока
Функциональный код 2 Расширенный функциональный код (0-255)
Байт-счетчик    
Функциональные байты данных   Повторяется столько раз, сколько необходимо
… … …    
0 0 0 0 0 0 0 0   нулевой байт-счетчик (терминатор блока)

Рис. 6 Основная структура блока

Расширенный блок GIF может непосредственно предшествовать дескриптору изображения или находиться перед терминатором GIF.

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

Страницы: 1 2 3 4 5 6 7

Рекламный блок

Информационный блок