Kompresní metody první generace 998-20 Josef Pelikán CGG MFF UK Praha pepca@cgg.mff.cuni.cz http://cgg.mff.cuni.cz/~pepca/ Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca / 32
Základní pojmy komprese dat S = x, x2,... x n Kódovaná (zdrojová) abeceda: { } pravděpodobnost výskytu symbolu x i je p i kód K symbolu x i má délku d i zpráva (kódovaný řetězec) je posloupnost: X = x, x,... x i i2 i k Entropie (informační hodnota) symbolu x i : E i = log 2 p bitů i Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 32
Základní pojmy II Průměrná entropie (informační hodnota) symbolu: n n i i i= i= AE = p E = p log p i 2 i bitů entropie zprávy X: k E( X) = pi log p j 2 j= i j bitů délka kódované zprávy X: L( X) = k j= d i j bitů Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 32
Základní pojmy III Redundance kódu K pro zprávu X: R K L X E X d p log 2 p ( ) = ( ) ( ) = ( ) i + i i průměrná délka kódového slova kódu K: průměrná redundance kódu K: k j= n i= j j j AL( K) = n i= AR K = AL K AE = pi di + log 2 p p i d i ( ) ( ) ( ) i bitů bitů bitů Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 32
Pojmy komprese obrazu k, j, k Původní hodnota vzorku (pixelu): u u hodnota vzorku po kvantování (po rekonstrukci): u k, uj, k k, j, k predikce vzorku (pixelu): u u k, j, k chyba predikce vzorku (pixelu): e e Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 32
Měřítka kvality rekonstrukce Výběrová střední kvadratická chyba: RMS 2 N M ( u u ) i, j i, j i= j= = MN 2 poměr signálu k šumu: SNR = 0 log0 P 2 RMS 2 db P je interval hodnot pixelů originálu, tj. často: SNR = 0 255 log0 RMS 2 2 db Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 32
Pulsní kódová modulace (PCM) přenos analogového signálu digitálním kanálem vzorkování v čase, kvantování, kódování (modulace) sample and hold quantizer digital modulation u t ( ) R spojitý signál ve spojitém čase u t R spojitý signál v diskrétním čase r t N diskrétní signál v diskrétním čase Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 32
Kvantování ti, i =, 2,... L + ti < ti+ Rozhodovací hodnoty: { } ri, i =, 2,... L rekonstrukční hodnoty: { } q: t, t + ] r i i i výstup r 9 r 8 r 7 vstup r 5 =0 t t 2 t 3 t 7 t 8 t 9 t 0 r 4 r 3 r 2 r Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 32
Lineární kvantovač Používá se při rovnoměrném rozložení pravděpodobností kvantovaných hodnot: t = t + k q k r = t + q k k q t L + = t L ( ) 2 t výstup vstup q q r Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 32
Lloydův-Maxův kvantovač Minimalizuje střední kvadratickou chybu kvantování: E = E ( u u ) 2 [ x u ( x ) ] 2 = p ( x ) dx t = r + r ( ) k 2 k k r = xp x dx p x dx k t k+ k+ t k t T + p(x).. pravděpodobnost vstupní hodnoty x (histogram) t ( ) ( ) t t k Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 0 / 32
Prediktivní kompresní metody využívají závislost sousedních pixelů (prostorovou korelaci obrazu) hodnoty pixelů se často mění jen pozvolna implementace pomocí tzv. predikční funkce (prediktoru) pomocí předchozích (sousedních) hodnot se co nejlépe odhadne aktuální hodnota kóduje se jen rozdíl předpovězené a skutečné hodnoty při úspěšné predikci má chyba menší amplitudu Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca / 32
Prediktivní kvantování DPCM kodér (Differential Pulse-Code Modulation): u k + - Σ e k kvantovač u k u k prediktor s pamětí e k Σ + + kodér k k k u = u + e k k k e = u u predikce: ( ),,... k = k k 2 u P u u Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 32
Prediktivní kvantování II DPCM dekodér: dekodér e k + u k Σ + prediktor s pamětí u k u k Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 32
Delta modulace kvantovač má pouze dvě výstupní hodnoty (+q,-q) obvou realizující tzv. prahovou funkci roli prediktoru hraje zpožďovací obvod k k k k k u = u e = u u vstupní signál nemusí být vzorkovaný místo prediktoru je integrátor používá se převážně ke kódování analogových signálů (např. zvuku) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 4 / 32
Delta modulace II DM kodér: u( t) e( t ) e ( t) NF filtr + u ( t) Σ + prahovač integrátor DM dekodér: e integrátor ( t) u ( t) NF filtr Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 5 / 32
Chyby DM u( t) u ( t) přetížení sklonu zrnitost odstranění zrnitosti... třístavová DM (+q,0,-q) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 6 / 32
DPCM Markovův řetězec řádu p střední hodnota aktuálního vzorku je lineárně závislá na p předchozích hodnotách nelineární prediktory nejčastěji se používají polynomiální funkce dvoj- a více-rozměrné prediktory odpovídají 2D charakteru obrazu (3D animaci) u p k = aj uk j j= Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 7 / 32
2D DPCM B C D A uk = aa + bb + cc + dd optimální případ: a b d = c = 0. 95 = ac = 0 Č/B obraz: DPCM je teoreticky lepší o cca 20dB než PCM (komprese 3-3.5 : ) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 8 / 32
Adaptivní prediktivní metody několik prediktorů pro různé směry korelace obrazu (vodorovně, svisle, šikmo) v každé fázi se vybírá prediktor s max. korelací adaptivní řízení zesílení (chyby kvantovače) kvalita (zkreslení) kvantování se řídí adaptivně podle rozptylu predikční chyby klasifikace oblastí obrazu rychlé přizpůsobení podle lokálního okolí pixelu klasifikace bloků velikosti 6 6 (např. 4 skupiny) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 9 / 32
Transformační metody Obecné schema: transformace kvantovač kodér T Q C C - Q - T - dekodér dekvantovač inverzní transformace Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 20 / 32
Transformační metody II snaží se pracovat s celým blokem (vektorem) obrazu najednou lze rozšířit na blokové kvantování maximální potlačení závislosti jednotlivých složek kódovaného vektoru velká role použité transformační funkce transformační funkce jednorozměrná (rozkladová řádka obrazu) dvojrozměrná (celý obraz, bloky K K) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 2 / 32
Transformační funkce T většina důležitých informací o bloku by měla být sousředěna do několika málo koeficientů velký kompresní poměr lze dosáhnout zanedbáním ostatních (méně podstatných) koeficientů zkreslení kvantováním a vynecháním koeficientů by mělo být co nejmenší koeficienty po transformaci mají být co nejméně závislé rychlost výpočtu T i T - (SW, HW) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 22 / 32
Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 23 / 32 D lineární transformační metody A Q Q 2... Q N lineární transformace N kvantovačů u u u u N = 2... v v v N 2... v v v v v N 2 =... dekorelace
Transformace Karhunen-Loeve vektor vstupních hodnot tvoří Gaussovsky rozložené náhodné veličiny kovarianční matice (závislost jednotlivých složek) je známa cílem je navrhnout transformační kodér s min. RMS chybou a max. dekorelací: optimální Karhunen-Loeve transformace koeficienty (v i ) jsou zcela nezávislé velká výpočetní náročnost (výpočet vlastních vektorů kovarianční matice) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 24 / 32
Praktické transformace suboptimální transformace o trochu horší dekorelační schopnosti než KLT větší efektivita: rychlé algoritmy O(N log N), O(N) sinové transformace (Fourier, sin, cos, Hartley) komplexní i reálná aritmetika, dobrá dekorelace transformace Walshova typu po částech konstantní funkce, jen sčítání a odečítaní (Hadamard), velmi rychlé implementace wavelets (Haar,..) dobrá reprezentace nehomogenního obrazu Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 25 / 32
Zonální kódování koeficientů Přesnost kvantování podle informační hodnoty (rozptylu) koeficientů. Příklad bitové alokace: 7 5 3 2 0 5 3 3 2 0 3 3 2 2 0 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Zonální metoda (přenáší se jen jistá oblast - zóna) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 26 / 32
Prahové kódování koeficientů Přenos K koeficientů s největší amplitudou. Příklad koeficientů: 4-5 4 8 7-3 0 8-3 5 4-4 - 0-9 6-8 5 3 3 0 0 7 3 6 4 0 2 4-5 0-2 0 0-3 - 4 2 0-2 0 3-2 -2 0 0 0 0 0 0-0 0 0 0 Přenášená zóna se pro každý blok liší (kódování adres) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 27 / 32
Adaptivní transformační metody (statistická) analýza každého bloku obrazu přizpůsobení transformačního algoritmu charakteristice dat přepínání transformačních funkcí nebo jejich parametrů adaptace přenášené oblasti koeficientů (zóny) adaptace kvantovačů Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 28 / 32
Hybridní metody Kombinace transformační a prediktivní metody: DPCM kodér T... DPCM DPCM kodér kodér MUX vynechané koeficienty transformace Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 29 / 32
Interpolační metody kódování a přenos jen některých pixelů ostatní pixely se při rekonstrukci dopočítají interpolací nejčastěji se používá lineární interpolace (polynomy vyšších řádů nedávají o tolik lepší výsledky) statické metody množina kódovaných pixelů je dána předem a nemění se dynamické metody přizpůsobení charakteru obrazu (např. jeho rozptylu) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 30 / 32
Střídavá interpolační metoda Přenos polovičního množství pixelů a následná lineární interpolace: B A X C D X A + = C nebo B + D 2 2 (menší rozdíl hodnot) Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 3 / 32
Konec Další informace: A. Jain: Image Data Compression: A Review, Proceedings of the IEEE, vol.69, #3, 98 A. Jain: Fundamentals of Digital Image Processing, Prentice-Hall, 989 ed. by H.-M. Hang, J. Woods: Handbook of Visual Communications, Academic Press, San Diego, 995 Stillg 20 Josef Pelikán, http://cgg.mff.cuni.cz/~pepca 32 / 32