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).