Конвертор в несжатый GIF

Сделал я конвертор из обычного ГИФа в несжатый формат сжатый gzip, выложил на ГитХабе. Основное (разбор ГИФа) написано на Пайтоне, утилита, которая всё запускает — на Шеле. Для работы требуются ImageMagick (предпочтительнее) или gifsicle, gitinter (из libungif) и интерпретатор Пайтона.

Кажется, эксперимент провалился, я ещё буду вертеть различные ГИФы, но вряд ли что-то получится. По сравнению с анимированными ГИФами, где не используется оптимизация (не убираюся из следующих кадров статические куски, не используется фокусы с прозрачностью и наложением) выигрыш бывает, но по сравнению с оптимизированными, ещё не видел, чтобы испытываемый формат выигрывал.

Из плюсов для себя: детально для себя разобрал формат GIF, освежил знания Пайтона (которые уже начинают тускнеть), Шела, поработал над интересной идеей.
11 августа 2012 12:32

bolk (bolknote.ru)
11 августа 2012, 14:43

Зато, вопреки всякой логике, сжатая анимация иногда прилично гзипуется.

zg (zg.livejournal.com)
11 августа 2012, 15:06, ответ предназначен bolk (bolknote.ru):

а разве в анимированном гифе не каждый кадр пакуется отдельно?

bolk (bolknote.ru)
11 августа 2012, 15:10, ответ предназначен zg (zg.livejournal.com):

Каждый отдельно. По сути, каждый кадр — отдельная картинка, правда, у него может не быть своей таблицы цветов.

zg (zg.livejournal.com)
11 августа 2012, 16:27

ну есть же много гифов, где первый кадр большой, а последующие маленькие. у маленьких кадров будет большой оверхеад на заголовок, соответственно они будут сжиматься. это как один из вариантов.
другой вариант — много очень похожих кадров (что характерно для анимации) и сходные результаты сжатия.

bolk (bolknote.ru)
11 августа 2012, 16:28, ответ предназначен zg (zg.livejournal.com):

Я ещё поэксперементирую. Только надо найти редактор гифов какой-то для Мака.

bolk (bolknote.ru)
11 августа 2012, 17:02, ответ предназначен zg (zg.livejournal.com):

ну есть же много гифов, где первый кадр большой, а последующие маленькие. у маленьких кадров будет большой оверхеад на заголовок, соответственно они будут сжиматься. это как один из вариантов.
Попробовал два файла: большой кадр, маленькие кадры с бедной палитрой и большой кадр + маленький с большой палитрой (256), пока проигрыш.

bolk (bolknote.ru)
11 августа 2012, 17:04, ответ предназначен zg (zg.livejournal.com):

А вот просто сжатие (http://bolknote.ru/2012/08/11/~3713) даёт выигрыш:
-rw-r--r-- 1 bolk staff 102604 11 авг 17:00 anim.gif
-rw-r--r-- 1 bolk staff 102008 11 авг 17:03 anim.gif-def
-rw-r--r-- 1 bolk staff 135088 11 авг 17:02 anim.gif-gz

bolk (bolknote.ru)
11 августа 2012, 17:08, ответ предназначен zg (zg.livejournal.com):

много очень похожих кадров (что характерно для анимации) и сходные результаты сжатия.
Смотря чем они схожи. Если какие-то точки на тех же местах, то обычный оптимизатор GIF (тот же gifsicle) сделает их прозрачным, «просвечивающими» из прежнего кадра. По крайней мере, я бы так сделал.

bolk (bolknote.ru)
11 августа 2012, 17:14

На самом деле, это всё ещё происходит из-за того, что «несжатый» ГИФ сам по себе не очень простой формат, он вносит избыточные коды, чтобы очищать таблицу распаковщика LZW.

twitter.com/thenameisbusy (инкогнито)
13 августа 2012, 03:13

Можно использовать convert из GraphicsMagick, его скорости чуть лучше чем у "оригинального" ImageMagick --

http://www.graphicsmagick.org/benchmarks.html

bolk (bolknote.ru)
13 августа 2012, 07:17, ответ предназначен twitter.com/thenameisbusy

Спасибо, я знаю, но о скорости я думал в последнюю очередь, главное было попробовать как работает.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)