Сжатая несжатая ГИФ-анимация

В догонку к предыдущей статье: мне удалось сделать несжатый анимированный ГИФ c сжатием через DEFLATE, вот он ниже (анимация не закциклена):



Там шесть несжатых кадров (цифры «1», «2», «3», «3», «2» и «1») с небольшой задержкой, таблица из 16 цветов, в этом формате (несжатый ГИФ+DEFLATE) файл занял 619 байт:
bolk@Bolk ~  $ telnet bolknote.ru 80
Trying 91.230.61.15...
Connected to bolknote.ru.
Escape character is '^]'.
HEAD /imgs/2012.08.08.1.gif-gz HTTP/1.0
Host: bolknote.ru
Accept-encoding: gzip

HTTP/1.1 200 OK
Content-Type: image/gif
Content-Length: 619
Content-Encoding: gzip
Собранная при помощи gifsicle анимация в формате «обычного» ГИФа занимает 1028 байт, разница в полтора раза. Права, я выключил в gifsicle оптимизацию — иначе gifsicle исключит из изображений повторящиеся части и эксперимент будет нечистым.
8 августа 2012 09:39

greli (greli.livejournal.com)
8 августа 2012, 11:35

Попробовал на лоадерах типа с ajaxload.info, которые я уже пересохранил в Фотошопе для лучшего сжатия. Лучший результат: на 6,4% — с 1737 до 1625. Но в основном результат или незначителен, или даже хуже.

bolk (bolknote.ru)
8 августа 2012, 12:14, ответ предназначен greli (greli.livejournal.com):

А как выглядел эксперимент?

bolk (bolknote.ru)
8 августа 2012, 14:05, ответ предназначен greli (greli.livejournal.com):

Я думаю, что вы где-то некорректно провели эксперимент. Я сейчас сделал вот что:

1) взял семь фотографий наугад из альбома фотографий из зоопарка Паттайи: http://fotki.yandex.ru/users/bolknote/album/136352/
2) перевёл их в ГИФ, уменьшил до 400×200
3) перевёл в анимированный ГИФ двумя способами.

gifsicle -O3 дал 470КБ, несжатые ГИФы, собранные «вручную» в анимированный и сжатые gzip — 458КБ.

Это 12КБ разницы только для семикадровой анимации. Если научить gifsicle подключать внутреннюю оптимизацию кадров (когда между кадрами выкидывается всё статичное), но не сжимать сам ГИФ, то можно будет попробовать пережать ролики с какого-нибудь giftube.

Внутреннее Коралио (kalvado.livejournal.com)
8 августа 2012, 14:42

Я что-то не так делаю, или оно просто в моей конфигурации анимироваться не хочет?
XP, FF14

bolk (bolknote.ru)
8 августа 2012, 14:44, ответ предназначен Внутреннее Коралио (kalvado.livejournal.com):

Сейчас смотрю под «Маком» ФФ 14.0.1, всё ок.

Там анимация конечная (не зацикленная), может момент анимации пропускаете просто.

bolk (bolknote.ru)
8 августа 2012, 15:15

Посмотрел, для интереса, как к такому формату Айпад (2-й, АйОС 5.1.1) и «Андроид» (версия 2.3.6) отнесутся. Всё ок.

MiRacLe (miracle.rpz.name)
8 августа 2012, 15:34

Chrome 21.0.1180.57 (Linux), картинка статичная...

bolk (bolknote.ru)
8 августа 2012, 15:42, ответ предназначен MiRacLe (miracle.rpz.name):

А после перезагрузки? Я не очень-то правильно собрал анимацию, похоже :) Пару вечеров надо, чтобы написать конвертор получше.

Внутреннее Коралио (kalvado.livejournal.com)
8 августа 2012, 16:03

О, заработало

MiRacLe (miracle.rpz.name)
8 августа 2012, 16:04

Да, после перезагрузки заанимировалось.

masterspammer (masterspammer.livejournal.com)
8 августа 2012, 16:19

И чем больше кадров тем лучше сожмётся.

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

Сжатие Gifа ничего не знает о других кадрах, Zipа - о том, что там вообще есть какие-то кадры.

masterspammer (masterspammer.livejournal.com)
8 августа 2012, 16:25

P.S. 3 и более чередующихся кадра - имел в виду не тот случай, когда их всего 3, а например так
1-2-3-1-2-4-1-2-5

а 1-2-1-2-1-3 это можно представить как 1-2(убрать после показа)-0(что-то мелкое, чтоб просто был кадр, например однопиксельник прозрачный)-2(убрать после показа)-0-3.

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

Я попробую в скором времени написать конвертор, который берёт кадры из уже анимированного файла и делает из этого всего несжатый анимированный ГИФ. Посмотрю что получится.

http://listai.com.ua (инкогнито)
8 августа 2012, 19:22

Пишите, будет очень востребовано… За одно и "защиту" от malware туда же вшейте.

bolk (bolknote.ru)
8 августа 2012, 21:10, ответ предназначен http://listai.com.ua

Заодно и «защиту» от malware туда же вшейте.
Что имеется ввиду?

masterspammer (masterspammer.livejournal.com)
9 августа 2012, 07:23, ответ предназначен bolk (bolknote.ru):

Вероятно от вставки php - <?... :-)

bolk (bolknote.ru)
9 августа 2012, 07:36, ответ предназначен masterspammer.livejournal.com:

А :)

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

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

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