Compression
Compression
Master Informatique – Option Traitement d'Images 1
Introduction Compression sans perte Compression avec perte
Plan du cours
1 – Introduction
Généralités sur la compression de données
Mesurer la compression
Types de compression et formats d'images
Sélection de références
Master Informatique – Option Traitement d'Images 2
Introduction Compression sans perte Compression avec perte
Objectif
Réduire le volume de données nécessaire au codage d'un signal numérique
Pour faciliter son stockage ou sa transmission par réseau
Principe
Détection de redondances dans le signal
Un algorithme de compression permet le codage réduit du signal
Un algorithme (inverse) de décompression permet d'exploiter le signal
Types de compressions
Compression sans perte (ou non-destructive, i.e. codage ou compactage):
Le signal obtenu après décompression est strictement identique à l'original
Utilisation : fichier exécutable, fichier texte
Compression avec perte (ou destructive, ou avec dégradation) :
Le signal obtenu après décompression diffère (légèrement) de l'original
Utilisation : image, son, vidéo
Que perdre ?
Master Informatique – Option Traitement d'Images 3
Introduction Compression sans perte Compression avec perte
Mesurer la compression
Rapport signal sur bruit pic-à-pic d2
(ang. « Peak Signal-Noise Ratio ») PSNR=10⋅log 10
d = valeur max. possible (ex. 255) MSE
Master Informatique – Option Traitement d'Images 4
Introduction Compression sans perte Compression avec perte
Master Informatique – Option Traitement d'Images 5
Introduction Compression sans perte Compression avec perte
Master Informatique – Option Traitement d'Images 6
Introduction Compression sans perte Compression avec perte
Principe
Codage par plage (ang. « Running Length Encoding »)
Recherche de séquences de données redondantes (ex. niveaux identiques).
Codage de la valeur et du nombre de répétitions :
0 0 0 11 11 67 121 121 98 98 98 32 37 37 37 37 37 37 2 0
0 3 11 2 67 1 121 2 98 3 32 1 37 6 2 1 0 1
Avantage
Algorithmes de compression et décompression très simples et rapides.
Limites
Efficace seulement pour de nombreuses et longues plages constantes.
Cas des images de synthèse simples ; peu adapté aux photos.
Utilisé ponctuellement dans de nombreux formats (BMP, JPG, TIFF, PCX, ...).
Nécessite de fixer un maximum pour la longueur des plages (ex. 255).
Master Informatique – Option Traitement d'Images 7
Introduction Compression sans perte Compression avec perte
Plan 7 0 0 0 0 0 0 0 0 1 plage <0,8>
Plan 6 1 1 1 1 1 1 1 1 1 plage <1, 8>
Plan 5 1 1 1 1 1 1 1 1 1 plage <1,8>
Plan 4 0 0 0 0 0 0 0 0 1 plage <0,8>
Plan 3 0 0 0 0 0 0 0 0 1 plage <0,8>
Plan 2 1 0 1 1 1 1 1 0 4 plages <1,1><0,1><1,5><0,1>
Plan 1 0 1 0 0 0 0 0 1 4 plages <0,1><1,1><0,5><1,1>
Plan 0 0 1 0 1 0 1 0 1 8 plages unitaires
Master Informatique – Option Traitement d'Images 8
Introduction Compression sans perte Compression avec perte
0+...+7 7 6 5 4 3 2 1 0
Principe
Coder les valeurs avec un nombre de bits différent.
Code (utilisant des mots) à longueur variable (ang. « Variable Length Coding »),
dit aussi codage entropique (ang. « Entropy coding »).
Plus une valeur apparaît fréquemment, plus le nombre de bits utilisés
pour la coder est petit (i.e. plus son code est court).
Algorithme de Huffman : codage
Phase 1 : Construction de l'arbre.
1. Trier les différentes valeurs par ordre décroissant de fréquence d'apparition
table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire
et affecter leur somme à la racine.
3. Réordonner la table de poids par poids décroissants.
4. Recommencer en 2. jusqu'à obtenir un seul arbre.
Phase 2 : Construction du code à partir de l'arbre obtenu dans la phase 1.
À partir de la racine, attribuer des 0 aux sous-arbres de gauche et des 1 à droite.
Master Informatique – Option Traitement d'Images 10
Introduction Compression sans perte Compression avec perte
25
Exemple de codage (suite) 0 / \ 1
Valeur Code
Construction du code 16 109
10 1
0 / \ 1
Affectation de valeurs
9 157 15 01
binaires aux arcs code
0 / \ 1 90 001
Image codée (en lignes)
5 904 100 0000
10101010110010000 ... 0 / \ 1
180 0001
soit 55 bits vs. 25x8=200 bits 1003 1802
Décodage
Propriété du préfixe unique : aucun code n'est le préfixe d'un autre
décodage non ambigu Entrée Action Buffer Émission
Le décodeur 1 Identification de 10 vide 10
doit connaître la table 0 Bufferise et attend 0 rien
de codage (entête) ;
1 Identification de 15 vide 15
extrait les valeurs
au plus tôt : 0 Bufferise et attend 0 rien
1 Identification de 15 vide 15
... ... ... ...
Master Informatique – Option Traitement d'Images 12
Introduction Compression sans perte Compression avec perte
DFT
Image Transformée
f(m,n) F(u,v) u
IDFT M −1 M −1
−
2 2
M x N M x N
N −1 Image du spectre
n log∣F u , v ∣ −
N −1
2
DFT et DFT inverse
1
M −1 N−1 − j 2π (mMu +nNv )
F (u , v) :=
√ MN
∑∑ f (m , n ) e
m=0 n =0
[ ]
M −1 N−1
=
1
√ MN
∑∑
m=0 n =0
mu n v
f (m , n )⋅ cos 2 π
⏟ ⏟
M
+
N (
− j⋅sin 2 π
mu nv
M
+
N ) ( )
M ,N M ,N
C m , n ( u , v) S m , n ( u , v)
1
M −1 N−1
+ j 2π ( mMu + nNv )
f (m , n) := ∑ ∑ F ( u , v) e
√ MN u =0 v=0
Master Informatique – Option Traitement d'Images 13
Introduction Compression sans perte Compression avec perte
sentation DCT
Image Transformée
f(m,n) F(u,v)
IDCT
M x N M x N Spectre
log∣F u , v ∣
N −1 N −1
n v
Master Informatique – Option Traitement d'Images 14
Introduction Compression sans perte Compression avec perte
D mM (u)= D uM (m)
Coef. de normalisation :
⏞ {
c (α ):= 1 / √ 2 si α =0 ,
√
1 si α ≠0.
(π )
M −1
2 (2 m+1) u
f (m):=
M
∑ c (u ) F ( u) cos 2M pour α ∈ { u , v }
u=0
En 2D
( ) ( )
M −1 N −1
2 (2 m +1)u (2 n+1) v
F (u , v ):= c (u ) c (v ) ∑ ∑ f ( m ,n ) cos π cos π
√M N m=0 n=0 ⏟⏟ 2 M 2N
DM
m
( u)= D M
u
( m) D Nn ( v)= D Nv ( n)
⏞
(2 m+ 1)u ⏞
( ) ( )
M −1 N −1
2 (2 n+1) v
f (m , n):=
√M N
∑∑ c (u) c (v ) F (u , v) cos π cos π
2M 2N
u=0 v =0
Master Informatique – Option Traitement d'Images 15
Introduction Compression sans perte Compression avec perte
DFT (cos seul) C Mu ( m) :=cos 2 π (
mu
M )
DCT
M
D u ( m) :=cos π (
( 2 m+1) u
2M
=cos 2 π ) (
( m+0,5) u
2M )
Séparabilité
Comme la DFT 2D, la DCT 2D peut être séparée en deux transformées 1D
[ ]
DFT 1D de f ( : , n )
DFT F (u , v):= 1 ⏞
N−1
1
M −1
√N √M
n=0 m=0
u u v
[√ ]
DCT 1D de f ( : , n )
DCT
⏞
√
N −1 M −1
2 2
c(v) ∑ c(u) ∑ f ( m , n ) D (m) ⋅D
M N
F (u , v):= u v (n)
N n=0 M m=0
Master Informatique – Option Traitement d'Images 16
Introduction Compression sans perte Compression avec perte
Fonctions de base
(
En 1D pour M=8 D8u (m) :=cos π ( 2 m+1) u
16 )
Représentation en
niveaux de gris
Master Informatique – Option Traitement d'Images 17
Introduction Compression sans perte Compression avec perte
Fonctions de base
En 2D pour M=N=8 D8,8
u ,v ( m , n)= D
8
u ( m) D
8
v ( n) :=cos
u
π
( 2 m +1 ) u
(cos π
( 2 n +1) v
16 ) ( 16 )
0 1 2 3 4 5 6 7
Composante 0
continue Hautes
fréquences
1 verticales
3
v
4
Hautes 6
fréquences
horizontales 7 Hautes
fréquences
Master Informatique – Option Traitement d'Images 18
Introduction Compression sans perte Compression avec perte
Généralités
JPEG (Joint Photographic Expert Group) : standard depuis 1992.
Images en ndg et couleur jusqu'à 24 bits, de qualité photographique.
Nombreux domaines d'applications : photo/vidéo en MM, astronomie, ...
Méthode basée sur une transformation (DCT 2D).
Ratio de compression nettement plus élevé que sans perte (1:25 acceptable).
Distorsion
Perte irréversible artefacts de compression
Minimiser la distorsion perceptible
Choix de perte basés sur des expériences psychovisuelles
Dégradation uniforme de l'image
Pas de limite à la compression (choix utilisateur fonction de l'application)
Sources de perte lors de la compression JPEG
Quantification des coefficients de la DCT (+ éventuellement des couleurs)
Arrondis de nombres réels en entiers
Master Informatique – Option Traitement d'Images 19
Introduction Compression sans perte Compression avec perte
Principe fondamental
Application de la DCT sur des blocs de 8x8 pixels (M=N=8).
Quantification : les coefficients les moins significatifs (de hautes
fréquences) sont représentés avec moins de précision, voire éliminés.
Schéma-bloc général de compression
Master Informatique – Option Traitement d'Images 20
Introduction Compression sans perte Compression avec perte
{
Y = w R⋅R1−w B −w R ⋅Gw B⋅B
0,5
Cb = ⋅ B−Y
1−w B
0,5
Cr = ⋅ R−Y
1−w R
Y Cb Cr ITU : w R =0,299 wG =0,587 w B =0,114
Master Informatique – Option Traitement d'Images 21
Introduction Compression sans perte Compression avec perte
[ ]
74 69 67 63 63 63 72 67
Découpage 73 62 65 70 65 59 70 69
en P blocs 8x8 75 60 63 86 108 71 67 69
8 71 60 63 83 109 76 67 69
Exemple : 69 64 64 86 128 89 66 71
69 67 62 55 79 63 64 77
71 73 63 45 40 52 73 84
70 70 70 69 71 75 81 84
DCT
Après centrage des valeurs autour de 0 par soustraction de 2profBits-1 (ex. 28-1=128).
m u
[ ] [ ]
−54 −59 −61 −65 −65 −65 −56 −61 −457 −15 −8 14 29 −12 −7 17
−55 −66 −63 −58 −63 −69 −58 −59 1 10 −21 8 11 9 −3 2
DCT −24 7 49 −24 −30 20 3 −11
−53
−57
−68
−68
−65
−65
−42
−45
−20
−19
−57
−52
−61
−61
−59
−59
n −16 5
−7
16 −2 −10 −7 2
−26 12 4 −4 0
1
v
−59 −64 −64 −42 0 −39 −62 −57 arrondi 24 0
−59 −61 −66 −73 −49 −65 −64 −51 −14 5 19 −7 −6 3 −1 −1
−57 −55 −65 −83 −88 −76 −55 −44
à 9 −1 −12 7 7 −6 −1 4
−58 −58 −58 −59 −57 −53 −47 −44 l'entier 11 −1 −10 5 4 −4 −2 0
f m , n F u , v {Coefficient DC (1 valeur)
Coefficients AC (63 valeurs)
Master Informatique – Option Traitement d'Images 22
Introduction Compression sans perte Compression avec perte
[ ] [ ]
16 11−15 10−8 1614 2429 −12
40 −751 17
61 −29 −1 −1 1 1 0 0 0
−457
12 112 10−21
14 19 8 2611 58 9−360 55 0 1 −1 0 0 0 0 0
1 3 −1 −1 0 0 0 La plupart
2
14 13 16 24 40 57 69 56 −2
−24 7 49−24 −30 20 3−11
14 17 −1 0 1 0 0 0 0 des coef. de
0
−16 5 16 −2 −10 −7 802 62
22 29 51 87 1 quantification 1 0 −1 0 0 0 hautes fréquences
0 0
→
18 2422 37
−7 −26 56 12 68 109
4 −4 103
0 77
0
24 35 55 64 81 104 113 92 −1 0 0 0 0 0 0 0
−14 5 19 −7 −6 3−1 −1 sont annulés
49 964 78
−1 −12 87 7103 121
7 −6 −1120 101
4 arrondi 0 0 0 0 0 0 0 0
72 1192 95 98 112 100 103 99 à l'entier 0 0 0 0 0 0 0 0
−1 −10 5 4 −4 −2 0
F
Q
*
F (u , v )=round ( F (u , v)
Q (u , v) )
Master Informatique – Option Traitement d'Images 23
Introduction Compression sans perte Compression avec perte
Codage entropique
Formation des séquences intermédiaires (cas baseline)
Le premier coef. (DC) de chaque bloc i, qui concentre la
majeure partie de l'énergie, varie peu d'un bloc à l'autre.
La séquence {DC i}06i<P est codée par codage différentiel :
DC0 DC1-DC0 DC2-DC1 ... DCP-2-DCP-1
Les autres coef. (AC) de chaque bloc i sont lus en zigzag, formant une séquence
globalement décroissante, dont une plage finale de coef. nuls :
[ ]
−1 0
−29 −1 −1 1 1 0 0 0
0 1 −1 0 0 0 0 0 −2 1 −1
−2 1 3 −1 −1 0 0 0 1 −1 1 −1
zigzag 1 0 3 0 1
−1 0 1 0 0 0 0 0
1 0 −1 0 0 0 0 0
−1 0 0 0 0 0 0 0
→ 0 0 −1 1 0 −1
0 0 −1 0 −1 0 0
sur AC 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
*
F (u , v) ⋯
La séquence {ACki}06k<63, 06i<P est ensuite codée bloc par bloc par codage RLE.
Codage entropique (de Huffman ou arithmétique) de ces 2 séquences.
Master Informatique – Option Traitement d'Images 24
Introduction Compression sans perte Compression avec perte
Sélection de références
Livres
Éric Incerti, Compression d'image – Algorithmes et standards, Vuibert 2003
Gilles Burel, Introduction au traitement d'images – Simulation sous Matlab,
Hermès 2001 (chapitre 8)
Sites web
Cours de P. Nerzic (U. Rennes)
http://frama.link/K2vZFGkY
Page wikipedia sur JPEG (en anglais, plus complète que celle en français)
http://en.wikipedia.org/wiki/JPEG
Basics of DCT and Entropy Coding, par Nimrod Peleg
www.lokminglui.com/J4DCT-Huff2009.pdf
How JPEG works, par C. G. Jennings
https://cgjennings.ca/articles/jpeg-compression.html
Cours de D. Marshall (U. Cardiff)
http://www.cs.cf.ac.uk/Dave/Multimedia/PDF/ (cf. chapitres 9 et 10)
Master Informatique – Option Traitement d'Images 26