Online GIF optimalizátor, který zmenší animaci beze ztráty plynulosti

Animovaný GIF s reakcí, nálepkou nebo krátkou ukázkou z aplikace bývá zbytečně těžký, protože každý snímek animace nese vlastní barevná data, i když se mezi snímky mění jen malá část obrázku. Online GIF optimalizátor tento problém řeší tak, že najde a odstraní právě tuto zbytečnou nadbytečnost. Vyzkoušet si to jde na tomto odkazu. Tento dřívější přehled online komprese obrázků popsal princip zmenšování JPG, PNG i GIF obecně, tenhle text se zaměřuje konkrétně na to, čím se optimalizace GIFu liší od zmenšování fotografií nebo loga.

Co online GIF optimalizátor dělá

Nástroj tohoto typu pracuje se dvěma nezávislými kroky najednou: zmenšením barevné palety a odstraněním pixelů, které se mezi jednotlivými snímky animace vůbec nemění. Teprve na takto připravená data se aplikuje samotná komprese, díky které výsledný soubor zabírá výrazně méně místa než originál nahraný přímo z aplikace na tvorbu animací. Typický online nástroj tohoto typu umožňuje nahrát víc GIFů najednou a u každého zvlášť náhledovat výsledek po jednotlivých snímcích, takže se dá u celé sady animací ověřit, že se plynulost pohybu po zmenšení nezměnila.

Omezená paleta jako vlastnost samotného formátu GIF

Formát GIF má na rozdíl od PNG nebo JPEG paletu omezenou už ve své specifikaci, jeden snímek animace smí obsahovat nejvýš 256 barev. Tento materiál o bezeztrátových obrazových formátech popisuje, že vyšší barevné hloubky lze u GIFu dosáhnout jen překrýváním víc snímků přes sebe, což se v praxi téměř nepoužívá. Optimalizátor proto u GIFu nezavádí ztrátu tam, kde předtím žádná nebyla, ale hledá tu nejúspornější variantu palety v mezích, které formát stejně už dávno má.

Redukce redundantních pixelů mezi snímky

U animace se snímky obvykle liší jen v malé části plochy, zbytek obrázku zůstává stejný od jednoho snímku k druhému. Optimalizátor tuto shodu rozpozná a namísto opakovaného uložení identických pixelů v každém snímku zvlášť uloží jen tu část, která se skutečně mění. Tahle úprava samotnou animaci nijak nezpomalí ani nezkrátí, jen sníží množství dat, které je potřeba pro její přehrání stáhnout.

Prokládání jako doplňková vlastnost formátu

GIF podporuje i takzvané prokládané ukládání dat, kdy se obrázek při pomalejším přenosu nejprve zobrazí hrubě celý a teprve postupně se zpřesňuje, místo aby se vykresloval po řádcích odshora dolů. U dnešních rychlých připojení tato vlastnost ztrácí na významu, u velkých statických náhledů na pomalejší síti ale pořád dokáže dát návštěvníkovi rychlejší první dojem z obsahu stránky.

Ilustrace omezené barevné palety formátu GIF

Statický a animovaný GIF nejsou stejný případ

Statický GIF, tedy jediný snímek bez animace, se svým chováním podobá spíš PNG s omezenou paletou, úspora tam přichází hlavně ze zmenšení počtu barev. U animovaného GIFu se k tomu přidává druhá vrstva úspory z redukce redundance mezi snímky, a právě tahle druhá vrstva bývá u dlouhých animací s mnoha snímky výrazně větší než samotné zmenšení palety. Krátká smyčka o pár snímcích proto z redukce redundance vytěží méně než delší animace, kde se stejné pozadí opakuje napříč desítkami snímků a jeho jediné uložení ušetří datový objem, který by se jinak zbytečně násobil s každým dalším snímkem animace. Rozpoznat, do které z těchto dvou kategorií konkrétní soubor patří, jde už podle počtu snímků a délky smyčky ještě předtím, než se s optimalizací vůbec začne.

Ilustrace redukce opakujících se pixelů mezi snímky animace

Kdy GIF ještě dává smysl a kdy sáhnout jinam

Volbou mezi jednotlivými obrazovými formáty a jejich vhodným použitím se podrobně zabývá tento starší materiál o přípravě obrázků pro web, podle kterého se stejným principem omezené palety řídí i barevná hloubka u statických GIFů, jen s tím rozdílem, že snížení počtu barev tam samo o sobě nesouvisí s žádnou animací. Pro krátké smyčky, reakce v chatu a nálepky zůstává GIF praktickou volbou hlavně díky široké podpoře napříč aplikacemi a prohlížeči, i když modernější formáty animací dokážou při stejném obsahu ušetřit ještě víc dat. Pro delší nebo obsahově náročnější animace, třeba ukázky práce v aplikaci, se čím dál častěji vyplatí zvážit i krátké video namísto GIFu.

Co se děje s nahranými soubory

Online nástroje tohoto typu obvykle zpracují soubor a po určité době, často po hodině od nahrání, data automaticky odstraní ze serveru. Původní animace zůstává nedotčená v zařízení uživatele, takže je možné kdykoliv zkusit jiné nastavení palety a porovnat výsledek se stejnou verzí, ze které se vycházelo předtím.

Nejčastější chyby v praxi

V praxi se u optimalizace GIF souborů opakuje několik podobných problémů:

  1. Export animace s maximálním počtem barev tam, kde by menší paleta stačila beze změny na první pohled.
  2. Přehlédnutí redukce redundantních pixelů mezi snímky, i když právě ona u dlouhých animací šetří nejvíc dat.
  3. Použití GIFu pro obsah, který by jako krátké video vyšel výrazně menší při stejné vizuální kvalitě.
  4. Nahrání animace s citlivým obsahem bez ověření, jak dlouho si nástroj nahraná data ponechává.

Co si z tohoto postupu odnést

Zmenšení GIF souboru stojí na kombinaci dvou nezávislých kroků, omezení palety, které formát nese od svého vzniku, a odstranění redundance mezi snímky, které se u animací liší jen v malé části plochy. Volba vhodné palety a využití redundance mezi snímky patří mezi úpravy, které nezasáhnou do plynulosti animace, přesto dokážou soubor zmenšit o výraznou část.

Kontrolujete si u animovaných GIFů na webu, kolik dat mezi jednotlivými snímky zbytečně opakuje totéž, nebo tuto vrstvu obvykle necháváte bez povšimnutí?

Související příspěvky