Конвертор в несжатый GIF
Сделал я конвертор из обычного ГИФа в несжатый формат сжатый gzip, выложил на ГитХабе. Основное (разбор ГИФа) написано на Пайтоне, утилита, которая всё запускает — на Шеле. Для работы требуются ImageMagick (предпочтительнее) или gifsicle, gitinter (из libungif) и интерпретатор Пайтона.
Кажется, эксперимент провалился, я ещё буду вертеть различные ГИФы, но вряд ли что-то получится. По сравнению с анимированными ГИФами, где не используется оптимизация (не убираюся из следующих кадров статические куски, не используется фокусы с прозрачностью и наложением) выигрыш бывает, но по сравнению с оптимизированными, ещё не видел, чтобы испытываемый формат выигрывал.
Из плюсов для себя: детально для себя разобрал формат GIF, освежил знания Пайтона (которые уже начинают тускнеть), Шела, поработал над интересной идеей.
Зато, вопреки всякой логике, сжатая анимация иногда прилично гзипуется.
Комментарий для Евгения Степанищева:
а разве в анимированном гифе не каждый кадр пакуется отдельно?
Комментарий для zg.livejournal.com:
Каждый отдельно. По сути, каждый кадр — отдельная картинка, правда, у него может не быть своей таблицы цветов.
ну есть же много гифов, где первый кадр большой, а последующие маленькие. у маленьких кадров будет большой оверхеад на заголовок, соответственно они будут сжиматься. это как один из вариантов.
другой вариант — много очень похожих кадров (что характерно для анимации) и сходные результаты сжатия.
Комментарий для zg.livejournal.com:
Я ещё поэксперементирую. Только надо найти редактор гифов какой-то для Мака.
Комментарий для zg.livejournal.com:
Попробовал два файла: большой кадр, маленькие кадры с бедной палитрой и большой кадр + маленький с большой палитрой (256), пока проигрыш.
Комментарий для zg.livejournal.com:
А вот просто сжатие ( http://bolknote.ru/all/3713 ) даёт выигрыш:
Комментарий для zg.livejournal.com:
Смотря чем они схожи. Если какие-то точки на тех же местах, то обычный оптимизатор GIF (тот же gifsicle) сделает их прозрачным, «просвечивающими» из прежнего кадра. По крайней мере, я бы так сделал.
На самом деле, это всё ещё происходит из-за того, что «несжатый» ГИФ сам по себе не очень простой формат, он вносит избыточные коды, чтобы очищать таблицу распаковщика LZW.
Можно использовать convert из GraphicsMagick, его скорости чуть лучше чем у «оригинального» ImageMagick --
http://www.graphicsmagick.org/benchmarks.html
Комментарий для twitter.com/thenameisbusy:
Спасибо, я знаю, но о скорости я думал в последнюю очередь, главное было попробовать как работает.