Transformarea Wavelet
compresia wavelet este o formă de compresie a datelor potrivită pentru compresia imaginii (uneori și compresia video și compresia audio). Implementări notabile sunt JPEG 2000, DjVu și ECW pentru imagini statice, CineForm și BBC Dirac. Scopul este de a stoca date de imagine în cât mai puțin spațiu posibil într-un fișier. Compresia Wavelet poate fi fie fără pierderi, fie cu pierderi. Codificarea Wavelet este o variantă de transformare discretă a cosinusului (DCT) codificare care folosește wavelets în loc de algoritmul bazat pe blocuri DCT.
folosind o transformare wavelet, metodele de compresie wavelet sunt adecvate pentru reprezentarea tranzitorilor, cum ar fi sunetele de percuție în audio sau componentele de înaltă frecvență în imagini bidimensionale, de exemplu o imagine a stelelor pe un cer de noapte. Aceasta înseamnă că elementele tranzitorii ale unui semnal de date pot fi reprezentate de o cantitate mai mică de informații decât ar fi cazul dacă ar fi fost utilizată o altă transformare, cum ar fi transformarea cosinusului discret mai răspândită.
transformarea de undă discretă a fost aplicată cu succes pentru comprimarea semnalelor electrocardiografice (ECG) în această lucrare, corelația ridicată dintre coeficienții de undă corespunzători ai semnalelor ciclurilor cardiace succesive este utilizată folosind predicția liniară.
compresia Wavelet nu este bună pentru toate tipurile de date: caracteristicile semnalului tranzitoriu înseamnă o compresie wavelet bună, în timp ce semnalele periodice netede sunt mai bine comprimate prin alte metode, în special compresia armonică tradițională (domeniul de frecvență, ca prin transformatele Fourier și conexe).
vezi Jurnalul unui dezvoltator x264: problemele cu wavelets (2010) pentru discutarea problemelor practice ale metodelor actuale care utilizează wavelets pentru compresia video.
MethodEdit
mai întâi se aplică o transformare wavelet. Aceasta produce la fel de mulți coeficienți pe cât există pixeli în imagine (adică nu există încă compresie, deoarece este doar o transformare). Acești coeficienți pot fi apoi comprimați mai ușor, deoarece informațiile sunt concentrate statistic în doar câțiva coeficienți. Acest principiu se numește codificare transformare. După aceea, coeficienții sunt cuantificați și valorile cuantificate sunt entropie codificată și/sau lungimea de rulare codificată.
câteva aplicații 1D și 2D ale compresiei wavelet folosesc o tehnică numită „amprente wavelet”.
EvaluationEdit
cerință pentru compresia imaginiloredit
pentru majoritatea imaginilor naturale, densitatea spectrului de frecvență mai mică este mai mare. Ca urmare, informațiile semnalului de frecvență joasă (semnal de referință) sunt în general păstrate, în timp ce informațiile din semnalul detaliat sunt aruncate. Din perspectiva compresiei și reconstrucției imaginii, un wavelet ar trebui să îndeplinească următoarele criterii în timp ce efectuează compresia imaginii:
- fiind capabil să transforme imaginea mai originală în semnalul de referință.
- reconstrucție cea mai mare fidelitate pe baza semnalului de referință.
- nu ar trebui să conducă la artefacte din imagine reconstruite doar din semnalul de referință.
cerință pentru varianța schimbării și comportamentul de apelareit
sistemul de compresie a imaginii Wavelet implică filtre și decimare, deci poate fi descris ca un sistem liniar de variante de schimbare. O diagramă tipică de transformare wavelet este afișată mai jos:
sistemul de transformare conține două filtre de analiză (un filtru trece-jos h 0 (n ) {\displaystyle H_{0} (n)}
și un filtru high pass h 1 ( n ) {\displaystyle H_{1}(n)}
), un proces de decimare, un proces de interpolare și două filtre de sinteză [ g 0 (n) {\displaystyle g_{0} (n)}
și g 1 (n ) {\displaystyle g_{1} (n)}
). Sistemul de compresie și reconstrucție implică, în general, componente de joasă frecvență, care este filtrele de analiză h 0 (n) {\displaystyle H_{0} (n)}
pentru compresia imaginii și filtrele de sinteză g 0 (n ) {\displaystyle g_{0} (n)}
pentru Reconstrucție. Pentru a evalua un astfel de sistem, putem introduce un impuls (n-n i) {\displaystyle \ delta (n-n_{i})}
și observați reconstrucția sa h (n-N i) {\displaystyle h (N-n_{i})}
; wavelet optim sunt cei care aduc varianța minimă de schimbare și lobul lateral la h (n − n i) {\displaystyle h (N-n_{i})}
. Chiar dacă wavelet cu varianță strictă de schimbare nu este realist, este posibil să selectați wavelet cu doar varianță ușoară de schimbare. De exemplu, putem compara varianța de deplasare a două filtre:
lungime | coeficienți de filtrare | regularitate | ||
---|---|---|---|---|
filtru Wavelet 1 | H0 | 9 | .852699, .377402, -.110624, -.023849, .037828 | 1.068 |
G0 | 7 | .788486, .418092, -.040689, -.064539 | 1.701 | |
filtru Wavelet 2 | H0 | 6 | .788486, .047699, -.129078 | 0.701 |
G0 | 10 | .615051, .133389, -.067237, .006989, .018914 | 2.068 |
observând răspunsurile la impuls ale celor două filtre, putem concluziona că al doilea filtru este mai puțin sensibil la locația de intrare (adică este o variantă mai mică de schimbare).
o altă problemă importantă pentru compresia și reconstrucția imaginii este comportamentul oscilator al sistemului, care ar putea duce la artefacte nedorite severe în imaginea reconstruită. Pentru a realiza acest lucru, filtrele wavelet ar trebui să aibă un raport mare de vârf la lobul lateral.
până acum am discutat despre transformarea cu o singură dimensiune a sistemului de compresie a imaginii. Această problemă poate fi extinsă la două dimensiuni, în timp ce se propune un termen mai general – transformări multiscale schimbabile -.
derivarea răspunsului la impulsedit
așa cum am menționat mai devreme, răspunsul la impuls poate fi utilizat pentru a evalua sistemul de compresie/reconstrucție a imaginii.
pentru secvența de intrare x ( n ) = inkt(n − n i ) {\displaystyle x (n)=\delta (n-n_{i})}
, semnalul de Referință r 1 (n) {\displaystyle R_{1} (n)}
după un nivel de descompunere este x ( n) h 0(n ) {\displaystyle x (n)*H_{0} (n)}
trece prin decimare cu un factor de doi, în timp ce h 0 (n ) {\displaystyle H_{0} (n)}
este un filtru trece-jos. În mod similar, următorul semnal de Referință r 2 (n) {\displaystyle R_{2} (n)}
se obține prin R 1 ( n) h 0(n) {\displaystyle R_{1} (n)*H_{0} (n)}
trece prin decimare cu un factor de doi. După L niveluri de descompunere (și decimare), răspunsul analizei este obținut prin reținerea unuia din fiecare 2 l {\displaystyle 2 ^ {L}}
probe: h A ( L) (n , n i ) = f h 0 (L) (n − N i / 2 L) {\displaystyle h_{a}^{(l)} (n, n_{i}) = f_{H0}^{(l)} (n-n_{i} / 2 ^ {L})}
.
pe de altă parte, pentru a reconstrui semnalul x (n), putem lua în considerare un semnal de Referință r L ( n) = Irak ( n − n j) {\displaystyle R_{l}(n)=\delta (n-n_{j})}
. Dacă detaliile semnalează d i (n) {\displaystyle D_{I} (n)}
sunt egale cu zero pentru 1 ilft i ilft l {\displaystyle 1\leq i\leq l}
, apoi semnalul de referință din etapa anterioară ( L − 1 {\displaystyle L-1}
etapă) este R L − 1 ( n ) = g 0(N − 2 n j ) {\displaystyle R_{L-1} (n)=g_{0} (n-2n_{j})}
, care se obține prin interpolarea r L (n ) {\displaystyle R_{l} (n)}
și convolut cu g 0 (n ) {\displaystyle g_{0} (n)}
. În mod similar, procedura este iterată pentru a obține semnalul de Referință r (n ) {\displaystyle r(n)}
în etapa L − 2 , L − 3 , . . . . , 1 {\displaystyle L-2,L-3,….,1}
. După L iterații, se calculează răspunsul impulsului de sinteză: h s ( L) (n , N i) = f g 0 ( L) (n / 2 L − N j) {\displaystyle h_{s}^{(l)} (n,n_{i}) = f_{G0}^{(l)} (n / 2 ^ {l} – n_{j})}
, care raportează semnalul de Referință r L (n) {\displaystyle R_{l} (n)}
și semnalul reconstruit.
pentru a obține sistemul global de analiză/sinteză la nivel L, răspunsurile de analiză și sinteză sunt combinate după cum urmează:
h și S ( L ) ( n , n ) = apă k f h 0 ( L ) ( k − n / 2 L ) f g 0 ( L ) ( n / 2 L − k ) {\displaystyle h_{MP}^{(l)}(n,n_{i})=\sumă _{k}f_{H0}^{(l)}(k-n_{i}/2^{l})f_{G0}^{(l)}(n/2^{l}-k)}