 |
ПРИЛОЖЕНИЕ A
ГЛОССАРИЙ
Пиксел - Наименьший элемент графического изображения. Обычно
соответствует отдельной точке на графическом экране. Разрешение
изображения обычно задается в пикселах. Например, одним из
довольно стандартных экранных графических форматов является 320
пикселов по горизонтали на 200 по вертикали. Каждый пиксел
может быть окрашен одним из нескольких цветов в зависимости от
возможностей графического оборудования.
Растр - горизонтальные уровни пикселов, представляющие одну строку
изображения. Типичный метод порождения изображения, поскольку
большинство образцов видеоборудования ориентировано на наиболее
эффективную работу именно таким образом.
LSB - Сокращение от Least Significant Byte ( младший по значению
байт). Ссылается на соглашение для двух байтов числового
значения, согласно которому младший по значению байт
предшествует более старшему. Такое соглашение типично для
микрокомпьютеров.
Таблица цветов - Список определений для каждого цвета,
используемый в изображениях GIF. Желаемые цвета конвертируются
в доступные цвета с помощью таблицы, причем по входным цветовым
индексам изображения образуются выходные цветовые индексы
оборудования. Если для изображения GIF указана таблица цветов,
то цвета выходных пикселов будут изменены на основе
используемого оборудования и его способности соответствовать
заданным цветам.
Переплетение - Метод высвечивания изображений GIF, при котором
совершаются несколько проходов с выводом разнесенных строк
растра, что дает возможность визуализации общего содержания
всего изображения до того, как обработаны все данные.
B Протокол - Свободно распространяемый протокол передачи файлов с
исправлением ошибок, разработанный CompuServe и реализованный в
продукте VIDTEX фирмы CompuServe. Такой механизм обнаружения
ошибок будет использован при передаче изображений GIF для
интерактивных приложений.
LZW - Совершенный алгоритм сжатия данных, основанный на работе,
сделанной Lempel-Ziv и Welch, который обеспечивает возможность
высокоэффективного однопроходного кодирования и декодирования.
Это позволяет одновременно раскрывать и высвечивать
изображения. Исходная статья, в которой был описан указанный
метод:
Terry A. Welch, "A Technique for High
Performance Data Compression", IEEE Computer, vol 17
no 6 (June 1984)
Этот базовый алгоритм также используется в свободно
распространяемых утилитах ARC для сжатия файлов. Адаптация
алгоритма LZW, выполненная CompuServe для GIF описана в
приложении C.
- 10 -
ПРИЛОЖЕНИЕ B
ПОСЛЕДОВАТЕЛЬНОСТЬ ОБМЕНОВ GIF ДЛЯ ИНТЕРАКТИВНОЙ СРЕДЫ
Для управления на интерактивной линии связи между
отправителем и получателем GIF определена следующая
последовательность действий. Эта последовательность не применяется
в приложениях, включающих загрузку статических GIF-файлов и не
является частью GIF-файлов.
ЗАПРОС ВОЗМОЖНОСТЕЙ GIF - GIF CAPABILITIES ENQUIRY
Последовательность GCE идет из головного процесса и требует,
чтобы интерактивный декодер GIF вернул ответное сообщение, которое
определяет графические параметры для декодирования. Оно включает
возвращаемую информацию о доступных размерах экрана, числе битов
на цвет и поддерживаемом количестве цветов. Esc-последовательность
для GCE определена следующим образом:
ESC [ > 0 g (g в нижнем регистре, пробелы вставлены для
ясности)
(0x1B 0x5B 0x3E 0x30 0x67)
СООБЩЕНИЕ ВОЗМОЖНОСТЕЙ GIF - GIF CAPABILITIES RESPONSE
Ответное сообщение о возможностях GIF возвращается
интерактивным декодером и определяет возможности дисплея декодера
для всех графических режимов, поддерживаемых математическим
обеспечением. Заметьте, что оно может также включать графический
принтер, а не только экран монитора. Общий формат этого сообщения:
#version;protocol{;dev,width,height,color-bits,color-res}...
'#' - GCR символ-идентификатор (Знак номера)
version - номер версии формата GIF; начально '87a'
protocol='0' - Протокол end-to-end не поддерживается декодером.
Передача данных ведется непосредственным 8-битным
потоком.
protocol='1' - Может поддерживать протокол коррекции ошибок при
передаче данных от прямого хозяина на дисплей.
dev = '0' - Далее следуют параметры экрана
dev = '1' - Далее следуют параметры принтера
width - Максимальная ширина дисплея в пикселах
height - Максимальная высота дисплея в пикселах
color-bits - Поддерживаемое число битов на пиксел.
Следовательно, поддерживаемое число цветов
2**color-bits.
color-res - Число битов на компоненту цвета, поддерживаемое
аппаратной цветовой палитрой. Если color-res равен
'0', таблица аппаратной палитры недоступна.
Заметьте, что все значения в GCR возвращаются в десятичных
числах ASCII и сообщение заканчивается символом "Возврат каретки".
- 11 -
Следующее GCR-сообщение описывает три стандартных режима
EGA с конфигурацией без принтера, поток данных GIF может
обрабатываться в рамках протокола с коррекцией ошибок:
#87a;1 ;0,320,200,4,0 ;0,640,200,2,2 ;0,640,350,4,2
ВВОД ГРАФИЧЕСКОГО РЕЖИМА GIF
Две последовательности, определенные ниже вызывают для работы
интерактивный декодер GIF. Между ними существует только
единственное отличие. Оно заключается в выборе различной среды
вывода. Эти последовательности:
ESC [ > 1 g Высветить изображение GIF на экране
(0x1B 0x5B 0x3E 0x31 0x67)
ESC [ > 2 g Выдать изображение непосредственно на
присоединенный графический принтер. Допускается
также необязательный вывод на экран.
(0x1B 0x5B 0x3E 0x32 0x67)
Заметьте, что символ 'g', заканчивающий каждую
последовательность находится в нижнем регистре.
ИНТЕРАКТИВНАЯ СРЕДА
Подразумеваемой средой при пересылке данных об изображении
GIF в интерактивных приложения является полностью 8-битный поток
данных от "хозяина" к получателю. Об установке 8-битного способа
пересылки данных при связи обычно должна заботиться головная
прикладная программа. Однако программа-получатель, поддерживающая
декодер GIF в линии связи, должна быть способна принимать и
передавать декодеру GIF все 256 возможных кодов 8-битных данных.
- 12 -
ПРИЛОЖЕНИЕ C
СЖАТИЕ И УПАКОВКА ИЗОБРАЖЕНИЯ
Поток растровых данных, которые описывают действительное
выходное изображение может быть представлен в следующем виде:
7 6 5 4 3 2 1 0
ЪДДДДДДДДДДДДДДДї
і код размера і
ГДДДДДДДДДДДДДДДґ ДДДї
і байт-счетчик і і
і блока і і
ГДДДДДДДДДДДДДДДґ і
і і ГДД Повторяется столько раз, сколько
і байт данных і і необходимо
і і і
ГДДДДДДДДДДДДДДДґ ДДДЩ
. . . . . .
ГДДДДДДДДДДДДДДДґ
і0 0 0 0 0 0 0 0і нулевой байт-счетчик
АДДДДДДДДДДДДДДДЩ (заканчивает поток данных)
Преобразование изображения из серии значений пикселов к
передаваемому или запоминаемому потоку символов включает несколько
шагов. Вкратце эти шаги состоят в следующем:
1. Установка кода размера - Определяет число битов, необходимое
для представления действительных данных.
2. Сжатие данных - Сжатие серии пикселов изображения в серию
кодов сжатия.
3. Построение серии байтов - берет серию кодов сжатия и
преобразует их в строку 8-битных данных.
4. Упаковка байтов - Упаковка набора байтов в блоки, которым
предшествует символ-счетчик и вывод.
УСТАНОВКА КОДА РАЗМЕРА
Первый байт в потоке растровых данных GIF имеет значение,
указывающее минимальное число битов, необходимое для представления
для представления действительных значений пикселов. Как правило
оно будет таким же, что и число битов цвета. Однако из-за
некоторых ограничений алгоритма черно-белые изображения, которые
имеют один бит цвета, должны иметь код размера, равный 2. Такое
значение кода размера подразумевает также, что коды сжатия должны
 |
|