9..4 Komprese dat Radm Faraa Podklady pro výuku Obsah Ztrátová komprese. Komprese JPEG. Waweletová komprese. Fraktálí komprese. Modely barev RGB (Red-Gree-Blue), Nestejé vímáí (ectlvost a modrou) relatví jas =,3 R +,59 G +, B
9..4 Modely barev CMYK (Cya-Mageta-Yellow-blacK) Modely barev HSB (Hue-Saturato-Brghtess), který používá tř velčy: Hue (odstí), udává se ve stupích a popsuje barvu v rozsahu - 36 a okraj tzv. barevého kola. Saturato (sytost), udává sytost barvy v procetech od % (bod je šedý v úrov daé Brghtess, tedy bez barvy) do % (bod je barevý zcela podle Hue). Brghtess (jas), popsuje v procetech čerobílý jas bodu od čeré % po bílou %. Modely barev YCbCr, kde Y představuje složku jasu (lumace) a Cb s Cr představují modrý a červeý chromačí kompoet (složku).
9..4 JPEG (Jot Photographc Experts Group) V současé době patří mez ejvíce používaé komprese u obrázků. Je vhodá pro komprmac fotografí, evhodá pro apř. techcké výkresy (čárové výkresy) dochází k vdtelému rozmazáí. Prcp: Část obrazu se trasformují do frekvečí oblast (výsledkem je matce frekvečích koefcetů. Z matce koefcetů se odstraí koefcety odpovídající vyšším frekvecím (rychlejší změy jasu apř. hray v obraze). Zbývající koefcety se vhodým způsobem zkomprmují. JPEG JPEG komprmuje obrazy s 4 btovou reprezetací barev (True Color). Algortmus a z ěj vycházející formát ukládáí grafckých dat byl převzat do orem ISO a CCITT. Dosahuje kompresího poměru 5:, př horší kvaltě výsledého obrazu až 8: více, využívá postupu azvaého sekvečí komprese a z ěj vycházející progresví komprese. Převod do modelu YCbCr Y,99 Cb,687 C r,5,587,333,487,4 R,5 G 8,83 B 8 Přčteí hodoty 8 ke složkám chromace má pouze techcký výzam, všechy tř složky jsou pak vyjádřey pouze ezáporým hodotam, takže se s m lépe pracuje. 3
9..4 Rozklad obrazu Obraz je rozděle a čtvercové bloky po 8 8 bodech. V každém bloku je ejdříve od hodot v ěm odečtea hodota 8, tím se hodoty z tervalu 55 převedou do tervalu -8 7, čímž se síží jejch absolutí velkost, ásledě je a každý blok samostatě provedea dskrétí kosová trasformace (DCT Dscrete Cose Trasform). DCT F( u, v) C( u) C( v) 4 7 7 ( ) u ( j ) v f (, j)cos cos 6 j 6 C( u), C( v) u, v u, v odděleě pro jasovou složku a dvě barvové složky. Výzam koefcetů Koefcet F(, ) reprezetuje stejosměrou složku (hodoty kosů jsou kostatí), ostatí koefcety vyjadřují střídavé složky. Směrem k pravému dolímu rohu (tj. směrem ke koefcetu F(7, 7)) se frekvece koefcetů zvyšují. 4
9..4 Výzam koefcetů stejosměrý koefcet DC žší frekvece žší frekvece střídavé koefcety AC vyšší frekvece vyšší frekvece Příklad původí data 4 44 6 65 7 48 66 4 4 45 55 69 9 56 69 55 4 48 56 67 76 4 75 8 5 64 7 87 99 3 59 6 75 84 97 5 56 5 7 64 6 7 78 49 54 75 7 65 6 87 75 78 95 77 74 69 89 67 65 65 8 sížeí o 8 DCT -88-84 -68-63 -57-8 -6-86 -87-83 -73-59 -9-7 -59-73 -86-8 -7-6 -5-4 -53-48 -76-64 -57-4 -9-8 4-8 -69-66 -53-44 -3 8-58 -64-68 -56-5 6-8 -53-56 -63-66 -4-53 -5-33 -5-54 -59-39 -6-63 -63-46 -396-5 -4-8 6-4 - -67 8-45 - 3-3 - -4-9 - 33-7 -4 6 8-34 6 5-5 -3 7-5 -9 - -3-5 -6 5 6-4 - -5-4 -9 8-7 3-5 - 3 4-6 3-4 -4 Kvatováí koefcety F(u, v) se dělí hodotam kvatovací matce Q F( u, v) C( u, v) It Q( u, v) velké možství koefcetů je ulových kvatovací matce Q 6 6 4 4 5 6 4 9 6 58 6 55 4 3 6 4 4 57 69 56 4 7 9 5 87 8 6 8 37 56 68 9 3 9 4 35 55 64 8 4 3 9 49 64 78 87 3 7 9 95 98 3 99 výsledek -5 - - -6-3 -7 8 - - - - 5
9..4 QM-coder Posledí fází je statstcké kódováí hodot matce C a jejch uložeí a výstup. Používá se k tomu QM-coder, což je jž adaptví způsob artmetcké komprese, ebo Huffmaův kód. Zatímco ostatí část stadardu JPEG jsou volě dostupé, QM-coder je patetovaý, což je začá překážka př jeho použtí v JPEG. Proto se v prax převážě používá Huffmaovo kódováí, když s ím je účost komprese o až 5 procet žší. Postup kódováí bloku DC AC DC- DC AC AC3 AC9 AC blok - blok AC63 U stejosměrých koefcetů se kóduje jejch rozdíl DC DC -, Postup kódováí bloku Kódováí je ve tvaru dvou hodot. Prví hodota uvádí počet ul od předchozího eulového koefcetu (metoda RLE) a druhá hodota reprezetuje eulový koefcet. Vlastí hodota eulového střídavého koefcetu je dále kódováa do tvaru dvojce čísel. Prví číslo udává délku čísla a druhé je vlastí hodota koefcetu. 6
9..4 Postup kódováí bloku Kódováí každého eulového koefcetu tedy představuje trojc čísel počet ul, kód délky hodoty koefcetu a samotá hodota koefcetu. Pro zvýšeí účost se tato trojce eukládá a výstup přímo, ale používá se př tom statcké Hufmaovo kódováí. Příklad Stejosmerý koefcet Střídavý koefcet (RLE-kód) EOB koec bloku 3 4 4 3 3 délka hodota počet předchozích ul délka hodota Kód délky bloku Vyjádřeí celočíselé hodoty pomocí dvojce délka + hodota se azývá kódováí čísla s proměou délkou. Provádí se podle ásledující tabulky: Délka Rozsah hodot -, -3 -, 3 3-7 -4, 4 7 4-5 -8, 8 5 5-3 -6, 6 3 7
9..4 Kód délky bloku V tabulce udává délka kolka bty je zakódováa vlastí hodota čísla, apř. hodoty v rozsahu -5-8, 8 5 budou zakódováy pomocí 4 btů. Samoté kódováí je jedoduché. Nejprve se záporé hodoty přčteím vhodého čísla převedou a ezáporé, apř. hodoty -5-8 se přčteím čísla 5 převedou a hodoty 7, čímž získáme souvslý terval 5 a hodoty jeho prvků přímo představují čtyřbtová čísla B B. Komprese JPEG DCT koefcety kvatzačí matce Q původí data komprmovaá data Rozklad a čtverce 8x8x ukládáí další čtverec zakódovaý čtverec DCT statstcké kódováí / trasformovaá a kvatovaá data Dekomprese JPEG komprmovaá data statstcké dekódováí kvatzačí matce Q * DCT koefcety verzí DCT dekomprmovaá data 8
9..4 Iverzí DCT f (, j) 4 7 7 ( ) u ( j ) v C( u) C( v) F( u, v)cos cos 6 u v 6 C( u), C( v) u, v u, v Parametry komprese Úroveň kvatováí a tím kvaltu obrazu a velkost kompresího poměru může užvatel mět pomocí Q- faktoru, který lze volt v rozmezí. Př kvatováí jsou koefcety matce Q děley hodotou 5/Q-faktor. Z toho plye, že čím bude Q-faktor meší, tím budou kvatovací koefcety větší. Tím zároveň budou meší vypočítaé koefcety matce C, což v důsledku zameá větší kompresí poměr, ale vyšší ztráty a tím zhoršeí kvalty obrazu. Implctě bývá astavea hodota Q-faktoru = 75. Př í se dosahuje typcký kompresí poměru : a současě zůstává Parametry komprese Ještě vyšší komprese dosahuje progresví komprese, která pracuje a stejém prcpu, ale postupě provádí kompres od ejvyššího stupě komprese a v jedotlvých cyklech kompres opakuje se sžujícím se stupěm komprese. Díky více cyklům lze dosáhout dalšího zmešeí výsledého souboru (za ceu zhoršeí jeho kvalty). 9
9..4 Komprese JPEG Původí obrázek ve formátu BMP (velkost 66 64 B) Bezeztrátová komprese JPEG (velkost 56 463 B), Iformačí obsah Malé ztráty formace Odstraěí vysokých frekvecí (šum) (velkost 3 86 B) Zmešeí a desetu obsahu (velkost 5 696 B), Velké ztráty formace Odstraěí detalů 5 % velkost (velkost 596 B) Zmešeí a 3 % velkost (velkost B),
9..4 JPEG Jeho základem je použtí dskrétí vlkové (waveletové) trasformace, skalárího kvatováí a etropckého kódováí. Díky tomu dosahuje lepších vlastostí. Vlková trasformace Vlková trasformace (wavelet trasform) je výsledkem sahy o časově-frekvečí pops sgálů. Fourerova trasformace poskytuje formac o tom, jaké frekvece se v sgálu vyskytují, ale evypovídají o jejch poloze v čase, proto je vhodá pro pops stacoárích sgálů. Řešeím problému je použtí oka, které ohračí krátký úsek sgálu a umoží určeí spektra sgálu v tomto tervalu. Vlková trasformace Myšlekou vlkové trasformace je vhodou změou šířky oka a jeho tvarem dosáhout optmálího poměru rozlštelost v čase a frekvec. Pro ízké frekvece je oko šrší, pro vysoké užší. Toto oko se azývá mateřská vlka (mother wavelet) ψ. Pomocí parametru s (měřítko) je možé mět její šířku, parametrem τ (poloha) se měí její poloha a časové ose: t, s ( t) s, R, s s s
-,5 -,4 -,3 -, -,,,,,3,4,5,6,7,8,9,,,,3,4,5-5, -4,5-4, -3,5-3, -,5 -, -,5 -, -,5,,5,,5,,5 3, 3,5 4, 4,5 5, 9..4 Vlková trasformace Spojtá vlová trasformace je defováa pro sgály s koečou eergí f ( t) dt Wf (, s) f ( t) t dt s s kde je číslo komplexě sdružeé. Výsledkem pro jedorozměrý sgál je dvourozměrá fukce, azývaá vlkové koefcety Wf(τ, s). Mateřská vlka Příkladem používaých mateřských vlek je vlka Mexca hat, 4 ( x) 3 x e x ebo Haarova vlka x ( x) x jak ψ (x ),5,5 -,5 -,5 ψ (x ),5 -,5 - -,5 Vlka Mexca hat x Haarova vlka x Vlková trasformace Vhodou volbou závslostí parametrů s a τ můžeme vytvořt z vhodé vlky ψ ortoormálí báz: p p s k p, k p t k k, p ( t) p p Z kde p odpovídá měřítku.
9..4 Vlková trasformace Díky ortoormaltě pak takto zvoleá vlka umožňuje eredudatí dekompozc sgálu, tzv. aalýzu s moha rozlšeím. Teto prcp je základem dskrétí vlkové trasformace (Dscrete Wavelet Trasform DTW). Vlková trasformace Vlková fukce ψ se chová jako pásmová propust fltrující vstupí sgál kolem cetrálí frekvece, která je závslá a měřítku mocou dvou. V ásledujícím měřítku je fltrováa horí polova pásma předchozí dolofrekvečí část sgálu. S rostoucí frekvecí roste šířka pásma (BW) tohoto fltru. Čtel kvalty Q je tak kostatí pro celou možu měřítkem odvozeých fltrů. Pro zvoleé mmálí měřítko však zůstává epokryt rozsah ízkých frekvecí. Proto je od vlky odvozea měřítková fukce φ (scalg fucto), která má charakter dolí propust. Vlková trasformace Frekvečí pohled a dskrétí vlkovou trasformac ω DP HP ω 4BW DP HP ω BW BW BW BW 4BW ω DP BW HP BW 3
9..4 Realzace vlkové trasformace Dskrétí vlkovou trasformac je možo realzovat rychlým algortmem, využívajícím FIR (Fte Impulse Respose) fltry a podvzorkováím (decmací). Oba fltry, dolí propust DP (h - scalg flter) a horí propust HP (g - wavelet flter), tvoří pár kvadraturích zrcadlových fltrů (QMF), které mají komplemetárí propustá pásma. Výstupy obou fltrů jsou podvzorkováy a polovu vstupích vzorků. Horí propust poskytuje koefcety tzv. detalů DWT (cd), dolí propust koefcety tzv. aproxmace (ca). Realzace vlkové trasformace Díky decmac je celkový počet koefcetů po jedom kroku stejý jako počet vstupích vzorků. Koefcety aproxmace je možé dále aalyzovat shodým rozkladem fltry a obdržet tak další soubor koefcetů aproxmace a detalů. Tak je možo pokračovat až do vyčerpáí vstupí sekvece Realzace vlkové trasformace kovoluce s DP podvzorkováí cak+ f ca cak cd cd ca ca3 cd3 pro k = ca = f kovoluce s HP podvzorkováí cdk+ cd4 ca4 Jedotlvé kovolute s dedkací je možo formalzovat N cap ( k) h( m k) cap ( m) cd m N p ( k) g( m k) cap ( m) m 4
9..4 JPEG Oprot formátu JFIF pracuje JPEG s obrázkem jako celkem a převádí je a popsy pomocí vlkové trasformace. Převod je víceprůchodový, počet průchodů určuje kompresí poměr a kvaltu dekomprmovaého obrázku (méě průchodů = vyšší kompresí poměr = žší kvalta obrazu). Každému průchodu odpovídá zvláští datový blok komprmovaého souboru. Pro rozměré obrázky však rychle rostou ároky a paměť. Proto se používá techka rozděleí vstupího obrazu a meší část dlaždce (tle), teto proces je azývá tllg. JPEG Následě se každá dlaždce komprmuje odděleě. K tomu je použta L-úrovňová DWT s bortogoálím sple vlkam 9/7 (v artmetce s pohyblvou řádovou čárkou) ebo s bortogoálím sple vlkam 5/3 (v celočíselé artmetce, v případě bezeztrátové komprese). L-úrovňová trasformace má L+ rozlšeí obrazu L je rozlšeí obrazu a je ejžší frekvece. Ze 4 podpásem (subbadů) rozlšeí j se složí jede s rozlšeím j +. JPEG Následuje kvatováí jedotlvých podpásem reálé koefcety (v pohyblvé řádové čárce) se kvatují a celá čísla pomocí uformího kvatováí, krok kvatováí je možé volt zvlášť pro každé podpásmo (a tím také částečě řídt kvaltu). y q sg( y) b kde je q kvatovaá hodota, y trasformovaý koefcet podpásma, b kvatovací krok, často má hodotu. 5
9..4 JPEG Po kvatováí je každé podpásmo rozděleo a packet parttos čtvercové epřekrývající se oblast JPEG Každá packet partto je dělea a bloky stejé velkost (kromě bloků a kraj obrazu), všechy bty všech koefcetů v bloku jsou pak kódováy pomocí EBCOT (Embedded Btplae Codg wth Optmal Trucato) v pořadí od ejvýzamějšího po ejméě výzamý: Koefcety se rozdělí do btových rov. Btové rovy obsahující pouze uly jsou přeskočey (uchová se je jejch počet), zače se prví rovou obsahující alespoň jedu jedčku. Bty se z rovy ačítají po čtyřřádkových blocích, v rámc bloku po čtyřbtových sloupcích. Každá rova je pak kódováa ve třech průchodech: Sgfcace Propagato zakódují se bty, které ejsou důležté, ale sousedí s alespoň jedím důležtým (v ěkterém z 8 směrů). Magtude Refemet zakódují se bty z míst, které se byly v mulých rovách důležté. Cleaup Pass zakódují se všechy zbylé bty. JPEG Takto získaé bty se kódují bárím kotextovým artmetckým kodérem MQ kodérem. Kotext koefcetu je tvoře stavem jeho 8 sousedů (oko 3 3 bty). Výsledý proud btů je rozděle a pakety paket spojuje jede ze tří průchodů všech bloků přes celou packet partto. Pomocí vypouštěí méě důležtých paketů se řídí kvalta komprese. 6
9..4 JPEG původí data dskrétí vlková trasformace kvatzace etropcké kódováí datový tok hlavčka paket paket paket N Fraktálí komprese Hledáí podobých tvarů uložeí formace o tvaru, posuutí, otočeí, změě velkost a barvy. Beot B. Madelbrot *.. 94 Warsaw, Polad (Frech mathematca) http://www.math.yale.edu/madelbrot/ velm áročá komprese, rychlá dekomprese. Dmeze S fraktálí geometrí úzce souvsí otázka měřeí dmezí a čletost objektů. Obvykle pracujeme s topologckou dmezí, kterou můžeme chápat tak, že spojtým zobrazeím přřadí každé křvce přímce, každé ploše rovu atd. Naprot tomu Hausdorfova dmeze je mírou čletost objektu. Předpokládejme, že část křvky je rozdělea a N stejých částí, přčemž každá takto vzklá část je stejá jako původí část křvky s tím, že je zmešea v poměru r. Platí vztah N.r =. Pro čtverec rozděleý a N.N částí je N.r =, pro krychl obdobě N.r 3 = atd., obecě je tedy dmeze d objektu expoetem zmešovacího poměru: N.r d = 7
9..4 Dmeze Eukledovské metrky předpokládají celočíselé dmeze objektů. Nás ale zajímá, co se stae, pokud dmeze d ebude celočíselá. Dmeze d pak bude představovat fraktálí dmez. Logartmováím předchozího výrazu pak získáme expermetálí způsob určeí Hausdorfovy dmeze, ebol fraktálí dmeze: log N log N d log r log r Soběpodobost Soběpodobost (matematcky se tato vlastost azývá varace vůč změě měřítka) je taková vlastost objektu, že objekt vypadá podobě, ať se a ěj díváme v jakémkolv zvětšeí. Soběpodobost je hlavím zakem fraktálích útvarů a většou je také považováa za jejch defc. Soběpodobost Soběpodobá moža A -dmezoálího Eukldovského prostoru IR je taková moža, pro íž exstuje koečě moho kotrahujících zobrazeí,..., takových, že A vzke jako: A A 8
9..4 Soběpodobost Soběpodobá moža vzká opakováím sebe sama př použtí trasformací jako je změa měřítka, rotace, posuutí, zkoseí apod., jsou varatí vůč změě měřítka apod. Prcp opakováí tvarů je přtom v přírodě velm častý, vz apř. postupý růst schráky mlžů, tvořící archmedovu sprálu. Afí trasformace Afí trasformace v IR je trasformace f: IR IR ve tvaru: f( x) a. x b, x IR kde a, b reálé kostaty. Na daém tervalu I = (, ) představuje f(i) ový terval délky a. Levý krají bod tervalu je přeese do b a f(i) leží alevo ebo apravo od ěj podle zaméka parametru a. Afí trasformace Afí trasformace v IR je dvojdmezoálí trasformace f: IR IR ve tvaru: w( x, y) ( a. x b. y e, c. x d. y f ), x, y IR Kde a, b, c, d, e, f reálé kostaty. Nebo v matcovém tvaru: x a w y c b x e. d y f A. x T 9
9..4 Afí trasformace Iverzí afí trasformace je reprezetováa ásledově: w x d y c b x d. a y c b e. a f Za podmíky a. d b. c Afí trasformace Specálím případy afí trasformace jsou dlatace (pro a = d jde o změu měřítka): x a x w. y d y rotace: x cos w y s s x. cos y Afí trasformace Příklad afí trasformace dlatace y d.y y x x a.x
9..4 Afí trasformace Jako podobostí pak azýváme afí trasformac, pokud má ěkterý z ásledujících tvarů: x r.cos w y r.s x r.cos w y r.s r.s x e., r.cos y f r.s x e.. r.cos y f Pro traslac (e, f), měřítko r daé eulovým reálým číslem a úhel rotace α, kde Afí trasformace Příklad aplkace podobostích afích trasformací y traslace, rotace, měřítko. traslace, rotace. traslace, rotace, zkoseí. x Afí trasformace Pro Eukledovskou metrku x y x y, x, y d( x, y) IR můžeme každé afí trasformac w přřadt jedé reálí číslo s: wx w( y) s. x - y kde s je ejmeší možé reálé číslo, které splňuje výše uvedeou podmíku.
9..4 Afí trasformace Velkost koefcetu s je důležtá pro typ trasformace: s < je w kotrakcí, s = je w symetrí, s > je w extrakcí. Jejch využtí je základem fraktálí komprese využívající systému terovaých fukcí (IFS). Afí trasformace Příklad: Serpského trojúhelík s trasformacem w x,5 y x.,5 y w3 w x,5 y x,5.,5 y w w w 3 x,5 y x,5.,5 y,5 Afí trasformace Pro aplkac a kompres čerobílého obrazu rozšíříme afí trasformac do podoby: x a w y c z b d x e. y f s z o Kde s a o slouží k modfkac jasové složky.
9..4 Fraktálí komprese Algortmus komprese ejprve rozdělí komprmovaý obraz a epřekrývající se rage bloky velkost 8x8 (4x4) bodů pokrývající celý obraz. Následě se vyhledávají doma bloky, které jsou rage blokům podobé a mohou se překrývat. Procházíme obraz zleva doprava, shora dolů s krokem k bodů a které mají dvojásobou velkost ež rage bloky. Fraktálí komprese V každém doméovém bloku jsou průměrováy sousedí body a jsou uložey do ového doméového bloku stejé velkost jako rage blok. Novým doméovým blokem přepíšeme blok původí. Následě pro každý rage blok R ajdeme v souboru doméových bloků te blok D B, který se mu ejvíce podobá Fraktálí komprese Prcp rozmístěí rage a doma bloků v obrazu rage bloky doma bloky 3
9..4 4 Fraktálí komprese Základí používaé afí trasformace Pops Matce A trasformace Příklad Rotace o 7º Překlopeí přes horzotálí osu Překlopeí přes vertkálí osu Fraktálí komprese Pro každý doméový blok Dj a trasformac w t (t =,,, 8) se vypočte a podle ásledujících vztahů se určí koefcety s a o: ) (D D j t t j w. d d d r r d s d s r o Fraktálí komprese Koefcety s a o jsou ásledě kvatováy a pro kvatovaé koefcety se podle ásledujícího vztahu vypočítá chyba podobost bloků : t j d o o d o r d d s s r...... ) R, E(D
9..4 Fraktálí komprese Najdeme blok s mmálí chybou t E(D, R ) j (t =,,, 8) a v souboru doméových bloků ajdeme ejpravděpodobější blok: D B m t,,..., ND ( D ) j Kde je N D počet doméových bloků Fraktálí komprese Výstupem je pak kód w = (e, f, m, o, s ). Posloupost těchto trasformací je možo ásledě komprmovat bezeztrátovou kompresí. Je zřejmé, že doba komprese bude začá, oprot tomu dekomprese probíhá přes teračí postup výrazě rychlej. Fraktálí brokolce 5