справа налево, и затем
выбираются по 8 битов для вывода. Рассматриваемый массив 8-битных
символов при упаковке кодов длиной по 5 битов должен быть похож на
следующий пример:
байт n байт 5 байт 4 байт 3 байт 2 байт 1
--.....-----+--------+--------+--------+--------+--------¬
¦ and so on ¦hhhhhggg¦ggfffffe¦eeeedddd¦dcccccbb¦bbbaaaaa¦
L-.....-----+--------+--------+--------+--------+---------
Заметьте, что механизм физической упаковки будет изменяться
по мере того, как изменяется число битов в коде сжатия, но
концептуально он остается тем же самым.
УПАКОВКА БАЙТОВ
Как только байты созданы, они группируются в блоки для
вывода, причем каждому блоку предшествует байт-счетчик со
значением от 0 до 255. Блок с нулевым байтом-счетчиком заканчивает
поток данных для данного изображения. Эти блоки являются тем, что
выводится на самом деле в формате GIF. Такой формат блока
обеспечивает дополнительную эффективность за счет того, что
позволяет декодировщику считывать данные по мере необходимости,
читая сначала байт-счетчик, а затем пропуская сами данные об
изображении.
ПРИЛОЖЕНИЕ D
ОБРАБОТКА НЕСКОЛЬКИХ ИЗОБРАЖЕНИЙ
Поскольку поток данных GIF может содержать несколько
изображений, необходимо описать обработку и высвечивание таких
файлов. Поскольку дескриптор изображения допускает размещение
изображения в пределах логического экрана, можно определить
последовательность изображений, каждое из которых занимает часть
экрана, но их совокупность заполняет экран целиком. В подобных
ситуациях линии поведения при обработке изображений состоит в
следующем:
1. Не делать пауз между изображениями. Каждое обрабатывается
сразу же, как только будет распознано декодировщиком.
2. Каждое изображение переписывает любое другое изображение уже
находящееся внутри его окна. Экран очищается только в начале и
в конце обработки GIF-изображений. См. обсуждение терминатора
GIF.