Formáty pro ukládání fotografií - 5.díl: gif
28.11.2007, Roman Pihan, článek
Formát GIF je velmi vhodný na některé typy obrázků a zejména při jejich použití na internetu. Jeho výkon však velmi klesá nesprávným nastavením a tak se mu budeme věnovat podrobněji.
Výběr barev do palety barev
Jak bylo uvedeno minule, tak formát GIF je postaven na použití palety 2 až 256 barev. Jiné barvy obrázek používat nesmí. Přitom platí, že čím menší je počet barev v paletě, tím menší bude i výsledný soubor. V praxi má smysl zadávat počet barev v paletě z řady 2n a tedy 2, 4, 8, 16, 32, 64, 128 nebo 256. Jiné počty barev sice nejsou zakázány, ale velikost souboru to již nijak dramaticky nezmenší a nižší počet barev zbytečně snižuje kvalitu.
Ukázka běžné fotografie uložené jako GIF s plným počtem 256 barev bez rozkladu (viz dále). Jak vidíte, není to sice drama, ale posterizace zejména v plynulých odstínech oblohy je významná.
Při použití jen 32 barev bez rozkladu je situace již dramaticky nepoužitelná. Proto se GIF příliš nehodí na fotografie.
Většina programů je schopna vytvořit smysluplnou paletu z obrázku automaticky (ručně si to ani nelze moc představit). Způsobů, jak vymyslet paletu a vtlačit tak větší počet barev použitých v obrázku do palety obsahující výrazně méně barev, je mnoho a proto editory umožňují zvolit jednu z nich. Obvyklé volby jsou:
Selektivní – standardně nastavená metoda, která dává prioritu barvám, jenž lidské oko vnímá nejcitlivěji. Současně bere v úvahu plošnou velikost barvy (větší plochy mají logicky přednost) a reprodukovatelnost barev na webu.
Perceptuální – paletu barev sestavuje pouze na základě citlivosti lidského oka na barvy.
Adaptivní – sestavuje paletu barev jen na základě barevného spektra obrázku, nikoliv na základě různé citlivosti lidského oka na barvy a tedy tak říkajíc „strojově“.
Je ale spousta dalších metod - například způsob, kdy se obrázek převede do černobílé podoby (stupně šedi) nebo dokonce jen do dvou barevného provedení černá/bílá. Ty však již nejsou tak často používané, protože silně zasahují do barevnosti obrázku.
Ukázka voleb, které nabízí Adobe Photoshop při vytváření palety barev v GIF formátu.
Rozklad (dithering)
Klíčové pro kvalitu snímku v GIF formátu je určit správně barvy do palety, přičemž je snaha jich použít co nejméně. Řešení, které významně zlepší podání snímků i při malém počtu barev, je rozklad (dithering). Jedná se o to, že i v paletě neobsažené barvy lze pro oko simulovat (složit) z jiných barev umístěných vhodným způsobem těsně vedle sebe. Podobný způsob používá i tiskárna, která z pouhých čtyřech barev CMYK díky rozkladu namíchá všechny ostatní barvy. Stejný princip lze použít i u GIF formátu.
Všimněte si, jak pouhým zmenšováním vzorku 2 barev se změní vnímání barvy. Jinými slovy – sousední 2 barvy se slijí a vytvoří třetí barvu. To je princip rozkladu (ditheringu).
Zapnutím rozkladu ve formátu GIF je i při omezeném množství barev v paletě možné dosáhnout výrazně lepších výsledků. Prostě se barvy z palety rozkládají po snímku s cílem dosáhnout subjektivně nejlepšího výsledku. Způsobů jak to udělat je ale opět mnoho (viz např. http://en.wikipedia.org/wiki/Dithering) a záleží na tom, jaké algoritmy nabídne grafický editor. Adobe Photoshop nabízí variantu „Bez rozkladu“ plus 3 metody rozkladu:
Rozptýlený (difúze) – pro prolínání a simulaci barev, které nejsou v paletě, je použit náhodný nepravidelný vzorek. U této metody je možné volit stupeň rozptylu (difůze) v rozsahu 0 až 100 %. Zvolíte li 0 %, je to stejné jako zcela bez rozkladu.
Vzorek – pro prolínání a simulaci barev, které nejsou v paletě, je použit pravidelný čtvercový vzorek. Tato varianta je obvykle ale poměrně nápadná.
Šum – je podobná metoda jako Rozptýlený ale rozptyl není omezen na bezprostřední okolí místa, kde se simuluje nějaká barva, zasahuje dále a tak více maskuje barevné švy.
Ukázka možností, které nabízí Adobe Photoshop u GIF formátu ohledně rozkladu.
Zapnutím rozkladu lze tedy subjektivně a zdánlivě zvýšit počet barev v obrázku i zjemnit podání detailů, zvětšuje to ale velikost souboru. Obrázky tvořené jen malým počtem dobře ohraničených barev (loga, ikony) mohou vypadat velmi dobře i zcela bez rozkladu, avšak snímky s velkým počtem barev a s jemnými přechody (fotografie) se bez masivního rozkladu neobejdou.
Ukázka stejného obrázku jako výše, také s pouhými 32 barvami v paletě, ale se zapnutým rozkladem typu „Rozptýlený 100 %“. Srovnáte-li oba obrázky, rozdíl je obrovský. Vzrostla ale i velikost souboru ze 42 na 68 KB. Rozptyl je dobře vidět v obloze.
Průhlednost (Transparency)
Velkou výhodou formátu GIF je, že vcelku kvalitně podporuje průhlednost. Jinými slovy - jedna barva z palety může být považována za „průhlednou barvu“. V takovém případě GIF umožní uložit obrázky na průhledném pozadí, což je velmi potřebná praxe. Bez průhlednosti pozadí je totiž každý obrázek nutné chápat jako obdélník, do kterého nesmí nic zasahovat. Díky průhlednosti se však objekty mohou vzájemně překrývat či různě dotýkat a to i při jejich nepravidelném tvaru.
Typická ukázka praktického použití průhlednosti je např. u lupy, kterou je možné přidat k obrázku a naznačit tím možnost prokliku na větší snímek. Lupu však musíte mít připravenu včetně průhlednosti a tudíž uloženu např. v souboru typu GIF.
Bez průhlednosti pozadí lupy (uložené např. jako JPEG) by to dopadlo takto.
Průhlednost je obtížné zobrazit a tak si editory pomáhají nějakým vzorkem. Takto například zobrazuje „průhlednost“ na obrazovce Adobe Photoshop a tak je to považováno za standard.
U GIF formátu lze volit, zda chcete podporovat průhlednost (a obětovat jí tak 1 barvu z palety) či nikoliv. Zvolíte-li „ne“, tak případná průhlednost v ukládaném obrázku musí být nahrazena nějakou reálnou barvou z palety. Této barvě se celkem logicky říká podklad a lze ji zvolit – tedy zvolit barvu, která průhlednost nahradí jako kdyby obrázek obsahující průhlednost ležel na nějak barevném papíře.
Pokud zvolíte průhlednost „ano“, tak je nutné vyřešit i rozklad průhlednosti. Průhlednost totiž nemusí začít skokem, ale klidně i pozvolně – některé pixely mohou být jen částečně průhledné. To GIF již ale neumí, dokáže uložit jen průhlednost ano či ne. Případnou částečnou průhlednost (poloprůhlednost) tak řeší opět rozkladem stejně jako u barev.
Zaškrtnete-li průhlednost, je možné zvolit, zda provést rozklad průhlednosti a jak a to zcela stejně jako u barev. Pokud průhlednost nezaškrtnete, je nutné zvolit Podklad neboli barvu, která průhlednost nahradí (zde bílá).
Příště popis formátu GIF dokončíme.