Principe de la DCT:
Le principe de la DCT (transformation en cosinus discrète bidimensionnelle) est de transformer la matrice de départ (obtenue au moyen de l'étape précédente) en matrice de fréquences permettant de révéler les caractéristiques propres à une compression efficace. Elle prend donc un ensemble de points d’un domaine spatial et les transforme en une représentation équivalente dans le domaine fréquentiel. Après compression, la transformation inverse permet de revenir à l’image de départ (enfin presque).
Pour pouvoir utiliser la DCT, la matrice est dupliquée symétriquement par rapport à l’axe des x et à l’axe des y, pour produire une matrice 16x16, d'où la notion de bidimensionnalité.
La matrice transformée par DCT présente la propriété de regrouper les valeurs les plus élevées dans le coin supérieur gauche de la matrice (les valeurs devenant d’autant plus faibles que l‘on s’approche du coin inférieur droite, donc que l‘on se situe dans les " hautes fréquences "). Ainsi le maximum d‘informations sur l‘image se trouve concentré sur la partie supérieure gauche de la matrice et la compression de l‘image sera facilitée.
Le calcul permettant de passer de la matrice de départ à la matrice DCT est trop complexe pour être expliqué par nous.
L’avantage essentiel de la DCT est le taux de compression important pour une qualité donnée. La valeur de ce taux est difficile à évaluer compte tenu du fait qu’il dépend de la nature des signaux et de leurs qualités initiales (quantification, colorimétrie).
L’inconvénient majeur de la DCT est le découpage des signaux en blocs. Leur silhouette apparaît à partir d’un certain taux de compression qui dépend de la nature du signal. Cet effet généralement invisible apparaît à l’œil nu, dans le cas des images photographiques, dès que le taux de compression atteint quelques dizaines.
Aujourd’hui de nombreux testeurs se penchent sur des techniques visant à accélérer la DCT, par traitement mathématique à virgule fixe ; chaque cycle gagné sur le temps pris pour calculer la DCT vaut son pesant d’or.
Application de la DCT:
Une fois la DCT calculée sur un bloc nous obtenons une matrice carrée des valeurs pour chacune des fréquences. Les valeurs de la matrice DCT ont été arrondies à l’entier le plus proche.
La composante (0, 0) est le coefficient continu de la matrice ; c’est un nombre proportionnel à la somme de toutes les valeurs du signal. Les autres valeurs de la matrice représentent les " écarts " par rapport à ce nombre.
L’entrée de la fonction DCT est constituée de valeurs
de pixels sur huit bits mais les valeurs qui en sortent sont dans l’intervalle
[-1024 ; 1024] et occupent onze bits. Cette étape ne compresse donc
pas les données. C’est une étape conservatrice qui prépare
les données à la phase non conservatrice du processus : la
quantification.
Voilà donc notre matrice avant tranformation:
140 |
144 |
147 |
140 |
140 |
155 |
179 |
175 |
144 |
152 |
140 |
147 |
140 |
148 |
167 |
179 |
152 |
155 |
136 |
167 |
163 |
162 |
152 |
172 |
168 |
145 |
156 |
160 |
152 |
155 |
136 |
160 |
162 |
148 |
156 |
148 |
140 |
136 |
147 |
162 |
147 |
167 |
140 |
155 |
155 |
140 |
136 |
162 |
136 |
156 |
123 |
167 |
162 |
144 |
140 |
147 |
148 |
155 |
136 |
155 |
152 |
147 |
147 |
136 |
La transformation DCT de notre matrice est:
186 |
-18 |
15 |
-9 |
23 |
-9 |
-14 |
-19 |
21 |
-34 |
26 |
-9 |
-11 |
11 |
14 |
7 |
-10 |
-24 |
-2 |
6 |
-18 |
3 |
-20 |
-1 |
-8 |
-5 |
14 |
-15 |
-8 |
-3 |
-3 |
8 |
-3 |
10 |
8 |
1 |
-11 |
18 |
18 |
15 |
4 |
-2 |
-18 |
8 |
8 |
-4 |
1 |
-7 |
9 |
1 |
-3 |
4 |
-1 |
-7 |
-1 |
-2 |
0 |
-8 |
-2 |
2 |
1 |
4 |
-6 |
0 |