Vous êtes sur la page 1sur 15

Introduction aux algorithmes de compression multimédia

Travaux Pratiques
TS214 | Télécommunications 2A | 2023-2024

Rémi Giraud
remi.giraud@enseirb-matmeca.fr
https://remi-giraud.enseirb-matmeca.fr/
Compression Jpeg
Propriétés

Dégradation du contenu peu « perceptible »

Fort facteur de compression ~ 10 Format Dimensions Taille
spatiales mémoire
3 Mpixels 2048×375, 549 ko1536 9 Mo
7 Mpixels 3072×375, 549 ko2304 20,2 Mo
10 Mpixels 3648×375, 549 ko2736 28,6 Mo
12 Mpixels 4000×375, 549 ko3000 34,3 Mo
500×375, 549 ko375, 549 ko

35,9 ko, F ~15 17,9 ko, F ~30

dégradation
des contours
et des aplats
de couleurs

2
Compression Jpeg
Principe

Codage du contenu fréquentiel « perceptible »

Traitement indépendant par blocs

blocs coefficients DCT


Paramètres :
matrice et table de
facteur de qualité Huffman

flux binaire
Découpage Codage (fichier .jpg)
en blocs DCT Quantification entropique
8x8 2D sans pertes 010011010
100111010
110011010
110010111
110001010
changement « simplification » par 010101010

d’espace mise à zéro de compression 110101011


101001110
010101110
(fréquence) coefficients (davantage 101001
0101
les hautes fréquences) 3
Compression Jpeg
Chaîne complète

Image
originale

Codage
Découpage DCT 2D Quantification
(exact)
0100110101
0011101011
0011010110
0101111100
0101001010
1010110101
différence = pertes de compression 0111010011
1001010111
0101001
0101

Décodage flux binaire


Assemblage DCT 2D Déquantification
inverse (exact) (fichier .jpg)

Image
« compressée »
4
Compression Jpeg
Changement d’espace et « simplification »
94 94 94 94 94 94 94 94
90 91 92 93 94 94 94 94
143 124 107 96 90 90 91 92 Transformée en
203 201 196 179 158 138 119 106
92 65 82 176 t
209 192i al195 177 cosinus
a
28 10 31 170 sp 192 175 74
212
(DCT)
199 188 202 204 195 165 58 25
192 193 190 192 154 47 27 31 f
Bloc 8x8
996,13 75,11 -123,06 50,57 39,88 13,67 -15,19 -1,40
-122,05 -84,56 121,19 -27,83 -31,88 -3,89 10,27 -0,08 Quantification
05 - 84,56121,1 9 - 27,841- 31,89
coefficient DC -98,84 148,55 6,40 -42,46 -5,07 -19,66 10,46 4,80
i el
- 3,910,27 - 0,09 - 98,85148,5 46,4 - 42,47 - 5,08 -19,6710,46 4,79 - 24,01 - 218,45 - 76,167,088 ,0722,26 -14,15 - 8,1770,373 9,2329,75 - 44,5216,12 - 6,6
-24,01 -218,45 -76,09 67,08
- 5,55 - 89,36 - 69,77 - 0,0413,081 2,2416,43 - 26,663,611 0,97 -11,7525,11 1,489,46 - 8,0114,94 - 2,36
8,07 22,27 -14,15
nt -8,17
70,38 39,24 29,75 -44,52 16,13 -6,69 ue-6,24 7,89 entiers faibles et
q
63 coefficients AC 73,17 135,83 -0,77 2,11 -30,39 -11,17
fré 26,02 -5,54
plages de 0
-89,35 -69,77 -0,04 13,08 12,25 16,44 -26,65
10,98 -11,74 25,11 1,49 9,46 -8,00 14,95
3,62
-2,36 F → codage efficace
Partie entière sur ℝ+
24 2 -4 1 0 0 0 0
Et entière +1 sur ℝ- Matrice 8x8 -4 -2 3 0 0 0 0 0
→ simplification (normalisée ou au
-2 4 0 0 0 0 0
0 l0
0

ie 0
0 -5 -1 0 0 0
choix) atténuant une 1 0 0 0 0 0 n0t
1 1 0 0 0 qu
0
e 0 0
gamme désirée de ré
f0 0 0 0
0 0 0 0 FQ
fonction non-linéaire du fréquences 0 0 0 0 0 0 0 0
facteur de qualité (1 à 99) 5
Compression Jpeg
Transformée DCT 1D Transformée de Fourier

Discrete Cosine Transform N1 n
 j 2 k
F (k )  f (n)e N
N1
 2n  1  n 0
F (k ) W  k   f (n) cos  k 
n 0  2N  base de cosinus ← base d’exponentielles base d’exponentielles


Transformée directe ●
Transformée inverse
- coefficients réels pour un signal réel N1
 2n  1 
f (n)  W  k  F (k ) cos  k 
- transformation réversible k 0  2 N 

Transformée DCT 2D
M 1N1
 2m  1   2n  1 
F (u , v) W  u , v    f (m, n) cos  u  cos  v 
m 0 n 0  2 M   2 N 
6
Compression Jpeg
Interprétation fréquentielle fréquence nulle 0 7
(moyenne) 0
u

7 7
 2m  1   2n  1 
F (u , v)    f (m, n) cos  u  cos  v 
m 0 n 0  16   16 

Base de décomposition
coefficients
bloc 8x8 u 1, v 5
DCT 7
Éléments de la base
v
→ Décomposition approchée en une somme de motifs fréquentiels

24   4  2

 2  2  4
7
Compression Jpeg
Phase de quantification
 16 11 10 16 24 40 51 61 
 12 60 55 
 F   12 14 19 26 58
FQ E    14 13 16 24 40 57 69 56 
  Q 

Q 
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
 50 
 72 92 95 98 112 100

103 99 
q si 1 q 50
Luminance

  (Image niveaux de gris ou canal Y)
100  q
 50 si 50 q 99
  17 18 24 47 99 99 99 99
 18 21 26 66 99 99 99 99

  24 26 56 99 99 99 99 99
2  
1,5 47 66 99 99 99 99 99 99
Q 
(échelle log)

1  99 99 99 99 99 99 99 99
 
0,5  99 99 99 99 99 99 99 99
0 q (facteur de  99 99 99 99 99 99 99 99
 
-0,5 1 9 17 25 33 41 49 57 65 73 81 89 97 qualité)  99 99 99 99 99 99 99 99
-1
-1,5 Chrominance
-2 (Canaux Cb Cr)
8
Compression Jpeg
Évaluation des performances (quantitatif)
● Facteur (de compression) :

● Taux (de compression, exprimé en %) :

9
Compression Jpeg
Évaluation des performances (qualitatif)
● Rapport Signal à Bruit (PSNR)


Compare l’image initiale et l’image compressée

Métrique globale sur l’image, sans information de structure

avec

PSNR = 24.85 PSNR = 25.72

Image initiale Image initiale - 15 Image initiale - bloc 10


Compression Jpeg
Évaluation des performances (quantitatif vs qualitatif)
facteur de
compression
45

40

35

30
dégradée
25
reconnaissable
20
très proche
15

10
semblable
Tinitiale
5
T finale
0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 00 facteur de
1
qualité
11
Compression Jpeg Exercice

Compléter les scripts jpeg_main.m et jpeg_compress.m


et appliquez l’algorithme à l’image jpeg.png


Simulation pour un bloc (/5 points)

Sélectionner un bloc (imagette) de taille 8x8 à partir d’un point indiqué par un clic
de souris (fonction ginput) et le visualiser

Appliquer la DCT (fonction dct2) et afficher la matrice de coefficients résultante

Appliquer la quantification (facteur de qualité au choix, fonction fix pour la
troncature) et afficher la matrice de coefficients résultante (avant codage)

Réaliser la reconstruction (déquantification (modifications inverses), DCT inverse
avec la fonction idct2), visualiser l’imagette obtenue et la comparer à l’imagette
initiale

Réitérer la chaîne complète en sélectionnant des blocs caractéristiques ayant un
« faible » et « fort » contenu fréquentiel

Commenter
12
Compression Jpeg Exercice


Simulation pour une image entière (/5 points)

Appliquer le procédé complet à l’ensemble des blocs 8x8 pavant une image
pour obtenir l’image reconstruite après compression (fonction blockproc)

Visualiser et expliquer les images hxw obtenues aux différentes étapes de la chaîne :
! Attention à la fonction de visualisation utilisée !

Coeffs. DC/AC et AC (DC=0) (blocs F ) avant et après quantification (blocs FQ )

Image compressée (pour différents facteurs de qualité)

! Valider l’algorithme avant de passer à l’analyse des performances !


Analyse des performances (quantité d’information) (/2 points)

Calculer l’entropie de l’image reconstruite pour un facteur de qualité donné

Calculer l’entropie de l’image quantifiée FQ pour un facteur de qualité donné

Calculer et tracer les courbes d’entropie pour toutes les valeurs entières (1 à 99) du
facteur de qualité

Commenter
13
Compression Jpeg Exercice


Analyse quantitative des performances (compression) (/2 points)

Comparer (fonction imfinfo) la taille du fichier obtenu après codage au format
Jpeg par Matlab (imwrite(img_compressee, ’name.jpg’, ’Quality’, 100)),
à celle du fichier de l’image original (au format Jpeg également)

Calculer et tracer les courbes du facteur de compression (F) ET du taux de
compression (T) pour toutes les valeurs entières (1 à 99) du facteur de qualité

Commenter


Analyse qualitative des performances (fidélité d’information) (/2 points)

Afficher les erreurs entre l’image initiale et l’image compressée

Calculer le rapport signal sur bruit (PSNR) pour un facteur de qualité donné

Calculer et tracer la courbe du rapport signal sur bruit pour toutes les valeurs
entières (1 à 99) du facteur de qualité

Commenter
avec
14
Compression Jpeg Exercice


Qualité du rapport (/2 points)

Explications, clarté, qualité des figures


Qualité du code (/2 points)

Exactitude, run automatique, reproduction des résultats du rapport,
commentaires


Bonus : Comparaison à l’algorithme de Matlab (+/1 point)

Comparer les performances à celles de la compression Jpeg de Matlab
imwrite(img, ’name.jpg’, ’Quality’, q) ;


Bonus : Appliquer la chaîne de traitement aux images couleur (+/1 point)

Considérer l’image RGB donnée

15

Vous aimerez peut-être aussi