Lo Standard JPEG per la Compressione di Immagini Fisse - InfoCom

Lo Standard JPEG per la Compressione di Immagini Fisse - InfoCom Lo Standard JPEG per la Compressione di Immagini Fisse - InfoCom

infocom.uniroma1.it
from infocom.uniroma1.it More from this publisher
03.08.2013 Views

3.1. INTRODUZIONE 49 Un’immagine a colori è rappresentata mediante tre canali, tipicamente uno di luminanza (Y ), e due di crominanza (CR,CB). 3.2 Figura 3.1: Sottocampionamento della crominanza. Il simbolo X rappresenta un generico campione di luminanza, i due semiquadrati rappresentano una coppia di campioni CRCB condivisa da quattro campioni di luminanza. La crominanza è sottocampionanta di un fattore 2 in entrambe le direzioni, e quindi quattro pixel di luminanza condividono la stessa crominanza, vedi Fig.3.1. Modalità di funzionamento Lo standard JPEG prevede quattro distinte modalità di funzionamento: • Sequenziale (con DCT, con perdita); • Progressiva (con DCT, con perdita); • Senza Perdita; • Gerarchica (con o senza DCT, con o senza perdita). 3.2 Dai coefficienti tricromatici del sistema di riferimento colorimetrico NTSC, i.e. RN ,GN ,BN , la trasformazione in luminanza/crominanza si ottiene nel modo seguente: Y =0.299 · RN +0.587 · GN +0.114 · BN CR = RN − Y CB = BN − Y ; RN = CR + Y BN = CB + Y GN = Y − 0.299 · RN − 0.114 · BN 0.587 (3.1.1)

50 CAPITOLO 3. LO STANDARD JPEG PER LA COMPRESSIONE DI IMMAGINI FISSE 3.2 Modalità Sequenziale blocco 8x8 Immagine Originale xn [ , n ] DCT 1 2 X k1 k2 DCT ( ) [ , ] Quantizzatore ( DCT) X [ k , k ] 1 2 Codificatore Entropico Tavole Tavole Figura 3.2: Schema del Codificatore JPEG Dati Immagine Compressa La struttura essenziale di un codificatore JPEG è mostrata nella Fig.3.2. Ogni componente dell’immagine da codificare è suddivisa in blocchetti da 8x8 pixel. Secondo una scansione lessicografica, ciascuno di questi blocchetti è elaborato dalla trasformazioni indicate come DCT, Quantizzatore, Codificatore Entropico. 3.2.1 Trasformata Dicreta del Coseno (DCT) Questa trasformazione opera il calcolo della DCT. Lo standard non specifica un particolare algoritmo di calcolo, lasciando così a chi sviluppa il codificatore la libertà di implementare un particolare procedimento. Ciò dipende dal fatto che diverse applicazioni possono richiedere differenti realizzazioni del calcolatore di DCT, e.g. realizzazioni hardware VLSI rispetto a realizzazioni software o ibride come un DSP dedicato, implementazioni in artimetica a virgola fissa o mobile, etc., ciascuna con differenti compromessi fra velocità e precisione. Tale flessibilità può però presentare qualche svantaggio. In effetti, idealmente, la cascata di una trasformazione DCT e di una trasformazione DCT inversa (IDCT) non comporta alcuna perdita di informazione. In realtà, la presenza di funzioni sinusoidali nell’espressione della trasformata, rende impossibile di fatto realizzare i calcoli con accuratezza perfetta. Dunque potremmo trovarci di fronte al problema che codificatori e decodificatori diversi, in linea di principio, potrebbero produrre risultati anche abbastanza diversi fra loro. Per evitare tale problema, nello standard JPEG sono specificati dei test di conformità rispetto all’accuratezza cui si devono adeguare il codificatore e il decodificatore. In ogni caso, ricordiamo le definizioni della DCT di un’immagine x[n1,n2] di dimensioni N ×N. • Trasformata DCT (analisi): X DCT N−1 X [k1,k2] =α(k1)α(k2) con α(0) def q 1 = N e α(k) = • Trasformata IDCT (sintesi): x[n1,n2] = N−1 X N−1 X k1=0 k2=0 N−1 X n1=0 n2=0 q 2 N µ µ π(2n1 +1)k1 π(2n2 +1)k2 x[n1,n2]cos cos 2N 2N per 1 ≤ k ≥ N − 1; α(k1)α(k2)X (DCT) µ µ π(2n1 +1)k1 π(2n2 +1)k2 [k1,k2]cos cos 2N 2N 0 ≤ k1,k2 ≤ N − 1 0 ≤ n1,n2 ≤ N − 1 Dalle Figg. 3.3, 3.4, e 3.5 è possibile apprezzare come la DCT compatti l’energia media nelle componenti a bassa frequenza. In tali figure, l’ampiezza dei coefficienti DCT é rappresentato come livelli di grigio, dal nero verso il bianco. Tale compattazione è ancora più evidente per blocchetti di dimensione contenuta (vedi Figg. 3.4 e 3.5), dove la correlazione tra i pixel cresce, e l’approssimazione DCT → KLT è sufficientemente accurata. Si osservi come, bastano pochissimi coefficienti DCT per “spiegare” blocchetti con scarse variazioni del livello di grigio.

3.1. INTRODUZIONE 49<br />

Un’immagine a colori è rappresentata me<strong>di</strong>ante tre canali, tipicamente uno <strong>di</strong> luminanza (Y ), e due <strong>di</strong> crominanza<br />

(CR,CB). 3.2<br />

Figura 3.1: Sottocampionamento del<strong>la</strong> crominanza. Il simbolo X rappresenta un generico campione <strong>di</strong> luminanza, i due semiquadrati<br />

rappresentano una coppia <strong>di</strong> campioni CRCB con<strong>di</strong>visa da quattro campioni <strong>di</strong> luminanza.<br />

La crominanza è sottocampionanta <strong>di</strong> un fattore 2 in entrambe le <strong>di</strong>rezioni, e quin<strong>di</strong> quattro pixel <strong>di</strong> luminanza<br />

con<strong>di</strong>vidono <strong>la</strong> stessa crominanza, ve<strong>di</strong> Fig.3.1.<br />

Modalità <strong>di</strong> funzionamento<br />

<strong>Lo</strong> standard <strong>JPEG</strong> prevede quattro <strong>di</strong>stinte modalità <strong>di</strong> funzionamento:<br />

• Sequenziale (con DCT, con <strong>per</strong><strong>di</strong>ta);<br />

• Progressiva (con DCT, con <strong>per</strong><strong>di</strong>ta);<br />

• Senza Per<strong>di</strong>ta;<br />

• Gerarchica (con o senza DCT, con o senza <strong>per</strong><strong>di</strong>ta).<br />

3.2 Dai coefficienti tricromatici del sistema <strong>di</strong> riferimento colorimetrico NTSC, i.e. RN ,GN ,BN , <strong>la</strong> trasformazione in luminanza/crominanza<br />

si ottiene nel modo seguente:<br />

Y =0.299 · RN +0.587 · GN +0.114 · BN<br />

CR = RN − Y<br />

CB = BN − Y<br />

;<br />

RN = CR + Y<br />

BN = CB + Y<br />

GN = Y − 0.299 · RN − 0.114 · BN<br />

0.587<br />

(3.1.1)

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

Saved successfully!

Ooh no, something went wrong!