Wavelet Cenni di Jpeg 2000 Livio Tenze livio.tenze@enteos.it
Testi utilizzati “Wavelet transform”, Sheng R. C. Gonzales and R. E. Woods. Digital Image Processing. Prentice Hall http://users.rowan.edu/~polikar/WAVELETS/WTtutorial.html Signal Processing Magazine, Review on JPEG 2000
Argomenti del seminario 1/2 Introduzione all'analisi tempo-frequenza Confronto con Fourier, Short time Fourier transform (STFT) Wavelet continua Dal continuo al discreto Wavelet partendo dalla multirisoluzione Funzioni di scala e proprietà necessarie
Argomenti del seminario 2/2 Funzioni wavelet Fast wavelet transform (FWT) Trasformata wavelet in 2 dimensioni Cenni alla compressione Jpeg 2000 Perché una nuova trasformata per la compressione di immagini Descrizione generale dello standard Jpeg 2k
Analisi tempo-frequenza La trasformata wavelet di un segnale 1-D è una funzione 2-D nello spazio tempo-scala La rappresentazione tempo-scala è molto simile alla rappresentazione tempo-frequenza familiare nella trasformata Short Time Fourier Transform (STFT) La wavelet è di particolare interesse per analizzare segnali non stazionarî (come i segnali vocali, radar, sonar, sismici, elettrocardiografici, musicali, torsionali e motoristici) ed è un’alternativa alla classica STFT o alla trasformata di Gabor La wavelet è locale sia in tempo che in frequenza!
Analisi tempo-frequenza Un esempio di rappresentazione tempo-frequenza è lo spartito musicale L’analisi è limitata dal principio di indeterminazione o disuguaglianza di Heisenberg: Un segnale non può essere rappresentato su un piano tempo-frequenza come un punto, si può unicamente determinare la sua posizione all’interno di un rettangolo.
Limitazioni di Fourier La trasformata di Fourier non è sufficiente per segnali tempo varianti. Fourier fornisce una perfetta località in frequenza, ma una “globalità” nel tempo. Inoltre non fornisce alcuna informazione sulla variazione temporale del segnale sotto esame. La STFT, la Gabor transform, la distribuzione di Wigner e l’ambiguity function sono delle soluzioni per l’analisi di segnali tempo-varianti.
Short Time Fourier Transform Gabor introdusse nel 1940 la STFT che è nota anche come sliding window Fourier Transform ed è definita come segue: dove g(t) è una funzione finestra scelta opportunamente. Vengono definite come funzioni di Gabor: È richiesto inoltre che
Short Time Fourier Transform Risoluzione tempo-frequenza Finestra gaussiana La finestra gaussiana fornisce il minimo prodotto tempo-banda determinato dal principio di indeterminazione.
Wavelet continua Analisi wavelet utile per segnali non stazionari rispetto alla STFT, la wavelet fornisce Q costante Le basi sono generate da una funzione madre mediante dilatazione e traslazione L'”ammissibilità“ assicura l'esistenza dell'inversa La “regolarità” fornisce la località in frequenza e nel tempo Per ridurre il prodotto tempo-larghezza di banda si ricorre alla DWT
Wavelet continua La trasformata ortonormale viene ottenuta in un ambiente multirisoluzione partendo dalle funzioni di scala (cfr subband coding, QMF) Fast wavelet transform (FWT): algoritmo ad albero Applicazioni: Analisi di segnali sismici, radar, sonar, elettrocardiografici, transitori motore Compressione dei dati Filtraggio
Wavelet continua Sia data f(t) in L l’insieme delle funzioni misurabili e di quadrato integrabili, si definisce la trasformata wavelet come: dove Per valori s>1 la funzione si contrae, mentre per valori 0<s<1 si dilata. Vale inoltre la normalizzazione dell’energia:
Wavelet continua Si ottiene quindi: La trasformata di Fourier della wavelet risulta essere Una contrazione nel tempo corrisponde ad una dilatazione in frequenza. Si fa notare che le funzioni base non vengono specificate!
Wavelet continua Le funzioni base vengono scelte sulla base di alcune proprietà fondamentali. Le principali sono l’ammissibilità e la regolarità delle funzioni. Ammissibilità: la wavelet deve oscillare per avere il valor medio nullo Regolarità: le wavelet devono avere un decadimento esponenziale con i momenti di ordine basso uguali a 0 In altre parole la funzione oscilla e decresce Le wavelet possono essere continue o discrete, ortonormali o non ortonormali, analitiche o numeriche Se la funzione scelta soddisfa le due condizioni fondamentali, si ha che la trasformata possiede delle caratteristiche di località nel tempo. Il fattore 1/s assicura che i coefficienti divengano piccoli al crescere della frequenza. Ciò significa avere località in frequenza.
Multirisoluzione wavelet La trasformata wavelet risulta essere la correlazione tra una funzione e la wavelet dilatata Ad una data risoluzione la trasformata viene calcolata mediante un filtro la cui risposta in frequenza è scalata come h(t/s) Quando la scala è piccola, la funzione è concentrata nel tempo Quando la scala è grande, la wavelet è dilatata nel tempo.
Fidelity analysis La versione contratta della wavelet permette di analizzare le discontinuità e le singolarità con un supporto temporale piccolo. Allo stesso modo è possibile sfruttare una versione dilatata della wavelet per avere una visione globale del fenomeno. La STFT non possiede le proprietà precedentemente elencate. Si può dimostrare che il rapporto tra la frequenza centrale di analisi e la larghezza di banda (noto come fattore Q) nell’analisi wavelet risulta essere:
Esempi di wavelet Esempio matlab
Passaggio dal continuo al discreto La trasformata wavelet continua rappresenta un segnale monodimensionale in termini di tempo-scala: ridondante! Risulta quindi che il prodotto tempo-larghezza di banda è il quadrato di quello del segnale di partenza L’uso di wavelet discrete può ridurre tale prodotto: si noti che il fattore di traslazione dipende dal valore di s0 (che usualmente è pari a 2 => espansione diadica) e dal valore i che determina la scala che si sta analizzando. Analogia con il microscopio … Si può dimostrare che la trasformata wavelet ortonormale produce un prodotto tempo-frequenza identico a quello del segnale di partenza.
Passaggio dal continuo al discreto Se il segnale di partenza è continuo ed anche le funzioni wavelet sono continue nella scala e nel tempo, si ottiene la trasformata wavelet continua. Quando il segnale in ingresso è continuo, ma le funzioni wavelet sono discrete in tempo e scala, si ottiene la scomposizione in serie wavelet. La teoria delle wavelet usando l’analisi dello spazio delle funzioni dimostra che l’espansione in serie e la ricostruzione delle funzioni continue possono essere calcolate con un approccio a multirisoluzione con filtri discreti. Quando la trasformata wavelet è calcolata con il calcolatore, il segnale in ingresso ed i filtri da iterare sono discreti: in questo senso si parla di discrete wavelet transform. Analogie con trasformata di Fourier
Wavelet partendo dalla multirisoluzione La multirisoluzione incorpora e unifica tecniche provenienti da discipline diverse: subband coding, quadrature mirror filtering, scomposizione piramidale Consiste nell’analizzare e nel rappresentare i segnali a più risoluzioni Esistono varie vie per introdurre le wavelet, forse la più agevole è quella che parte dall’MRA Idea di fondo: oggetti di piccole dimensioni e di basso contrasto sono più visibili a risoluzioni elevate Il viceversa vale per gli oggetti di grandi dimensioni
Wavelets and Multiresolution Processing Es: l’immagine possiede una statistica locale variabile
Multirisoluzione: concetti base Un segnale f(x) può essere analizzato come una combinazione lineare di funzioni: Se l’espansione risulta essere unica, si dice che k(x) sono delle funzioni base. Le funzioni esprimibili con tale base formano uno spazio di funzioni V. Per ogni spazio V esiste un insieme di funzioni duali che possono essere usate per calcolare i coefficienti k come segue: In funzione dell’ortogonalità o meno delle funzioni base è possibile incontrare vari casi…
Multirisoluzione: concetti base Caso 1: le funzioni base formano una base ortonormale per V. Caso 2: le funzioni base formano una base ortogonale per V, ma non ortonormale. La relazione tra le funzioni base e le funzioni duali è: Caso 3: le funzioni base non formano una base ortogonale per V, cioè esiste più di una n-pla di coefficienti per l’espansione della stessa funzione f(x). Le funzioni di espansione ed il loro duale sono dette sovradimensionate o ridondanti.
Multirisoluzione: funzioni di scala Si consideri ora la famiglia di funzioni ottenute da traslazioni intere e riduzioni di scala di tipo diadico: Il valore k imposta la posizione relativa della funzione, mentre il valore j ne imposta la scala. Scegliendo opportunamente le funzioni è possibile descrivere completamente lo spazio L2(R), cioè l’insieme delle funzioni reali misurabili ed di quadrato integrabili. Fissando il valore di j=j0 le funzioni di espansione risultanti descrivono un sottoinsieme dello spazio totale. Indicheremo tale sottospazio come Vj0. Aumentando il valore di j si aumenta la dimensione dello spazio che considera delle funzioni con variazioni più piccole e quindi dettagli più piccoli.
Wavelets and Multiresolution Processing Aumento di scala
Wavelets and Multiresolution Processing
Richieste fondamentali dell’MRA Le funzioni di scala sono ortogonali alle traslazioni intere I sottospazî descritti dalle funzioni di espansione in un basso valore di scala sono contenuti in quelli descritti dalle scale più alte La sola funzione comune a tutti i sottospazî Vj è f(x)=0. Ogni funzione può essere espressa con una precisione arbitraria.
Conclusioni sulle funzioni di scala Sotto le condizioni appena elencate, le funzioni di espansione del sottospazio Vj possono essere espresse come la somma pesata delle funzioni alla scala j+1. Sostituendo quindi la funzione j+1,n e rinominando i coefficienti n in h(n) si ottiene: o nella forma più generale nota come refinement equation o dilation equation:
Wavelets and Multiresolution Processing
Multirisoluzione: funzioni wavelet Partendo da una funzione di scala che soddisfi le richieste dell’MRA viste precedentemente, si definisce la funzione wavelet (x). La funzione appena definita assieme alle sue traslazioni intere e le sue versioni riscalate è in grado di descrivere la differenza tra due sottospazî Vj e Vj+1. Si può definire l’insieme j,k(x): se f(x) appartiene a Wj La relazione tra lo spazio descritto dalla funzione di scala e quello descritto dalla wavelet risulta essere la seguente:
Multirisoluzione: funzioni wavelet Dall’ultima espressione si evince che il complemento ortogonale di Vj in Vj+1 risulta essere Wj e che tutti i “vettori” di Vj sono ortogonali a quelli di Wj, perciò vale la seguente espressione: Si può quindi esprimere tutto lo spazio delle funzioni misurabili, di quadrato integrabili come segue: Nell’ultima espressione è stata eliminata la funzione di scala e la funzione viene rappresentata in termini di sole funzioni wavelet.
Multirisoluzione: funzioni wavelet Si noti che se una funzione f(x) appartiene a V1, ma non a V0, un’espansione che usi la prima “configurazione” vista conterrà un’approssimazione di f(x) in termini di V0; le wavelet di W0 condificheranno invece la differenza tra la funzione f(x) e l’approssimazione corrente. Similmente alle funzioni di scala, anche le funzioni wavelet possono essere espresse in termini di somma pesata delle funzioni di scala ad una risoluzione maggiore: I coefficienti della somma pesata appena vista sono noti come coefficienti della wavelet. Si può inoltre dimostrare la seguente relazione Si noti la somiglianza con la relazione intercorrente tra i filtri ortonormali del subband coding.
Wavelets and Multiresolution Processing Applicando l’ultima relazione vista, si possono calcolare i coefficienti di scala e delle wavelet delle wavelet di Haar. Esempio citato precedentemente
Discrete wavelet transform Come già accennato precedentemente, se la funzione che viene espansa è una sequenza di campioni, i coefficienti risultanti sono quelli della DWT. Le somme prendono il posto degli integrali: Cfr. coeff. precedenti Fattore di normalizzazione cfr. DFT La variabile indipendente x risulta essere una variabile a valori interi. Come indicato prima, nel caso di basi non ortonormali, le funzioni con cui fare la correlazione risultano essere quelle duali.
Fast wavelet transform (FWT) La FWT è una realizzazione efficiente della DWT che sfrutta la relazione tra i coefficienti della DWT a scale diverse. La FWT è anche nota come Mallat herringbone algorithm e riutilizza lo schema di scomposizione del nel subband coding.
Wavelets and Multiresolution Processing Chapter 7 Wavelets and Multiresolution Processing Si fa notare che i coefficienti della scala più elevata sono quelli della funzione di partenza.: le iterazioni successive producono coefficienti di scala J-1, J-2, et cetera
Wavelets and Multiresolution Processing Partendo dalle espressioni precedentemente viste si ottiene facilmente lo schema di “decodifica” cioè lo schema per il calcolo della FWT inversa.
Estensione al caso 2-D La trasformata 1-D descritta precedentemente viene facilmente estesa al caso 2-D (es: immagini). In 2-D sono necessarie: 1 funzione di scala 2-D 3 funzioni wavelet 2-D Le funzioni ora citate possono essere ottenute utilizzando dei filtri separabili: Caso immagini: le funzioni wavelet misurano le variazioni dei toni di grigio lungo direzioni differenti. Si può quindi ridefinire la DWT in 2-D come indicato in seguito.
Wavelets and Multiresolution Processing Convoluzione sulle righe e sulle colonne Generazione delle “bande in frequenza” bidimensionali.
Wavelets and Multiresolution Processing
Wavelets and Multiresolution Processing N.B.: utile comando matlab waveinfo(‘sym’) help waveinfo
Esempi applicativi Andremo ora a considerare due esempi applicativi delle wavelet 2-D: Isolamento dei bordi verticali mediante filtraggio dei dettagli Eliminazione di rumore additivo gaussiano da un’immagine mediante thresholding.
Wavelets and Multiresolution Processing Esempio matlab
Wavelets and Multiresolution Processing Hard thresholding Soft thresholding Esempio matlab
Cenni di Jpeg2000 Perché un nuovo standard di compressione? Le immagini digitali odierne richiedono una qualità sempre maggiore e risultano essere di risoluzioni sempre più elevate. Lo standard Jpeg2k rappresenta gli avanzamenti nella tecnologia di compressione delle immagini: è stato ottimizzato sia per efficienza che per scalabilità ed interoperabilità nelle reti e negli ambienti radiomobili. Lo standard è particolarmente indicato per: internet, facsimile a colori, stampa, scanner, fotografia digitale, applicazioni radiomobili, immagini mediche, archivi librari, et cetera.
Cenni di Jpeg2000 Caratteristiche principali: Superior low bit rate performance Continuous-tone and bilevel compression: possibilità di comprimere immagini da 1 a 16 bit per ogni componente di colore Lossless and lossy compression Progressive transmission Region of interest: spesso alcune parti delle immagini possono essere di maggior interesse e possono essere trasmesse con un’accuratezza maggiore Open architecture: un decoder può implementare il core del sistema ed il parser per la corretta interpretazione del flusso di dati Robustness: importante nelle trasmissioni senza fili Security: watermarking, encryption
Cenni di Jpeg2000 Nella figura sottostante viene illustrato il diagramma a blocchi del Jpeg2k. Dapprima viene calcolata la trasformata discreta sull’immagine in ingresso I coefficienti vengono quindi quantizzati Infine si passa alla codifica entropica prima della generazione del flusso di dati Jpeg2k
Cenni di Jpeg2000 Sebbene lo schema precedente risulti molto simile a quello del Jpeg tradizionale, esistono enormi differenze in ognuno dei blocchi funzionali indicati. Breve descrizione del sistema di compressione/decompressione: L’immagine viene scomposta in componenti Le componenti possono venir divise in porzioni (tile) – opzionale La trasformata wavelet viene applicata ad ogni porzione, quindi ogni porzione è “codificata” a diverse risoluzioni I coefficienti alle varie risoluzioni vengono divisi in sottoinsiemi in base alle caratteristiche in frequenza I coefficienti delle sottobande vengono quantizzati e riuniti in matrici rettangolari (code block) I singoli bit plane vengono passati al codificatore entropico Vengono quindi aggiunti al flusso di dati dei marcatori per la correzione degli errori. Il flusso contiene inoltre un’intestazione in cui viene descritta tutta la struttura dell’immagine.
Cenni di Jpeg2000 La DWT può essere reversibile (Le Gall 5/3) o irreversibile (Daubechies 9/7). Modalità di filtraggio: convolution e lifting scheme. Per assicurare il filtraggio dell’intera immagine si ricorre all’estensione simmetrica ai bordi che risulta essere dipendente dal filtro usato. L’immagine originale può venir divisa in tile che vengono compresse in modo indipendente: si riduce il consumo di memoria. Tutte le tile devono avere la stessa dimensione (a parte quelle sui bordi), scelta in modo arbitrario. Considerazioni sulla qualità. Le componenti dell’immagine possono non avere la stessa profondità di bit e possono essere sia con segno che senza. La trasformazione delle componenti permette di ottenere quantizzazioni più agevoli. Esistono nel Jpeg2k 2 operazioni di trasformazione: ICT (irreversibile) ed RCT (reversibile). La ICT viene usata con il kernel 9/7 dal momento che la trasformata è irreversibile, mentre la RCT viene usata con il 5/3 che risulta essere reversibile.
Cenni di Jpeg2000 Effetto del tiling nella compressione Jpeg2k
Cenni di Jpeg2000
Cenni di Jpeg2000