GIF Data Storage вопрос спецификации - PullRequest
2 голосов
/ 02 сентября 2011

В спецификации GIF здесь:

http://www.w3.org/Graphics/GIF/spec-gif89a.txt

У меня проблемы с пониманием двух частей:

Указывает для 'минимального размера кода LZW', что:

Этот байт определяет начальное количество битов, используемых для кодов LZW в данных изображения, как описано в Приложении F.

  1. Что означает «начальное количество битов, используемых для кодов LZW»?
  2. Как работают коды LZW в контексте GIF? (Я так понимаю, это относится к Лемпель-Зив-Уэлчу).
  3. Где это неуловимый 'appexdix F', на который он ссылается? (Это не в теле).

В нем также указывается, что после одного байта для «минимального размера кода LZW» имеется блок с именем «Данные изображения», фактический размер которого не указан, и он просто называется «Подблоки данных».

  • Что означает «подблоки данных»?
  • Как определить размер подблоков данных?
  • И относится ли это к кодам LZW? Если да, то как мне это интерпретировать?

Извините за все вопросы. Спасибо за ваше время.

В качестве дополнительного примечания: Даже частичный ответ или ответ на любой из вопросов будет принят с благодарностью.

1 Ответ

2 голосов
/ 02 сентября 2011
  1. GIF применяет алгоритм LZW с переменным (увеличивающимся) размером кодов, как описано в Wikipedia LZW .«Начальное количество битов» - это начальный размер кодов.

  2. Это описано в документе, на который вы ссылаетесь.Список цветовых кодов пикселей сжат LZW (абзац «а» чуть выше той части, которую вы цитируете).

  3. Он есть в файле (на странице 30 ;-)ближе к концу просто найдите «Сжатие LZW с кодом переменной длины»)

  4. «Подблоки данных» - это фактические данные изображения в виде фрагментов по 255 (или менее байтов),Может быть,

Связанные списки, используемые данными изображения и блоками расширения, состоят из серии субблоков, каждый субблок начинается с байта, дающего номер последующегобайты данных в подблоке (от 1 до 255), последовательность заканчивается пустым подблоком (0 байт).[ Википедия GIF ]

  1. "Как определить размер подблоков данных?"Смотри выше.Это первый байт каждого из блоков.

  2. См. Выше.

...