Vous êtes sur la page 1sur 26

TI Traitement d'Images

Semaine 12 : Compression d'images


Olivier Losson

Master Informatique : http://www.fil.univ-lille1.fr


Spcialit IVI : http://master-ivi.univ-lille1.fr

MasterInformatiqueOption Traitement d'Images 1


Introduction Compression sans perte Compression avec perte

Plan du cours

1 Introduction
Gnralits sur la compression de donnes
Mesurer la compression
Types de compression et formats d'images

2 Compression sans perte (codage)


Codage RLE
Codage de Huffman

3 Compression avec pertes


Transforme en cosinus discrte (DCT)
Compression JPEG

Slection de rfrences

MasterInformatiqueOption Traitement d'Images 2


Introduction Compression sans perte Compression avec perte

Gnralits sur la compression de donnes

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 ?

MasterInformatiqueOption Traitement d'Images 3


Introduction Compression sans perte Compression avec perte

Mesurer la compression

Notations compression dcompression


I I I
image image image
originale compresse dcompresse
Mesures de performance
Taux de compression
volume( I) 2 Mo
:= , souvent not en ratio. Ex.: = =0,2 not 1:5 ("1 pour 5")
volume(I) 10 Mo
volume(I ) 1
Confusion commune avec le quotient (ou ratio ) de compression q := =

volume( I )
Mesure objective de distorsion (cas avec perte)
Erreur quadratique moyenne 1
M 1 N 1
2
(ang. Mean Square Error ) MSE =
3 MN
(I k
m ,n I m , n )
k

k=R ,G , B m=0 n=0


Rapport signal sur bruit pic--pic
d2
(ang. Peak Signal-Noise Ratio ) PSNR=10log 10
d = valeur max. possible (ex. 255) MSE

MasterInformatiqueOption Traitement d'Images 4


Introduction Compression sans perte Compression avec perte

Types de compressions (1/2)

Avec ou sans perte


Compressions sans perte Compressions avec perte
(codages)

delta
par moyennage de blocs

codes longueur variable :
par transformation linaire optimale
VLC prfix, Shannon-Fano, ou de Karhunen-Loeve (KLT)
Huffman
par transforme en cosinus discrte

codage arithmtique (DCT) : JPEG
Exemples
base de dictionnaire :
par transforme en ondelettes
Lempel-Ziv (LZ77, LZW) dicrte (DWT) : JPEG 2000

par dcorrlation :
par quantification (scalaire ou
Run-Length Encoding vectorielle)
(RLE),
par dtection de motifs images
codage prdictif sans perte redondants (fractale)

Taux de compression limit
Bon taux de compression
Remarques
Aucune perte d'information
Perte d'information

MasterInformatiqueOption Traitement d'Images 5


Introduction Compression sans perte Compression avec perte

Types de compressions (2/2)

Compression des principaux formats d'images bitmaps


Format Espaces couleur Compression(s) C. Domaines d'utilisation, rem.
TIFF RGB, CIE L*a*b*, Aucune Oui PAO, Infographie, bureautique
(.tif) CMYB, couleurs Sans perte (LZW, Huffman) Trs flexible, mais nombreuses
indexes, ndg Avec perte (JPEG) variantes pas toujours supportes
BMP RGB, couleurs Aucune Non Bureautique sous Windows
(.bmp) indexes, ndg Sans perte (RLE) Compression peu efficace
GIF couleurs indexes Sans perte (LZW) Oui Pages web
(.gif) (2 256) Animations possibles
JFIF RGB, CMYB, ndg Avec perte (JPEG) Non Pages web, photographie
(.jpg) Compr. efficace mais destructive
PNG RGB, ndg, 256 Sans perte Oui Pages web, photo. sans perte
(.png) couleurs indexes (deflate=LZ77+Huffman) Format libre. Jusqu' 48 bits.
TIFF = Tag(ged) Image File Format ; GIF=Graphics Interchange Format ;
JFIF = JPEG File Interchange Format ; PNG = Portable Network Graphics.
CMYB (fr. CMJN) = Cyan, Magenta, Jaune, Noir ; ndg=niveaux de gris.
Canal : permet la transparence.

MasterInformatiqueOption Traitement d'Images 6


Introduction Compression sans perte Compression avec perte

Codage RLE (1/3)

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).

MasterInformatiqueOption Traitement d'Images 7


Introduction Compression sans perte Compression avec perte

Codage RLE (2/3)

Amlioration : dcomposition en plans de bits


Les plages apparemment uniformes prsentent en fait de faibles variations

100 99 100 101 100 101 100 99

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

Forte cohrence entre pixels voisins au niveau des plans de bits.

MasterInformatiqueOption Traitement d'Images 8


Introduction Compression sans perte Compression avec perte

Codage RLE (3/3)

Amlioration : dcomposition en plans de bits (suite)


Dcomposition en 8 plans de bits plages constantes plus longues
codage RLE slectif
Efficace sur plans de poids fort
Inutile sur plans 0, 1 et 2
Contenu informatif des diffrents plans
plans de poids faibles (0..2) : surtout du bruit
plans mdians (3..5) : (trs approximativement) information de contours, textures
plans de poids forts (6..7) : information de contraste

0+...+7 7 6 5 4 3 2 1 0

7 6+7 5+6+7 4+...+7 3+...+7 2+...+7 1+...+7 0+...+7


MasterInformatiqueOption Traitement d'Images 9
Introduction Compression sans perte Compression avec perte

Codage de Huffman (1/3)

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.

MasterInformatiqueOption Traitement d'Images 10


Introduction Compression sans perte Compression avec perte

Codage de Huffman (2/3)


10 15 15 15 15
Exemple de codage
10 90 100 100 15
Construction de l'arbre
1. Table des poids 10 90 180 100 15 109 157 904 1003 1802
10 90 180 90 15

10 10 10 10 10 109 157 904 5


/ \
2. Fusion des poids minimaux 1003 1802

3. Rordonnancement 109 157 5 904


/ \
1003 1802
4. Itrations
109 9 157 16 109 25
/ \ / \ / \
5 904 9 157 16 109
/ \
1003 1802 / \ / \
5 904 9 157
/ \ / \
1003 1802 5 904
/ \
1003 1802
MasterInformatiqueOption Traitement d'Images 11
Introduction Compression sans perte Compression avec perte

Codage de Huffman (3/3)

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

Transforme en cosinus discrte (1/6)

Transforme de Fourier discrte 2D (ang. DFT) (rappel)


Notations Domaine spatial (pixels) Domaine frquentiel (cycles/pixel)
N 1
0 M 1 m 2 v
0

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

MasterInformatiqueOption Traitement d'Images 13


Introduction Compression sans perte Compression avec perte

Transforme en cosinus discrte (2/6)

Introduction la transforme en cosinus discrte (ang. DCT)


Inconvnients de la DFT : sur un signal f rel,
produit un signal F de spectre symtrique ; seule la moiti des coefficients
spectraux a donc besoin d'tre calcule ;
produit un signal F complexe, sans que sa partie relle ou imaginaire seule
permette de reprsenter (donc de reconstruire) le signal f.
La DCT est une transformation spectrale (parmi d'autres) qui
possde les mmes proprits que la DFT ;
s'applique uniquement sur les signaux rels ;
est dfinie par des fonctions de base en cosinus seulement ;
est utilise en compression d'images (JPEG, MPEG).
M 1 u
Repr- 00 M 1 m
0
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

Transforme en cosinus discrte (3/6)

DCT et DCT inverse


En 1D


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

MasterInformatiqueOption Traitement d'Images 15


Introduction Compression sans perte Compression avec perte

Transforme en cosinus discrte (4/6)

DCT et DCT inverse (suite)


Lien avec la DFT
Par rapport la DFT, la rsolution frquentielle du spectre est double
dans la DCT : cf. fonctions de base

DFT (cos seul) C uM m:=cos 2 mu


M
DCT
M
D u m:=cos 2 m1u
2M
=cos 2
m0,5 u
2M
Sparabilit
Comme la DFT 2D, la DCT 2D peut tre spare en deux transformes 1D

[ ]
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

MasterInformatiqueOption Traitement d'Images 16


Introduction Compression sans perte Compression avec perte

Transforme en cosinus discrte (5/6)

Fonctions de base
En 1D pour M=8 D8u m :=cos 2 m1u
16

Reprsentation en
niveaux de gris

MasterInformatiqueOption Traitement d'Images 17


Introduction Compression sans perte Compression avec perte

Transforme en cosinus discrte (6/6)

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

Compression JPEG (1/7)

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

Compression JPEG (2/7)

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

(1) : Changement d'espace couleur et sous-chantillonnage de la chrominance (facultatif)


2 : Dcoupage de chaque plan Y,Cb,Cr en blocs de 8x8 pixels
3 : DCT sur chaque bloc 4 : Quantification de chaque bloc suivant table
5a : Codage diffrentiel des coefficients DC 5b : Codage RLE des coef. AC en parcours zigzag
6 : Codage entropique (de Huffman ou arithmtique) des squences DC et AC Signal compress

MasterInformatiqueOption Traitement d'Images 20


Introduction Compression sans perte Compression avec perte

Compression JPEG (3/7)

Transformation (facultative) RGB YCbCr


Avantage :
L'il humain est moins sensible aux dtails de l'information de couleur
(chrominance) que de ceux de l'intensit (luminance).
Possibilit de
compresser davantage la chrominance sans perte visible de qualit (JPEG) ;
rserver une bande passante plus troite (1/4) la chrominance (signal TV).
Principe :
Sparation des informations de luminance (Y) et de chrominance (Cb et Cr).
Codage des diffrences de composantes : Cb B-Y et Cr R-Y.

{
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

MasterInformatiqueOption Traitement d'Images 21


Introduction Compression sans perte Compression avec perte

Compression JPEG (4/7)


8
DCT sur blocs 8x8

[ ]
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)

MasterInformatiqueOption Traitement d'Images 22


Introduction Compression sans perte Compression avec perte

Compression JPEG (5/7)

Quantification (ang. quantization )


Principe
Rduire la quantit d'information de hautes frquences.
Car l'il humain est plus sensible aux basses frquences.
Principale opration destructive dans JPEG.
Implmentation
Division de chaque coefficient frquentiel issu de la DCT, puis arrondi l'entier.
Les diviseurs sont donns dans une matrice de quantification Q.
Le standard JPEG fournit une matrice pour la luminance et pour la chrominance.
Exemple :

[ ] [ ]
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

Compression JPEG (6/7)

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.

MasterInformatiqueOption Traitement d'Images 24


Introduction Compression sans perte Compression avec perte

Compression JPEG (7/7)

Influence des coefficients DCT


Prise en compte d'un nombre croissant de coefficients (parcours zigzag)

Original 1 coef. 2 coef. 4 coef. 8 coef. 16 coef. 32 coef. 64 coef.

{
Facteur de qualit q sur matrice Q : Q ' =Q , = 50/q si 1q50
22 q /100 si 51q99

q = 10 q=7 q=5 q=2


MasterInformatiqueOption Traitement d'Images 25
Rfrences

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)

MasterInformatiqueOption Traitement d'Images 26