КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА - GIF (Формат графического обмена)

Индекс материала
GIF (Формат графического обмена)
Стр. 2
Стр. 3
Стр. 4
Все страницы
                           G I F (tm)
                Graphics Interchange Format (tm)
                  (Формат графического обмена)

                Стандартное определение механизма
                   для запоминания и передачи
                растровой графической информации

                          June 15, 1987
                (c) CompuServe Incorporated, 1987
                       All rights reserved

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

              GIF и 'Graphics Interchange Format'
      являются торговой маркой CompuServe, Incorporated.
       an H&R Block Company 5000 Arlington Centre Blvd.
                      Columbus, Ohio 43220
                         (614) 457-8600


      Перевод с английского языка выполнен А.С.Самотохиным
             Институт прикладной математики АН СССР
                     Москва, ноябрь 1990 г.

                             - 2 -
           Описание формата графического обмена (GIF)

                           Оглавление

        ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . 3
        ОБЩИЙ ФОРМАТ ФАЙЛА . . . . . . . . . . . . . . 3
        ИДЕНТИФИКАТОР GIF. . . . . . . . . . . . . . . 4
        ДЕСКРИПТОР ЭКРАНА. . . . . . . . . . . . . . . 4
        ГЛОБАЛЬНАЯ ТАБЛИЦА ЦВЕТОВ. . . . . . . . . . . 5
        ДЕСКРИПТОР ИЗОБРАЖЕНИЯ . . . . . . . . . . . . 6
        ЛОКАЛЬНАЯ ТАБЛИЦА ЦВЕТОВ . . . . . . . . . . . 7
        РАСТРОВЫЕ ДАННЫЕ . . . . . . . . . . . . . . . 7
        ТЕРМИНАТОР GIF . . . . . . . . . . . . . . . . 8
        РАСШИРЕННЫЙ БЛОК GIF . . . . . . . . . . . . . 8
        ПРИЛОЖЕНИЕ A - ГЛОССАРИЙ . . . . . . . . . . . 9
        ПРИЛОЖЕНИЕ B - ВЗАИМОДЕЙСТВУЮЩИЕ
                       ПОСЛЕДОВАТЕЛЬНОСТИ. . . . . . . 10
        ПРИЛОЖЕНИЕ C - УПАКОВКА И СЖАТИЕ ИЗОБРАЖЕНИЯ . 12
        ПРИЛОЖЕНИЕ D - ОБРАБОТКА НЕСКОЛЬКИХ
                       ИЗОБРАЖЕНИЙ . . . . . . . . . . 15

                              - 3 -

                            ВВЕДЕНИЕ

     'GIF' (tm)  - это  стандарт фирмы  CompuServe для определения
растровых цветных изображений.  Этот формат позволяет  высвечивать
на   различном    оборудовании   графические    высококачественные
изображения с большим разрешением и подразумевает механизм  обмена
и высвечивания изображений. Описанный в настоящем документе формат
изображений  был  разработан  для  поддержки  настоящей  и будущей
технологии  обработки  изображений  и  будет  в дальнейшем служить
основой для будущих графических продуктов CompuServe.

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

     Первый раздел  настоящего документа  описывает формат  данных
GIF и его компоненты в приложении к декодерам GIF, вне зависимости
от того  являются ли  они отдельной  программой или  частью пакета
связи.   Приложение  B  относится  к  декодерам являющимися частью
пакетов  связи  и  описывает  протокол,  необходимый  для  входа и
существования режима GIF и отвечает на ряд специфических вопросов.
Глоссарий   в   приложении   A   определяет   некоторые   термины,
использованные в документе. Приложение C дает подробное объяснение
того,   как   сами   графические   изображения   пакуются  в  виде
последовательности байтов.

                 Определение формата данных GIF

                       ОБЩИЙ ФОРМАТ ФАЙЛА

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і
і і     Идентификатор GIF     і і
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і
і і      Дескриптор экрана    і і
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і
і і Глобальная таблица цветов і і
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і
. . .                       . . .
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і    ДДДї
і і   Дескирптор изображения  і і       і

і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і       і
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і       і
і і Локальная таблица цветов  і і       ГДД  Повторяется
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і       і    от 1 до n раз
і ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї і       і
і і      Растровые данные     і і       і
і АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ і    ДДДЩ
. . .                       . . .
ГД  Терминатор  GIF            Дґ
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

                              - 4 -

                        ИДЕНТИФИКАТОР GIF

     Наличие в начале  файла специальной "подписи"  указывает, что
последующие   данные   являются   действительно   потоком   данных
изображения  в  формате  GIF.  Эта  "подпись" состоит из следующих
шести символов:
             G I F 8 7 a
Три последних символа '87a' могут рассматриваться как номер версии
для данного конкретного определения  GIF и будут использоваться  в
дальнейшем  в  качестве  ссылки  на  документ  с  описанием  GIF в
зависимости от номера версии.

                        ДЕСКРИПТОР ЭКРАНА

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

              биты
 7 6 5 4 3 2 1 0  Номер байта
ЪДДДДДДДДДДДДДДДї
і               і  1
ГДШирина экранаДґ      Ширина растра в пикселах (сначала LSB)
і               і  2
ГДДДДДДДДДДДДДДДґ
і               і  3
ГДВысота экранаДґ      Высота растра в пикселах (сначала LSB)
і               і  4
ГДВДДДДДВДВДДДДДґ      M = 1, За дескриптором следует глобальная
і і     і і     і             таблица цветов
іMі  cr і0іpixelі  5   cr+1 = число битов цветового разрешения
ГДБДДДДДБДБДДДДДґ      pixel+1 = число бит/пиксел в изображении
і   background  і  6   фон = цветовой индекс фона экрана
ГДДДДДДДДДДДДДДДґ         (цвет определяется из глобальной таблицы
і0 0 0 0 0 0 0 0і  7        цветов или из таблицы по умолчанию)
АДДДДДДДДДДДДДДДЩ

     Ширина и высота логического экрана могут быть больше размеров
физического экрана. Способ  высвечивания изображений больших,  чем
размеры  физического   экрана  зависит   от  реализации   и  может
использовать преимущества конкретного оборудования (например, окна
скроллинга  в  Macintosh  scrolling  windows).  В противном случае
изображение будет усечено по краям экрана.

     Значение 'pixel' также определяет число цветов в изображении.
Диапазон значений 'pixel' составляет от 0 до 7, что  соответствует
от 1 до  8 битам. Это  транслируется в диапазон  от 2 (черно-белые
изображения) до 256  цветов.  Бит  3 в байте  5 зарезервирован для
будущих определений и должен быть нулевым.

                              - 5 -

                    ГЛОБАЛЬНАЯ ТАБЛИЦА ЦВЕТОВ

     Глобальная   таблица   цветов   является   необязательной   и
рекомендуется  для  изображений,  где  требуется  точная  передача
цветов. На существование этой таблицы указывает поле 'M' в байте 5
дескриптора экрана.  Цветовая  таблица может быть также  связана с
каждым изображением в GIF-файле, что будет описано позже.   Однако
обычно  эта   глобальная  таблица   будет  использоваться,   из-за
ограничений,   существующих   в   настоящее   время   в  доступном
оборудовании.  Флаг  'M'  в  дескрипторе  конкретного  изображения
обычно равен 0.   Если глобальная таблица цветов  присутствует, ее
определение следует непосредственно за дескриптором экрана.  Число
элементов цветовой таблицы,  следующей за описателем  экрана равно
2**(число  бит/пиксел),  причем  каждый  элемент  состоит  из трех
байтов,  значения  которых  описывают соответственно относительную
интенсивность красного, зеленого и синего цветов. Структура  блока
цветовой таблицы:

      биты
 7 6 5 4 3 2 1 0  Байт #
ЪДДДДДДДДДДДДДДДї
іинтен. красногоі  1    Значение красного для цвета 0
ГДДДДДДДДДДДДДДДґ
іинтен. зеленогоі  2    Значение зеленого для цвета 0
ГДДДДДДДДДДДДДДДґ
іинтен. синего  і  3    Значение синего для цвета 0
ГДДДДДДДДДДДДДДДґ
іинтен. красногоі  4    Значение красного для цвета 1
ГДДДДДДДДДДДДДДДґ
іинтен. зеленогоі  5    Значение зеленого для цвета 1
ГДДДДДДДДДДДДДДДґ
іинтен. синего  і  6    Значение синего для цвета 1
ГДДДДДДДДДДДДДДДґ
:               :       (Продолжение для остальных цветов)