Zmenšit GIF na polovinu, často i na třetinu původní velikosti, zvládnete tak, že rozdíl na první pohled nikdo nepostřehne. Musíte ale vědět, které parametry animace nesou opravdu důležitá data a které jen zbytečně nafukují soubor.
Projděte si pět nastavení, která o velikosti GIFu rozhodují nejvíc. U každého zjistíte, kolik dat ušetří, kde leží hranice viditelného zhoršení a v jakém pořadí úpravy provádět. Na konci najdete i varovné ukazatele, podle kterých poznáte, že komprese už zašla příliš daleko.
Proč bývají animované GIFy tak objemné
Formát GIF vznikl v roce 1987, tedy v době, kdy se na animace s miliony barev nikdo nechystal. Jak zajímavě ukazuje příběh tvůrce formátu GIF, původním cílem byl hlavně rychlý přenos jednoduché grafiky po tehdejších pomalých linkách. Z toho plyne i dnešní omezení na paletu nejvýše 256 barev v jednom snímku.
Samotná komprese je bezztrátová a stojí na algoritmu LZW. Ten nejlépe zpracuje dlouhé úseky stejně barevných pixelů. Čím víc jednolitých ploch a čím méně snímků animace obsahuje, tím menší soubor dostanete.

5 nastavení, která rozhodují o velikosti GIFu
1. Počet barev v paletě
Paleta je první místo, na kterém se dá ušetřit. Záznamy obrazovky, ikony a jednoduchá grafika si většinou vystačí se 64 barvami, mnohdy i s 32. Snížení z 256 na 64 barev dokáže z velikosti ubrat desítky procent, protože algoritmus pak nachází víc opakujících se úseků.
U animací z videozáznamu s plynulými přechody buďte opatrnější. Tam se při příliš malé paletě objeví pruhy v obloze, pleti a stínech. Pro takové záběry nechte 128 barev a zkuste ušetřit jinde.
Pomůže také volba adaptivní palety. Ta vybírá barvy přímo z obsahu animace, a proto při stejném počtu barev působí věrněji než univerzální sada.
2. Dithering
Dithering rozmisťuje pixely různých barev tak, aby oko vnímalo plynulý přechod i s omezenou paletou. Vizuálně sice pomáhá, jenže pro kompresi je to šum. Každý „rozházený“ pixel přeruší souvislý úsek a soubor naroste.
U grafiky s ostrými hranami a jednolitými plochami dithering vypněte úplně. U fotografických záběrů nastavte nižší intenzitu místo plné. Často tím získáte rozumný kompromis mezi plynulostí přechodů a velikostí.
3. Snímková frekvence a počet snímků
Každý snímek navíc znamená další data. Animace s 30 snímky za sekundu málokdy potřebuje takovou plynulost. Pro záznam obrazovky postačí 10 až 15 snímků za sekundu a pohyb myši i rozbalování nabídek zůstanou dobře čitelné.
Stejně důležité je zkrátit samotnou animaci. Ořízněte prázdné úvodní a závěrečné vteřiny a odstraňte pasáže, kde se nic neděje. Polovina snímků znamená zhruba poloviční soubor.
Statické pasáže nemusíte mazat. Místo desítek stejných snímků ponechte jeden a prodlužte jeho zobrazení. Divák rozdíl nepozná a soubor zabere zlomek původních dat.
4. Rozměry animace
Velikost souboru roste s počtem pixelů. Zmenšení z 1200 na 600 pixelů na šířku proto sníží plochu na čtvrtinu a datový objem klesne obdobně. Zjistěte, v jaké šířce se animace na webu či v e-mailu reálně zobrazí, a exportujte ji přesně v tomto rozměru.
U záznamů obrazovky pomůže i ořez. Pokud ukazujete práci s jedním tlačítkem, celá plocha monitoru do animace nepatří. Rozměry navíc upravujte v původním videu či záznamu, nikoli až v hotovém GIFu. Každé další přepočítání palety totiž kvalitu obrazu zhoršuje.
5. Ztrátová komprese
Pátým nastavením je ztrátová komprese, kterou nabízí řada moderních nástrojů. Nemění paletu ani rozměry. Drobně upraví barvy sousedních pixelů tak, aby vznikly delší opakující se úseky a algoritmus LZW je zapsal úsporněji. Při mírném nastavení obvykle ušetříte 30 až 50 % dat bez rozdílu, který by běžný divák zaznamenal.
Silnější úroveň se projeví zrnem a „špinavými“ plochami. Nejdřív si toho všimnete u animací s drobným textem. Začněte proto u nízkých hodnot a zvyšujte je postupně.
V jakém pořadí nastavení upravovat
Nejdřív ořízněte délku a rozměry, protože tyto úpravy ubírají data bez viditelného dopadu na to, jak animace na stránce vypadá. Pak snižte snímkovou frekvenci, upravte paletu a dithering a ztrátovou kompresi nechte na konec.
Pro rychlé vyzkoušení různých kombinací poslouží online nástroj OptiBot, ve kterém porovnáte původní a zmenšenou animaci vedle sebe. Podobné principy platí i pro statické fotografie, u nichž místo palety řešíte míru komprese a metadata. Praktický příklad nabízí článek, který se věnuje tématu optimalizace jpeg u fotografií interiérů.
Podle čeho poznáte, že komprese zašla příliš daleko
Výsledek si vždy přehrajte v plné velikosti a sledujte tyto čtyři ukazatele:
- Pruhy v přechodech. Obloha či stín se rozpadnou do viditelných pásů. Vraťte paletě několik barev.
- Blikání ploch. Jednolité pozadí mezi snímky „poskakuje“. Snižte intenzitu ditheringu.
- Rozmazaný text. Písmo v záznamu obrazovky ztrácí ostrost. Uberte ztrátové kompresi jeden stupeň.
- Trhaný pohyb. Kurzor přeskakuje místo plynulého posunu. Přidejte pár snímků za sekundu.
Pokud se žádný z těchto jevů neobjeví, máte hotovo. Další snižování by už přineslo jen malou úsporu za cenu viditelného zhoršení.
Pět malých rozhodnutí pro jeden velký výsledek
Velikost animace neovlivňuje jediný posuvník, ale několik faktorů naráz. Paleta a dithering určují, jak efektivně se obraz zakóduje. Snímková frekvence a rozměry rozhodují o tom, kolik dat vůbec vznikne, a ztrátová komprese dokončí práci tam, kde ostatní úpravy skončí.
Při dalším exportu proto začněte u rozměrů a délky, teprve potom sahejte na barvy a kompresi. Animace se pak načte rychle, projde limity e-mailu i chatu a pořád bude vypadat tak, jak jste zamýšleli.