230 likes | 381 Views
UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE. Transmisia datelor multimedia in retele de calculatoare Compresia Wavelet. Conf. Dr. Ing . Costin-Anton Boiangiu < Costin.Boiangiu@CS.PUB.RO >. Introducere.
E N D
UNIVERSITY POLITEHNICA of BUCHAREST DEPARTMENT OF COMPUTER SCIENCE Transmisiadatelor multimedia in retele de calculatoareCompresia Wavelet Conf. Dr. Ing. Costin-Anton Boiangiu <Costin.Boiangiu@CS.PUB.RO>
Introducere • Compresiaimaginilorbazatapetransformari Wavelet urmaresteeliminarea: • Redundanţeispaţiale: Înaproapetoateimaginilenaturalevalorilepixelilorapropiaţisuntidenticesauuşordiferite • Redundanţei spectrale: În imaginile compuse din mai mult de o bandă spectrală valorile spectrale ale aceluiaşi pixel sunt deseori corelate • Redundanţei temporale: Cadrele adiacente într-o secvenţă video suferă mici modificări
Transformarea Wavelet • Una dintre metodele cele mai uzuale de efectua analiza a unui semnal este descompunerea sa într-o sumă ponderată de funcţii numite funcţii bază ("basis functions"): • unde: • c(i)suntcoeficienţi/ponderi ("weights“) • b(i) sunt funcţii bază
Transformarea Wavelet • Din moment ce funcţiile bază sunt cunoscute problema se reduce calculul coeficienţilor c(i) • Pentru a simplifica abordarea vom presupunecă toate funcţiile b(i) sunt variante scalate şi translatate ale aceleiaşi funcţii b cunoscută sub numele de wavelet mamă ("mother wavelet") • Scalarea este realizată prin multiplicarea cu un factor de scală, în general ales ca fiind 2 • De aceea este aleasă forma de scalare în cascadă b(2u) unde u este un număr întreg
Transformarea Wavelet • Deoarece b are un suport finit este necesară translaţia în axa timpului pentru a acoperi întregul semnal • Translaţia este realizată prin shiftarea tuturor componentelor lui b adică b(2u * x - k),unde k este un număr întreg • De fapt se realizează o translaţie cu2-u * k deoarece se poate scrie că:
Transformarea Wavelet • Cumulând rezultatele rezultă o descompunere a lui f de forma: unde • Multiplicarea cu 2u/2 este necesară pentru a păstra bazele ortonormate
Compresiaimaginilorstatice • Pasiicompresiei: • aplicarea unei transformări wavelet pentru a extrage caracteristicile de frecvenţă ale imaginii • cuantizarea datelor rezultate • codificarea valorilor rezultate din cuantizare
Implementarea Wavelet • Transformarea directă wavelet ("Forward Wavelet Transform") poate fi implementată eficient în O(n) prin utilizarea unei perechi de QMF ("Quadrature Mirror Filters“) • Fiecare QMF constă dintr-o dualitate de filtrecare împart banda de frecvenţe a semnalului în două : • H - filtru LPF("LowPass Filter") • G - filtru HPF("HighPass Filter") • Răspunsurile digitale ale lui H şi G sunt "în oglindă" ("mirrored"): • Răspunsurile în impuls ale transformărilor directă şi inversă ale QMF-ului notate (Ĥ,Ĝ) respectiv (H, G) sunt date de relaţiile :
Exemplu – W6 • Wavelet-ul “mama”
Exemplu – W6 • Răspunsurile în impuls pentru H şi G; graficul reprezintă magnitudinea semnalului în funcţie de frecvenţa normalizată
Implementarea Wavelet • Un semnalunidimensionalpoatefifiltratprinconvoluţiacoeficienţilorfiltruluic(k) cu valorilesemnalului: unde M este numărul de coeficienţi ("taps") ai filtrului • Transformarea wavelet unidimensională directă a semnalului s este realizată prin: • convoluţia lui s atât cu Ĥ câtşi cu Ĝ • aplicare"downsampling" cu 2
Implementarea Wavelet • Relaţiadintrecoeficienţiifiltrului Ĥ, Ĝ şi începutul semnalului s este: • De notat că filtrul Ĝ se extindeînainteasemnalului ca timpiardacă semnalul este finit Ĥse extinde dincolo de sfârşitul semnalului • O situatie similară apare la calculul transformărilor inverse pentru filtrele HşiG • Într-o implementare reală utilizatorul va trebui să aleagă cu ceanume va completa semnalul; o practică bună este de a înlânţui semnaluldupă capete: … s(n - 1) s(n) s0 s1 s2 … s(n - 1) s(n) s0 s1 … creând în acest mod o extensie periodică a lui s
Exemplu • Transformarea 2D wavelet asupra unei imagini realizată prin aplicarea unei succesiuni de transformări 1D separate
Exemplu • Transformarea 2D wavelet inversă asupra unei imagini; ee deduce uşor aplicarea paşilor inverşi din transformarea directă
Cuantizarea • Transformarea wavelet directă decorelează valorile pixelilor în imaginea initială şi concentrează informaţia imaginii într-un număr relativ mic de coeficienti • În general asupra coeficienţilor obtinuţi din transformarea wavelet se aplică o funcţie prag ("threshold") ce are rolul de a îmbunătăţi performanţele de compresie fără a distorsiona semnificativ imaginea • Codificarea coeficienţilor rezultaţi se face ulterior cu un algoritm de compresie fără pierderi preferăndu-se Huffman adaptiv cu fereastra glisantă de dimensiune 64K după aplicarea în prealabil a unei codificări RLE
Cuantizarea • Histograma valorilor pixelilor pentru o imagine 8 BPP („Bits per pixel”) ("Lenna" 512x512) respectiv histograma coeficienţilor wavelet aceliaşi imagini după ce transformarea a fost aplicată
Rezultateexperimentale • Două tipuri de codificări: • FLC – Codificare de lungime fixă ("Fixed Length Coding") • VLC – Codificare de lungime variabilă ("Variable Length Coding") • Codificări wavelet:
Rezultateexperimentale • Se poate observa că performanţele codificării cu lungime variabilă sunt mai bune ca cele ale codificării cu lungime statică
Compresia video • Compresia video pe bază de transformări wavelet este realizată prin aplicarea aceleiaşi tehnici din compresia imaginilor statice dar asupra diferenţelor (imaginii diferenţă) dintre două cadre succesive • Decompresia se realizează prin aplicarea transformării inverse wavelet şi însumarea cu imaginea iniţială • Nu există în momentul de faţă nici un format standard referitor la codificarea succesiunilor de imagini pe bază de wavelet-uri