Druhy grafických formátů a jejich komprese

Podobné dokumenty
Kompresní algoritmy grafiky. Jan Janoušek F11125

Konverze grafických rastrových formátů

Kosinová transformace 36ACS

Rastrová grafika. Grafický objekt je zaznamenán jednotlivými souřadnicemi bodů v mřížce. pixel ( picture element ) s definovanou barvou

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

III/ 2 Inovace a zkvalitnění výuky prostřednictvím ICT

VYUŽITÍ POČÍTAČOVÉ GRAFIKY

Obraz jako data. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.2487/2011

Komprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3.

IVT. Grafické formáty. 8. ročník

Reprodukce obrazových předloh

Počítačová grafika a vizualizace I

Práce s obrazovým materiálem CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků

Kurz digitální fotografie. blok 1 data/úpravy fotografií

Zdroj:

Počítačová grafika SZŠ A VOŠZ MERHAUTOVA 15, BRNO

Rastrový obraz, grafické formáty

1. Formáty grafických dat

DATOVÉ FORMÁTY GRAFIKY, JEJICH SPECIFIKA A MOŽNOSTI VYUŽITÍ

Počítačová grafika. OBSAH Grafické formy: Vektorová grafika Bitmapová (rastrová grafika) Barevné modely

BPC2E_C09 Model komunikačního systému v Matlabu


POČÍTAČOVÁ GRAFIKA. Počítačová grafika 1

Počítačová grafika a vizualizace volné 3D modelování. Maxon CINEMA 4D. Mgr. David Frýbert, 2012

Datové formáty videa a jejich využití. Tomáš Kvapil, Filip Le Manažerská informatika Multimédia

Digitální grafika. Digitální obraz je reprezentace dvojrozměrného obrazu, který používá binární soustavu (jedničky a nuly).

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Co je počítačová grafika

Barvy a barevné systémy Formáty obrázků pro WWW

GRAFICKÉ FORMÁTY V BITMAPOVÉ GRAFICE

Multimediální systémy. 03 Počítačová 2d grafika

Barvy a barevné systémy Formáty obrázků pro WWW

Identifikátor materiálu: ICT-1-19

KOMPRIMACE. aneb Aby to zabralo méně místa

Číslo DUM: VY_32_INOVACE_04_01 Autor: Mgr. Ivana Matyášková Datum vytvoření: březen 2013 Ročník: prima Vzdělávací obor: informační technologie

VIDEO DATOVÉ FORMÁTY, JEJICH SPECIFIKACE A MOŽNOSTI VYUŽITÍ SMOLOVÁ BÁRA

Maturitní téma: Počítačová grafika (rastrová a vektorová grafika, grafické programy, formáty)

POČÍTAČOVÁ GRAFIKA. Lenka Bednaříková

Rastrová grafika. body uspořádané do pravidelné matice

JPEG Formát pro archivaci a zpřístupnění.

Zásady prezentace CENTRUM MEDIÁLNÍHO VZDĚLÁVÁNÍ. Akreditované středisko dalšího vzdělávání pedagogických pracovníků

Adobe Photoshop 18. Ukládání dokumentu formáty

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 3 VY 32 INOVACE

Rastrové grafické formáty. Václav Krajíček KSVI MFF UK, 2007

12 Metody snižování barevného prostoru

On-line škola mladých autorů , pořadatel: ČVUT FEL. Jak na obrázky? Martin Žáček

INFORMATIKA. Grafické studio ve škole

1. ZÁKLADNÍ POJMY POČÍTAČOVÉ GRAFIKY

DIGITÁLNÍ VIDEO. pokus o poodhalení jeho neskutečné obludnosti (bez jednosměrné jízdenky do blázince)

Identifikátor materiálu: ICT-1-20

Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/

aneb jak se to tam všechno vejde?

13 Barvy a úpravy rastrového

Obrazová data. Biofyzikální ústav Lékařské fakulty Masarykovy univerzity Brno. prezentace je součástí projektu FRVŠ č.2487/2011

Formáty obrazu. David Bařina. 22. března David Bařina Formáty obrazu 22. března / 49

Barvy na počítači a grafické formáty

Informační systémy ve zdravotnictví

Téma: Barevné modely, formáty souborů

Rastrové počítačové obrazy (poněkud sporně často označované jako bitmapové) jsou pravděpodobně nejběžnější variantou obrazů v počítači.

Základy informatiky. 10 Počítačová grafika

Pavel Roubal Výukový modul projektu: Nové formy výuky ve školách kraje Vysočina

Grafické formáty. Grafické formáty. Komprese rastrového obrazu. Proč je tolik formátů pro uložení obrázků?

Digitální fotoaparáty

Digitální fotoaparáty

Informatika Počítačová grafika Mgr. Jan Jílek (v.11/12) Počítačová grafika

Kde se používá počítačová grafika

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Elektromagnetické záření. Zdroj:

IVT. Rastrová grafika. 8. ročník

Komprese obrazu. Michal Bujalka, Ondrej Kováč. Gymnázium Botičská. Botičská 1, Praha 2

ZPRACOVÁNÍ OBRAZU přednáška 4

Úvod do počítačové grafiky

Webové stránky. 13. Obrázky na webových stránkách, modul Uložit pro web a zařízení. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch

Digitální učební materiál

Datové formáty grafiky, jejich specifika a možnosti využití. L u b o š T o m e š e k U M T M a n a ž e r s k á i n f o r m a t i k a 2015/ 16

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Srovnání programů pro editaci 2D grafiky

Moderní multimediální elektronika (U3V)

25. DIGITÁLNÍ TELEVIZNÍ SIGNÁL A KABELOVÁ TELEVIZE

Grafické formáty. poznámky k 5. přednášce Zpracování obrazů. Martina Mudrová 2004

Grafické editory. Ing. Jan Steringa 2008

Digitální audio zde se vysvětluje princip digitalizace zvukového záznamu, způsoby komprese uložení ztrátové a bezztrátové, obvyklé formáty atd.

MULTIMEDIÁLNÍ A HYPERMEDIÁLNÍ SYSTÉMY. 8. Uložení a komprese statického bitmapového obrazu

ZÁPADOČESKÁ UNIVERZITA V PLZNI

UNIVERZITA JANA EVANGELISTY PURKYNĚ V ÚSTÍ NAD LABEM FAKULTA ŽIVOTNÍHO PROSTŘEDÍ. Katedra informatiky a geoinformatiky

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Grafika na počítači. Bc. Veronika Tomsová

DUM 02 téma: Formáty souborů rastrové grafiky

Kde se používá počítačová grafika (PG)?

Reprezentace bodu, zobrazení

Webové stránky. 6. Grafické formáty pro web. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Informační a komunikační technologie Inovace výuky prostřednictvím šablon pro SŠ

KOMPRESE OBRAZŮ. Václav Hlaváč, Jan Kybic. Fakulta elektrotechnická ČVUT v Praze katedra kybernetiky, Centrum strojového vnímání.

Rastrový obraz Barevný prostor a paleta Zmenšení barevného prostoru Základní rastrové formáty

STRUKTURA RASTROVÝCH DAT

OSNOVA. 1. Definice zvuku a popis jeho šíření. 2. Rozdělení zvukových záznamů (komprese) 3. Vlastnosti jednotlivých formátů

Funkce grafiky na webu. Primární grafická informace Fotografie Schémata Diagramy Loga Bannery

Fungování předmětu. 12 vyučovacích hodin ve 3 blocích Evidence docházky Zápočtový test Aktuální informace a materiály na smetana.filmovka.

Digitální magnetický záznam obrazového signálu

Transkript:

Druhy grafických formátů a jejich komprese Praha 2014 Zpracoval: Ing. Pavel branšovský pro potřebu VOŠ a SŠSE Volně použito podkladů z internetu 1

Provádění komprese obrazových dat dle standardu JPEG v sekvenčním režimu Obsah 1 Druhy grafických formátů 1.1 Bitmapový 1.2 Vektorový 2 Komprese grafických formátů 2.1 Bezeztrátová komprese 2.2 Ztrátová komprese 3 Základní grafické formáty 3.1 Rastrové 3.1.1 JPEG 3.1.2 TIFF 3.1.3 RAW 3.1.4 PNG 3.1.5 GIF 3.1.6 BMP 3.1.7 WDP / HD Photo 3.2 Vektorové 3.2.1 SVG 4 Externí odkazy Provádění komprese obrazových dat dle standardu JPEG v sekvenčním režimu 2

Bitmapový Obraz se skládá z jednotlivých [[pixel]]ů (bodů), z nichž každý má definovánu určitou [[barva barvu]]. Vektorový Obraz se skládá z jednotlivých objektů (např. obdélník, elipsa, křivka, hvězda ), z nichž každý má definovánu barvu a styl obrysu a výplně. Jednotlivé objekty jsou popsány parametry obrysu, obvykle koeficienty bézierových křivek 1. nebo 3. řádu. 3

Rastrové JPEG (Joint Photographic Experts Group) je standardní metoda ztrátové komprese používané pro ukládání počítačových obrázku ve fotorealistické kvalitě. TIFF (Tagged Image File Format) tvoří neoficiální standard pro ukládání snímků určených pro tisk. TIFF umožňuje jako jeden z mála grafických formátů vícestránkové soubory a proto se často používá například pro ukládání přijatých faxù přijatých pomocí počítače a ISDN karty, či faxmodemové karty. raw nijak neupravená data ze snímače digitálního fotoaparátu Formát souboru raw není nikým definován a tak se soubory různých fotoaparátů (i od stejné firmy) mohou značně lišit. PNG (Portable Network Graphics) je grafický formát určený pro bezeztrátovou kompresi rastrové grafiky Byl vyvinut jako zdokonalení a náhrada formátu GIF. GIF(Graphic Interchange Format) je grafický formát určený pro rastrovou grafiku. GIF používá bezeztrátovou kompresi a umožňuje také jednoduché animace. GIF má jedno velké omezení maximální počet současně použitých barev barevné palety je 256 (8 bitù) v jednom rámci. BMP výhodou tohoto formátu je jeho extrémní jednoduchost a dobrá dokumentovanost WDP je obrázkový kompresní algoritmus a souborový formát určený pro fotografie, vyvíjený společností Microsoft. Podporuje jak ztrátovou, tak bezztrátovou kompresi. V listopadu 2006 byl přejmenován na HD Photo. Vektorové SVG (škálovatelná vektorová grafika) je značkovací jazyk a formát souboru, který popisuje dvojrozměrnou vektorovou grafiku pomocí XML. Formát SVG by se měl v budoucnu stát základním otevřeným formátem pro vektorovou grafiku na Internetu. 4

Komprese grafických formátů Bezeztrátová komprese je jeden ze dvou základních přístupů ke kompresi dat. Jedná se o algoritmy, které dovolují přesnou zpětnou rekonstrukci komprimovaných dat, na rozdíl od ztrátové komprese, kde to možné není. Bezeztrátová komprese se používá všude tam, kde je důležité, aby originální data a data po dekompresi komprimovaného souboru byla totožná např. komprese textů nebo komprese čehokoli, kde je nepřípustná i sebemenší ztráta kvality. Existuje mnoho různých formátů, které využívají bezeztrátové komprese. Například velmi populární ZIP, se kterým je možné pracovat téměř na jakékoli platformě. Dalším velmi oblíbeným formátem je RAR, tento formát je však komerční a neexistují svobodné nástroje pro vytváření archivů RAR. Komerční nástroje existují pro většinu platforem, například DOS, MS Windows, *BSD, GNU/Linux, Mac OS X. Mezi open source komunitami jsou oblíbeny formáty gzip a bzip2, jejichž algoritmy mají tu výhodu, že nejsou patentované. Dalším méně známým, ale velice schopným kompresním algoritmem je LZMA, který je užíván programem 7 Zip. 5

Algoritmy bezeztrátové komprese Jednotlivé algoritmy můžeme rozdělit podle typů dat, pro které jsou určeny. Existují čtyři základní typy dat, které algoritmy zpracovávají data textového charakteru, data obrazového charakteru, data zvukového charakteru a videa. V principu mohou existovat také univerzální algoritmy, které mohou zpracovávat jakýkoliv typ vstupních souborů. V praxi se ale neprosadily, neboť obvykle nejsou schopny docílit takového kompresního poměru (poměru velikosti dat před a po komprimaci) jako specializované algoritmy. Například zvukový soubor nebude příliš úspěšně komprimovatelný algoritmem určeným pro textové soubory a naopak. Většina bezeztrátových komprimačních programů nepoužívá jen jeden algoritmus, ale hned několik najednou. U některých komprimačních programů jsou data napřed transformována a až poté komprimována. Zmíněná transformace se používá za účelem dosažení lepších kompresních poměrů. 6

Transformace Tyto algoritmy ve skutečnosti nic nekomprimují, pouze modifikují data tak, aby se dala lépe zkomprimovat. Je také podmínkou, že ke každé transformaci musí existovat transformace inverzní, která bude schopna obnovit původní data. Burrows Wheelerova transformace (BWT) Move to front transformace (MTF I a MTF II) Weighted frequency count (WFC) Distance coding (DC) Inverse frequency coding (IF) http://cs.wikipedia.org/wiki/grafick%c3%bd_form%c3%a1t 7

Provádění komprese obrazových dat dle standardu JPEG v sekvenčním režimu V předchozí části tohoto seriálu jsme se seznámili se základními charakteristikami standardu JPEG, pomocí kterého je možné provádět ztrátovou i bezeztrátovou kompresi rastrových obrazových dat, zejména plnobarevných (truecolor) fotografických materiálů, monochromatických rentgenových a ultrazvukových snímků, kopií naskenovaných dokumentů obsahujících obrázky apod. Viz. diskrétní kosinová transformace (DCT), Kvantizace DCT koeficientů apod. Ve standardu JPEG jsou definovány celkem čtyři režimy činnosti, které může kodér i dekodér podporovat (aplikace konkrétního režimu bývá nazývána kódování). Tyto režimy jsou sepsány a stručně charakterizovány v první tabulce: Režim Ztrátové kódování? Stručná charakteristika sekvenční ano nejméně náročné na paměť, nejpoužívanější progresivní bezeztrátový hierarchický ano ne ano predikční kódování, není příliš známé ani používané/pod porované, kompresní poměr 1:2 predikční kódování, není příliš známé ani používané/pod porované, kompresní poměr 1:2 mnoho rozlišení v jednom snímku, rychlé náhledy, podpora zobrazení, tisku, osvitu 8

V dnešní části nás bude zajímat pouze první režim činnosti, při kterém jsou obrazová data zpracovávána sekvenčně, konkrétně po blocích 8 8 a 16 16 pixelů. Sekvenční zpracování přináší některé výhody. Jednoznačně přínosný je fakt, že se při kódování i dekódování využívá pouze minimum operační paměti, která může mít kapacitu v řádech několika desítek kilobytů. Jen díky tomu je možné konstruovat například digitální fotoaparáty vytvářející fotografie složené z několika milionů pixelů, i když kapacita operační paměti na čipech ve fotoaparátu je mnohdy několikanásobně menší (ve skutečnosti jsou ony miliony pixelů uváděných v letáčcích velmi zavádějící). Také při dekódování obrázku z formátu JPEG do nekomprimovaného rastru je sekvenční režim výhodný obrázek se například může při přenosu po síti či při načítání z pomalého paměťového média postupně zobrazovat v prohlížeči a i dekodér si vystačí pouze s malým množstvím paměti. Některé tiskárny s menším množstvím paměti také dokážou začít s tiskem obrázku ve formátu JPEG bez nutnosti ho celý načíst (provádí se současně tisk jedné části a dekódování a rasterizace části navazující). Takto sofistikovaných tiskáren však pravděpodobně bude ubývat na úkor win tiskáren, u kterých se rastrování provádí přímo v počítači a tiskárna obsahuje pouze relativně malý buffer. 9

V sekvenčním režimu existuje celkem pět způsobů (resp. cest), kterými mohou být data zpracovávána. Způsoby zpracování se od sebe liší především bitovou hloubkou barevných vzorků na vstupu, způsobem výpočtu DCT spolu s kvantizací a konečně kódováním kvantizovaných vzorků. Na vstupu se mohou nacházet osmibitové či dvanáctibitové barvové vzorky (viz. <http://www.root.cz/clanky/ztratovakomprese obrazovych dat pomocijpeg/>), výpočet DCT může být prováděn standardním (baseline) či rozšířeným (extended) algoritmem a kódování může být buď aritmetické či Huffmanovo. Všechny způsoby jsou přehledně zobrazeny na následujícím diagramu: 10

Obrázek 1: Pět způsobů zpracování dat při ztrátové kompresi V dalším textu se budeme zabývat především nejpoužívanějším způsobem komprese: použitím osmibitových barevných vzorků, výpočet DCT (diskrétní kosinové transformace) a kvantizace se provádí pomocí standardního algoritmu (baseline) a výsledek tohoto zpracování je zakódován Huffmanovým kódem. Norma JPEG předepisuje, že tento způsob zpracování obrazových dat musí podporovat jakýkoli kodér i dekodér, ostatní způsoby jsou pouze volitelné, což také většina aplikací a aplikačních knihoven pro práci s JPEGem dodržuje. Většina obrázků uložených v JFIF/JPEG je vytvořena právě tímto způsobem. 2. Posloupnost operací při základní ztrátové kompresi pomocí JPEG Při ztrátové kompresi obrazových dat pomocí standardu JPEG se vstupní rastrová data podrobují několika za sebou jdoucím operacím, jak je schematicky znázorněno na druhém obrázku: 11

Obrázek 2: Posloupnost operací při základní ztrátové kompresi pomocí JPEG 1. Nejprve je provedena transformace barev z barvových prostorů RGB, CMYK či dalších (například CCD čipy mají vlastní barvový prostor) do barvového prostoru YC b C r. Tato transformace je bezeztrátová, tj. nedochází při ní k žádné ztrátě informací o obrázku. 2. Dále může podle konfigurace kodéru docházet k podvzorkování barvonosných složek. V barvovém prostoru YC b C r nese složka Y informaci o světlosti pixelu a složky C b a C r informaci o barvě. Právě poslední dvě složky mohou být podvzorkovány, čímž dojde ke snížení objemu dat, ale i k určité (mnohdy zanedbatelné) ztrátě informace. 3. Další kroky jsou odděleně prováděny pro složku Y a pro barvonosné složky. Na bloky 8 8 hodnot je aplikována diskrétní kosinová transformace (DCT), která je už z principu bezeztrátová. Výsledkem DCT jsou bloky 8 8 hodnot, tentokrát ležící ve frekvenční rovině. 12

4. Bloky DCT o velikosti 8 8 hodnot jsou kvantovány pomocí vypočtených kvantizačních tabulek. Výsledkem je stav, kdy je mnoho hodnot v tomto bloku nulových, čehož se využívá v následujícím kroku zpracování. Právě při kvantizaci může docházet k největší ztrátě informace a tím i ke kýženému snížení bitové rychlosti (bitrate). 5. Kvantované DCT koeficienty jsou následně kódovány pomocí aritmetického či Huffmanova kódování. Aritmetické kódování je sice účinnější o cca 10%, je však mnohem výpočetně i aritmeticky náročnější. Proto se u většiny obrázků používá Huffmanovo kódování, které je sice méně účinné, ale může být prováděno i na málo výkonných čipech (například v mobilních telefonech či fotoaparátech). 6. Posledním krokem zpracování je uložení vytvořených dat do souboru typu JFIF/JPEG. V podstatě se jedná o obalení vzniklého datového toku vhodnou hlavičkou, přidání dalších doplňujících informací (včetně populárního EXIF či náhledového obrázku) a zakončení celého souboru patičkou. 3. Transformace barev do barvového prostoru YC b C r Prvním krokem, který se při komprimaci rastrových obrazových dat pomocí standardu JPEG provádí, je transformace barev ze zdrojového barvového prostoru (kterým může být například RGB, CMYK nebo barvový prostor CCD čipu umístěného v digitálním fotoaparátu) do barvového prostoru nazvaného poněkud záhadně YC b C r. Tento barvový prostor je odvozen z barvového prostoru YUV, který je použit například v některých normách televizního vysílání (konkrétně v normě PAL, zde popisovaný barvový model je použit v podceňované normě SECAM). Složka Y nese informaci o světlosti pixelů, složky C b a C r pak rozdílové hodnoty barev pixelů (rozdíl se počítá oproti složce Y). 13

Obrázek 3: Blok transformace barev do barvového prostoru YC b C r Jedná se o barvový prostor navržený především pro přenos videosignálu nabízející kompatibilitu s černobílou televizí a plné využití šířky pásma televizního kanálu, proto se s ním NEsetkáme například v grafických editorech ty jsou zaměřeny především na koncové uživatele, a proto jim nabízí buď intuitivně použitelné barvové prostory (zejména HSV a HLS) nebo barvové prostory odpovídající technologii zobrazení a tisku (RGB, CIE xy, CMYK). Pro přepočet barev pixelů z barvového prostoru RGB do barvového prostoru YC b C r je možné použít následující trojici vzorců. Ty se v literatuře většinou zapisují pomocí násobení transformační matice vektorem RGB, tato matematická operace se však v HTML formátu špatně zapisuje, proto jsem zvolil programový zápis. Předpokladem je, že všechny barvové složky (R, G, B, Y, C b, C r ) jsou uloženy jako celá čísla v rozsahu 0..255, tj. jako byty: Y = 0,299 R + 0,587 G + 0,114 B Cb = 0,1687 R 0,3313 G + 0,5 B + 128 Cr = 0,5 R 0,4187 G 0,0813 B + 128 14

Zpětný přepočet (ten provádí dekodér umístěný například v prohlížečce obrázků) se provede pomocí vzorců: R = Y+ 1.402 (Cr 128) G = Y 0.34414 (Cb 128) 0.71414 (Cr 128) B = Y + 1.772 (Cb 128) Některá literatura uvádí odlišné vzorce, ty ovšem platí pro normu YC b C r (konkrétně CCIR 601), ve které má signál Y rozsah <0, 1> a signály C b a C r rozsah 0.5, 0,5> (to je ovšem z hlediska zpracování na počítači nevýhodné). V následující části tohoto seriálu si ukážeme jednoduchý demonstrační příklad, který bude provádět přepočet obrázků z barvového prostoru RGB právě do prostoru YC b C r. 4. Redukce (podvzorkování) barvonosných složek Dalším krokem, který zpracovává rastrová data, je redukce neboli podvzorkování barvonosných složek. Idea podvzorkování je následující: lidské oko obsahuje několik typů senzorů reagujících na dopadající světlo. Některé senzory snímají (a následně přenáší do mozku) informace o světlosti, další senzory jsou citlivé na různé barevné odstíny. Vzhledem k tomu, že senzorů, které snímají informace o světlosti, je více, může lidské oko rozpoznat jas objektů s větší přesností ( rozlišením ) než barvu objektů. Právě tento poznatek je využit při podvzorkování barvonosných složek. Zdaleka se nejedná pouze o vlastnost JPEGu, velmi podobně (a někdy i mnohem drastičtěji) se podvzorkování provádí například při kódování digitální televize. 15

Obrázek 4: Blok redukce (podvzorkování) barvonosných složek Podvzorkování pracuje následujícím způsobem: složka Y, která nese informaci o světlosti jednotlivých pixelů, není podvzorkována, protože světlost lidské oko rozpoznává ve větším rozlišení. Naproti tomu barvonosné složky C b a C r mohou být podvzorkovány, a to tak, že se jejich hodnota vypočítá jako průměr buď ze dvou sousedních pixelů na řádku, nebo ze čtyř pixelů tvořících čtverec 2 2 pixely. Při výpočtu průměru ze dvou sousedních pixelů dochází ke zmenšení objemu dat (pro tyto dva pixely) ze 6 bytů na 4 byty, tj. na cca 66%. Větší úspory objemu se dosáhne při použití čtyř pixelů tvořících informaci o barvě, kde se původních 12 bytů sníží na 6 bytů, tj. na 50%. Je důležité si uvědomit, že se zde jedná o ztrátový převod, protože už nemáme informace o barvách všech pixelů samostatně, ale pouze sousedů v blocích buď 2 1 pixel nebo 2 2 pixely. 16

5. Dopředná diskrétní kosinová transformace Následujícím krokem definovaným v normě JPEG je provedení diskrétní kosinové transformace (DCT Discrete Cosinus Transformation). DCT se provádí odděleně pro jednotlivé barvové složky barvového modelu YC b C r. Pro každou barvovou složku je nejprve provedeno rozdělení celého obrázku na pravidelné bloky o velikosti 8 8 hodnot. Rozdělování se provádí postupně, tj. není zapotřebí, aby byl celý obrázek uložen v operační paměti (to je výhodné zejména při implementaci JPEGu na specializovaných čipech). Pokud šířka či výška obrázku není dělitelná osmi (popř. šestnácti v případě barvonosných složek nesmíme zapomenout na podvzorkování barev), jsou zbylé hodnoty, které se v obrázku nenacházejí, dopočítány tak, aby se co nejvíce snížil podíl energie ve vyšších frekvencích (viz následující odstavec). 17

6. Kvantování DCT koeficientů pomocí kvantizačních tabulek Ústřední částí ztrátové komprimace JPEG je kvantování koeficientů vypočtených pomocí diskrétní kosinové transformace. V předchozí kapitole jsme si řekli, že výsledkem DCT jsou bloky o velikosti 8 8 hodnot. DCT je jednoznačná transformace v tom smyslu, že se žádná informace při jejím provedení neztrácí. Daný blok o velikosti 8 8 hodnot se převádí na jiný blok o téže velikosti 8 8 hodnot, tyto hodnoty se ovšem nenacházejí v časové doméně jako pixely v komprimovaném obrázku, ale v doméně frekvenční. První vypočtený koeficient představuje stejnosměrnou složku (DC), tj. ve skutečnosti průměrnou hodnotu celého vstupního bloku. V dalších transformovaných koeficientech jsou uloženy amplitudy střídavých kosinových složek (AC) různých celočíselných frekvencí. Jak si ukážeme na vzorcích v následující části tohoto seriálu, je diskrétní kosinová transformace obdobou rychlé Fourierovy transformace (FFT), ovšem s tím rozdílem, že jsou vypočteny pouze kosinové složky, které mají jeden význačný rys: kosinus je sudá funkce, tj. při transformaci barevných přechodů (typických pro mnoho obrázků) nedochází po zpětné transformaci k zákmitům jako v případě FFT. Zákmity by se projevily nežádoucími dvojitými hranami (duchy) na ukládaných obrázcích. Plynulý barevný přechod je možné považovat za 2D variantu jednorozměrného signálu tvořícího pilovitý průběh. 6. Kvantování DCT koeficientů pomocí kvantizačních tabulek Ústřední částí ztrátové komprimace JPEG je kvantování koeficientů vypočtených pomocí diskrétní kosinové transformace. V předchozí kapitole jsme si řekli, že výsledkem DCT jsou bloky o velikosti 8 8 hodnot. 18

U typických obrázků se největší hodnoty nachází v koeficientech reprezentujících stejnosměrnou složku a také amplitudy kosinových průběhů malých frekvencí. Vyšší frekvence se v obrázcích samozřejmě také vyskytují (například na hranách nebo u textu), tyto části obrázku jsou však nejvíce postiženy ztrátovou komprimací a dochází k jejich mnohdy na první pohled viditelnému rozmazání. Tato ztráta je způsobena právě kvantováním koeficientů. Každý blok 8 8 hodnot je celočíselně vydělen hodnotami uloženými v takzvaných kvantizačních tabulkách (jedná se o dělení typu položka po položce ). Obrázek 6: Blok kvantování DCT koeficientů pomocí kvantizačních tabulek 19

Kvantizační tabulky jsou vytvořeny tak, aby obsahovaly nízké hodnoty u stejnosměrné složky i koeficientů amplitud nízkých frekvencí a naopak vysoké hodnoty u koeficientů amplitud vysokých frekvencí. Výsledkem dělení je nový blok 8 8 hodnot, který většinou obsahuje u vysokých frekvencí nulové hodnoty (nezapomeňme, že se používá celočíselné dělení, právě zde dochází k největší ztrátě informace). Ve vytvoření nulových hodnot spočívá význam DCT a kvantování: sady nulových hodnot jsou velmi dobře kódovatelné pomocí Huffmanova i aritmetického kódování. Blok se navíc prochází metodou cik cak (zig zag), takže se nulové hodnoty nachází za sebou, což dále zefektivňuje kódovací rutiny a nabízí použití slovníkových metod. Na správné volbě kvantizačních tabulek závisí jak komprimační poměr, tak i kvalita výsledného obrázku. 7. Kódování kvantovaných DCT koeficientů (aritmetické a Huffmanovo kódování) Z předchozího bloku (kvantování DCT koeficientů) přichází datový tok, který obsahuje mnoho nulových hodnot. Tento datový tok je podroben buď aritmetickému nebo Huffmanovu kódování. Huffmanovo kódování, které musí podporovat každý kodér i dekodér JPEGu, spočívá ve výstavbě slovníku často se opakujících číselných posloupností a zápisu těchto posloupností pomocí kratších kódů. Naopak, méně často se opakující posloupnosti mohou být zapsány pomocí delších kódů. V navazujících částech se tímto kódováním budeme zabývat podrobněji. Místo Huffmanova kódování je možné použít i kódování aritmetické, které v průměru vytváří soubory, jež jsou o cca 10% menší. Aritmetické kódování, ve kterém jsou posloupnosti považovány za binárně zapsaná čísla menší než 1 roztříděná do intervalů (která je možné po úpravách zaokrouhlovat), je časově náročnější a také bylo zatíženo několika patenty a patrně z těchto důvodu se příliš často nepoužívá. I aritmetickým kódováním se budeme podrobněji zabývat v navazujících částech tohoto seriálu. 20

8. Uložení zakódovaných dat do souboru typu JFIF Posledním krokem je uložení zakódovaných dat do souboru typu JFIF. Tento krok již není v normě JPEG popsán, neboť se jedná o proces závislý na použitém systému. JPEG je totiž možné vkládat do mnoha diametrálně odlišných souborových formátů, například PostScriptu, PDF, TIFFu, MJPEG (některé soubory s koncovkou MOV vytvářené digitálními fotoaparáty) apod. Pravděpodobně nejpopulárnější jsou však soubory ve formátu JFIF, které obsahují rastrová data komprimovaná pomocí metody JPEG. Obrázek 7: Blok kódování kvantovaných DCT koeficientů pomocí aritmetického nebo Huffmanova kódování 21

Aby byla situace o něco málo zamotanější, mají tyto soubory většinou koncovku.jpeg resp..jpg a nikoli.jfif. JFIF obaluje zkomprimovaná rastrová data informační hlavičkou, koncovkou souboru, náhledovým obrázkem (nemusí být vždy přítomen) a dalšími rozšiřujícími bloky, například dnes populárním blokem EXIF. Opět se jedná o téma, kterým se budeme blíže zabývat v některé navazující části. Obrázek 8: Blok ukládání zakódovaných dat do souborů typu JFIF 22