Начал читать статью про декодирование GIF и остановился на этом месте: Краткое описание алгоритма: Читаем очередной код. В словаре, под номером равным коду, берем список индексов. Это готовые индексы цветов. В словарь добавляется список индексов, взятый из словаря на предыдущем этапе с добавленным первым индексом взятый из словаря на текущем этапе.
(100) 4. В словаре под номером 4 расположен код clear. Значит инициализируем словарь, текущий размер кода устанавливаем равным 3 (в нашем примере конечно же). В файлах побольше этот код встречаться часто. (000) 0. В словаре под номером 0 находится {0}, это уже готовый индекс цвета (левого верхнего угла). В словарь ничего не добавляем. (010) 2. В словаре под номером 2 находится {2}. Добавляем {0}+{2} = {0,2} с номером 6 (далее я буду использовать запись покороче: 2:{2}, +6:{0,2}) (001) 1. В словаре под номером 1 находится {1}. Добавляем {2}+{1} = {2,1} с номером 7 (+7:{2,1})
Словарь достиг предела для 3-х битных кодов. Текущий размер кода увеличиваем на 1. (0110) 6: {0,2} +8: {1,0} (1000) 8: {1,0} +9: {0,2,1} (0001) 1: {1} +10:{1,0,1} (1010) 10:{1,0,1} +11:{1,1} (0010) 2: {2} +12:{1,0,1,2} (0000) 0: {0} +13:{2,0} (0001) 1: {1} +14:{0,1} (1101) 13:{2,0} +15:{1,2}
Словарь достиг предела для 4-х битных кодов. Текущий размер кода увеличиваем на 1 (длина кода увеличивается максимум до 12! При достижении словарем размера 4096 длина кода остается равной 12, и добавлять в словарь ничего не нужно. Обычно следом идет код clear) (00101) 5:{end} конец
Никак не могу понять то, что выделено. Откуда это берется и как, может кто сказать?
Сообщение отредактировал 011119xx - Aug 31 2011, 10:28
|