Compresia Wavelet

Download Report

Transcript Compresia Wavelet

UNIVERSITY POLITEHNICA of BUCHAREST
DEPARTMENT OF COMPUTER SCIENCE
Conf. Dr. Ing. Costin-Anton Boiangiu
<[email protected]>
Introducere
 Compresia imaginilor bazata pe transformari Wavelet
urmareste eliminarea:
 Redundanţei spaţiale: În aproape toate imaginile naturale
valorile pixelilor apropiaţi sunt identice sau uşor diferite
 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
2
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) sunt coeficienţi/ponderi ("weights“)
 b(i) sunt funcţii bază
3
Transformarea Wavelet
 Din moment ce funcţiile bază sunt cunoscute problema se
reduce calculul coeficienţilor c(i)
 Pentru a simplifica abordarea vom presupune că 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
4
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 cu 2-u * k deoarece se
poate scrie că:
5
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
6
Compresia imaginilor statice
 Pasii compresiei:
 aplicarea unei transformări wavelet pentru a extrage
caracteristicile de frecvenţă ale imaginii
 cuantizarea datelor rezultate
 codificarea valorilor rezultate din cuantizare
7
Implementarea Wavelet
8
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 filtre care î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 :
9
Exemplu – W6
 Wavelet-ul “mama”
10
Exemplu – W6
 Răspunsurile în impuls pentru H şi G; graficul reprezintă
magnitudinea
normalizată
semnalului
în
funcţie
de
frecvenţa
11
Implementarea Wavelet
 Un semnal unidimensional poate fi filtrat prin convoluţia
coeficienţilor filtrului c(k) cu valorile semnalului:
unde M este numărul de coeficienţi ("taps") ai filtrului
 Transformarea wavelet unidimensională directă
semnalului s este realizată prin:
a
 convoluţia lui s atât cu Ĥ cât şi cu Ĝ
 aplicare "downsampling" cu 2
12
Implementarea Wavelet
 Relaţia dintre coeficienţii filtrului Ĥ, Ĝ şi începutul semnalului s este:
 De notat că filtrul Ĝ se extinde înaintea semnalului ca timp iar dacă
semnalul este finit Ĥ se extinde dincolo de sfârşitul semnalului
 O situatie similară apare la calculul transformărilor inverse pentru filtrele H
şi G
 Într-o implementare reală utilizatorul va trebui să aleagă cu ce anume va
completa semnalul; o practică bună este de a înlânţui semnalul după 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
13
Exemplu
 Transformarea 2D wavelet asupra unei imagini realizată prin
aplicarea unei succesiuni de transformări 1D separate
14
Exemplu
 Transformarea 2D wavelet inversă asupra unei imagini; ee
deduce uşor aplicarea paşilor inverşi din transformarea directă
15
Cuantizarea
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
 Transformarea
16
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ă
17
Rezultate experimentale
 Două tipuri de codificări:
 FLC – Codificare de lungime fixă ("Fixed Length Coding")
 VLC – Codificare de lungime variabilă ("Variable Length
Coding")
 Codificări wavelet:
18
Rezultate experimentale
 Se poate observa că performanţele codificării cu lungime variabilă
sunt mai bune ca cele ale codificării cu lungime statică
19
Rezultate experimentale
20
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
21
Exemplu - compresie
22
Exemplu - decompresie
23