4.4 Quantizzazione
Applicando fin qui il processo JPEG, abbiamo ottenuto una piccola compressione, convertendo i nostri 64 segnali in 64 coefficienti DCT.
Lo scopo della fase di cui parleremo è raggiungere un'ulteriore compressione rappresentando i coefficienti DCT con una piccola precisione, in modo da raggiungere la qualità desiderata.
Il fine di questo passo di elaborazione è scartare le informazioni meno significanti a livello visuale. La quantizzazione è un tracciato molti a uno e perciò è fondamentalmente con perdita, anzi è proprio la fonte principale della perdita del codificatore basato sulla DCT.
La quantizzazione è definita come divisione di ogni coefficiente DCT per la sua tabella di quantizzazione, seguita dall'arrotondamento all'intero più vicino:
Il processo di dequantizzazione è definito invece, come:
La tabella di quantizzazione può essere specificata dall'applicazione o può essere definita dall'utente.
Esperimenti sulla soglia psicovisuale hanno portato però alla definizione di due tabelle ottenute empiricamente usando un campionamento 2:1 orizzontale per la luminanza e la crominanza. Le tabelle ricavate dagli esperimenti sono le seguenti:
16 |
11 |
10 |
16 |
24 |
40 |
51 |
61 |
12 |
12 |
14 |
19 |
26 |
58 |
60 |
55 |
14 |
13 |
16 |
24 |
40 |
57 |
69 |
56 |
14 |
17 |
22 |
29 |
51 |
87 |
80 |
62 |
18 |
22 |
37 |
56 |
68 |
109 |
103 |
77 |
24 |
35 |
55 |
64 |
81 |
104 |
113 |
92 |
49 |
64 |
78 |
87 |
103 |
121 |
120 |
101 |
72 |
92 |
95 |
98 |
112 |
100 |
103 |
99 |
Tabella 1 - Tabella di quantizzazione per la luminanza
17 |
18 |
24 |
47 |
99 |
99 |
99 |
99 |
18 |
21 |
26 |
66 |
99 |
99 |
99 |
99 |
24 |
26 |
56 |
99 |
99 |
99 |
99 |
99 |
47 |
66 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
99 |
Tabella 2 - Tabella di quantizzazione per la crominanza
La trasformata coseno e il processo di quantizzazione possono essere applicati anche a blocchi di dimensione diversa da quella 8x8 però è stato dimostrato che buoni risultati si ottengono per blocchi di dimensione 8x8 e 16x16, i migliori in assoluto solo per blocchi di 8x8 pixels.
Un esempio di ciò che accade con la quantizzazione lo possiamo vedere considerando la figura 11 e la tabella 1. Il risultato della quantizzazione è il seguente:
15 |
0 |
-1 |
0 |
0 |
0 |
0 |
0 |
-2 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
-1 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
-1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Tabella 3 - figura 11 quantizzata
Se procediamo ora con la dequantizzazione possiamo notare che non otteniamo esattamente le informazioni di partenza, ma abbiamo perso informazioni (Tabella 4)
240 |
0 |
-10 |
0 |
0 |
0 |
0 |
0 |
-24 |
-12 |
0 |
0 |
0 |
0 |
0 |
0 |
-14 |
-13 |
0 |
0 |
0 |
0 |
0 |
0 |
-14 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Tabella 4 - dequantizzazione della tabella 3
Se effettuiamo una scalatura dei valori della matrice di quantizzazione, si può ottenere una variazione sulla quantità di informazione eliminata nell'immagine. Il paramentro di scalatura sarà compreso nel range [0, 100] assegnando come significato a 0, la massima perdita di informazione con una pessima qualità e a 100 il contrario, ovvero pochissima informazione scartata con un'alta qualità di immagine.
Il parametro definito di scalatura, agirà sulla matrice di quantizzazione Q come segue:
Se parametro < 50 Þ ;
altrimenti: Þ