PDA

Просмотр полной версии : Распаковка GIF_LZW



DVS
19.04.2006, 13:56
Кто нибудь этим занимался?

В моём понимании и на примерах распаковка требует довольно много RAM для составления таблицы цепочек.

Если размер картинки 98*67 и 64 цвета на пиксель, то может можно как-нить съэкономить на RAMe?

SAM style
19.04.2006, 14:47
Сейчас уже не помню как точно, но в GFXcon я обошелся таблицей в 12К для распаковки GIFов. На элемент я тратил по 3 байта, максимальная длина кода - 12 бит (4096 значений).
"Новая" цепочка была не блинее 2 байт, а все остальные складывались по принципу "старая" цепочка + еще один байт.
Т.е например:
12,32 - это цепочка с кодом 258 (хранится в виде #00,#0C,#20)
12,32,48 = (цепочка 258) + байт 48 - это код 259 (#01,#02,#30)
12,32,48,56 = (цепочка 259) + байт 56 - код 260 (#01,#03,#38)
итд.

Если кто придумает, как можно обойтись менее чем 12К на таблицу - поставлю памятник на центральной площади славного Бобруйска. :)

DVS
19.04.2006, 15:16
Да про 12Кб я согласен. Можно съэкономить немного лишь не делая выравнивание по 1 байту, учитывая, что размер кода начианет расти не с 12бит, а максимум с 9, в моём случае с 7.

Как то грустно... я думал в AVR запрограмить это, ну максимум с 8Кб без внешней памяти. Тут конечно тогда ARM нужен.

Помогу поставить памятник, если кто-нить скажет как в 3Кб влезти :-) А лучше в 1Кб.

GriV
14.05.2006, 14:02
Бери без GIF и сам себе памятник ставь (((-;