03.08.2013 Views

Capitolo 4 Codifica di Immagini - InfoCom

Capitolo 4 Codifica di Immagini - InfoCom

Capitolo 4 Codifica di Immagini - InfoCom

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Capitolo</strong> 4<br />

<strong>Co<strong>di</strong>fica</strong> <strong>di</strong> <strong>Immagini</strong><br />

Contenuto<br />

4.1 Principi <strong>di</strong> co<strong>di</strong>fica <strong>di</strong> immagini fisse<br />

Questo capitolo richiama brevemente alcuni concetti esposti in dettaglio in [1], qui riportati per facilitare l’accesso<br />

al lettore.<br />

Un’immagine <strong>di</strong>gitale é una particolare sequenza bi<strong>di</strong>mensionale x[n1,n2] definita su un supporto finito n1 =<br />

0, ···N − 1,n2 =0, ···N − 1. Poiché un colore puoéssere percettivamente riprodotto miscelando opportunamente<br />

tre sorgenti, é usuale rappresentare un’immagine a colori me<strong>di</strong>ante tre sequenze bi<strong>di</strong>mensionali, che in ogni punto<br />

rappresentano il peso relativo <strong>di</strong> ciascuna delle tre sorgenti ”primarie“. Una terna <strong>di</strong> sorgenti <strong>di</strong> riferimento nelle<br />

applicazioni <strong>di</strong> elaborazione, co<strong>di</strong>fica e trasmissione delle immagini corrispondenti tipicamente alle componenti rossa<br />

verde e blu é quella definita dal Comitée International de l’Eclairage (CIE) (1920), RCIE = 700 nm, GCIE =<br />

746.1 nm, BCIE = 435.8 nm4.1 . Una terna alternativa, comunemente utilizzata nella rappresentazione <strong>di</strong> immagini<br />

in forma <strong>di</strong>gitale é costituita dalla luminanza (Y ), rappresentativa del livello <strong>di</strong> luminositá espresso in scala <strong>di</strong> grigio,<br />

e da due componenti <strong>di</strong> crominanza che rappresentative <strong>di</strong> <strong>di</strong>fferenze <strong>di</strong> colore (CR,CB), definite come:<br />

Y def<br />

= αRR + αGG + αBB, αR + αG + αB =1; αG >αR,αG >αB<br />

CB(U) ∝ B − Y<br />

CR(V ) ∝ R − Y<br />

4.2 Un’immagine rappresentata in forma <strong>di</strong>gitale é definita su un supporto <strong>di</strong>screto e finito; anche le informazioni<br />

<strong>di</strong> colore sono rappresentate in forma numerica me<strong>di</strong>ante un numero finito <strong>di</strong> bit per campione, con un livello <strong>di</strong><br />

qualitá visuale <strong>di</strong>pendente dal numero <strong>di</strong> bit prescelto. Quando un’immagine é rappresentata nella forma luminanzacrominanze,<br />

é possibile sfruttare la circostanza che l’apparato visivo umano é meno sensibile ai dettagli dell’informazione<br />

<strong>di</strong> crominanza rispetto a quanto lo sia ai dettagli dell’informazione <strong>di</strong> luminanza. Pertanto la frequenza <strong>di</strong><br />

4.1 Molto utilizzata é anche la definizione <strong>di</strong> sorgenti (RN,GN ,BN) definita dal National Television Systems Committee (NTSC) (1950).<br />

4.2 La definizione piú comune (NTSC, ITU-R BT.601, ITU-R BT.709, JFIF, SMPTE) <strong>di</strong> luminanza pone αR =0.299,αG =0.587,αB =<br />

0.114.<br />

29


30 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

campionamento spaziale puó essere <strong>di</strong>versa per le <strong>di</strong>verse componenti, ed in particolare ridotta per le componenti <strong>di</strong><br />

crominanza.<br />

I principali standard internazionali che definiscono le modalitá <strong>di</strong> rappresentazione delle immagini sono le Raccomandazioni<br />

ITU-R BT 601 (anche nota come CCIR 601) e ITU-R BT 609. Tali raccomandazioni definiscono<br />

alcune modalitá <strong>di</strong> rappresentazione <strong>di</strong> immagini a colori su un dominio <strong>di</strong>screto, che tipicamente prevedono un<br />

sottocampionamento per la componenti <strong>di</strong> crominanza e <strong>di</strong>fferiscono per le posizioni relative delle griglie <strong>di</strong> campionamento<br />

delle <strong>di</strong>verse componenti. Le piú <strong>di</strong>ffuse modalitá <strong>di</strong> sottocampionamento sono riportate in Tab. 4.1. Nella<br />

rappresentazione luminanza/crominanze, inoltre, é usuale quantizzare con un numero maggiore <strong>di</strong> bit i campioni <strong>di</strong><br />

luminanza (ad es. 8 bit) e con un numero minore i campioni delle crominanze (ad es. 4 bit).<br />

Nome Caratteristiche<br />

Modalitá <strong>di</strong> sottocampionamento<br />

4:4:4 Ognuno dei tre canali presenta lo stesso sampling rate, ovvero a 4 campioni<br />

<strong>di</strong> luminanza corrispondono 4+4=8 campioni <strong>di</strong> crominanza<br />

4:2:2 I canali <strong>di</strong> crominanza sono sottocampionati <strong>di</strong> un fattore 2 nella <strong>di</strong>rezione<br />

orizzontale, ovvero a 4 campioni <strong>di</strong> luminanza corrispondono 2+2=4<br />

campioni <strong>di</strong> crominanza<br />

4:2:0 I canali <strong>di</strong> crominanza sono sottocampionati <strong>di</strong> un fattore 2 sia nella <strong>di</strong>rezione<br />

orizzontale che nella <strong>di</strong>rezione verticale, ovvero a 4 campioni <strong>di</strong> luminanza<br />

corrispondono 2 campioni <strong>di</strong> crominanza<br />

Tabella 4.1: Modalitá <strong>di</strong> sottocampionamento piú <strong>di</strong>ffuse nell’elaborazione <strong>di</strong> immagini e sequenze video.


4.1. PRINCIPI DI CODIFICA DI IMMAGINI FISSE 31<br />

Trasformata Coseno Discreta (DCT) <strong>di</strong> sequenze <strong>di</strong> lunghezza finita<br />

La Trasformata Coseno Discreta <strong>di</strong> una sequenza xn <strong>di</strong> lunghezza finita N consiste nella rappresentazione della<br />

sequenza come sovrapposizione <strong>di</strong> N sequenze b (k)<br />

n <strong>di</strong> lunghezza finita N, che costituiscono una base ortonormale:<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

b (0)<br />

n<br />

b (k)<br />

n =<br />

= 1<br />

√ N ,n=0, ···N − 1<br />

<br />

2<br />

N cos<br />

<br />

2π k<br />

<br />

(n +1/2) ,n=0, ···N − 1; k =1, ···N − 1<br />

2N<br />

I coefficienti DCT sono calcolati come prodotto scalare della sequenza con i vettori della base, ovvero<br />

<br />

X0 = 1<br />

N−1<br />

√ xn<br />

N<br />

Xk =<br />

n=0<br />

N−1<br />

2 <br />

N<br />

n=0<br />

La trasformata é invertita dalla equazione <strong>di</strong> sintesi<br />

xn =<br />

<br />

xn cos 2π k<br />

<br />

(n +1/2) , k =0, ···N − 1<br />

2N<br />

<br />

1<br />

N X0<br />

N−1<br />

2 <br />

<br />

+ Xk cos 2π<br />

N<br />

k<br />

<br />

(n +1/2) , n =0, ···N − 1<br />

2N<br />

k=1<br />

Grazie alla ortogonalitá degli elementi della base, la migliore approssimazione (nel senso quadratico me<strong>di</strong>o) <strong>di</strong> xn<br />

nel sottospazio generato da un sottoinsieme <strong>di</strong> sequenze della base, si ottiene troncando la sommatoria agli elementi<br />

<strong>di</strong> tale sottoinsieme, e conservando i coefficienti Xk relativi a tali elementi. Inoltre, poiché le sequenze {b (k)<br />

n } sono<br />

a norma unitaria, la trasformazione conserva l’energia della sequenza nel dominio trasformato.<br />

La DCT coincide con la trasformata <strong>di</strong> Karhounen Loeve a per processi <strong>di</strong> Markov <strong>di</strong> or<strong>di</strong>ne 1.<br />

aLa trasformazione KLT <strong>di</strong> un insieme <strong>di</strong> sequenze aleatorie x <strong>di</strong> lunghezza finita N utilizza la base ortonormale <strong>di</strong> rappresentazione<br />

φi,i=1, ···N che minimizza l’errore quadratico me<strong>di</strong>o commesso rappresentando in modo approssimato la sequenza x = N i=0 xiφi con<br />

una sequenza ˆx = M i=0 xiφi + N i=M+1 ciφi, ovvero la sequenza ottenuta conservando un numero fissato M < N <strong>di</strong> coefficienti e<br />

sosituendo i rimanenti con opportuni valori costanti. Si puó <strong>di</strong>mostrare che i vettori della base ortonormale (φi H · φh = δij) e i valori dei<br />

coefficienti ci,i =1, ···N che minimizzano l’errore quadratico me<strong>di</strong>o E ||x − ˆx|| 2 N =E i=M+1 (xi − ci) 2<br />

<br />

risolvono l’equazione<br />

E (x − E {x}) · (x − E {x}) H φi = λiφi, ovvero sono gli autovettori della matrice <strong>di</strong> covarianza delle sequenze in questione, e i valori<br />

costanti sono pari a ci =E{xi} =E{x} H φi,i =1, ···N. Per processi <strong>di</strong> Markov <strong>di</strong> or<strong>di</strong>ne 1 gli autovettori della matrice <strong>di</strong> covarianza,<br />

ovvero i vettori della base KLT, concidono con i vettori della base DCT.<br />

A titolo puramente esemplificativo, la figura rappresenta la trasformata ottima <strong>di</strong> una v.a. Gaussiana bi<strong>di</strong>mensionale x =[x1,x2] T <strong>di</strong> valor<br />

me<strong>di</strong>o nullo mx =[0, 0] T <br />

<br />

2 1<br />

1<br />

e matrice <strong>di</strong> covarianza Kx =<br />

. La ddp risulta px =<br />

exp −<br />

1 2<br />

2π det(Kx) 1/2 1<br />

2 xT K −1<br />

<br />

x x . Gli<br />

√<br />

1/ 2<br />

autovettori sono b1 =<br />

1/ √ <br />

√<br />

−1/ 2<br />

, relativo all’autovalore λ1 =3,eb2 =<br />

2<br />

1/ √ <br />

, relativo all’autovalore λ2 =1. Le componenti<br />

2<br />

Xi = xT bi, i=1, 2 sono incorrelate (E {X1 X2} =0) ed hanno rispettivamente varianza E X2 <br />

1 =3, E X2 2 =1.<br />

.


32 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

Figura 4.1: Esempio <strong>di</strong> trasformata ottima: x =[x1,x2] T v.a. Gaussiana bi<strong>di</strong>mensionale <strong>di</strong> valor me<strong>di</strong>o nullo e matrice <strong>di</strong><br />

covarianza K x.<br />

4.2 Rappresentazione dell’immagine nel dominio DCT<br />

Il principio fondamentale su cui si basa la co<strong>di</strong>fica <strong>di</strong> immagini fisse é la rappresentazione dell’immagine o <strong>di</strong> sue<br />

parti in un dominio trasformato, che goda <strong>di</strong> alcune caratteristiche fondamentali:<br />

• la trasformazione operi la compattazione dell’energia in pochi coefficienti;<br />

• i coefficienti che rappresentano l’immagine nel dominio trasformato abbiano <strong>di</strong>fferente rilevanza soggettiva,<br />

cos´ che su <strong>di</strong> essi possa essere operata una quantizzazione mirata a ridurre i bit assegnati ai coefficienti meno<br />

significativi;<br />

Poiché pressoché tutti i principali standard <strong>di</strong> co<strong>di</strong>fica <strong>di</strong> immagine operano la trasformazione su blocchi quadrati<br />

NxN, assumeremo subito questo come caso <strong>di</strong> riferimento. Consideriamo il blocco NxN come elemento <strong>di</strong> uno<br />

spazio vettoriale. La trasformazione del blocco puó essere interpretata come rappresentazione del blocco stesso in<br />

una opportuna base dello spazio vettoriale. Gli elementi della base sono a loro volta particolari blocchi NxN. La base<br />

piú utilizzata é quella relativa alla Trasformata Coseno Discreta (DCT), i cui elementi sono NxN blocchi, ciascuno<br />

<strong>di</strong> <strong>di</strong>mensione NxN:<br />

b (k1,k2)<br />

<br />

def<br />

2πk1(n1 +1/2) 2πk2(n2 +1/2)<br />

DCT [n1,n2] = α(k1)α(k2)cos<br />

cos<br />

,<br />

2N<br />

2N<br />

n1,n2 =0, ···N − 1, k1,k2 =0, ···N − 1


4.2. RAPPRESENTAZIONE DELL’IMMAGINE NEL DOMINIO DCT 33<br />

con α(0) def<br />

<br />

1 = N<br />

e α(k) =<br />

2<br />

N<br />

per 1 ≤ k ≤ N − 1.<br />

Come si vede il singolo elemento della base DCT é una funzione separabile, costituita dal prodotto <strong>di</strong> funzioni<br />

sinusoidali, con una perio<strong>di</strong>citá variabile con l’in<strong>di</strong>ce k. I fattori α(k) assicurano l’ortonormalitá della base.<br />

Figura 4.2: <strong>Immagini</strong> della base DCT.<br />

I coefficienti dello sviluppo del blocco <strong>di</strong> <strong>di</strong>mensione NxN x[n1,n2] si determinano calcolando il prodotto scalare<br />

con le relative funzioni della base:<br />

X DCT [k1,k2] = def<br />

N−1 <br />

=<br />

e a partire da essi é possibile sintetizzare il blocco originario<br />

N−1 <br />

x[n1,n2]b<br />

n1=0 n2=0<br />

(k1,k2)<br />

DCT [n1,n2]


34 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

x[n1,n2] =<br />

N−1 <br />

N−1 <br />

X<br />

k1=0 k2=0<br />

(DCT) [k1,k2]b (k1,k2)<br />

DCT [n1,n2]<br />

La trasformata DCT offre interessanti proprietá <strong>di</strong> compattazione dell’energia nelle componenti a bassa frequenza,<br />

ovvero nei coefficienti XDCT [k1,k2] <strong>di</strong> basso in<strong>di</strong>ce.<br />

La trasformazione ottima dal punto <strong>di</strong> vista della capacitá <strong>di</strong> compattare l’energia <strong>di</strong> immagini aleatorie é nota<br />

come trasformata <strong>di</strong> Karhounen Loeve (KLT) e <strong>di</strong>pende dalle caratteristiche statistiche <strong>di</strong> autocorrelazione esibite dalle<br />

immagini stesse. Per particolari classi <strong>di</strong> immagini stocastiche (campi <strong>di</strong> Markov <strong>di</strong> or<strong>di</strong>ne 1), la KLT coincide con la<br />

DCT. Poiché una vasta classe <strong>di</strong> immagini naturali é ben approssimata da tale modello stocastico, si deduce che per tali<br />

immagini la DCT é una buona approssimazione della trasformazione ottima. La compattazione dell’energia operata<br />

dall’applicazione della DCT a blocchi 8x8 <strong>di</strong> immagini naturali é stata la tecnologia abilitante per la compressione<br />

<strong>di</strong> imagini fisse ed anche in larga misura per la compressione <strong>di</strong> sequenze video. Tale approccio é stato affiancato<br />

da approcci <strong>di</strong>fferenti solo nei piú recenti standard <strong>di</strong> co<strong>di</strong>fica (JPEG2000 per immagini fisse e H.264 per sequenze<br />

video).<br />

Dal punto <strong>di</strong> vista operativo osserviamo che la Trasformata DCT puó essere calcolata me<strong>di</strong>ante strutture computazionali<br />

estremamente efficienti. Poiché utilizza funzioni cosinusoidali, cioé a valori reali, le <strong>di</strong>verse implementazioni<br />

presenteranno <strong>di</strong>fferenze numeriche che rendono la trasformazione non perfettamente invertibile se operata con calcolatori<br />

con <strong>di</strong>fferente precisione e struttura <strong>di</strong> calcolo. Pertanto, gli standard che utilizzano tale trasformata specificano<br />

i limiti <strong>di</strong> accuratezza numerica che devono essere rispettati al fine <strong>di</strong> garantire l’interoperabilitá fra sistemi dotati <strong>di</strong><br />

realizzazioni numeriche <strong>di</strong>fferenti.<br />

4.2.1 Riduzione <strong>di</strong> ridondanza psicovisuale me<strong>di</strong>ante quantizzazione<br />

Le immagini naturali hanno un contenuto energetico prevalentemente rappresentato da basse frequenze. Pertanto, non<br />

tutti i coefficienti relativi alle alte frequenze sono <strong>di</strong>versi da zero. Inoltre, il sistema visivo umano è meno sensibile<br />

alle alte frequenze, che contengono l’informazione relativa ai dettagli fini, alla tessitura, piuttosto che alle basse.<br />

Pertanto, i coefficienti alle alte frequenze possono essere quantizzati con un limitato numero <strong>di</strong> bit, senza introdurre<br />

una <strong>di</strong>storsione sensibile dal punto <strong>di</strong> vista psicovisuale. Al limite, alcuni coefficienti possono essere scartati, senza<br />

che l’errore <strong>di</strong> ricostruzione sia soggettivamente percepibile.<br />

Al contrario, i coefficienti alle basse frequenze necessitano <strong>di</strong> una migliore rappresentazione; fra questi, il coefficiente<br />

X (DCT) [0, 0], che rappresenta il valore me<strong>di</strong>o della componente nel blocco osservato (coefficiente DC) riveste<br />

la maggiore importanza visuale e necessita della quantizzazione piú fine.<br />

4.3 Lo standard JPEG<br />

La struttura essenziale <strong>di</strong> un co<strong>di</strong>ficatore JPEG è mostrata nella Fig.4.3, che rappresenta la modalitá <strong>di</strong> co<strong>di</strong>fica <strong>di</strong><br />

base, detta modalitá sequenziale, e che consta <strong>di</strong> tre passi fondamentali, ovvero<br />

• rappresentazione dei dati in un dominio trasformato<br />

• quantizzazione<br />

• co<strong>di</strong>fica entropica


4.3. LO STANDARD JPEG 35<br />

Figura 4.3: Schema del <strong>Co<strong>di</strong>fica</strong>tore JPEG<br />

Ogni componente (luminanza, crominanze) dell’immagine da co<strong>di</strong>ficare è sud<strong>di</strong>visa in blocchetti da 8x8 pixel4.3 .<br />

Ciascuno <strong>di</strong> questi blocchetti è trasformato me<strong>di</strong>ante DCT, senza per<strong>di</strong>ta <strong>di</strong> informazione. I 64 coefficienti DCT sono<br />

applicati all’ingresso del quantizzatore. Tipicamente, tra i 64 coefficienti DCT assumono valore significativamente<br />

<strong>di</strong>verso da zero solo quelli relativi alle frequenze spaziali piú basse.<br />

Figura 4.4: Sud<strong>di</strong>visione dell’immagine in blocchi 8x8 e relativa DCT<br />

A ciascun coefficiente DCT X (DCT) [k1,k2] é associato uno specifico passo <strong>di</strong> quantizzazione Q[k1,k2], che<br />

rappresenta l’ampiezza dell’intervallo <strong>di</strong> quantizzazione adottato nella quantizzazione uniforme del coefficiente <strong>di</strong><br />

4.3La <strong>di</strong>mensione 8x8 dell’elemento <strong>di</strong> immagine da trasformare é la stessa per tutte le componenti anche quando le crominanze siano<br />

sottocampionate rispetto all’immagine originale.


36 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

in<strong>di</strong>ci [k1,k2]. Tale passo é inversamente crescente con l’importanza visuale. I livelli <strong>di</strong> quantizzazione dei coefficienti<br />

corrispondenti alle alte frequenze spaziali sono tipicamente relativamente gran<strong>di</strong>. Per ogni coefficiente é operata una<br />

quantizzazione uniforme con intervalli <strong>di</strong> quantizzazione pari Q[k1,k2]: :<br />

˜X (DCT) <br />

(DCT) X [k1,k2]<br />

[k1,k2] =round<br />

, k1,k2 =0, ···, 7<br />

Q[k1,k2]<br />

Si osservi che quando un coefficiente DCT assume valori minori del relativo passo <strong>di</strong> quantizzazione, a valle della<br />

quantizzazione esso é rappresentato da un valore nullo.<br />

Lo standard consente la scelta degli 8x8 valori dei passi <strong>di</strong> quantizzazione, che sono inseriti nei dati co<strong>di</strong>ficati.<br />

A titolo esemplificativo, nello standard sono inseriti i valori riportati in Tabella 4.3; tali valori possono essere scalati<br />

tramite un fattore moltiplicativo scalare, al fine <strong>di</strong> bilanciare le prestazioni del co<strong>di</strong>ficatore in termini <strong>di</strong> efficienza <strong>di</strong><br />

compressione e <strong>di</strong> qualitá.<br />

Luminanza (Y )<br />

16 11 10 16 24 40 51 61<br />

12 12 14 19 26 58 60 55<br />

14 13 16 24 40 57 69 56<br />

14 17 22 29 51 87 80 62<br />

18 22 37 56 68 109 103 77<br />

24 35 55 64 81 104 113 92<br />

49 64 78 87 103 121 120 101<br />

72 92 95 98 112 100 103 99<br />

Crominanza (CRCB)<br />

17 18 24 47 66 99 99 99<br />

18 21 26 66 99 99 99 99<br />

24 26 56 99 99 99 99 99<br />

47 66 99 99 99 99 99 99<br />

66 99 99 99 99 99 99 99<br />

99 99 99 99 99 99 99 99<br />

99 99 99 99 99 99 99 99<br />

99 99 99 99 99 99 99 99<br />

Tabella 4.2: Tabelle dei passi <strong>di</strong> quantizzazione Q[k 1,k2] suggerite nello standard JPEG.<br />

A valle della quantizzazione, ciascun blocco 8x8 ´dell’immagine originale é rappresentato da un blocchetto DCT<br />

i cui coefficienti sono stati quantizzati in base a criteri <strong>di</strong> rilevanza psicovisuale. La Trasformata DCT ha operato un<br />

compattamento dell’energia e la quantizzazione adattativa ha rimosso le componenti ad alta frequenza percettivamente<br />

irrilevanti. Pertanto, ciascun blocco presenta una struttura tipica in cui la grande maggioranza dei coefficienti sono<br />

nulli, e i pochi coefficienti non nulli sono concentrati alle basse frequenze. Inoltre, esiste una correlazione residua fra<br />

trasformate <strong>di</strong> blocchi spazialmente a<strong>di</strong>acenti. In particolare, i coefficienti ˜X (DCT) [0, 0], valutati su blocchi a<strong>di</strong>acenti,<br />

sono molto correlati, dal momento che rappresentano il valor me<strong>di</strong>o <strong>di</strong> luminanza <strong>di</strong> regioni a<strong>di</strong>acenti <strong>di</strong> un immagine<br />

naturale. La struttura dei blocchi DCT e la correlazione fra blocchi a<strong>di</strong>acenti é sfruttata al fine <strong>di</strong> compattare<br />

l’informazione trasmessa.<br />

Per ciøche concerne i coefficienti ˜X (DCT) [0, 0] <strong>di</strong> ciascun blocco 8x8, é co<strong>di</strong>ficata e trasmessa la <strong>di</strong>fferenza fra<br />

il coefficiente quantizzato DC del blocco corrente e il coefficiente quantizzato del blocco precedente. Tale valore<br />

ha una <strong>di</strong>namica nominalmente maggiore, ma tipicamente piú piccola del coefficiente originale, e pertanto richiede<br />

meno bit per essere trasmessa con la stessa <strong>di</strong>storsione me<strong>di</strong>a sul valore ricostruito.<br />

I coefficienti ˜X (DCT) [k1,k2], (k1,k2) = (0, 0) (coefficienti AC) sono scan<strong>di</strong>ti in un or<strong>di</strong>ne tale da esplorare prima<br />

le basse frequenze orizzontali e verticali e successivamente le alte frequenze.<br />

Adottando questa scansione, l’informazione si presenta come alternanza <strong>di</strong> coefficienti <strong>di</strong>versi da zero e <strong>di</strong> successione<br />

<strong>di</strong> coefficienti nulli (corse <strong>di</strong> zeri). I coefficienti tipicamente <strong>di</strong>versi da zero si addensano all’inizio della<br />

scansione, successivamente i coefficienti non nulli tendono ad essere separati da corse <strong>di</strong> zeri via via piú lunghe, ed


4.3. LO STANDARD JPEG 37<br />

Figura 4.5: Coefficienti DC ed AC, preparazione alla co<strong>di</strong>fica<br />

alla fine della scansione pressoché tutti i coefficienti risultano nulli. Pertanto, l’informazione puó essere co<strong>di</strong>ficata<br />

trasmettendo i valori dei coefficienti nel caso che questi siano <strong>di</strong>versi da zero, e la lunghezza delle corse nel caso <strong>di</strong><br />

coefficienti nulli. In particolare, il blocco é descritto co<strong>di</strong>ficando l’ampiezza (AMPLITUDE) <strong>di</strong> ciascun coefficiente<br />

AC non nullo congiuntamente alla lunghezza della corsa <strong>di</strong> coefficienti nulli (RUNLENGTH) che lo precedono nella<br />

sequenza. In linea <strong>di</strong> principio, i coefficienti DCT presentano una <strong>di</strong>namica piú elevata rispetto ai coefficienti dell’immagine<br />

<strong>di</strong> partenza4.4 e co<strong>di</strong>ficare l’ampiezza <strong>di</strong> ciascun ˜X (DCT) [k1,k2] con il massimo numero <strong>di</strong> bit richiesto dalla<br />

<strong>di</strong>namica sarebbe <strong>di</strong>spen<strong>di</strong>oso. Pertanto, al fine <strong>di</strong> limitare al minimo il numero <strong>di</strong> bit utilizzato per rappresentare<br />

ciascun coefficiente il campo AMPLITUDE presenta lunghezza variabile; tale informazione (SIZE) deve essere anch’essa<br />

co<strong>di</strong>ficata e trasmessa al deco<strong>di</strong>ficatore. In definitiva, una corsa <strong>di</strong> zeri terminata da un coefficiente non nullo<br />

é descritta dai tre parametri (RUNLENGTH, SIZE, AMPLITUDE). Per i motivi sovra esposti, il valore <strong>di</strong>fferenziale<br />

del coefficiente DC é descritto dai due parametri (SIZE, AMPLITUDE).<br />

La coppia (RUNLENGTH, SIZE) é rappresentata tramite una parola <strong>di</strong> co<strong>di</strong>ce a lunghezza variabile (Variable<br />

Length Code, VLC). Il co<strong>di</strong>ce é costruito me<strong>di</strong>ante co<strong>di</strong>fica <strong>di</strong> Huffmann, rappresentando cioé con un minor numero<br />

<strong>di</strong> bit i simboli (RUNLENGTH, SIZE) piú frequenti e con un maggior numero <strong>di</strong> bit i simboli meno frequenti. Le<br />

tavole della co<strong>di</strong>fica <strong>di</strong> Huffmann sono co<strong>di</strong>ficate e comunicate al deco<strong>di</strong>ficatore. L’intero che rappresenta il valore<br />

del campo AMPLITUDE é rappresentato ancora da un co<strong>di</strong>ce a lunghezza variabile (Variable Length Integer, VLI).<br />

Il co<strong>di</strong>ce VLI non é realizzato me<strong>di</strong>ante co<strong>di</strong>fica <strong>di</strong> Huffmann, ma assegna parole piú lunghe ai valori <strong>di</strong> ampiezza<br />

piú elevati, in<strong>di</strong>pendentemente dalla frequenza <strong>di</strong> occorrenza relativa.<br />

Il deco<strong>di</strong>ficatore sulla base delle tavole della co<strong>di</strong>fica <strong>di</strong> Huffmann opera la deco<strong>di</strong>fica dell’ampiezza dei livelli<br />

quantizzati dei coefficienti DCT. I coefficienti ˜ X (DCT) [0, 0] sono ricostruiti a partire dalle <strong>di</strong>fferenze. Quin<strong>di</strong>, sulla<br />

base dei passi Q[k1,k2] nelle matrici <strong>di</strong> quantizzazione, ciascun livello quantizzato ˜X (DCT) [k1,k2] é riportato alla<br />

4.4I coefficienti DCT sono calcolati come X (DCT) [k1,k2] ∝ (1/ √ N) × (1/ √ N) × N−1 N−1 n1=0 n2=0 (···) N × (···). Per N =8=23 ,<br />

se i valori dell’immagine sono rappresentati in virgola fissa a 8 bit/pixel, la rappresentazione <strong>di</strong> ciascun coefficiente DCT richiede 11 bit. Per<br />

immagini ad alta qualitá a 12 bit/pixel (ad es. immagini me<strong>di</strong>che, ad elevato contenuto <strong>di</strong>agnostico), ciascun coefficiente DCT richiede 15 bit.


38 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

<strong>di</strong>namica originale ˜X (DCT) [k1,k2] · Q[k1,k2]. La trasformazione IDCT opera il calcolo della Trasformata Coseno<br />

Discreta Inversa. I blocchi 8x8 ricostruiti sono giustapposti spazialmente generando l’immagine deco<strong>di</strong>ficata.<br />

L’algoritmo <strong>di</strong> co<strong>di</strong>fica sovraesposto, detto JPEG in modalitá sequenziale, prevede delle varianti che sono utili<br />

in tutte le applicazioni in cui si voglia trasferire rapidamente una versione a bassa qualità dell’immagine, e.g. per<br />

renderla subito visibile all’utente, raffinandola poi in passi successivi.<br />

Modalitá Progressiva.<br />

Per ciascun blocco 8x8 non sono trasmessi in un colpo solo tutti i coefficienti quantizzati, e per ciascun coefficiente<br />

tutti i bit, ma l’immagine é trasmessa in modo progressivo. Alla prima iterazione puøessere trasmesso solo un sottoinsieme<br />

dei coefficienti AC per ciascun blocco; tale approccio prende il nome <strong>di</strong> selezione spettrale. In contemporanea<br />

o in alternativa alla selezione spettrale, é possibile trasmettere solo i bit piú significativi <strong>di</strong> ciascun coefficiente;<br />

tale approccio é detto ad approssimazioni successive. Ricevuta questa descrizione sommaria <strong>di</strong> tutti i blocchetti, il<br />

deco<strong>di</strong>ficatore puó deco<strong>di</strong>ficare una versione grossolana dell’immagine co<strong>di</strong>ficata, raffinandola successivamente mano<br />

mano che informazioni <strong>di</strong> maggiore dettaglio sono ricevute. La scelta del numero dei coefficienti DCT e dei bit da<br />

considerare nelle scansioni progressive é lasciato all’implementazione.<br />

Figura 4.6: Selezione spettrale (caso <strong>di</strong> co<strong>di</strong>fica senza per<strong>di</strong>te): prima scansione (sinistra), seconda scansione(centro), ultima<br />

scansione (destra).<br />

Figura 4.7: Approssimazioni successive (caso <strong>di</strong> co<strong>di</strong>fica senza per<strong>di</strong>te): prima scansione (sinistra), seconda scansione(centro),<br />

ultima scansione (destra).


4.4. LO STANDARD JPEG 2000 39<br />

Modalitá Gerarchica<br />

Nella modalitá gerarchica l’immagine non é trasmessa <strong>di</strong>rettamente alla massima risoluzione; al contrario, sono<br />

co<strong>di</strong>ficate e trasmesse versioni dell’immagine caratterizzate da risoluzione ridotta ma via via crescente, fino alla risoluzione<br />

desiderata. Tali versioni sono ottenute filtrando passabasso (cioé sfocando) e sottocampionando 4.5 l’immagine<br />

originale.<br />

Quando riceve le versioni meno risolute, il deco<strong>di</strong>ficatore le deco<strong>di</strong>fica e le interpola per riportarle alle <strong>di</strong>mensioni<br />

originali. In tal modo, é subito <strong>di</strong>sponibile al deco<strong>di</strong>ficatore una versione sfocata, e compressa, dell’immagine<br />

originale. Via via che le nuove versioni sono rese <strong>di</strong>sponibili al deco<strong>di</strong>ficatore, é ricostruita un’immagine piú<br />

risoluta e piú focalizzata, fino all’ultima versione che é alla risoluzione dell’immagine originale. Per ovvie questioni<br />

<strong>di</strong> efficienza, una volta co<strong>di</strong>ficata la prima versione sottocampionata (sfocata) dell’immagine, il co<strong>di</strong>ficatore non<br />

co<strong>di</strong>ficherá <strong>di</strong>rettamente la versione piú risoluta (focalizzata), ma solamente la <strong>di</strong>fferenza residua tra le due. Si noti<br />

che se il residuo finale é co<strong>di</strong>ficato senza per<strong>di</strong>te, anche lo schema complessivo risulta senza per<strong>di</strong>te.<br />

Figura 4.8: Aumento <strong>di</strong> risoluzione (caso <strong>di</strong> co<strong>di</strong>fica senza per<strong>di</strong>te): risoluzione 1/4 (sinistra), risoluzione 1/2 (centro), risoluzione<br />

1/1 (destra).<br />

Modalità Senza Per<strong>di</strong>ta<br />

Tale modalitá non prevede quantizzazione ma solo opportuna co<strong>di</strong>fica senza per<strong>di</strong>ta dei coefficienti DCT, basata<br />

su una tecnica <strong>di</strong> co<strong>di</strong>fica pre<strong>di</strong>ttiva. É utilizzata in particolari applicazioni in cui non é tollerabile alcun tipo <strong>di</strong><br />

degradazione dell’immagine (immagini me<strong>di</strong>che, telesorveglianza).<br />

4.4 Lo standard JPEG 2000<br />

Lo standard JPEG 2000 si basa su<br />

• rappresentazione dell’immagine in un dominio trasformato (dominio wavelet)<br />

• quantizzazione dei coefficienti<br />

• opportuno or<strong>di</strong>namento e co<strong>di</strong>fica entropica dei coefficienti stessi ai fini della trasmissione<br />

4.5 Il filtraggio è necessario per evitare l’introduzione <strong>di</strong> <strong>di</strong>storsione da aliasing, visibile come una seghettatura dei bor<strong>di</strong>, nella successiva<br />

operazione <strong>di</strong> decimazione.


40 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

Al fine <strong>di</strong> rendere l’algoritmo adattabile a immagini <strong>di</strong> <strong>di</strong>mensione <strong>di</strong>fferente, contenendo la complessitá del<br />

calcolo, il JPEG2000 prevede la partizione dell’immagine in rettangoli non sovrapposti (Tiles), co<strong>di</strong>ficati in<strong>di</strong>pendentemente<br />

e accessibili separatamente a livello <strong>di</strong> bitstream co<strong>di</strong>ficato. Nel caso <strong>di</strong> immagini multi componente<br />

campionate a risoluzione <strong>di</strong>versa per ciascuna componente, i tile hanno <strong>di</strong>mensioni <strong>di</strong>fferenti sulle <strong>di</strong>verse componenti4.6<br />

. Nel seguito, supporremo che l’immagine sia descritta da un solo Tile; in presenza <strong>di</strong> piú Tiles, quanto descritto<br />

in seguito é ripetuto per ogni Tile.<br />

Rappresentazione dell’immagine nel dominio wavelet<br />

Il dominio trasformato é generato me<strong>di</strong>ante applicazione ricorsiva all’immagine originale I <strong>di</strong> <strong>di</strong>mensione NxN, <strong>di</strong><br />

quattro filtri. Ciascun filtro realizza un filtraggio in <strong>di</strong>rezione orizzontale (passabasso o passaalto) e un filtraggio in<br />

<strong>di</strong>rezione verticale (passabasso o passaalto). Si generano cos´ quattro versioni dell’immagine, a seconda del filtraggio<br />

applicato. I filtraggi sono seguiti da un sottocampionamento <strong>di</strong> un fattore due in <strong>di</strong>rezione orizzontale e <strong>di</strong> un<br />

fattore due in <strong>di</strong>rezione verticale. A valle del filtraggio e del sottocampionamento, sono <strong>di</strong>sponibili quattro versioni<br />

<strong>di</strong> <strong>di</strong>mensioni N/2 × N/2 =N 2 /4 dell’immagine applicata all’ingresso del filtro, che <strong>di</strong>fferiscono a seconda dei<br />

filtraggi applicati: ILH ,LV , ILH ,HV , IHH ,LV , IHH ,HV . Ciascuna <strong>di</strong> queste versioni, a causa del sottocampionamento,<br />

ha <strong>di</strong>mensioni ridotte <strong>di</strong> un fattore 1 1 1<br />

× = rispetto all’immagine d’ingresso. Il numero complessivo <strong>di</strong> punti é pari<br />

2 2 4<br />

a quello dell’immagine <strong>di</strong> ingresso. Le componenti in alta frequenza rappresentano dettagli spazialmente meno visibili<br />

<strong>di</strong> quelli in bassa frequenza. Pertanto questa rappresentazione consente <strong>di</strong> evidenziare componenti visualmente piú<br />

rilevanti. La domanda che si pone é: l’immagine <strong>di</strong> partenza puó essere ricostruita a partire dagli NxN coefficienti cos´<br />

ottenuti? In effetti é possibile scegliere i filtri <strong>di</strong> analisi hLL,hLH,hHL,hHH in modo che l’immagine originaria sia<br />

ricostruita interpolando opportunamente e sovrapponendo i contributi delle <strong>di</strong>verse sottobande. Lo standard prevede<br />

due possibili implementazioni dei filtri, con <strong>di</strong>versi coefficienti; in particolare il filtraggio puó essere a coefficienti<br />

interi e frazionari, e pertanto perfettamente reversibile, oppure a coefficienti reali, e pertanto irreversibile a causa <strong>di</strong><br />

<strong>di</strong>fferenze <strong>di</strong> implementazione numerica (ovvero reversibile nei limiti dell’approssimazione numerica uilizzata).<br />

Operata questa rappresentazione dell’immagine originale, é possibile applicare nuovamente la procedura <strong>di</strong> filtraggio<br />

e sottocampionamento all’immagine ILH ,LV , che altro non rappresenta se non una versione a minore risoluzione<br />

(<strong>di</strong> un fattore 1/2 × 1/2) dell’immagine originale. Applicando i filtraggi passabasso e passaalto orizzontale<br />

e verticale a ILH ,LV e sottocampionando, essa sará a sua volta ripartita in quattro rappresentazioni <strong>di</strong> <strong>di</strong>mensione<br />

N/4 × N/4 =N 2 /16. Anche a questo livello della decomposizione, l’immagine ottenuta me<strong>di</strong>ante filtraggio<br />

passabasso alle basse frequenze orizzontali e verticali rappresenta una versione a risoluzione ridotta (<strong>di</strong> un fattore<br />

1/4 × 1/4) dell’immagine originale. Il filtraggio e il sottocampionamento sono applicati iterativamente all’immagine,<br />

e possono essere interpretati come un’operazione <strong>di</strong> trasformazione4.7che conduce ad un dominio in cui i coefficienti<br />

hanno <strong>di</strong>versa importanza visuale.<br />

Quantizzazione<br />

Dopo la trasformazione, i coefficienti sono quantizzati uniformemente. Lo standard prevede un <strong>di</strong>fferente passo <strong>di</strong><br />

quantizzazione per ogni sottobanda. La quantizzazione puó essere reversibile, se il passo é scelto pari ad uno. Tuttavia,<br />

pure operando la scelta del passo <strong>di</strong> quantizzazione pari ad uno, la co<strong>di</strong>fica puó essere con per<strong>di</strong>ta. Infatti mentre<br />

4.6La <strong>di</strong>mensione del Tile sulle <strong>di</strong>verse componenti é adattata in modo da mantenere la corrispondenza spaziale fra le rappresentazioni in<br />

sottobande delle <strong>di</strong>verse componenti.<br />

4.7E’ possibile <strong>di</strong>mostrare che tale rappresentazione costituisce una Discret Wavelet Transform dell’immagine originale.


4.4. LO STANDARD JPEG 2000 41<br />

Figura 4.9: Filtri passa-basso e passa alto irreversibili (9/7 Daubechies a coefficienti reali) utilizzati per il filtraggio ricorsivo<br />

lungo le righe e colonne dell’immagine originale e delle componenti in banda base.<br />

nel JPEG l’unico elemento <strong>di</strong> per<strong>di</strong>ta nello schema <strong>di</strong> co<strong>di</strong>fica é la quantizzazione, nel JPEG 2000 la compressione<br />

con per<strong>di</strong>ta puó avvenire approssimando o scartando completamente alcuni coefficienti nella fase <strong>di</strong> trasmissione.<br />

Formazione del bitstream<br />

Per ciascuna risoluzione, a valle della quantizzazione, le sottobande sono <strong>di</strong>vise in blocchi (co<strong>di</strong>ng block) <strong>di</strong><br />

<strong>di</strong>mensione tipica 64x64 o 32x32.<br />

Per ciascun blocco, i coefficienti sono scan<strong>di</strong>ti per strisce <strong>di</strong> altezza 4 e rappresentati per piani <strong>di</strong> bit, partendo<br />

dai bit piú significativi ai meno significativi. Preliminarmente ha luogo la co<strong>di</strong>fica del piano del bit piú significativo;<br />

la co<strong>di</strong>fica prosegue per ciascuno dei piani successivi, articolandosi in tre passi (significance propagation, magnitude<br />

refinement, clean-up).<br />

Per ciascun piano, sono co<strong>di</strong>ficati nell’or<strong>di</strong>ne<br />

• i bit dei coefficienti vicini a coefficienti risultati significativi nel piano precedente (fase <strong>di</strong> significance<br />

propagation )<br />

• i bit dei coefficienti risultati significativi nel piano precedente (fase <strong>di</strong> magnitude refinement )<br />

• i rimanenti bit (fase <strong>di</strong> clean-up)<br />

I bit sono co<strong>di</strong>ficati ricorrendo a tecniche piuttosto sofisticate <strong>di</strong> co<strong>di</strong>fica aritmetica basata sul contesto spaziale4.8 e<br />

runlength co<strong>di</strong>ng, che prevedono la trasmissione <strong>di</strong> apposite tavole al deco<strong>di</strong>ficatore.<br />

Il particolare or<strong>di</strong>namento dei bit co<strong>di</strong>ficati e trasmessi rispecchia un or<strong>di</strong>namento decrescente <strong>di</strong> importanza<br />

visuale. Pertanto, la co<strong>di</strong>fica con per<strong>di</strong>ta puó essere realizzata interrompendo la trasmissione ad un dato livello<br />

<strong>di</strong> risoluzione o in una data sottobanda, scartando i bit successivi. La natura dell’or<strong>di</strong>namento garantisce una<br />

quasi-ottimalitá <strong>di</strong> questa scelta, nel senso che per un’assegnata lunghezza in bit dell’informazione da trasmettere la<br />

<strong>di</strong>storsione visuale risultante sull’immagine ricostruita é ridotta al minimo.<br />

Caratteristiche innovative del JPEG 2000<br />

4.8Nella modalitá detta lazy co<strong>di</strong>ng, la co<strong>di</strong>fica aritmetica é <strong>di</strong>sabilitata sui piani <strong>di</strong> bit meno significativi, al fine <strong>di</strong> ridurre sia il costo<br />

computazionale che la sensibilitá agli errori.


42 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

• Lo standard JPEG 2000 offre una maggiore efficienza <strong>di</strong> compressione rispetto al JPEG nel senso che a paritá<br />

<strong>di</strong> bit/pixel ricostruisce l’immagine con una minore <strong>di</strong>storsione rispetto all’originale. Oltre a questo aspetto,<br />

presenta alcune pecularitá migliorative che lo rendono preferibile da un punto <strong>di</strong> vista <strong>di</strong> sistema, che saranno<br />

qui <strong>di</strong> seguito accennate.<br />

• Al fine <strong>di</strong> co<strong>di</strong>ficare un’immagine assegnando al bitstream un fissato numero <strong>di</strong> bit, é sufficiente, dopo aver<br />

fissato il parametro <strong>di</strong> quantizzazione, procedere nella co<strong>di</strong>fica troncando la trasmissione quando sia stato<br />

raggiunto la <strong>di</strong>mensione prefissata del bitstream. Nel JPEG, invece, la generazione <strong>di</strong> un co<strong>di</strong>ce <strong>di</strong> lunghezza<br />

assegnata puó essere ottenuto solo iterativamente, assegnando <strong>di</strong>versi valori del parametro <strong>di</strong> quantizzazione e<br />

verificando la lunghezza in bit ottenuta.<br />

• Il co<strong>di</strong>ce JPEG 2000, grazie alla particolare struttura a livelli successivi (embedded), gode della proprietá <strong>di</strong><br />

scalabilitá. Un co<strong>di</strong>ce é scalabile quando consente l’accesso e la deco<strong>di</strong>fica parziale del bitstream a deco<strong>di</strong>ficatori<br />

<strong>di</strong> <strong>di</strong>fferente complessitá. All’interno del co<strong>di</strong>ce JPEG 2000 é imme<strong>di</strong>ato separare i dati relativi alle<br />

<strong>di</strong>verse risoluzioni, e per una fissata risoluzione, a <strong>di</strong>versi livelli <strong>di</strong> qualitá <strong>di</strong> riproduzione. La sintassi del Code<br />

Stream prevede a questo scopo l’unitá sintattica Layer, che rappresenta i dati relativi ad un fissato livello <strong>di</strong><br />

risoluzione. All’interno <strong>di</strong> un Layer, informazioni relative alla stessa zona spaziale sono raggruppate in apposite<br />

unitá sintattiche (Packet). In particolare, un pacchetto contiene i dati co<strong>di</strong>ficati relativi a gruppi <strong>di</strong> blocchi<br />

che occupano posizioni corrispondenti nelle tre sottobande(LH,HV ), (HH,LV ) e (HH,HV ). L’insieme dei<br />

gruppi <strong>di</strong> blocchi prende il nome <strong>di</strong> precinto. Le informazioni co<strong>di</strong>ficate relative ai blocchi <strong>di</strong> un precinto<br />

cosituiscono un pacchetto all’interno dei dati co<strong>di</strong>ficati.<br />

• Lo standard JPEG 2000 abilita la co<strong>di</strong>fica <strong>di</strong>fferenziata <strong>di</strong> <strong>di</strong>fferenti regioni spaziali dell’immagine (Region<br />

Of Interest , ROI). A valle della trasformazione wavelet, tutti i coefficienti pertinenti alla ROI ad una fissata<br />

risoluzione sono moltiplicati per un fattore 2 MAX SHIFT , dove il parametro MAX SHIFT é scelto in modo<br />

che tutti i coefficienti della ROI siano al <strong>di</strong>sopra dei valori piú gran<strong>di</strong> dei coefficienti del background; in altre<br />

parole, il background é descritto sui MAX SHIFT piani <strong>di</strong> bit meno significativi e la ROI sui rimanenti piani.<br />

Quin<strong>di</strong> i coefficienti wavelet sono co<strong>di</strong>ficati insieme al valore <strong>di</strong> MAX SHIFT. Quando il deco<strong>di</strong>ficatore<br />

ricostruisce valori dei coefficienti, attribuisce alla ROI tutti quelli che superano la soglia MAX SHIFT, e<br />

pertanto dopo averli ricostruiti li scala <strong>di</strong> 2 −MAX SHIFT riconducendoli alla <strong>di</strong>namica originale. Il vantaggio<br />

<strong>di</strong> questo meccanismo <strong>di</strong> separazione dei piani <strong>di</strong> bit sta nel fatto che il deco<strong>di</strong>ficatore non necessita <strong>di</strong> una<br />

co<strong>di</strong>fica esplicita della locazione spaziale della ROI ai fini <strong>di</strong> una corretta ricostruzione.<br />

4.5 Trasmissione <strong>di</strong> immagini su canali affetti da errori<br />

Le tecniche <strong>di</strong> co<strong>di</strong>fica <strong>di</strong> immagini fisse utilizzano co<strong>di</strong>ci a lunghezza variabile, che sono intrinsecamente sensibili<br />

ad errori <strong>di</strong> trasmissione. Infatti, non essendo definita a priori la lunghezza della parola, puó accadere che un errore<br />

su un bit trasformi una parola <strong>di</strong> co<strong>di</strong>ce in un’altra parola <strong>di</strong> co<strong>di</strong>ce, <strong>di</strong> lunghezza <strong>di</strong>fferente. Il deco<strong>di</strong>ficatore,<br />

pertanto, non solo legge una parola <strong>di</strong> co<strong>di</strong>ce errata, ma riprende la deco<strong>di</strong>fica del bitstream da una posizione<br />

errata. Ció compromette la deco<strong>di</strong>fica dei dati successivi. Inoltre, succede sovente che nel leggere il bitstream a<br />

partire dalla locazione errata, il deco<strong>di</strong>ficatore incontri sequenze <strong>di</strong> bit corrispondenti a parole <strong>di</strong> co<strong>di</strong>ce ammissibili,<br />

e pertanto l’errore <strong>di</strong> deco<strong>di</strong>fica non sia rivelato imme<strong>di</strong>atamente, ma solo dopo un intervallo <strong>di</strong> latenza causato


4.5. TRASMISSIONE DI IMMAGINI SU CANALI AFFETTI DA ERRORI 43<br />

dall’errata deco<strong>di</strong>fica <strong>di</strong> alcune parole consecutive. Questo meccanismo é in<strong>di</strong>cato come per<strong>di</strong>ta <strong>di</strong> sincronismo fra<br />

il deco<strong>di</strong>ficatore e il bitstream. Le tecniche <strong>di</strong> robustezza agli errori (error resilience) mirano in primo luogo a<br />

limitare al minimo numero <strong>di</strong> bit l’effetto <strong>di</strong> per<strong>di</strong>ta del sincronismo con il bitstream. La tecnica piú comunemente<br />

usata consiste nell’inserimento <strong>di</strong> resynchronization markers (RM), cioé <strong>di</strong> parole <strong>di</strong> co<strong>di</strong>ce <strong>di</strong> lunghezza fissata, non<br />

emulabili da combinazioni <strong>di</strong> altre parole <strong>di</strong> co<strong>di</strong>ce. I RM consentono al deco<strong>di</strong>ficatore <strong>di</strong> identificare all’interno del<br />

bitstream le locazioni corrette <strong>di</strong> accesso ai dati, e pertanto abilitano il recupero del sincronismo in presenza <strong>di</strong> errori<br />

<strong>di</strong> trasmissione. Tanto il JPEG che il JPEG 2000 prevedono la possibilitá <strong>di</strong> inserire marker <strong>di</strong> risincronizzazione nei<br />

dati co<strong>di</strong>ficati.<br />

Le tecniche <strong>di</strong> co<strong>di</strong>fica <strong>di</strong> immagini fisse fanno un uso intensivo <strong>di</strong> meccanismi <strong>di</strong> pre<strong>di</strong>zione spaziale, sia nella<br />

forma <strong>di</strong> pre<strong>di</strong>zione <strong>di</strong>retta dei coefficienti, sia nella costruzione <strong>di</strong> co<strong>di</strong>ficatori con memoria, le cui tavole <strong>di</strong> co<strong>di</strong>ce<br />

cioé sono scelte in funzione dei bit giá trasmessi. La presenza <strong>di</strong> un errore pertanto compromette la deco<strong>di</strong>fica dei<br />

dati <strong>di</strong>pendenti dal dato danneggiato. Questo meccanismo <strong>di</strong> pre<strong>di</strong>zione é particolarmente rilevante nel JPEG 2000,<br />

che pertanto consente <strong>di</strong> <strong>di</strong>sabilitare almeno parzialmente la <strong>di</strong>pendenza dei co<strong>di</strong>ci aritmetici utilizzati dal contesto,<br />

migliorando la robustezza del co<strong>di</strong>ce a detrimento dell’efficienza <strong>di</strong> compressione.<br />

Lo standard JPEG 2000 prevede un’estensione del profilo base (baseline) dotato <strong>di</strong> apposite funzionalitá <strong>di</strong>error<br />

resilience, detto Wireless JPEG 2000, o JPWL. Il co<strong>di</strong>ficatore JPWL arricchisce il co<strong>di</strong>ficatore JPEG 2000 <strong>di</strong> due<br />

tipi <strong>di</strong> funzionalitá:<br />

• descrizione della sensibilitá agli errori delle <strong>di</strong>verse porzioni del bitstream<br />

• protezione dagli errori delle <strong>di</strong>verse porzioni del bitstream me<strong>di</strong>ante tecniche FEC,<br />

Il deco<strong>di</strong>ficatore JPWL arricchisce il deco<strong>di</strong>ficatore JPEG 2000 <strong>di</strong> due tipi <strong>di</strong> funzionalitá:<br />

• correzione degli errori del bitstream<br />

• descrizione degli errori residui nel bitstream stesso<br />

La normativa specifica la sintassi da utilizzare per descrivere gli strumenti, me<strong>di</strong>ante l’introduzione <strong>di</strong> quattro<br />

nuove unitá sintattiche <strong>di</strong> lunghezza variabile (Error Protection Capability, che descrive quali strumenti <strong>di</strong> protezione<br />

sono utilizzati, Error Protection Block, che costituisce il co<strong>di</strong>ce <strong>di</strong> canale effettivamente utilizzato, Error Sensitivity<br />

Descriptor, che descrive la sensibilitá dei dati co<strong>di</strong>ficati ad eventuali errori <strong>di</strong> trasmissione e pertanto consente <strong>di</strong><br />

attuare tecniche <strong>di</strong> protezione <strong>di</strong>fferenziata dei dati, Residual Error Descriptor, che descrive gli errori residui dopo<br />

la deco<strong>di</strong>fica <strong>di</strong> canale). Tali unitá sono pacchetti dati costituiti da un header, da un campo in<strong>di</strong>cante la lunghezza<br />

del pacchetto, da un campo che specifica l’uso del successivo campo dati, ed il campo dati vero e proprio. A titolo<br />

<strong>di</strong> esempio, osserviamo che l’EPB puó utilizzare qualsiasi co<strong>di</strong>ce a correzione <strong>di</strong> errore che sia stato registrato presso<br />

la JPWL Registration Authority (RA); il pacchetto EPB contiene sia un identificativo univoco del particolare co<strong>di</strong>ce<br />

sia i dati ridondanti prodotti dal co<strong>di</strong>ce stesso.<br />

La <strong>di</strong>stinzione funzionale dei meccanismi <strong>di</strong> descrizione delle caratteristiche <strong>di</strong> sensibilitá agli errori e dei meccanismi<br />

<strong>di</strong> protezione consente, in linea <strong>di</strong> principio, <strong>di</strong> implementare tali funzionalitá in sistemi <strong>di</strong>fferenti dell’architettura<br />

<strong>di</strong> rete. Ad esempio, in un sistema <strong>di</strong> <strong>di</strong>stribuzione <strong>di</strong> immagini su reti eterogenee la descrizione dei dati potrebbe<br />

essere implementata a bordo del server <strong>di</strong> <strong>di</strong>stribuzione delle immagini, mentre la funzionalitá <strong>di</strong> protezione potrebbe<br />

essere realizzata all’interfaccia con la sottorete wireless <strong>di</strong> interesse, sia me<strong>di</strong>ante introduzione <strong>di</strong> co<strong>di</strong>ci FEC, sia<br />

me<strong>di</strong>ante tecniche <strong>di</strong> ritrasmissione selettiva dei dati piú importanti.


44 CAPITOLO 4. CODIFICA DI IMMAGINI<br />

Figura 4.10: Schema <strong>di</strong> principio della co<strong>di</strong>fica JPEG 2000.


4.5. TRASMISSIONE DI IMMAGINI SU CANALI AFFETTI DA ERRORI 45<br />

Figura 4.11: Esempio <strong>di</strong> co<strong>di</strong>fica per piani <strong>di</strong> bit.


Bibliografia<br />

[1] G. Scarano, “Dispense <strong>di</strong> elaborazione delle immagini”, http:<br />

infocom.uniroma1.it/gscarano.<br />

[2] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M.R. Civanlar, L. R. Rabiner, L. Bottou, and P. Haffner, “Image<br />

and Video Co<strong>di</strong>ng-Emerging Standards and Beyond”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp.<br />

814-837, November 1998<br />

[3] A. Skodras, C. Christopoulos, and T. Ebrahimi, “The JPEG 2000 Still Image Compression Standards and Beyond”, IEEE Transactions<br />

on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp. 814-837, November 1998<br />

46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!