на код, до 12 битов на код. Тем самым максимальное значение кода определяется равным 4095 (шестнадцатиричное FFF). Как только значение LZW-кода может превысить текущую длину кода, длина кода увеличивается на единицу. Паковщик и распаковщик этих кодов должны изменяться, чтобы соответствовать новой длине кода.
ПОСТРОЕНИЕ 8-БИТНЫХ БАЙТОВ
Поскольку LZW-сжатие, используемое для GIF, создает серию кодов переменной длины от 3 до 12 символов каждый, эти коды должны быть переформированы в серию 8-битный байтов так, чтобы на самом деле происходило запоминание или передача символов. Это обеспечивает дополнительное сжатие изображения. Коды формируются в поток битов так, как если бы они паковались справа налево, и затем выбираются по 8 битов для вывода. Рассматриваемый массив 8-битных символов при упаковке кодов длиной по 5 битов должен быть похож на следующий пример:
байт n байт 5 байт 4 байт 3 байт 2 байт 1
¦ and so on ¦hhhhhggg¦ggfffffe¦eeeedddd¦dcccccbb¦bbbaaaaa¦
Заметьте, что