Мультимедийные технологии в САПР. Часть II. Майстренко Н.В - 37 стр.

UptoLike

Рис. 7.5. Формат дескриптора
изображения Gif-файла:
1 байт – "," (символ-разделитель изображения);
2, 3 байтыначало изображения в пикселях относительно
левого края экрана;
4, 5 байтыначало изображения в пикселях относительно
верхнего края экрана;
6, 7 байтыширина изображения в пикселях;
8, 9 байтывысота изображения в пикселях;
10 байтМ (индекс использования таблицы цветов), I (индекс
форматирования
изображения), pixel+1 (число бит/пиксель
в изображении)
Локальная таблица цветов необязательна. Если установлен бит "M" байта 10 в дескрипторе изображения,
то вслед за дескриптором изображения следует локальная таблица цветов, которая относится только к после-
дующему изображению. После обработки изображения цветовую таблицу следует привести к той, которая была
определена после дескриптора экрана. Поле "pixel" байта 10 в дескрипторе изображения используется только в
том случае, если указана локальная таблица цветов. Она определяет не только размер пикселя (число битов в
нем), но и число элементов последующей цветовой таблицы. Число битов на пиксель также следует восстано-
вить к тому значению, которое было определено в дескрипторе экрана, после того, как закончится обработка
изображения.
Растровые данные. Формат самого изображения определен как серия значений номеров пикселей, кото-
рые образуют изображение. Пиксели запоминаются слева направо последовательно по строкам изображения.
По умолчанию строки записываются последовательно, сверху вниз. В том случае, если установлен бит "I" в
байте 10 дескриптора изображения, то порядок строк при записи изображения соответствует четырёхпроход-
ному процессу. При первом проходе записывается каждая 8-я строка, начиная с верхней строки окна изображе-
ния. При втором проходе записывается каждая 8-я строка, начиная с пятой строки сверху. На третьем проходе
записывается каждая 4-я строка, начиная с третьей строки окна. Четвёртый проход завершает изображение, за-
писывая каждую вторую строку, начиная со второй строки сверху.
Значения пикселей изображения обрабатываются как цветовые индексы, указывающие на существующую
таблицу цветов. В результате получается цветовое значение из таблицы, которое реально воспроизводится на
экране. Эти серии цветовых индексов, число которых равно ширине изображения, умноженной на высоту изо-
бражения, пропускаются через поток данных изображения GIF по одному значению на пиксель, сжимаются и
упаковываются в соответствии с версией алгоритма сжатия LZW.
Малый размер GIF-файлов связан с использованием поблочного LZW-сжатия изображения, причем боль-
шинство сжимаемых блоков имеют размер 255 байтов. Каждый пиксель декодированного изображения харак-
теризуется размером в 1 байт и содержит значение индекса цвета, т.е. положение нужного цветового тона в
глобальной или локальной цветовой палитре.
Терминатор GIF. Для того чтобы обеспечить синхронизацию с окончанием файла изображения GIF, деко-
дер GIF должен обрабатывать окончание режима GIF по символу шестнадцатеричное 0×3B или ";", найденному
после окончания обработки изображения. По соглашению декодирующие программы должны делать паузу и
ждать действий, указывающих, что пользователь готов к продолжению. Это может быть возврат каретки, вве-
дённый с клавиатуры, или щелчок кнопкой мыши. Для интерактивных приложений эти действия пользователя
должны быть переданы в ядро программы как перевод каретки для того, чтобы вычислительный процесс мог
продолжаться. Обычно декодирующая программа покидает графический режим и возвращается к предыдущему
процессу.
Возможности GIF-анимации связаны с тем, что этот формат позволяет хранить в одном файле несколько
различных изображений. Современная версия GIF89a, выпущенная двумя годами позднее первоначальной, до-
бавила несколько новых возможностей и решила проблему обработки изображений, размещённых в одном
файле. Для этого в описание файла был добавлен специальный блок "Управляющие расширения", который раз-
мещён сразу после трёх общих для всего файла элементов и предшествует описанию отдельных изображений в
составе файла. В состав управляющих расширений входят: расширение комментариев, расширение приложений и
расширение управления графикой. В последнем указана, в частности, и величина задержки кадра в сотых долях
секунды, а также значение индекса прозрачности цвета, который позволяет создавать новые анимационные эф-
фекты с помощью дополнительно включённого в файл блока управления графикой. Этот блок позволяет про-
грамме просмотра организовать взаимодействие каждого последующего изображения с текущим, что и обеспечи-
ло создание широко распространённых анимационных GIF-файлов.
Большинство современных программ-аниматоров обеспечивает подготовку анимационных файлов именно
в формате GIF. Однако существуют ограничения при использовании GIF-анимации. Формат GIF89a не допус-