Академический Документы
Профессиональный Документы
Культура Документы
Plan du cours
1 Introduction
Gnralits sur la compression de donnes
Mesurer la compression
Types de compression et formats d'images
Slection de rfrences
Objectif
Rduire le volume de donnes ncessaire au codage d'un signal numrique
Pour faciliter son stockage ou sa transmission par rseau
Principe
Dtection de redondances dans le signal
Un algorithme de compression permet le codage rduit du signal
Un algorithme (inverse) de dcompression permet d'exploiter le signal
Types de compressions
Compression sans perte (ou non-destructive, i.e. codage ou compactage):
Le signal obtenu aprs dcompression est strictement identique l'original
Utilisation : fichier excutable, fichier texte
Compression avec perte (ou destructive, ou avec dgradation) :
Le signal obtenu aprs dcompression diffre (lgrement) de l'original
Utilisation : image, son, vido
Que perdre ?
Mesurer la compression
Rapport signal sur bruit pic--pic
d2
(ang. Peak Signal-Noise Ratio ) PSNR=10log 10
d = valeur max. possible (ex. 255) MSE
Principe
Codage par plage (ang. Running Length Encoding )
Recherche de squences de donnes redondantes (ex. niveaux identiques).
Codage de la valeur et du nombre de rptitions :
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 dcompression trs simples et rapides.
Limites
Efficace seulement pour de nombreuses et longues plages constantes.
Cas des images de synthse simples ; peu adapt aux photos.
Utilis ponctuellement dans de nombreux formats (BMP, JPG, TIFF, PCX, ...).
Ncessite de fixer un maximum pour la longueur des plages (ex. 255).
0+...+7 7 6 5 4 3 2 1 0
Principe
Coder les valeurs avec un nombre de bits diffrent.
Code (utilisant des mots) longueur variable (ang. Variable Length Coding ),
dit aussi codage entropique (ang. Entropy coding ).
Plus une valeur apparat frquemment, plus le nombre de bits utiliss
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 diffrentes valeurs par ordre dcroissant de frquence d'apparition
table de poids.
2. Fusionner les deux poids minimaux dans un arbre binaire
et affecter leur somme la racine.
3. Rordonner la table de poids par poids dcroissants.
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.
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 code (en lignes) 5 904 100 0000
10101010110010000 ... 0 / \ 1
180 0001
soit 55 bits vs. 25x8=200 bits 1003 1802
Dcodage
Proprit du prfixe unique : aucun code n'est le prfixe d'un autre
dcodage non ambigu Entre Action Buffer mission
Le dcodeur 1 Identification de 10 vide 10
doit connatre la table 0 Bufferise et attend 0 rien
de codage (entte) ;
1 Identification de 15 vide 15
extrait les valeurs
au plus tt : 0 Bufferise et attend 0 rien
1 Identification de 15 vide 15
... ... ... ...
MasterInformatiqueOption Traitement d'Images 12
Introduction Compression sans perte Compression avec perte
DFT
Image Transforme
f(m,n) F(u,v) u
IDFT M 1 M 1
2 2
MxN MxN
N 1 Image du spectre
n logF u , v
N 1
2
DFT et DFT inverse
F u , v :=
1
M 1 N 1
f m , n e
j2
mu n v
M
N
MN m=0 n=0
[ ]
M 1 N 1
1 mu n v mu n v
=
MN
f m , n cos 2
jsin 2
m=0 n=0
M N M N
CM ,N
m , n u , v SmM, ,nN u , v
f m , n :=
1
M 1 N 1
F u , v e M
j2 mu n v
N
MN u=0 v=0
sentation
DCT
Image Transforme
f(m,n) F(u,v)
IDCT
MxN MxN Spectre
logF u , v
N 1 N 1
n v
MasterInformatiqueOption Traitement d'Images 14
Introduction Compression sans perte Compression avec perte
M 1
2 2 m1u
F u := c u f m cos
M m= 0 2M
DmM u=D uM m
Coef. de normalisation :
{
c := 1/ 2 si =0,
M 1
2 2 m1u 1 si 0.
f m:=
M
c u F u cos
2M pour {u , v }
u=0
En 2D
M 1 N 1
2 2 m1u 2 n1 v
F u ,v := c u c v f m ,n cos cos
M N m=0 n=0 2M 2N
DM M
m u= Du m D Nn v = D Nv n
2 m1u
M1 N 1
2 2 n1 v
f m , n := c u c v F u ,v cos cos
M N u=0 v=0 2M 2N
[ ]
DFT 1D de f ( : , n )
DFT F (u , v):= 1 1
N1 M 1
f (m , n ) (C ( m) j S (m)) (C (n ) j S v (n ))
M M N N
N M n=0 m=0
u u v
[ ]
DCT DCT 1D de f ( : , n )
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
Fonctions de base
En 1D pour M=8 D8u m :=cos 2 m1u
16
Reprsentation en
niveaux de gris
Fonctions de base
En 2D pour M=N=8 D 8,8
u,v
(m , n)= D 8
u
(m) D 8
v
(n) :=cos
u
((2 m+ 1)u
16 ) (
cos
( 2 n+ 1) v
16 )
0 1 2 3 4 5 6 7
Composante 0
continue Hautes
frquences
1 verticales
3
v
4
Hautes 6
frquences
horizontales 7 Hautes
frquences
MasterInformatiqueOption Traitement d'Images 18
Introduction Compression sans perte Compression avec perte
Gnralits
JPEG (Joint Photographic Expert Group) : standard depuis 1992.
Images en ndg et couleur jusqu' 24 bits, de qualit photographique.
Nombreux domaines d'applications : photo/vido en MM, astronomie, ...
Mthode base sur une transformation (DCT 2D).
Ratio de compression nettement plus lev que sans perte (1:25 acceptable).
Distorsion
Perte irrversible artefacts de compression
Minimiser la distorsion perceptible
Choix de perte bass sur des expriences psychovisuelles
Dgradation 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 rels en entiers
MasterInformatiqueOption 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
frquences) sont reprsents avec moins de prcision, voire limins.
Schma-bloc gnral de compression
{
Y = w RR1w B w R Gw BB
0,5
Cb = BY
1w B
0,5
Cr = RY
1w R
Y Cb Cr ITU : w R =0,299 wG =0,587 w B =0,114
[ ]
74 69 67 63 63 63 72 67
Dcoupage 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
Aprs 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)
[ ] [ ]
16 1115 108 1614 2429 12
40 751 17
61 29 1 1 1 1 0 0 0
457
12 112 1021
14 19 8 2611 58 9360 55 0 1 1 0 0 0 0 0
14 13 16 24 40 57 69
2
56 2 1 3 1 1 0 0 0 La plupart
24 7 4924 30 20 311
14 17 5 16 2 10 7 802 62
22 29 51 87 1 0 1 0 0 0 0 0 des coef. de
16 1 quantification 1 0 1 0 0 0 0 0 hautes frquences
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 31 1 sont annuls
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) )
MasterInformatiqueOption Traitement d'Images 23
Introduction Compression sans perte Compression avec perte
Codage entropique
Formation des squences intermdiaires (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 squence {DC i}06i<P est code par codage diffrentiel :
DC0 DC1-DC0 DC2-DC1 ... DCP-2-DCP-1
Les autres coef. (AC) de chaque bloc i sont lus en zigzag, formant une squence
globalement dcroissante, 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 squence {ACki}06k<63, 06i<P est ensuite code bloc par bloc par codage RLE.
Codage entropique (de Huffman ou arithmtique) de ces 2 squences.
{
Facteur de qualit q sur matrice Q : Q ' =Q , = 50/q si 1q50
22 q /100 si 51q99
Slection de rfrences
Livres
ric Incerti, Compression d'image Algorithmes et standards, Vuibert
2003
Gilles Burel, Introduction au traitement d'images Simulation sous Matlab,
Herms 2001 (chapitre 8)
Sites web
Cours de P. Nerzic (U. Rennes)
http://frama.link/K2vZFGkY
Page wikipedia sur JPEG (en anglais, plus complte que celle en franais)
http://en.wikipedia.org/wiki/JPEG
Basics of DCT and Entropy Coding, par Nimrod Peleg
www.lokminglui.com/J4DCT-Huff2009.pdf
Applet de dmo, par C. G. Jennings
http://cgjennings.ca/toybox/hjpeg/index.html
Cours de D. Marshall (U. Cardiff)
http://www.cs.cf.ac.uk/Dave/Multimedia/PDF/ (cf. chapitres 9 et 10)