Animované GIF soubory patří mezi největší přírůstky na webové stránce. Jediná animace dokáže vážit víc než celá sada produktových fotografií. Komprese GIF online přitom nemusí znamenat, že animace začne trhat nebo vypadat rozmazaně. Výsledek závisí na tom, které parametry upravíte a v jakém pořadí. Tento článek provede celým procesem krok za krokem a ukáže, kde jsou rezervy, které většina uživatelů přehlíží.
Proč jsou GIF soubory tak objemné
GIF formát vznikl v roce 1987 a jeho technická omezení se od té doby nezměnila. Každý snímek animace je uložen jako samostatný obrázek s paletou nejvýše 256 barev. Čím více snímků animace obsahuje a čím vyšší je rozlišení každého snímku, tím větší je výsledný soubor.
Typická animace délky tří sekund při 24 snímcích za sekundu obsahuje 72 samostatných obrázků. Pokud má každý rozlišení 800 × 600 pixelů, pracuje algoritmus komprese s obrovským množstvím dat. Výsledek snadno přesáhne 10 MB, přičemž uživatel animaci vnímá jako plynulý pohyb trvající tři sekundy.
Kde vzniká největší datový objem
Největší zátěž nepřinášejí snímky jako celek, ale jejich vzájemné rozdíly. GIF formát využívá metodu ukládání pouze změněných oblastí mezi po sobě jdoucími snímky. Pokud se mezi dvěma snímky mění celá plocha obrázku, úspora je minimální. Pokud se mění jen malá část, algoritmus ušetří výrazně více.
Animace s pohyblivým objektem na statickém pozadí se proto komprimuje podstatně lépe než animace, kde se mění celá scéna. To přímo ovlivňuje i strategii komprese.
Čtyři způsoby, jak zmenšit GIF bez viditelného zhoršení
Snížení počtu snímků za sekundu
Lidské oko vnímá pohyb jako plynulý přibližně od 24-25 snímků za sekundu. Animace uložená při 50 FPS proto obsahuje dvojnásobek snímků oproti tomu, co je pro plynulé vnímání nutné. Snížení na 24 FPS zmenší soubor přibližně na polovinu, přičemž většina diváků rozdíl nezaznamená.
U pomalých animací, třeba plynule se měnícího přechodu nebo pomalu rotujícího objektu, si vystačíte i s menším počtem, například 8 FPS. Rychlé akční animace nebo animace se záměrně filmovým dojmem naopak nižší FPS zradí viditelným trháním.
Zmenšení rozlišení
GIF soubory se na webu zobrazují v rámci stránky, která má své rozměry. Animace o šířce 1200 pixelů zobrazená v kontejneru širokém 400 pixelů zbytečně přenáší trojnásobek dat oproti tomu, co prohlížeč skutečně zobrazí. Zmenšení rozlišení na skutečně zobrazovanou velikost je jednou z nejúčinnějších metod redukce.
Praktický přehled toho, jak rozlišení a formát ovlivňují výslednou velikost souboru, potvrzuje, že přebytečné rozlišení je jedním z nejčastějších zdrojů zbytečně velkých souborů u animované grafiky.
Redukce barevné palety
GIF formát podporuje paletu od 2 do 256 barev. Výchozí nastavení většiny nástrojů ukládá soubor s plnou paletou 256 barev. Pokud animace pracuje s omezenou barevnou škálou, třeba s logem ve firemních barvách nebo s ikonou na bílém pozadí, snížení palety na 64 či 32 barev zmenší soubor bez viditelné změny. Srovnání různých barevných palet najdete tady.
Redukce barev se většinou nevyplatí u animací s fotografickým obsahem nebo s jemnými barevnými přechody. Tam se projeví jako viditelné páskování, kdy plynulý přechod nahradí hrubé barevné skoky.
Optimalizace mezisnímkových rozdílů
Kvalitní kompresní nástroje analyzují rozdíly mezi po sobě jdoucími snímky a ukládají pouze změněné oblasti. Tato technika, označovaná jako frame differencing nebo delta compression, funguje automaticky, ovšem její efektivita závisí na obsahu animace.
Pokud animaci tvoříte sami, pomůže zajistit, aby pozadí zůstávalo mezi snímky skutečně statické. Sebemenší náhodný šum nebo kompresní artefakt na pozadí způsobí, že algoritmus považuje celou plochu za změněnou a úspora je minimální.
Jak postupovat při kompresi v praxi
Efektivní postup komprese animovaného GIF souboru vypadá takto:
- Nejprve zmenšete rozlišení na skutečně zobrazovanou velikost. Tím odstraníte největší zdroj zbytečných dat.
- Snižte FPS na nejnižší hodnotu, při které animace stále působí plynule. U většiny animací to bývá 10 až 15 FPS.
- Upravte barevnou paletu podle obsahu. U jednoduché grafiky zkuste 64 barev, u složitějšího obsahu ponechte 128 nebo 256.
- Spusťte kompresi nástrojem, který provede optimalizaci mezisnímkových rozdílů automaticky. Optimalizace animovaného GIF souboru tímto způsobem přináší úspory 40 až 70 % oproti původní velikosti.
- Výsledek vizuálně zkontrolujte přehráním v prohlížeči. Trhání nebo barevné artefakty jsou signálem, že jste zašli příliš daleko v některém z předchozích kroků.
Celý proces zvládnete bez instalace softwaru přímo v prohlížeči. Nástroj pro optimalizaci GIF souborů zpracuje animaci online a výsledný soubor nabídne ke stažení.
Kdy přestat komprimovat GIF a přejít na video
GIF má svá pevná technická omezení. Při určité míře komprese přestane být výsledek přijatelný bez ohledu na to, jaký nástroj použijete. V takových případech stojí za zvážení náhrada formátem MP4 nebo WebM.
Krátké video ve formátu MP4 dosahuje při srovnatelné vizuální kvalitě typicky desetiny datového objemu GIF animace. Moderní prohlížeče video přehrají automaticky bez zvuku při nastavení atributů autoplay, loop a muted, takže chování pro uživatele je prakticky totožné s GIF animací. Omezením je, že video nepodporují všechny e-mailové klienty, takže pro e-mail marketing GIF formát zatím nemá plnohodnotnou náhradu.
Na co si dát pozor při kompresi
Nejčastější chyba je přeskočit vizuální kontrolu a spoléhat pouze na číselnou úsporu. Nástroj může oznámit 60% zmenšení souboru, přičemž animace je trhavá nebo barevně zkreslená. Výsledek vždy přehrajte v prohlížeči v reálné velikosti, ve které se bude zobrazovat.
Druhá častá chyba je komprimovat již komprimovaný soubor. Každé další kolo komprese přináší menší úspory a větší vizuální ztráty. Vždy začínejte od originálu nebo od souboru v nejvyšší dostupné kvalitě.
