Wavelet transform

La compressione Wavelet è una forma di compressione dei dati adatta per la compressione delle immagini (a volte anche la compressione video e la compressione audio). Le implementazioni degne di nota sono JPEG 2000, DjVu ed ECW per le immagini fisse, CineForm e Dirac della BBC. L’obiettivo è quello di memorizzare i dati di immagine nel minor spazio possibile in un file. La compressione Wavelet può essere lossless o lossy. La codifica Wavelet è una variante della codifica discrete Cosine Transform (DCT) che utilizza wavelet invece dell’algoritmo basato su blocchi di DCT.

Utilizzando una trasformata wavelet, i metodi di compressione wavelet sono adeguati per rappresentare transitori, come suoni di percussione nell’audio, o componenti ad alta frequenza in immagini bidimensionali, ad esempio un’immagine di stelle su un cielo notturno. Ciò significa che gli elementi transitori di un segnale di dati possono essere rappresentati da una quantità minore di informazioni rispetto a quella che sarebbe il caso se fosse stata utilizzata qualche altra trasformazione, come la più diffusa trasformata discreta del coseno.

La trasformata wavelet discreta è stata applicata con successo per la compressione dei segnali elettrocardiografici (ECG) In questo lavoro, l’alta correlazione tra i corrispondenti coefficienti wavelet dei segnali dei cicli cardiaci successivi viene utilizzata impiegando la previsione lineare.

La compressione Wavelet non è buona per tutti i tipi di dati: le caratteristiche dei segnali transitori significano una buona compressione wavelet, mentre i segnali regolari e periodici sono meglio compressi con altri metodi, in particolare la compressione armonica tradizionale (dominio della frequenza, come le trasformazioni di Fourier e correlate).

Vedere Diary Of An x264 Developer: The problems with wavelets (2010) per la discussione di problemi pratici dei metodi attuali che utilizzano wavelet per la compressione video.

MethodEdit

Prima viene applicata una trasformazione wavelet. Questo produce tanti coefficienti quanti sono i pixel nell’immagine (cioè, non c’è ancora compressione poiché è solo una trasformazione). Questi coefficienti possono quindi essere compressi più facilmente perché le informazioni sono concentrate statisticamente in pochi coefficienti. Questo principio è chiamato codifica di trasformazione. Successivamente, i coefficienti sono quantizzati e i valori quantizzati sono codificati per entropia e / o codificati per lunghezza di esecuzione.

Alcune applicazioni 1D e 2D di compressione wavelet utilizzano una tecnica chiamata “wavelet footprints”.

Valutazioneedit

Requisito per la compressione delle immaginiedit

Per la maggior parte delle immagini naturali, la densità dello spettro di frequenza inferiore è maggiore. Di conseguenza, le informazioni del segnale a bassa frequenza (segnale di riferimento) vengono generalmente conservate, mentre le informazioni nel segnale di dettaglio vengono scartate. Dal punto di vista della compressione e della ricostruzione dell’immagine, una wavelet deve soddisfare i seguenti criteri durante l’esecuzione della compressione dell’immagine:

  • Essere in grado di trasformare un’immagine più originale nel segnale di riferimento.
  • Ricostruzione della massima fedeltà basata sul segnale di riferimento.
  • Non dovrebbe portare a artefatti nell’immagine ricostruita dal solo segnale di riferimento.

Requisito per la varianza di spostamento e il comportamento di squillamentomodifica

Il sistema di compressione delle immagini Wavelet comporta filtri e decimazione, quindi può essere descritto come un sistema a variazione lineare di spostamento. Di seguito viene visualizzato un tipico diagramma di trasformazione wavelet:

Tipico diagramma di trasformazione wavelet.png

Il sistema di trasformazione contiene due analisi di filtri (filtro passa-basso h 0 ( n ) {\displaystyle h_{0}(n)}

{\displaystyle h_{0}(n)}

e un filtro passa-alto h 1 ( n ) {\displaystyle h_{1}(n)}

h_{1}(n)

), una decimazione processo, un processo di interpolazione, e due sintesi di filtri ( g 0 ( n ) {\displaystyle g_{0}(n)}

{\displaystyle g_{0}(n)}

e g 1 ( n ) {\displaystyle g_{1}(n)}

{\displaystyle g_{1}(n)}

). La compressione e la ricostruzione del sistema prevede, in genere, le componenti a bassa frequenza, che è l’analisi di filtri h 0 ( n ) {\displaystyle h_{0}(n)}

{\displaystyle h_{0}(n)}

per la compressione delle immagini e la sintesi di filtri g 0 ( n ) {\displaystyle g_{0}(n)}

{\displaystyle g_{0}(n)}

per la ricostruzione. Per valutare tale sistema, si può inserire un impulso δ ( n − n ) {\displaystyle \delta (n-n_{i})}

{\displaystyle \delta (n-n_{i})}

e osservare la sua ricostruzione h ( n − n ) {\displaystyle h(n-n_{i})}

{\displaystyle h(n-n_{i})}

; ottimale wavelet sono quelli che portano minimo spostamento varianza e sidelobe di h ( n − n ) {\displaystyle h(n-n_{i})}

{\displaystyle h(n-n_{i})}

. Anche se wavelet con varianza di spostamento rigorosa non è realistico, è possibile selezionare wavelet con solo una leggera varianza di spostamento. Per esempio, siamo in grado di confrontare il passaggio di varianza di due filtri:

Biorthogonal filtri wavelet di compressione dell’immagine
Lunghezza Filtro coefficienti Regolarità
Wavelet filtro 1 H0 9 .852699, .377402, -.110624, -.023849, .037828 1.068
G0 7 .788486, .418092, -.040689, -.064539 1.701
Filtro Wavelet 2 H0 6 .788486, .047699, -.129078 0.701
G0 10 .615051, .133389, -.067237, .006989, .018914 2.068

Osservando le risposte all’impulso dei due filtri, possiamo concludere che il secondo filtro è meno sensibile alla posizione di input (cioè è meno variante shift).

Un altro problema importante per la compressione e la ricostruzione delle immagini è il comportamento oscillatorio del sistema, che potrebbe portare a gravi artefatti indesiderati nell’immagine ricostruita. Per ottenere ciò, i filtri wavelet dovrebbero avere un grande rapporto picco-lobo laterale.

Finora abbiamo discusso della trasformazione a una dimensione del sistema di compressione delle immagini. Questo problema può essere esteso a due dimensioni, mentre un termine più generale – trasformabili multiscala – è proposto.

Derivazione della risposta all’impulsomodifica

Come accennato in precedenza, la risposta all’impulso può essere utilizzata per valutare il sistema di compressione/ricostruzione dell’immagine.

Per la sequenza di input x ( n ) = δ ( n − n ) {\displaystyle x(n)=\delta (n-n_{i})}

{\displaystyle x(n)=\delta (n-n_{i})}

, il segnale di riferimento r 1 ( n ) {\displaystyle r_{1}(n)}

{\displaystyle r_{1}(n)}

dopo un livello di decomposizione è x ( n ) ∗ h 0 ( n ) {\displaystyle x(n)*h_{0}(n)}

{\displaystyle x(n)*h_{0}(n)}

passa attraverso la decimazione di un fattore due, mentre h 0 ( n ) {\displaystyle h_{0}(n)}

{\displaystyle h_{0}(n)}

è un filtro passa basso. Analogamente, il successivo segnale di riferimento r 2 ( n ) {\displaystyle r_{2}(n)}

{\displaystyle r_{2}(n)}

si ottiene da r 1 ( n ) ∗ h 0 ( n ) {\displaystyle r_{1}(n)*h_{0}(n)}

{\displaystyle r_{1}(n)*h_{0}(n)}

passa attraverso la decimazione di un fattore di due. Dopo L livelli di decomposizione (e decimazione), la risposta di analisi si ottiene mantenendo uno su ogni 2 L {\displaystyle 2 ^ {L}}

2^{L}

campioni: h ( L ) ( n , n ) = f h 0 ( L ) ( n − n i / 2 L ) {\displaystyle h_{A}^{(L)}(n,n_{i})=f_{h0}^{(L)}(n-n_{i}/2^{L})}

{\displaystyle h_{A}^{(L)}(n,n_{i})=f_{h0}^{(L)}(n-n_{i}/2^{L})}

.

d’altra parte, per ricostruire il segnale x(n), che possiamo considerare un segnale di riferimento r ( n ) = δ ( n − n j ) {\displaystyle r{L}(n)=\delta (n-n_{j})}

{\displaystyle r{L}(n)=\delta (n-n_{j})}

. Se il dettaglio segnali d i ( n ) {\displaystyle d_{i}(n)}

{\displaystyle d_{i}(n)}

sono pari a zero per 1 ≤ i ≤ L {\displaystyle 1\leq i\leq L}

{\displaystyle 1\leq i\leq L}

, quindi il segnale di riferimento nella fase precedente ( L − 1 {\displaystyle L-1}

L-1

tappa) r L − 1 ( n ) = g 0 ( n − 2 n j ) {\displaystyle r{L-1}(n)=g_{0}(n-2n_{j})}

{\displaystyle r{L-1}(n)=g_{0}(n-2n_{j})}

, che si ottiene interpolando r L ( n ) {\displaystyle r{L}(n)}

{\displaystyle r_{L} (n)}

e contorto con g 0 (n) {\displaystyle g_{0} (n)}

{\stile di visualizzazione g_{0} (n)}

. Allo stesso modo , la procedura viene iterata per ottenere il segnale di riferimento r ( n ) {\displaystyle r(n)}

r(n)

allo stadio L − 2, L − 3,. . . . ,1 {\displaystyle L-2, L-3,….,1}

{\stile di visualizzazione L-2,L-3,....,1}

. Dopo L iterazioni, viene calcolata la risposta all’impulso di sintesi: h s ( L ) ( n , n ) = f g 0 ( L ) ( n / 2 L − n j ) {\displaystyle h_{s}^{(L)}(n,n_{i})=f_{g0}^{(L)}(n/2^{L}-n_{j})}

{\displaystyle h_{s}^{(L)}(n,n_{i})=f_{g0}^{(L)}(n/2^{L}-n_{j})}

, quale si riferisce il segnale di riferimento r L ( n ) {\displaystyle r{L}(n)}

{\displaystyle r{L}(n)}

e la ricostruzione del segnale.

Per ottenere il sistema globale di analisi/sintesi del livello L, le risposte di analisi e sintesi sono combinate come di seguito:

h E S ( L ) ( n , n ) = acqua 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)}

{\displaystyle h_{MP}^{(L)}(n,n_{i})=\sum _{k}f_{h0}^{(L)}(k-n_{i}/2^{L})f_{g0}^{(L)}(n/2^{L}-k)}