Wavelet gebaseerde beeldcompressie Embedded image coding using Zerotrees of Wavelet coefficients Paschalis Tsiaflakis Jan Vangorp
Inleiding Beeldcompressie Transformatie Wavelettransformatie EZW-algoritme Demo + resultaten
Beeldcompressie Waarom? Beperkte opslagcapaciteit Medische sector FBI vingerafdrukken … Beperkte transmissiecapaciteit 56K modem Realtime-aspecten
Beeldcompressie Gecomprimeerd beeld DCT(JPEG) Wavelet(JPEG2000) vectorquantisatie EZW Arith. codering huffman Gecomprimeerd beeld
Transformatie Fourier transformatie: X(f)=- x(t) e-j2ft dt X(f): goede frequentieresolutie, geen tijdsresolutie x(t): goede tijdsresolutie, slechte frequentieresolutie stationair 5-10-20-50 HZ Amplitude niet -stationair Tijd Frequentie
Short Time Fourier Transform X(f,τ) = - x(t) g*(t- τ) e-j2ft dt Tijdsresolutie door met venster te werken Keuze venster bepaalt vervorming Onzekerheidsprincipe afweging tussen tijds- en frequentieresolutie Smal venster: betere tijdsresolutie Breed venster: betere frequentieresolutie Nadeel: op voorhand venster kiezen Vaste tijds- en frequentieresolutie voor het hele signaal
Wavelet transformatie We willen: Lage frequenties: betere frequentieresolutie Hoge frequenties: betere tijdsresolutie Wavelet transformatie (WT) Wavelet = golfvorm, functie van de tijd Wavelet transformatie: Tijdsfunctie voorstellen dmv gescaleerde en verschoven versies van een moederwavelet Scaleren: Transleren: f(x) f(2x) f(3x) f(x) f(x-1) f(x+1) +1 -1
Wavelet transformatie Continue wavelet transformatie (CWT) Discrete Wavelet transformatie Moeder-wavelet γ = waveletcoefficiënt τ = translatie s = schaal, resolutie γ(0.5,3)=0.23
Multiresolutie analyse (MRA) Vaderfunctie Φ(t) (scaling function) : hiermee andere functies benaderen : t Φ(t) resolutie j f (t)= ∑kakΦ(t-k) t Φ(t) resolutie j+1
Multiresolutie analyse (MRA) Een functie van hoge resolutie kan ontbonden worden in een functie van lagere resolutie en een verschilsignaal Verschilsignaal = waveletcoefficienten Een functie van bepaalde resolutie kan compleet voorgesteld worden op basis van waveletcoëfficiënten(details) en functie van lagere resolutie(grove informatie) Lagere resolutie Nog lagere resolutie Laagste resolutie Hoge resolutie Details = waveletcoefficienten
Implementatie Niet uniforme filterbank:
Tweedimensionale WT
Waarom wavelet transformatie Karakteristieken beeld goed weergegeven door wavelet transformatie: Goede frequentieresolutie voor lage frequenties algemene trend in een beeld Goede localisatie (plaatsresolutie) voor hoge frequenties details in een beeld
Wavelet transformatie Beeld: laagdoorlaat spectrum energiecompactie in lagere subbanden Lage subbanden hebben grote coëfficiënten Hoge subbanden hebben kleine coëfficiënten Er is een zelfgelijkenis tussen de subbanden De grote coëfficiënten bevatten het meeste informatie
EZW Embedded image coding using Zerotrees of Wavelet coefficients Wavelet coefficients: ontwikkeld voor gebruik met een wavelet transformatie Embedded encoding (progressive encoding): bits toevoegen aan stream = meer detail in gedecodeerd beeld Zerotrees: zelfgelijkenis van de wavelet subbanden uitbuiten
Waarom embedded Encoder kan op elk moment het encoderen afbreken exact compressie ratio bereiken exact een bepaalde SNR behalen Client – server architectuur Server bevat beeld met lage compressie Client kan het downloaden op elk moment onderbreken, afhankelijk van zijn eigen mogelijkheden
Zelfgelijkenis Opbouw waveletcoëfficiënten 1 2 a a1 a11 a12 a111 a112
Wat is een zerotree Waveletcoëfficiënten die dezelfde plaats in een beeld beschrijven vormen een boom Wanneer al de coëfficiënten onder een node kleiner zijn dan een threshold spreekt men van een zerotree a a1 a2 a3 a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a131 a132 a133 a134 a241 a242 a243 a244 a2431 a2432 a2433 a2434
Waarom zerotrees Efficiënt coderen van de significance map Klassieke codeerschema’s: veel bits voor coderen van plaats van coëfficiënten Zerotrees: zelfgelijkenis van de subbanden en laagdoorlaat spectrum efficiënt grote insignificante delen van het beeld te coderen Volgorde coëfficiënten op voorhand vastgelegd
EZW algoritme Dominant pass: coderen significance map threshold = initial_threshold; do { dominant_pass; subordinate_pass; threshold = threshold/2; } while(threshold > minimum); Dominant pass: coderen significance map Subordinate pass: verfijnen coëfficiënten Stopcriterium: Minimum threshold Minimale SNR behaald Maximale bestandsgrootte behaald
Dominant pass Significance map gecodeerd met 4 symbolen P N Z T 12 -9 1 6 6 7 -4 5 2 9 4 -2 1 -6 3 threshold = 8 PNZT TTTT TPTT P N Z T
Subordinate pass Successive approximation: opeenvolgende benaderingen 16 14 12 huidige reconstructiewaarde 10 Convergentie naar de juiste waarde 8
Arithmetische codering D1: pnztpttttztttttttptt S1: 1010 D2: ztnptttttttt S2: 100110 D3: zzzzzppnppnttnnptpttnttttttttptttptttttttttptttttttttttt S3: 10011101111011011000 D4: zzzzzzztztznzzzzpttptpptpnptntttttptpnpppptttttptptttpnp S4: 11011111011001000001110110100010010101100 D5: zzzzztzzzzztpzzzttpttttnptppttptttnppnttttpnnpttpttppttt S5: 1011110011010001011111010110110010000000011011011001100011 D6: zzzttztttztttttnnttt Bevat nog veel redundatie arithmetische codering toepassen
Demo
EZW vs JPEG EZW JPEG Compressiefactor 6
EZW vs JPEG EZW JPEG Compressiefactor 28
EZW vs JPEG EZW JPEG Compressiefactor 12
EZW vs JPEG EZW JPEG Compressiefactor 21
Hoe ver kunnen we gaan origineel compressie 26 compressie 72
Ruisonderdrukking EZW origineel JPEG
Prestatie tov JPEG
Compressietijden
Besluit Waveletgebaseerde compressie: veelbelovende techniek recente compressie-algoritmen: JPEG2000 compressie 400 compressie 600 compressie 900