воскресенье, 28 сентября 2008 г.

Продолжение Эпопеи с Gif

Довольно прилично времени прошло с тех пор, как я взялся за оптимизацию gif. Все оказалось не настолько радужным. При тестинге находились такие гифки, из за которых приходилось чуть ли не кардинально менять алгоритм загрузки. Вот захотелось похвастаться практически законченным вариантом движка. Пока не решил вопрос с пожиранием оперативки (особенно trucolor гифки. в тестовом наборе они занимают у меня в памяти аж 380 метров), но работа над этим ведется. А так, либа сейчас бьет старый движок и по GDI ресурсам, и по скорости отрисовки (попробуйте поскроллировать в обоих вариантах - заметно увидите разницу), и по качеству отображения.
В общем, залил тут демонстрашки, попробуйте, отпишитесь о впечатлениях. Если найдете какие то гифы, которые будут некорректно отображаться - сразу сигнальте.
архив с TrueColor gif
архив с 7000 одинаковых (7.32 КБ) gif (да да, 7zip отличный архиватор :o))
архив с 4000+ разных gif (10000 КБ) часть 1
архив с 4000+ разных gif (10000 КБ) часть 2
архив с 4000+ разных gif (4000 КБ) часть 3
Сорри, но гугль не дает загрузить файлы большего размера. Найду где захостить сразу 24 МБ - перевыложу
архив с демонстрационными программами (2 МБ)

4 комментария:

rbobot комментирует...

Отлично, но вот про 380 метров, проверил. Удручает.
Удачной работы)

Shedko комментирует...

Вот те мои "замеры" =)

С твоим набором смайлов 32-bit

SmilesTest.exe - Память 260 (при загрузке был пик 294Мб*) Потоков=2 GDI объектов=58
* далее пик и использование совпадали до 1 мб

SmilesTest(TjvGifImage).exe - Память=24 USE=24 Потоков=2, GDI=58
НО, тут 32-битные смайлы вообще не видны =(


SmilesTest(TGifImage).exe - Память=10 Потоков=3 Объектов=1400 = еле движется скролл



Мой набор смайлов (всего 98 штук): (анимашки, но все 256 цветов)
SmilesTest.exe - Память 15 Потоков=2 Объектов=56

SmilesTest(TjvGifImage).exe - Память=32 Потоков=2 Объектов 6500 и колеблется в строну увеличения %)

SmilesTest(TGifImage).exe - Память 11 Потоков=3, Объектов=300 и растет

Shedko комментирует...

А да, забыл =)
OS = Vista Ult. 32-bit

Анонимный комментирует...

xD