CAPITOLO 5

PROVE SPERIMENTALI SULLA COMPRESSIONE LOSSY

Per valutare qualitativamente e quantitativamente i risultati ottenuti con queste tecniche, sono state eseguite prove sperimentali su Personal Computer per il calcolo della 2D-DCT, e della corrispondente trasformazione inversa, la
2D-IDCT utilizzata per la decompressione, mostrando come, variando i vari parametri di compressione varia la qualità dell’immagine.  Sono state quindi eseguite misure quantitative sul grado di distorsione introdotto, misurando il rapporto segnale/rumore SNR dell’immagine compressa e successivamente decompressa  (con lo standard JPEG) rispetto a quella originale.

5.1        Larghezza di banda e grado di distorsione

La compressione lossy introduce, come detto una distorsione irreversibile che si ripercuote in maniera più o meno percettibile sulla qualità dell’immagine che viene successivamente decompressa e visualizzata sullo schermo del PC.

Il rapporto di compressione o larghezza di banda ottenibile con le tecniche di compressione lossy applicate alle immagini fisse o ai filmati video, può essere messo quantitativamente, oltre che qualitativamente, in relazione con il grado di distorsione dovuto alla compressione lossy.

Il rapporto di compressione può essere calcolato in vari modi. Tra questi, quelli più utilizzati sono:

1.      Il rapporto tra il numero di bit utilizzato per codificare i pixel nell’immagine originale, prima della compressione, e il numero medio di bit generati dal codificatore per ciascun pixel, indicato con R:

Ad esempio, in un’immagine a 256 livelli di grigio, il numero di bit per pixel nell’immagine non compressa è  8 e quindi, per ottenere un rapporto di compressione di 10 a 1, R deve essere pari a 0.8.

Questo modo di procedere, mentre dà una misura precisa dell’efficienza della tecnica di compressione adottata, non tiene conto delle informazioni aggiuntive che devono essere trasmesse alla stazione ricevente per permettere la decompressione dell’immagine.

2. Il rapporto tra la dimensione dell’immagine non compressa e la dimensione del file che si ottiene dal processo di compressione.:

In questo modo si può  tenere conto dell’effettivo vantaggio che si ottiene comprimendo l’informazione multimediale, e può essere facilmente calcolata la percentuale di informazione che deve essere effettivamente trasmessa sul canale di comunicazione, rispetto a quella che si dovrebbe trasmettere senza compressione, essa infatti è data dall’inverso del rapporto di compressione:

 

Nelle misure eseguite, si è calcolato il rapporto di compressione utilizzando questo secondo modo di procedere, riportando la percentuale di informazione che deve essere trasmessa, rispetto a quella originale, in funzione del grado di distorsione introdotto dalla compressione.

Per valutare invece il grado di distorsione, invece, esso si può esprimere come rapporto segnale rumore (SNR) tra il segnale contenuto nell’immagine non compressa e il rumore introdotto dalla compressione:

dove  indica la varianza dell’immagine non compressa, e la varianza di un’immagine errore, ottenuta dalla differenza pixel per pixel tra l’immagine non compressa e l’immagine compressa e successivamente decompressa. La varianza fornisce infatti una misura media del segnale contenuto nell’immagine. Essa è data da:

 dove L e H sono le dimensioni in pixel dell’immagine, x(i,j) è il valore del pixel nel punto di coordinate i e j, e  m è la media del valore dei pixel:

analogamente si ha

dove x(i,j) è il valore del pixel nel punto di coordinate i e j nell’immagine non compressa, y(i,j) è il valore del pixel nell’immagine che si ottiene dalla compressione e successiva decompressione dell’immagine originale, e me è la media del valore dei  pixel dell’immagine differenza:

Un secondo modo maggiormente utilizzato per valutare la distorsione introdotta dalla compressione lossy, consiste nel calcolare il PSNR (Peak Signal-to-Noise Ratio), nel quale viene utilizzato un segnale ipotetico di ampiezza 255 (nel caso di immagini codificate con 8 bit) . Il calcolo del PSNR è dato da

dove è la varianza dell’immagine errore che corrisponde a quella vista per il calcolo del SNR.

5.2       Misure sulla trasformata DCT

Per valutare quantitativamente l’effetto della 2D-DCT, sono state eseguiti i calcoli utilizzando come esempio la matrice 8 ´ 8 corrispondente al valore dei pixel da una porzione, di dimensioni 8 ´ 8, dell’immagine della cute di  un grillo ripresa al microscopio. Poiché l’immagine era stata digitalizzata a 256 livelli di grigio, gli elementi della matrice, saranno valori compresi tra 0 e 255.

Figura 5.1: Blocco di dimensioni 8´8, prelevato dall’immagine della cute di un grillo ingrandita al microscopio, acquisita e digitalizzata a 256 livelli di grigio.

Nel caso in esame la matrice A rappresentante i valori dei pixel nella porzione di immagine è risultata:

87 82 83 80 80 83 85 87
96 96 96 92 94 97 93 97
101 110 105 100 104 105 98 106
A= 117 130 112 101 100 103 100 113
217 137 112 95 94 96 97 108
126 123 94 79 83 93 93 100
113 97 83 70 70 76 82 90
95 94 91 82 78 78 77 77

Applicando ora la 2D-DCT alla matrice A, si è ottiene la matrice

768 40 45 0 -7 -16 2 -4
15 -26 -23 -4 1 0 2 0
-78 -15 -14 4 6 15 5 5
B=TA -11 8 23 7 0 1 -2 0
2 7 -6 -8 -2 -1 -3 -1
-11 -4 8 1 3 2 1 0
2 -2 -5 8 -2 -2 -1 -1
-4 0 -1 -2 2 1 0 2

che come detto rappresenta la matrice A nel dominio delle frequenze.

Se a questo punto si applica la 2D-IDCT alla matrice B si dovrebbe riottenere (a meno di errori dovuti all’arrotondamento a numeri interi) nuovamente la matrice A. Eseguendo i calcoli si è infatti ottenuto:

87 82 83 80 80 83 85 87
96 96 96 92 94 97 93 97
101 110 105 100 104 105 98 106
T-1B= 117 130 112 101 100 103 100 113
127 137 112 95 95 96 97 108
126 123 94 79 83 93 93 100
113 97 83 70 71 76 82 90
95 93 90 82 78 78 77 77

che, come si può notare, presenta pochissime variazioni rispetto alla matrice A.

Operando in questo modo su tutti i blocchi di dimensioni 8´8 dell’immagine, senza introdurre la quantizzazione, si ottiene un rapporto di compressione  abbastanza modesto. La dimensione dell’immagine originale è infatti pari a
34878 byte, mentre la dimensione che si è ottenuta comprimendola con lo standard JPEG, senza quantizzazione è risultata di 24475 byte ottenendo quindi un rapporto di compressione pari a

La qualità dell’immagine ottenuta dalla successiva decompressione è risultata peraltro ottima, e non era possibile notare differenze con l’immagine originale 

Figura 5.2:    Esempio di immagine compressa con lo standard JPEG senza quantizzazione. Il rapporto di compressione ottenuto è di circa 1.43

Verrà ora analizzato l’effetto dovuto alla quantizzazione utilizzando varie matrici di quantizzazione 

Ovviamente la matrice D corrisponderà alla matrice B solo se gli elementi della matrice di quantizzazione sono tutti pari a 1. Poiché però gli elementi della matrice di quantizzazione sono tipicamente diversi da 1, le matrici B e D saranno in generale diverse determinando una perdita di informazione.

Utilizzando lo stesso blocco 8´8 dell’esempio precedente, verranno applicate alla matrice B varie matrici di quantizzazione e, per ognuno dei casi esaminati, verrà mostrato l’effetto che si ottiene globalmente sulla qualità dell’immagine e il rapporto di compressione ottenuto.

Applicando quindi alla matrice B la seguente matrice di quantizzazione:

3 2 2 3 5 8 10 12
2 2 3 4 5 12 12 11
3 3 3 5 8 11 14 11
Q= 3 3 4 6 10 17 16 12
4 4 7 11 14 22 21 15
5 7 11 13 16 21 23 18
10 13 16 17 21 24 24 20
14 18 19 20 22 20 21 20

Si è ottenuta la matrice

256 20 22 0 -1 -2 0 0
8 -13 -8 -1 0 0 0 0
-26 -5 -5 1 1 1 0 0
C1= -4 3 6 1 0 0 0 0
0 2 -1 -1 0 0 0 0
-2 -1 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Si noti che, leggendo gli elementi di questa matrice a zigzag, da un certo punto in poi, tutti gli elementi sono ridotti a 0. Una struttura di dati di questo tipo si presta particolarmente bene, come è facilmente intuibile, a una codifica di tipo RLE.

Operando la quantizzazione inversa sulla matrice C1, otteniamo la seguente matrice:

768 40 44 0 -5 -16 0 0
16 -26 -24 -4 0 0 0 0
-78 -15 -15 5 8 11 0 0
D1= -12 9 24 6 0 0 0 0
0 8 -7 -11 0 0 0 0
-10 -7 11 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

 Infine, dal  calcolo della 2D-IDCT applicata alla matrice C1,  si ottiene la matrice:

86 84 81 81 81 81 84 88
94 96 94 94 99 97 93 94
103 111 105 99 105 105 102 107
E1= 116 127 115 99 100 101 101 113
129 134 116 95 95 96 96 97
128 121 95 77 82 89 92 101
111 101 81 69 73 79 85 91
95 93 88 84 79 75 74 77

 

Come si può notare questa matrice presenta solo poche differenze rispetto alla matrice di partenza A, con la quale deve essere confrontata.

Il rapporto di compressione ottenuto comprimendo l’immagine con lo standard JPEG e utilizzando la matrice di quantizzazione Q1 è risultato di:

Il risultato qualitativo dell’operazione di compressione è mostrato nella figura seguente:

Figura 5.3:     Esempio di immagine compressa con lo standard JPEG con la matrice di quantizzazione Q1. Il rapporto di compressione ottenuto è di circa 3.19

Utilizzando ora come matrice di quantizzazione la:

13 9 8 13 19 32 41 49
10 10 11 15 21 46 28 44
11 10 13 19 32 46 55 45
Q2= 11 14 18 23 41 70 64 50
14 18 30 45 54 87 82 62
19 28 44 51 65 83 90 74
39 51 62 70 82 97 96 81
58 74 76 78 90 80 82 79

dopo aver applicato la 2D-IDCT, si ottiene:

84 83 80 79 80 83 87 89
97 96 95 95 96 98 100 101
107 106 104 102 102 103 105 106
E2= 122 117 109 102 99 100 104 107
138 127 112 98 93 96 103 109
129 118 100 85 79 82 91 98
107 98 86 75 70 73 79 85
96 91 84 78 76 77 81 84

Come si può notare, le differenze rispetto alla matrice A sono ancora molto contenute.

Il rapporto di compressione ottenuto con questa matrice di quantizzazione Q2, è stato di:

Le differenze tra l’immagine originale e quella compressa, sono inoltre ancora impercettibili, come risulta dalla seguente figura.

Figura 5.4:     Esempio di immagine compressa con lo standard JPEG con la matrice di quantizzazione Q2. Il rapporto di compressione ottenuto è di circa 6.30

Passando alla matrice di quantizzazione Q3:

27 18 17 27 40 66 85 101
20 20 23 32 43 96 100 91
23 22 27 40 66 95 115 93
Q3 523 28 37 48 85 144 133 103
30 37 61 93 113 181 171 128
40 58 91 106 134 173 188 153
81 106 129 144 171 201 199 168
120 153 158 163 186 166 171 164

 Calcolando la 2D-IDCT si ottiene in questo caso:

88 86 83 82 83 87 92 95
93 93 93 93 93 93 93 93
106 106 105 103 101 98 96 95
E3 125 119 109 100 96 97 101 105
137 124 104 88 83 90 103 113
130 116 94 77 73 82 97 108
107 99 87 77 73 77 85 91
86 85 83 80 78 76 75 74

Confrontando questa matrice con la matrice A, si nota che le differenze, pur contenute, iniziano ad essere più consistenti.

Il rapporto di compressione ottenuto con la matrice di quantizzazione Q3, è stato di :

 Figura 5.5:     Esempio di immagine compressa con lo standard JPEG con la matrice di quantizzazione Q3. Il rapporto di compressione ottenuto è di circa 8.89

Le differenze tra l’immagine originale e quella compressa appare ora appena percettibile.

Passando alla matrice di quantizzazione Q4, si ha:

53 37 33 53 80 133 170 203
40 40 47 63 87 193 200 183
47 43 53 80 133 190 230 186
Q4 47 57 73 97 170 290 266 206
60 73 123 186 226 363 343 256
80 117 183 213 270 346 376 306
163 213 260 290 343 403 400 336
240 306 316 326 373 333 343 330

La matrice E4 che si ottiene dal calcolo della 2D-IDCT sarà quindi:

80 77 73 71 73 77 82 86
90 87 83 81 81 85 90 94
105 102 97 94 94 96 101 104
E4 118 114 108 104 102 103 107 109
122 117 111 104 101 101 103 105
116 111 104 96 91 90 91 93
106 101 92 84 78 76 76 77
99 93 84 75 69 66 66 67

Il rapporto di compressione, in questo caso è risultato di:

Il risultato della compressione è mostrato nella seguente figura, nella quale si possono iniziare a notare lievi differenze tra l’immagine originale e quella compressa.

Figura 5.6:     Esempio di immagine compressa con lo standard JPEG con la matrice di quantizzazione Q4. Il rapporto di compressione ottenuto è di circa 11.94

Utilizzando adesso la matrice di quantizzazione:

160 110 100 160 240 400 510 610
120 120 140 190 260 580 600 550
140 130 160 240 400 570 690 560
Q5 140 170 220 290 510 870 800 620
180 220 370 560 680 1090 1030 920
240 350 550 640 810 1040 1130 920
490 640 780 870 1030 1210 1200 1010
720 920 950 980 1120 1000 1030 990

La corrispondente matrice E5 che si ricava dal calcolo della 2D-IDCT è

77 77 77 77 77 77 77 77
91 91 91 91 91 91 91 91
109 109 109 109 109 109 109 109
E5 123 123 123 123 123 123 123 123
123 123 123 123 123 123 123 123
109 109 109 109 109 109 109 109
91 91 91 91 91 91 91 91
77 77 77 77 77 77 77 77

Si possono ora notare sostanziali differenze tra la matrice E5 e la matrice A. In particolare si può osservare che nella matrice E5  molti valori sono stati uniformati.

Il rapporto di compressione, in questo caso è risultato di:

Il paragone tra l’immagine originale e quella compressa mostra ora una sostanziale perdita di dettaglio.

Figura 5.7:     Esempio di immagine compressa con lo standard JPEG con la matrice di quantizzazione Q5. Il rapporto di compressione ottenuto è di circa 19.02

400 275 250 400 600 1000 1275 1525
300 300 350 475 650 1450 1500 1375
350 325 400 600 1000 1425 1725 1400
Q6 350 425 550 725 1275 2175 2000 1550
450 550 925 1400 1700 2725 2575 1925
600 875 1375 1600 2025 2600 2825 2300
1225 1600 1950 2175 2575 3025 3000 2525
1800 2300 2375 2450 2800 2500 2575 2475

La matrice che si ottiene in questo caso dal calcolo della 2D-IDCT è

100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100
E6 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100

Come si può notare si è persa quasi completamente l’informazione contenuta nella matrice A e tutti i valori sono all’interno del blocco dell’immagine analizzato stati uniformati all’unico valore 100.

Il rapporto di compressione che si è ottenuto in quest’ultimo caso è risultato di:

mentre la qualità dell’immagine è risultata del tutto inaccettabile

Figura 5.8:     Esempio di immagine compressa con lo standard JPEG con la matrice di quantizzazione Q4. Il rapporto di compressione ottenuto è di circa 24.36

5.3        Misura del rapporto segnale/rumore

Per valutare quantitativamente l’effetto della compressione JPEG, sono state eseguite numerose misure del rapporto segnale/rumore calcolando, al variare dei parametri di compressione, e quindi della matrice di quantizzazione il PSNR (Peak Signal-to-Noise Ratio) utilizzando varie immagini di interesse biomedico riprese al microscopio e, per confronto, su un’immagine raffigurante il lay-out di un microprocessore e infine su un’immagine generata attribuendo valori casuali ai pixel. Tutte le immagini avevano una dimensione di 200 ´ 168 pixel e sono a 256 livelli di grigio.

Per ciascuna immagine è stata eseguita una compressione con lo standard JPEG, variandone di volta in volta il cosiddetto fattore di qualità. Il fattore di qualità di un’immagine compressa con lo standard JPEG è un numero intero che può  variare da 1 a 100 a ciascuno dei quali corrisponde una diversa matrice di quantizzazione. La compressione maggiore (e quindi la degradazione maggiore) si ha in corrispondenza del fattore di qualità 1. Viceversa in corrispondenza del fattore di qualità 100 si ha la compressione minore, ad esso infatti corrisponde una matrice di quantizzazione i cui elementi sono tutti 1 (assenza di quantizzazione).

Per ciascun fattore di qualità è stato calcolato:

1.      La dimensione dell’immagine compressa in byte

2.      L’errore medio, corrispondente al valore medio dell’immagine errore, cioè ottenuta dalla differenza tra i valori dei pixel dell’immagine non compressa e quelli dell’immagine compressa e successivamente decompressa.

3.      La percentuale di informazione che deve essere  trasmessa  su un canale di comunicazione rispetto a quella che sarebbe necessario trasmettere per l’immagine non compressa, ottenuta dall’inverso del rapporto di compressione.

4.      La varianza dell’immagine errore.

5.      Il rapporto segnale /rumore misurato in decibel.

Di seguito sono riportati i risultati delle prove eseguite mostrando le immagini compresse corrispondenti ai fattori di qualità 90, 60, 30, 15, 5 e 2

In appendice A sono invece riportate le tabelle e i grafici riassuntivi contenenti i risultati delle prove di compressioni utilizzando tutti i fattori di qualità compresi tra 1 e 100 per ciascuna immagini utilizzata.

Figura 5.9: Risultati della compressione sull’immagine “Ala di farfalla”


Figura 5.10: Risultati della compressione sull’immagine “Pietra”


Figura 5.11: Risultati della compressione sull’immagine “Girino 1”


Figura 5.12: Risultati della compressione sull’immagine “Girino 2”


Figura 5.13: Risultati della compressione sull’immagine “Girino 3”


Figura 5.14: Risultati della compressione sull’immagine “Grillo”


Figura 5.14: Risultati della compressione sull’immagine “Lay-out microprocessore”


Figura 5.15: Risultati della compressione sull’immagine “Caos”.


5.4        Confronto tra gli standard di compressione JPEG e la compressione frattale

In questo paragrafo sono mostrati i risultati delle misure eseguite nella compressione di un’immagine di un grillo ripreso al microscopio, utilizzando algoritmi di compressione frattale e confrontando i risultati con quelli ottenuti con la compressione JPEG.

Nel grafico seguente viene indicata la percentuale di informazione che è necessario trasmettere per l’immagine compressa rispetto a l’immagine non compressa, in funzione del rapporto segnale/rumore ottenuto sia con la compressione frattale (linea continua),che con quella JPEG (linea tratteggiata).

Figura 5.16:         Confronto tra i rapporti di compressione ottenuti utilizzando lo standard JPEG

(linea tratteggiata), e la compressione frattale (linea continua).

I risultati ottenuti mostrano che la compressione frattale permette di ottenere, a parità di degradazione dell’immagine, maggiori rapporti di compressione. Tuttavia, per le applicazioni distribuite in rete, ragioni di interoperabilità tra sistemi e applicazioni eterogenei, ad esempio nelle pagine HTML del WWW, impongono di utilizzare, per la compressione delle immagini, lo standard ISO JPEG. I nuovi standard ISO, tuttora in fase di sviluppo, quali l’MPEG-4 e il cosiddetto JPEG 2000, trarranno invece pieno beneficio dagli algoritmi basati sui frattali e sulla codifica wavelet.

Figura 5.17: Confronto  fra la compressione JPEG e la compressione frattale