Kompresija slike u wavelet domeni Fast Progressive Wavelet

  • Slides: 16
Download presentation
Kompresija slike u wavelet domeni Fast Progressive Wavelet Coding Saša Mrvoš

Kompresija slike u wavelet domeni Fast Progressive Wavelet Coding Saša Mrvoš

Fast Progressive Wavelet Coding Brz algoritam – ne traži Zerotree-jeve – ne koristi kontekstno-adaptivno

Fast Progressive Wavelet Coding Brz algoritam – ne traži Zerotree-jeve – ne koristi kontekstno-adaptivno kodiranje, niti aritmetički koder Po kvaliteti kompresije u rangu sa state-ofthe-art metodama kompresije Embedded bitstream (progressive)

Fast Progressive Wavelet Codec Image Reconst. Image Conversion from RGB to YUV Conversion from

Fast Progressive Wavelet Codec Image Reconst. Image Conversion from RGB to YUV Conversion from YUV to RGB Wavelet Transform Inverse Wavelet Transform Reordering and Grouping Bitplane Encoder Bitplane Decoder

Conversion to YUV Y je svjetlina piksela (monokromatska boja) U i V određuju vektor

Conversion to YUV Y je svjetlina piksela (monokromatska boja) U i V određuju vektor boje Psihovizualno, na čovjekov dojam o kvaliteti slike znatnije utječe Y nego UV U i V polja se horizontalno downsample-aju (Y 1, Y 2, U 1. 2, V 1. 2)(Y 3, Y 4, U 3. 4, V 3. 4). . .

Integer Wavelet Transform Wavelet filtarski slog Wavelet stablo: Originalni signal L 3 H 2

Integer Wavelet Transform Wavelet filtarski slog Wavelet stablo: Originalni signal L 3 H 2 H 1

Integer Wavelet Transform Wavelet filtarski slog sa podizanjem (lifting), ljestvičasta struktura – – –

Integer Wavelet Transform Wavelet filtarski slog sa podizanjem (lifting), ljestvičasta struktura – – – smanjuje broj matematičkih operacija osigurava potpunu rekonstrukciju lagano izvesti sa integer operacijama LOW 1 2 3 4 5 6 7 8 9 . . . HIGH High[i] -= (9*(Low[i] + Low[i+1]) – (Low[i-1] + Low[i+2]) + 8) >> 4 Low[i] += (9*(High[i-1] + High[i]) – (High[i-2] + High[i+1]) + 16) >> 5 Simetrična ekstenzija signala na rubnim uzorcima!

2 D Wavelet Transform L HL LH HH L LL HL LH HH H

2 D Wavelet Transform L HL LH HH L LL HL LH HH H H LH HL HH LL HL LH HH LH HL HH

Bitplane – polja bitova Wavelet koeficijenti slike su 8 -bitni integeri, zbog Integer WT

Bitplane – polja bitova Wavelet koeficijenti slike su 8 -bitni integeri, zbog Integer WT Bitplane je polje bitova – ima dimenziju slike – sadrži samo 1 bit Wavelet koeficijenta (signifikantnost bita) MSB Bitplane (1. bitplane) sadrži najznačajnije bitove (8. bit) koeficijenata 2. bitplane sadrži 7. bitove koeficijenata 3. bitplane sadrži 6. bitove koeficijenata. . .

Reordering and Grouping Lowpass dijelovi značajniji za rekonstrukciju slike Slika se dijeli na blokove

Reordering and Grouping Lowpass dijelovi značajniji za rekonstrukciju slike Slika se dijeli na blokove Veličina bloka: veličina LL dijela ili manja Alterniranje HL i LH blokova Također, Y komponenta ima veći prioritet od UV Grupiranje Bitplane-ova: – – – G 1: Y(0) G 2: Y(0, 1, 2, 3) – UV(0) G 3: Y(0, 1, . . . , 15) – UV(0, 1, 2, 3) G 4: Y(0, 1, . . . , 63) – UV(0, 1, . . . , 15) G 5: Y(0, 1, . . . ) – UV(0, 1, . . . , 63)

Bitplane encoding Wavelet koeficijenti se kodiraju grupu po grupu, blok po blok Blokove kodiramo

Bitplane encoding Wavelet koeficijenti se kodiraju grupu po grupu, blok po blok Blokove kodiramo jedan bitplane po prolazu Počinje se od najznačajnijeg bitplane-a Pojedini bitplane nekog bloka/grupe se kodira u dva prolaza: – 1. prolaz – traženje novih signifikantnih koeficijenata – 2. prolaz – povećanje preciznosti koeficijenata koji su u prethodnim prolazima postali signifikantni

1. prolaz – Significant pass Na početku algoritma su svi koeficijenti nesignifikantni Prolazimo kroz

1. prolaz – Significant pass Na početku algoritma su svi koeficijenti nesignifikantni Prolazimo kroz nesignifikantne koeficijente trenutnog bitplanea (MSB, 2. , 3. , …, LSB) – Ako koeficijent ima jedinicu u tom bitplane-u, on postaje signifikantan, i kodira mu se predznak. Simboli SP, SN. – inače, koeficijent ostaje nesignifikantan i kodira se simbolom Z Simboli SP, SN i Z se kodiraju Run Length Rice enkoderom

2. prolaz – Refinement pass Prolazimo kroz koeficijente trenutnog bitplanea koji su u prethodnim

2. prolaz – Refinement pass Prolazimo kroz koeficijente trenutnog bitplanea koji su u prethodnim prolazima postali signifikantni Kodiramo njihovo stanje na ovom bitplane-u (simboli 0 ili 1) i time im za jedan bit povećavamo preciznost Simboli 0 i 1 se ne kodiraju već se u binarnom obliku šalju u bitstream

Primjer 10 7 37 101 23 MSB 0 0 0 0 1 1 0

Primjer 10 7 37 101 23 MSB 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 LSB 0 1 1 Significant pass: • • • BP (00000) BP (00010) BP (001) BP (10) BP (1) Refinement pass: 2. BP (1) 3. BP (00) 4. BP (000) 5. BP (0111) 6. BP (11001) 7. BP (01111)

Run Length Rice encoder Kodira simbole Z, SP, SN Zbog spacijalne koreliranosti koeficijenata velika

Run Length Rice encoder Kodira simbole Z, SP, SN Zbog spacijalne koreliranosti koeficijenata velika je vjerojatnost da će simboli Z biti mnogo češći u signalu, te da će se pojavljivati više uzastopnih simbola Z RLR kodovi: – 0 - pojavljivanje 2 K nula (simbol Z) za redom – 1 c 0 - pojavljivanje c < 2 K nula (simbol Z), pa signifikantan pozitivan koeficijent (simbol SP) – 1 c 1 - pojavljivanje c < 2 K nula (simbol Z), pa signifikantan negativan koeficijent (simbol SN) c ima duljinu K bitova K se određuje adaptivno po bitplaneu i grupi blokova – u početku je veća vjerojatnost uzastopnih simbola Z (očekujemo ih više za redom) – kasnije očekujemo sve kraće grupe uzastopnih simbola Z

Gdje je tu kompresija? Ako na opisani način komprimiramo sliku, moći ćemo ju u

Gdje je tu kompresija? Ako na opisani način komprimiramo sliku, moći ćemo ju u potpunosti rekonstruirati (lossless). Faktor kompresije je oko 4 puta. No, komprimirana slika (bitstream) ima slijedeće svojstvo (embedded, progressive): – bilo koji “prefiks” bitstream-a može rekonstruirati sliku, ali ovisno o duljini “prefiksa” kvaliteta rekonstruirane slike je veća ili manja. – odrezivanjem bitstream-a možemo postići lossy kompresiju (poput JPEG-a i sličnih) – ako šaljemo komprimiranu sliku komunikacijskim kanalom, možemo ju prikazati i dok nije cijela stigla (efekt da se slika izoštrava)

Gdje je tu kompresija? Embedded bitstream je ostvaren davajući prioritet prema početku bitstreama: –

Gdje je tu kompresija? Embedded bitstream je ostvaren davajući prioritet prema početku bitstreama: – Y komponenta ima veći prioritet od U i V komponenti – Lowpass blokovi/grupe imaju veći prioritet nad highpass blokovima Psihovizualno, neki nepotpuni bitstream (prefiks) će nam dati dojam što je na slici, ali će nam slika izgledati “zaglađena”, nedovoljno “oštra”