úvod   popis   test 1   test 2   test 3   test 4   test 5   test 6

Popis vybraných formátů

Na úvod tabulka vlastností:

formát komprese průhlednost
(bit hloubka)
bit hloubka
(na kanál)
barevné režimy
/profily (ICC)
zobrazení web
prohlížečem
ztrátová neztrátová
JPG JPEG není není 8 RGB, CMYK/ano dobře
JPG 2000 vlnková vlnková 8, 16 8, 16 RGB, CMYK, Lab/ano není
BMP není RLE omezeně 1-32 RGB dobře
TIFF JPEG ZIP, LZW, RLE 1-32 8, 16, 32 RGB, CMYK, Lab/ano částečně
GIF není LZW 1 2 až 256 barev RGB dobře
PNG není deflate 8, 16 8, 16 RGB/ano částečně

Vysvětlení pojmů

Inforamce o jednotlivých pixelech, tedy bodech, z kterých se skládá obraz, můžeme zachovávat různými způsoby.

barevné režimy

Na popis barvy, tedy její světlosti, odstínu a sytosti, bylo vyvinuto několik systémů. Nejčastější je RGB, kdy barvu (i světlost) popisujeme úrovní signálu ve třech primárních barevných kanálech Red, Green, Blue. Když chceme oddělit informaci o světlosti od informace o barvě, můžeme použít režim Lab, kdy v kanále L popisujeme světlost a dvěmi zbývajícími popisujeme barvu. Naproti tomu tiskové stroje pracují s inkousty nebo pigmenty, proto můžeme rovnou pracovat v systému k tomu určeném, kde primární barvy více odpovídají těm výstupním-tiskovým. Barvy tedy popisujeme čtyřmi hodotami CMYK, což odpovídá množství jednotlivých pigmentů (Cyan, Magenta, Yellow, blacK).

bitová hloubka

Informace o barvě (většinou síla signálu v jednotlivých kanálech Red, Green, Blue) pixelu může být různě "bohatá". Když máme pouze černobílou předlohu (např. čárový kód), stačí nám k zaznamenání 1 bit (černá, nebo bílá). Jestliže máme černobílou fotografii, pak chceme popsat plynulou škálu od nejtmavších tónu po ty nejsvětlejší (černá až bílá). Když tuto škálu-přechod rozdělíme na 256 stupňů, bude nám připadat jako plynulý (nerozeznáme jednotlivé sousední stupně od sebe) a na zaznamenání spotřebujem již 8 bitů. Při požadavcích na nejvyšší kvalitu je ale těchto 256 úrovní moc "hrubý metr" a proto se často informace ukládají v 16 bitovém zápisu (ikdyž informace z fotoaparátu nebo skeneru je většinou v 12-14 bitové hloubce). Pro speciální efekty je možné použít i 32 bitový zápis.
Při práci s barvou je každý jednotlivý kanál vlastně samostaná škála od černé po bílou, jen se vyhodnocuje jako patřičná barva. Velikost souboru tedy násobíme počtem kanálů (RGB ×3, CMYK ×4).
Není ustálen způsob zápisu bitové hloubky souboru, někdy se uvádí hloubka na jeden kanál, jinde celková hloubka všech kanálů dohromady, tedy obraz RGB 8 bit na jeden kanál je to stejné jako 24 bit vše dohromady.

průhlednost

Některé formáty umožňují pracovat s průhledností. Obrázek sice musí mít obdélníkový tvar, ale některým pixelům můžeme přiřadit vlastnost - průhlednost (nebudou mít žádou barvu, tedy bude viditelné pozadí, které je za obrázkem, nebo v jiné vrstvě) a tím můžeme docílit "kulatého" nebo jiného libovolného tvaru.
V nejjednodušším případě je pixel buď plně průhledný, nebo vůbec, tedy jednobitová průhlednost. V pokročilejších verzích pak pro popis průhlednosti máme k dispozici více bitů (rozlišíme více stupňů průhlednosti), takže můžeme mít poloprůhledné plochy, nebo vytvořit plynulý přechod z plné barvy do průhlednosti (např. vržený stín).

formáty

Informace popisující jednotlivé pixely- jejich pozici a barvu, můžeme různě strukturovat a třídit. Jednoduché systémy mají výhodu v unverzálním použití a jsou nenáročné na výpočetní výkon (jak při ukládání, tak při čtení), zároveň ale neumožňují více redukovat datovou velikost. Různé formáty tedy používají různé systémy a jsou schopny pracovat s daty v různých formách (bitová hloubka, režim barev) a třeba k nim i připojovat další informace (exif) o čase, poloze, nastavení fotoaparátu/objektivu a mnoho dalších.

JPG též JPEG nebo JFIF je dnes nejznámější, nejpoužívanější a tedy i nejvíce podporovaný formát. Nenabízí moc široké možnosti pro výběr ukládání, protože používá pouze kompresi JPEG, takže můžeme nastavit jen velikost této komprese a někdy i její vylepšení (optimalizovanou, progresivní s různým počtem průchodů). Viz dále o této stejnojmenné (JPEG) kompresi.

JPEG 2000 má přípony JPF, JP2 nebo J2C, byl vytvořen jako nástupce JPG tak, aby eliminoval nevýhody diskrétní kosinové transformace a přinesl další vylepšení. Těch zlepšení je skutečně mnoho (z těch zajímavějších třeba možnost části obrazu komprimovat rozdílnou kvalitou) ale i přesto se téměř vůbec nerozšířil, částečně za to může patentová ochrana a také zřejmě většině uživatelům JPG dostačuje. JPG 2000 produkuje o něco (cca 20%) menší soubory v 8 bitové hloubce (včetně průhlednosti) s menším poškozením obrazu. Hlavní přínos ale vidím při ukládání 16 bitových dat, které běžně velmi zvětšují velikost souborů, v tomto případě vlnková transformace používaná tímto formátem dokáže soubory zmenšit na třetinu bez viditelných změn.

zde najdete přehled vlastností JPEG 2000 (Wikipedia): JPEG 2000

BMP je jeden z nejstarších formátů pro ukládání obrazů (od roku 1988 jej používají samotné operační systémy). Má velmi jednoduchou strukturu a není chráněn patenty, od svého vzniku je široce podporován, ale dnes již není tak používán (jiné formáty nabízejí více možností). Původně je nekomprimovaný, ale může používat neztrátovou kompresi RLE a ve speciálních případech zobrazí i průhlednost.

TIF je třeba chápat jako schránku, která může obsahovat různá data v různých formách. Proto je oblíben a široce používán, i když asi nebývají plně využity všechny jeho možnosti, které jsou vidět v tabulce ,a budou dále vysvětleny u jednotlivých zkratek (komprese JPEG, LZW, ZIP).

GIF je další z nejstarších formátů, široce podporován, ale u uživatelů bývá často špatně pochopena jeho funkce, vlastnosti, a s tím spojené výhody/nevýhody. Tento formát totiž pracuje s barvami, tzv. paletou, svým specifickým způsobem. Tato paleta může obsahovat 2 až 256 libovolných barev, na fotografie je to tedy většinou málo, ale málobarevné objekty dokáže uložit v minimální velikosti, s průhledností (pouze ano/ne). Výjimečná je také možnost uložení více vrstev s časovou osou, tedy animace.

PNG byl uveden jako nástupce GIF, ale oba jsou dále samostatně používány. Byla přidána podpora až 16 bitové barevné hloubky, informace exif, icc profily a další (ale neukládá více vrstev). Má širší podporu pro průhlednost než tif, např. Word, ale u internetových prohlížečů je to obecně horší. Formát používá kompresi deflate, tedy algoritmus LZ77 s Huffmanovým kódováním.

komprimační metody:

rozdělujeme na dvě hlavní kategorie:

neztrátové (pouze snížíme množství ukládaných dat, ale informace po dekomprimaci zůstává nezměněna)

ztrátové (určíme nepodstatné informace a ty vynecháme nebo zjednodušíme; tímto výběrem a zjednodušením se liší jednotlivé metody)

JPEG (Joint Photographic Experts Group) je již dlouho nejpoužívanější metoda na zmenšení objemu obrazových dat (používá se i na video a zvuk). Základ této metody vychází z předpokladu, že z informace můžeme odstranit její, pro lidské vnímání, nepodstatné části. Množství takto zanedbaných informací určujeme nastavením kvality (číslo na stupnici nebo procenta, čím nižší, tím větší ztráta informací= menší velikost souboru). To je nejdůležitější nastavení a proto je dobré znát jeho chování:
- i při maximální kvalitě 100% dochází ke zjednodušování a přicházíme o informace
- na 80% výrazně snížíme data, ale zahozených informací oproti 100% si mnoho nevšimnete
- na 60% dále snižujeme data, ale zahozených informací si již všimneme
- na 40% dále snižujeme data, ale zahozené informace již postrádáme

takto zobrazeno graficky (nižší komprese = nižší objem dat):


Samotná jpeg komprese spočívá v několika krocích. Jedním z nich je rozdělení obrazu do bloků po 8 pixelech a následná diskrétní kosinová transformace těchto čtverečků. Několika dalšími kroky snižujeme množství informací o barvě a světlosti. Tímto vznikají charakteristické artefakty jpeg komprese.

Několik srozumitelných kapitol o JPEG najdete na ROOT.cz: JPEG - král rastrových grafických formátů?
nebo zde, i s vysvětlujícími ilustracemi a srovnáními: atrey.karlin.mff.cuni.cz
Pro zájemce o hlubší studium (ostatní mohou nakouknout), opět ROOT.cz:
Programujeme JPEG: Kvantizace DCT koeficientů

Vlnková transformace (wavelet transform) je matematický postup objevený již v první polovině minulého století (Alfréd Haar). Dlouho čekal na praktické využití, které přišlo až v posledních letech, kdy se objevila možnost jejího použití pro komprimaci dat. Využívá jí formát JPEG 2000, i přes výhody se ale mnoho nerozšířil. Komprese i dekomprese je výpočetně náročná.

zde najdete přehled vlastností JPEG 2000 (Wikipedia): JPEG 2000
pro matematicky zdatnější (Wikipedia): Vlnková transformace

RLE (Run-length encoding) je jedna z nejstarších metod komprese pro libovolná data. Hledá opakující se hodnoty a ty pak nahradí zkráceným zápisem. Je tedy vhodná pro typ dat, kde takové sekvence můžeme najít, např. obrázky s jednolitými velkými plochami. Naproti tomu fotografie v 16 bitové hloubce s mnoha barevnými přechody mnoho opakujících se sekvencí obsahovat nebude.

základní informace (Wikipedia): RLE
nebo: Komprese metodou RLE

LZW (Lempel-Ziv-Welch) je široce používaná kompresní metoda na libovolná data. V dokumentu vyhledá opakující se sekvence a ty nahradí znakem ze seznamu.

informace (Wikipedia): LZW


ZIP je široce používaný a oblíbený souborový archiv, používá více komprimačních algoritmů.

informace (Wikipedia): Zip (file format)


Deflate je algoritmus kombinující LZ77 a Huffmanovo kódování. Obě metody opět hledají shodné řetězce a ty nahrazují kratším zápisem.

informace (Wikipedia): Huffmanovo kódování
informace (Wikipedia): LZ77

Jak číst testovací obrázky

Každý test obsahuje úvodní charakteristiku použitého obrázku, pak tabulku s výsledky a interaktivní galerii.

Tabulka je rozdělená na dvě základní části. V první jsou uvedeny výsledné velikosti souborů po použití neztrátových algoritmů (zde není potřeba obrazové srovnání- data jsou po rozbalení totožná). Ztrátové komprese srovnává druhá část tabulky. Tady je výsledné hodnocení spíše subjektivní, protože porovnáváme dosažený kompresní poměr s vizuálním vjemem. Tedy hodnotíme, jestli nám data ztracená při kompresi neschází, nebo již zaznamenáváme ztrátu, a nebo je obraz výrazně poškozen. Toto lze vizuálně porovnat na obrázcích pod tabulkou, pro zobrazení požadovaného obrázku klikněte na název formátu v jednom ze tří sloupců (jiné části tabulky nejsou aktivní).

Ilustrativní obrázky jsou vytvořeny takto: originální obrázek byl uložen v různých formátech (s různými nastaveními), výřezy pro detailní pohled byly z takto uložených variant zvětšeny metodou nejbližší soused (nedochází k průměrování sousedních pixelů- zachovává ostré hrany). Náhled celého testovaného obrázku i detailní výřezy pak byly uloženy ve formátu jpg s vyšší kvalitou (některé formáty by nebylo možné internetovým prohlížečem zobrazit, protože je zvětšený pohled již součástí, je toto dostatečně přesná metoda při zobrazení 1:1).