Vous êtes sur la page 1sur 127

Traitement d'images

Dr. KAMEL BELLOULATA


id2798834 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com
I. Introduction
Objectif
Comprhension des techniques de traitement d'images mise en
oeuvre dans le domaine des tlcommunications
Domaines d'application
Vision industrielle
Imagerie mdicale
Imagerie satellite
Microscopie
Tlcommunications
Animations, Images de synthse
....
I. Introduction
II. Reprsentations & Acquisition
III. Pr-traitement & Amlioration
IV. Compression
V. Segmentation
VI. Introduction l'indexation
VII. Introduction au tatouage
VIII. Conclusion
Plan
Scne, objets 2D 3D...
Eclairage
Image 2D,3D,...
Formation de limage
Image numrique
Numrisation
Image numrique
Restauration
Reconstruction
Corrections
- radiomtriques
- gomtriques
Image numrique
Indexation
Compression
Segmentation
Tatouage
Reconnaissance
de formes
BDO
Transmission
Dcision
II. Reprsentation & Acquisition
1. Reprsentation continue
2. Reprsentation chantillonne
3. Voisinage, connexit, distance
4. Acquisition : chantillonnage, quantification, bruit
5. Reprsentations frquentielles
6. Reprsentations pyramidales
7. Reprsentation de la couleur
II.1 Reprsentation continue
Image = fonction dau moins deux variables relles
Image : f(x,y) image 2D
Volume : f(x,y,z) image 3D
Squence dimage : f(x,y,t)
Squence de volumes : f(x,y,z,t) image 4D
Les valeurs prises par f(.) peuvent tre
Scalaires (intensit lumineuse)
Vectorielles (couleur (RVB, ..), imagerie multispectrale, image de paramtres...)
Relles ou complexes
Une image 2D f(x,y) scalaire relle peut tre vue comme
une surface en 3D :
Interprtation altimtrique des images,
bassin versant, dtection de ligne de crtes,
dnivellation ...
Si f(.) reprsente une intensit lumineuse
Cette reprsentation est utilise
quel que soit le paramtre reprsent par f(.)
( Temprature, pression,....)
Correspondance entre niveau de gris et
grandeur physique.
Oprations sur les images continues :
Toutes oprations ralisables sur le papier sur les
fonctions continues variables relles
Transforme de Fourier bidimensionnelle (2D)
Filtrage, convolution, corrlation, intgration,
drivation, traitements non linaire...
On utilisera souvent la notation continue pour
reprsenter et manipuler des images numriques
(discrtes, chantillonnes, quantifies)
Le traitement numrique de limage sera parfois une
discrtisation dune opration en continu
II.2 Reprsentation chantillonne
Echantillonnage dune fonction f(x,y)
f
e
(x,y) = f(x,y).E
i
E
j
o( x - i Ax , y - j Ay )
Ax pas dchantillonnage dans la direction x
Ay pas dchantillonnage dans la direction y
x
Ax
Ay
E
i
E
j
o( x - i Ax , y - j Ay ) Peigne de Dirac 2D
Le poids de chaque Dirac est :
Soit la valeur de f(x,y) en x = i Ax et y = j Ay
Soit la valeur moyenne de f(x,y) dans une rgion
entourant (i Ax , j Ay) (f(x,y) est pondre et intgre dans
la rgion R)
~
( , ) f i x j y A A
Camra CCD
Camra tube
~
( , ) ( , ) ( , , , ) f i x j y f x y h x y i x j y dxdy
R
A A A A =
}
~
( , ) ( , ) ( , ) f i x i y f x y h i x x j y y dxdy
R
A A A A =
}
Dans le cas gnral on aura (cas variant) :
Si h(.,.) est identique en tout point (x,y), on aura (cas invariant) :
h reprsentera la rponse impulsionnelle du systme de prise de vue. Cest une
opration de convolution, donc de filtrage.
f x y f i x j y x i x y j y
e
j i
( , )
~
( , ) ( , ) =

A A A A o
Limage chantillonne est donc :
Dans un ordinateur, limage (numrique) sera reprsente par
une matrice (tableau 2D) : f i j f i x j y [ , ]
~
( , ) = A A
f [i,j] est appel valeur du PIXEL (i,j)
(Pixel: PICture ELement)
Pour visualiser une image, on remplit une rgion
rectangulaire (Pixel) avec un niveau de gris (ou de couleur)
correspondant la valeur du pixel. En gnral les niveaux
de gris (ou de couleur) utilis pour la visualisation sont
compris entre 0 et 255 (code de longueur fixe sur 8 bits).
0.1 0.23
0.15 0.50
f [i,j]
50 115
75 250
Niveau de gris Affichage
La maille (rpartition des pixels) est le plus
souvent carre (Dx=Dy) ou rectangulaire
On utilise parfois une maille hexagonale
qui possde des proprits intressantes
pour les notions de voisinage et de
distance.
II.3 Voisinage, connexit, distance
Beaucoup de traitements font intervenir la notion de voisinage
Un pixel possde plusieurs voisins (4 ou 8)
On parlera de connexit 4 ou 8
La rgion grise forme :
UN seul objet en connexit 8
DEUX objets en connexit 4
Distance Euclidienne
d f f i k x j l y
e
( , ) ( ) ( )
'
= +
2 2 2 2
A A
Distance City-Block d f f i k x j l y
c
( , ) ' = + A A
longueur du chemin en connexit 4
Distance de lchiquier d f f i k x j l y
b
( , ) max( , ) ' = A A
Distance entre deux pixels f [i,j] et f [k,l]
II.4 Acquisition : chantillonnage / quantification
Effets de l'chantillonnage : pixelisation
256 x 256 pixels 64 x 64 pixels 16 x 16 pixels
Contours en marche descalier
Perte de nettet
Dtails moins visibles/ moins prcis
Perte de rsolution
Effets de la quantification l'acquisition
CAN sur les systmes dacquisition dimages
Codage de la valeur de chaque pixel sur N bits (En gnral 8 bits)
8 bits (256 niv.) 2 bits (4 niv.) 4 bits (16 niv.)
Apparition de faux contours
Bruit de quantification
Effet visible lil en dessous de 6/7 bits
Quantification sur 8 bits pour laffichage
Bruits lis l'acquisition
Les images sont souvent entaches de bruit, parfois non visible
lil, et qui perturberont les traitements
Diaphragme F/4
Optimiser les conditions dclairage
Attention lclairage ambiant
Mais... diaphragme ouvert = faible profondeur de champ
Mais... clairage important = dgagement de chaleur
F/8 F/16
Correction de l'clairage
Eclairage non uniforme !
Flou de boug/fil d un temps de pose/intgration trop long
Effet de lignage d au balayage entrelac des camras vido
Cet effet disparat avec les camras
balayage progressif non entrelac
Cet effet est limit par lusage dobturateur
rapide et/ou dclairage flash
Une bonne acquisition Des traitements facilits
II.5 Reprsentations frquentielles
Notion de frquence spatiale
Transforme de Fourier
Transforme Cosinus
Notion de frquence spatiale
Basses frquences
^
Zones homognes, continues
Hautes frquences
^
Dtails, contours
Variation sinusodale rapide
(frquence) des niveaux de gris
dans une direction donne
f x y A f x f y
x y x y
( , ) sin( ) = + + + 2 2 t t
x
y
Transforme de Fourier 2D
Image = E images sinusodales (A,f,)
}}
+ t = dxdy )) y f x f ( j 2 exp( ) y , x ( f ) f , f ( F
y x y x
F = image complexe (module & phase)
x
y
f
x
f
y
(Module de
F(f
x
, f
y
)
f
x
f
y
Haute
frquence
Images sinusodales Impulsions de Dirac
f
x
f
y
Basse
frquence
Transforme de Fourier Discrte 2D (DFT)
F u v
MN
f m n j
mu
M
nv
N
n
N
m
M
( , ) [ , ] exp( ( )) = +
=


1
2
0
1
0
1
t
Image chantillonne (M x N) pixels, la DFT est donne par :
u
v
Proprits de la DFT 2D
Identiques au 1D
Priodique en u,v (priode M,N)
F(0,0) = composante continue = moyenne des NG
Conservation de l nergie ^EE |f(m,n)| = EE |F(u,v)|
f relle ^F symtrique conjugue (mod. pair, arg. impair)
Sparable
Algorithme rapide (FFT) : N.log
2
(N)
Convolution circulaire = DFT
Importance de la phase
Module
DFT - DFT
-1
Module
Phase
Echantillonnage & Aliasing
Si le thorme de Shannon nest pas respect lors de
lchantillonnage dune image continue, il y a repliement
de spectre
Ceci se traduit dans les images par des figures de Moir,
cest dire des formes fausses qui nexistaient pas dans
limage dorigine
Les camras matricielles types CCD induisent systmatiquement
du repliement de spectre. Limage dentre ne devra donc pas
contenir trop de hautes frquences ( Ne passez pas la tl avec
un costume ray ! )
Sans
repliement
Remarque
DFT priodique
Echantillonne Continue !
Avec
repliement
Echantillonne Continue !
Transforme Cosinus Discrte
|
.
|

\
|
t +
|
.
|

\
|
t +
=

=
M 2
. v ) 1 j 2 (
cos .
N 2
. u ) 1 i 2 (
cos ). j , i ( f .
N . M
) v ( c ). u ( c . 4
) v , u ( C
1 N
0 i
1 M
0 j

= =
= =
0 u pour N 1 ) u ( c
0 u pour N 2 ) u ( c
Avec
Proprits de la DCT 2D
Linaire, sparable
Coefficients rels
C(0,0) = composante continue = moyenne des NG
Concentration d nergie en basse-frquence
Algorithme rapide (via la FFT) : N.log
2
(N)
R compression d images
II.6 Reprsentations pyramidales
Pyramides Gaussiennes & Laplaciennes
Sous-Bandes / Transforme en ondelettes
R Traitement multirsolution : Coarse To Fine
Pyramides Gaussiennes & Laplaciennes
Burt & Adelsson (1983)
Filtrage passe-bas 2D de type gaussien
R Compression d images
R Analyse et segmentation d images
Dcomposition en sous-bandes / ondelettes
Esteban/Galland 1977 - Woods/O Neil 1986 - - Mallat (1989)
Filtres FIR 1D, 2D
Filtres IIR 1D, 2D
Une Dcomposition
Une reconstruction
Dcomposition / Reconstruction sans pertes R cascades
Pyramidale
(itre en octave)
Adaptative
Rversible
Concentration d nergie
Spatio - frquentiel
R Analyse & Compression
II.7 Reprsentation de la couleur
RGB
CMY
YUV / YIQ
HSL
Palettes
0
255
255
255
Maxwell triangle
R+G+B=255
black
blue
green
red
white
Rouge Vert Bleu (RGB)
Synthse additive de la couleur (perception d une source)
il, Moniteur, Carte graphique
Images 24 bits (3*8 bits)
^16 M de couleurs >> 350 000
NG : R=G=B
Cyan Magenta Jaune (CMY)
Synthse soustractive de la couleur
R Objet clair absorbant un certain nombre de frquences
Extension CMYK pour l impression en quadrichromie
(
(
(

(
(
(

=
(
(
(

Y
M
C
1
1
1
B
G
R
(
(
(
(

=
(
(
(
(

(
(
(

K
' Y
' M
' C
) Y , M , C min(
) Y , M , C min( Y
) Y , M , C min( M
) Y , M , C min( C
Y
M
C
YUV (PAL) / YIQ (NTSC)
Y = intensit lumineuse = TV N&B
UV / IQ = information chrominance
(
(
(

(
(
(

=
(
(
(

B
G
R
.
311 . 0 522 . 0 211 . 0
322 . 0 274 . 0 596 . 0
114 . 0 587 . 0 299 . 0
Q
I
Y
(
(
(

(
(
(


=
(
(
(

B
G
R
.
100 . 0 515 . 0 615 . 0
437 . 0 289 . 0 147 . 0
114 . 0 587 . 0 299 . 0
V
U
Y
YUV >> RGB pour la dcorrlation de l information
R Compression d images couleur
DVB R YUV 4:2:0
(
(
(

(
(
(

7 . 1 : V
3 . 5 : U
93 : Y
6 . 30 : B
2 . 36 : V
2 . 33 : R
Hue Saturation Lightness (HSL)
Le cerveau ragit :
- la longueur d onde dominante (teinte)
- la contribution la luminosit de l ensemble (saturation)
- l intensit par unit de surface = luminance
Y = L
UV ^coordonnes polaire ^HS
2 2
UV
1
UV
V U S
) U / V ( tan H
+ =
=

0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Palettes de couleur
16 Millions de couleurs ^256 couleurs = palettes (GIF, BMP)
Image indexe = Palette (couleur sur 24 bits) + matrice d index
R visualisation en fausses couleurs
I. Introduction
II. Reprsentations & Acquisition
III. Pr-traitement & Amlioration
IV. Compression
V. Segmentation
VI. Introduction l'indexation
VII. Introduction au tatouage
VIII. Conclusion
Plan
III. Pr-traitements & Amlioration
1. Oprations pixel pixel
2. Oprations sur un voisinage : filtrage
3. Transformations gomtriques
Pourquoi pr-traiter une image ?
R Pour corriger les effets de la chane d acquisition
Correction radiomtriques et/ou gomtriques
Rduire le bruit : Restauration, Dconvolution
Amliorer la visualisation
Amliorer les traitements ultrieurs (segmentation,
compression )
Comptage des pixels ayant un niveau de gris (NG) donn
Histogramme ^densit de probabilit des niveaux de gris
III.1 Oprations pixel pixel
Histogramme des niveaux de gris
R Modification d'un pixel indpendamment de ses voisins
Niveau de gris
R Transformation des niveaux de gris : f
v=f(u) avec u niv. gris de dpart, v niv.gris d'arrive
f peut prendre une forme quelconque
Modification d histogramme
v
255
u
0
255
0
0
u
v
0
255
255
v=f(u)
v
u
0 255
Recadrage linaire des niveaux de gris
255
Seuillage binaire
Ngatif
Egalisation d'histogramme
Non-linaire, Logarithme, Extraction de plans binaires,
Ecrtage, Compression-dilatation de dynamique,
Spcification dhistogramme,
Codage en couleur, Pseudo-couleur, ....
Autres transformations
RSegmentation base sur les niveaux de gris (multi-seuillage)
III.2 Oprations sur un voisinage : filtrage
R Modification d'un pixel en fonction des ses voisins
Filtrage linaire
Domaine spatial : filtres FIR 2D (masque), filtres IIR
Domaine frquentiel dans le plan de Fourier
Filtrage non-linaire dans le domaine spatial
Image f(x,y)
Filtre
h(x,y)
Image filtre
g(x,y)
g(x,y) = h(x,y)*f(x,y) (convolution bidimensionnelle)
G(u,v) = H(u,v) . F(u,v)
Convolution par une rponse impulsionnelle finie appele
Masque de Convolution
g i j h k l f i k j l
k l W
( , ) ( , ) ( , )
( , )
=

e
f est limage de dpart
h est le masque de convolution
W dfini un voisinage
Un pixel f(i,j) est remplac par une somme pondre de lui-
mme et des pixels de son voisinage
Filtrage spatial FIR 2D : masque de convolution
Exemple : Filtre moyenneur
h k l
M N
si M k M et N l N
sinon
( , )
( )( )
=
+ +
< < < <

1
2 1 2 1
0
W: voisinage 2x2 ^k=0,1 l=0,1
1/4 1/4
1/4 1/4
h(k,l) = 1 /4 pout tout (k,l)
k
l
0 1
0
1
0 1 2 2
1 1 2 1
1 2 0 0
3/4 6/4 7/4 x
5/4 5/4 3/4 x
x x x x
0 1 1 x
1 1 0 x
x x x x
( En ne conservant
que la valeur entire )
(zoom)
Moyenneur
2x2
Utilisation de voisinages trs divers :
Rectangulaires 2x2, 3x3, 4x4, 5x5, 7x7, 1x2, 2x1, 1x3, 3x1...
En croix, Circulaires...
Valeurs des coefficients:
Constants(Moyenneur), Gaussiens
Effets de filtrage passe-bas : image plus flou:, contours moins
prcis mais rduction du bruit haute frquence
Le principe du masque de convolution sera utilis pour dautres
traitements (Dtection de contours)
Lutilisation dun voisinage entourant un pixel est un principe
trs gnral en traitement de limage
Remarques
Filtre moyenneur 3x3 (k=-1,0,1 l=-1,0,1),
Valeur constante h(k,l)=1/9
Exemple : rduction du bruit
Exemple : rhaussement de contours
0 -1 0
-1 5 -1
0 -1 0
= Image dorigine + Laplacien
0 -1 0
-1 4 -1
0 -1 0
Filtres FIR 2D et plan de Fourier
g(x,y) = h(x,y)*f(x,y) E G(u,v) = H(u,v) . F(u,v)
Filtrage : N.(L-1) + N vs. N.Log
2
N + N
Synthse de filtres
1D ^2D
Echantillonnage en frquence
Fentre
Cest un filtre passe-bas, peu slectif, anisotrope
Masque 3x3
h(k,l)
u
v
H(u,v)
TFD 2D
Filtre Moyenneur
h x y
x y
( , ) exp( ) =
+ 1
2 2
2
2 2
2
t o o
Filtre Gaussien
- Filtre IIR ^version tronque Ko et chantillonne ^masque FIR
h(k,l)
H(u,v)
- Cest un filtre passe-bas isotrope peu slectif.
- H(u,v) est aussi une gaussienne
TFD 2D
DFT
DFT
-1
Filtrage
Fentrage frquentiel
Illustrations
Remplacer le pixel central par la valeur mdiane du voisinage
1 3 2 4
3 1 4 2
2 3 2 1
1 2 3 3
1 1 2 2 2 3 3 3 4
. . . .
. 2 . .
. . . .
. . . .
Filtrage non linaire 2D : filtre Mdian
Avantage par rapport au filtrage linaire
R les bords sont conservs
Filtre linaire
de largeur 3
Filtre mdian
voisinage 3
Notion de causalit 2D
Le choix du balayage est arbitraire
Le pixel prsent ne dpend que des pixels du pass
Voisinage = pixels du pass entourant le pixel prsent
g i j h f i j h k l g i k j l
k l W
( , ) ( , ) ( , ) ( , ) ( , )
( , )
= +

e
0 0
Pixels du pass
Pixels du futur Pixel du prsent
Exemple: balayage colonne puis ligne
Principe du filtrage IIR 2D
Filtrage rcursif
Remarques
Objectif
R Corriger les dformations dues au systme de prise de vue
f(x,y) = f(x,y) avec x=h
1
(x,y) et y=h
2
(x,y)
Exemple : transformation affine (translation, rotation)
(

+
(

=
(

f
e
y
x
d c
b a
y
x
'
'
Remarque : les paramtres a,b,c,d peuvent ne pas tre les mmes pour toutes
les rgions dune image
III.3 Transformations gomtriques
Problme
x,y,sont des valeurs discrtes (image chantillonne) x=kAx , y=lAy
et x=h
1
(kAx , lAy) et y=h
2
(kAx , lAy) ne seront pas
ncessairement des multiples entiers de Ax et Ay
Ax
Ay
k k+1
l
l+1
Ax
Ay
m m+1
n
n+1
P
1
P
2
P
3
P
4
Solution: Interpolation
m
n
Q
P
1
P
3
P
4
P
2
f(Q)=f(mAx,nAy) = G[f(P
1
),f(P
2
),f(P
3
),f(P
4
)]
avec f(P
1
)=f (kAx, lAy)
f(P
2
)=f ((k+1)Ax,lAy)
f(P
3
)=f ((k+1)Ax,(l+1)Ay)
f(P
4
)=f (kAx, (l+1)Ay)
Plus proche voisin: f(Q)=f(P
k
) , k : d
k
=min{d
1
,d
2
,d
3
,d
4
}
Interpolation linaire
d
4
f Q
f P d
d
k k
k
k
k
( )
( ) /
/
=
=
=

1
4
1
4
1
Interpolation bilinaire, fonctions spline, Moindre , ....
x= x+0.5 y
y= y
128x128
y
x x
y
Warping ^Placage de texture ^animation ...
I. Introduction
II. Reprsentations & Acquisition
III. Pr-traitement & Amlioration
IV. Compression
V. Segmentation
VI. Introduction l'indexation
VII. Introduction au tatouage
VIII. Conclusion
Plan
IV. Compression
1. Introduction
2. Approches directes
3. Approches par transformation
4. Compression de squences d'images
IV.1 Introduction
Historique
Objectifs
1952 : Codeur entropique (Huffman)
1978 : DCT (Pratt)
1980 : Vectoriel (Linde-Buzo-Gray)
1986 : Sous-bandes (Woods)
1986 : Vectoriel sur treillis (Fisher)
1989 : JPEG
1989 : MPEG-2
1989 : Ondelettes (Mallat, Daubechies)
1990 : Fractales (Jacquin)
1996 : SPIHT
1996 : MPEG-4
1997 : MPEG-7
1998 : JPEG
2000
Rduction du volume occup par les images numriques
pour faciliter leur transfert et/ou leur stockage
Applications
Imagerie mdicale ^Tlmdecine
Imagerie spatiale
Imagerie sous-marine
Archivage divers (Muse, BNF, Empreintes ...)
Vido confrence / visiophone (64 kb/s)
Tlsurveillance
Video On Demand
Tlvision numrique (150 Mb/s)
...
Classification des mthodes de compression
O Sans pertes / avec pertes contrles
O Sans pertes (Huffman, Quadtree)
image originale = image comprime R TC limit (#3)
O Avec pertes contrles
On perd l'information qui se voit peu R TC augmente
Recherche d'un compromis Tc / Qualit
O Directe / Transformation
O Directe R Quantification & codage des pixels de l'image
O Transformation R Quantification & codage des coeff. transforms
image Quantification Codage Transformation bits
Evaluation d'une mthode compression
R Dpend de l'application
Taux de compression (Tc)
Qualit
comprim fichier du Volume
originale image Volume
= Tc
( )
|
|
.
|

\
|

=
2
10
)

, (
1 2
log 10
X X EQM
RSB
b
dB
( )


=

=
1
0
2
1
0
.

, (
M
j
ij ij
N
i
N M
X X
X X EQM
Critre mathmatique (RSB)
Critres subjectifs
- Courbes ROC (mdecine)
- Notations subjectives (TV)
Ex : image (512x512x8bpp) avec Tc=10
R 512x512x8/10=26215 bits ^0.8 bpp
Avec
Autres critres
Vitesse d'excution : codeur /dcodeur
Complexit
- Additions / multiplications
- Soft / Hard
Rsistance au bruit de transmission
Intgration de post-traitements
- Prise en compte du rcepteur (homme / machine)
Cot financier
Scalability
IV.2 Approches directes
Codage Huffman
Codage arithmtique
Codage par longueur de plage
Codage type dictionnaire
Quantification scalaire
Quantification vectorielle
Mthodes prdictives
Approche quadtree
Codage fractale
Codeurs de source
(Th. Information)
Codage Huffman (1952)
- Algorithme de gnration d'un codage optimal symbole par
symbole.
- Code longueur variable
R
codes longs pour probas faibles
*
Extraction des probabilits
+
Cration de l'arbre
4
Cration de la table d'Huffman
^
Codage

Lecture de la table d'Huffman


g
Cration de l'arbre de dcodage
@
Lecture squentielle et dcodage

On transmet la table + les codes en binaire

Algorithme
Rq : code d'chappement
= Huffman + fixe
Codage Arithmtique (1976)
Huffman = 1 symbole = 1 mot-code
Arithmtique = 1 flot de symboles = nbre en virgule flottante
m=0 ; M=1 ;
Tant que !(fin de fichier)
{
i = symbole suivant;
soit [a
i
; b
i
] associ i ;
s = M-m ;
M = m + s.b
i
;
m = m + s.a
i
;
}
Renvoyer m, le compact du fichier
N = nombre cod ;
Faire
{
trouver i / N e[a
i
; b
i
[ ;
sortir i ;
s = b
i
- a
i ;
N = (N - a
i
) / s ;
}
Tant qu'il reste un symbole lire
Codeur Decodeur
4 JBIG = Codage des Fax type IV
Exemple
s
i
p
i
[a
i
; b
i
[ Huff
i
0.1 [0.0 ; 0.1[ 111
A 0.1 [0.1 ; 0.2[ 110
E 0.1 [0.2 ; 0.3[ 101
I 0.1 [0.3 ; 0.4[ 100
B 0.1 [0.4; 0.5[ 0111
G 0.1 [0.5 ; 0.6[ 0110
L 0.2 [0.6 ; 0.8[ 00
S 0.1 [0.8; 0.9[ 0100
T 0.1 [0.9 ; 1.0[ 0101
0.43722077 = ?
10111010 10100100 11011001 01
01111000 00011101 10110010 11010100
Arithmtique > Huffman
+ de calcul Proba trs lve 1 bit
Peu de symboles (+)
-
Run Length
Codeurs statistiques
- Dpendants de la qualit de la statistique
- Statistique connue par le dcodeur
Codage par longueur de plage (Run length coding)
CCITT, Fax groupe III
+ Huffman sur les plages de 0 prcdant les 1
000001111100000000000000000 5w5b17w
000000000001111100000000000 11w5b11w
A B C C C C C C A B C A B C A B !6C A B C A B C
Coder le nombre de symboles identiques
JPEG
+ Huffman sur les plages de 0 prcdant les coeff. DCT
Coder une extension de la source de longueur variable
1977 : LZ (Lempel & Ziv) = 1984 : LZW (Welch)

Dictionnaire de symboles incrment dynamiquement


+ apprentissage

Fichier cod = suite des adresses des mots du dico


! Grer l'incrment des bits d'adresse
PKZIP, ARJ LZW + Huffman
Codage de type dictionnaire (1977)
Codeur LZW
ID = {C
i
,W
i
} , P=C
Tant que (symboles coder)
C = symbole suivant
Si PC e ID
P = PC
Sinon
sortir W
P
PC

ID
P=C
Fin si
Fin tant que
sortir W
P
Dcodeur LZW
ID = {C
i
,W
i
}
cW = 1
er
code ; sortir s(cW)
Tant que (codes lire)
pW = cW
cW = code suivant
Si (s(cW) e ID)
sortir s(cW)
P = s(pW)
C = 1
er
symbole de s(cW)
PC

ID
Sinon
P = s(pW)
C = 1
er
symbole de s(pW)
sortir s(PC)
PC

ID
Fin si
Fin tant que
ABBABABAC. . . .
Quantification scalaire
Traitement pixel pixel
+ Diminuer le nombre de niveaux de gris utiliss : Nnq < Nnp
Problmes
- Comment choisir les seuils de quantification (s
i
) ?
- Comment choisir les niveaux de quantification (q
i
) ?
Quantification scalaire uniforme linaire
Seuils rpartis de faon uniforme
Nnq
s s PQ
i i
min max
1

= =
+
C'est un quantificateur linaire
A
B q
p
B p A r

=
+ =

.
min
min max
1
min max
1

=
Nnq
B
Nnq
A
Niveaux = milieux des seuils
2
1 i i
i
s s
q
+
=
+
avec
Quantification scalaire uniforme optimale
Seuils rpartis de faon uniforme
Nnq
s s PQ
i i
min max
1

= =
+
Niveaux = Barycentre (histogramme)
Quantification optimale (Loyd-Max : 1960)
Minimise l'erreur de quantification
|
|
.
|

\
|

ij
p p Min
2
) (
Algorithme itratif trs long pour des distributions inconnues
Tables pour des dist. gaussiennes, laplaciennes, ...
Fait le travail du codeur !
Exemple de comparaison (peppers : 512x512x8bpp)
Uni Uni o. Max
q1 32 38 30
S1 63 63 52
q2 95 86 75
S2 127 127 121
q3 159 167 157
S3 191 191 180
q4 223 209 205
Remarque
^Efficacit variable du codeur entropique !
Image originale
Q. uni. opt. : RSB 23,8 dB
Q. uni. lin. : RSB 22,5 dB
Q. Max : RSB 24,2 dB
Quantification vectorielle
Extension de la quantification scalaire
+ Pixel = Vecteur = bloc de pixels contigus
Vecteur de taille et forme variable
Approche optimale : Linde Buzo Gray (1980)
Phase d'apprentissage : dictionnaire de vecteurs
Vecteur = reprsentant d'une rgion de Vorono de taille variable
Dictionnaire connu du codeur /dcodeur
Phase d'apprentissage dlicate
Temps de recherche dans le dictionnaire
+ Approche treillis
Mthodes prdictives (1974)
R Exploitent la corrlation entre pixel voisin
| | x 1 : 1 ordre d' Prdicteur
(

x 75 , 0
75 , 0 5 , 0
: 3 ordre d' Prdicteur
Modulation par Impulsions Codes Diffrentielles (MICD)
DPCM
Propagation des erreurs
Prdicteurs non optimaux
^Adaptation aux statistiques locales
IV.3 Approches par transformation
Une Transformation
= Rversible (sans perte)
= Orthogonale (nergie conserve)
= Rapide
Reprsentation diffrente de l'image
= Dcorrlation = Gain en performances
Temps de calcul supplmentaire
DCT = JPEG
Ondelettes = SPIHT, JPEG2000
Compression DCT bloc : JPEG(1989)
DCT bloc 8x8
= homognit locale de l'image
= l'erreur de quantification est localise au bloc
Schma gnral
Matrice de normalisation
= allocation des bits aux coeffs avant quantification par arrondi
(
(
(
(
(
(
(
(
(
(
(

99 103 100 112 98 95 92 72


101 120 121 103 87 78 64 49
92 113 104 81 64 55 35 24
77 103 109 68 56 37 22 18
62 80 87 51 29 22 17 14
56 69 57 40 24 16 13 14
55 60 58 26 19 14 12 12
61 51 40 24 16 10 11 16
(
(
(
(
(
(
(
(
(
(
(

99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 66 47
99 99 99 99 99 56 26 24
99 99 99 99 66 26 21 18
99 99 99 99 47 24 18 17
Matrice chrominance
Matrice luminance
Lecture zig-zag
= prise en compte de la rpartition spatiale de l'nergie pour
faire apparatre de longues plages de coeffs nuls
Codage du coeff DC
= DPCM d'ordre 1 + Huffman
Codage des coeffs AC
= Codage hybride : runlength + ... + Huffman
- Huffman = Code (plage de 0 + catgorie)
162 codes : 10
cat
x16
lp
+2
(EOB+16)
Cat. Intervalle des coefficients AC
1 -1 _ 1,
2 -3, .. ,-2 _ 2, .. ,3
3 -7, .. ,-4 _ 4, .. ,7
4 -15, .. ,-8 _ 8, .. ,15
5 -31, .. ,-16 _ 16, .. ,31
6 -63, .. ,-32 _ 32, .. ,63
7 -127, .. ,-64 _ 64, .. ,127
8 -255, .. ,-128 _ 128, .. ,255
9 -511, .. ,-256 _ 256, .. ,511
10 -1023, .. ,-512 _ 512, .. ,1023
AC
=
| huffman | signe | k-1 bits |
Exemple
0 -2 -1 0
2
-1 0
46
= 111001 0 0 / 00 0 / 11011 0 / 1010
Extrait de la table
d'Huffman des AC
Plage de Zros Catgorie Code
0 1 00
0 2 01
0 3 100
0 4 1011
. . .
1 1 1100
1 2 111001
1 3 1111001
1 4 111110110
. . .
2 1 11011
2 2 11111000
. . .
3 1 111010
. . .
16 11111010
EOB 1010
Remarques
= JPEG = mthode gnrale ^ adapter ...
Trs performant taux faibles (#10)
Effets de blocs taux levs
Tc = 10 / RSB = 30.1 dB Tc = 20 / RSB = 28.7 dB
IV.4 Compression de squences d'images
Supprimer la redondance spatiale ou intra-image
^approches 2D
Supprimer la redondance temporelle ou inter-image
^utiliser le dj vu et le mouvement
Les normes MPEG
O H261 (1988)
+La base de la compression de squences d'images
- Block matching
- DCT bloc + Run length + DPCM
O MPEG 1 (1988-92)
+Vido + Audio / 1.5 Mbs = CDI
O MPEG 2 (1990-94)
+4-30 Mbs = TV numrique (Digital Video Broadcasting)
O MPEG 4 (1996-99)
+L'approche multimdia interactif
O MPEG 7 (1997-01)
+ Indexation & recherche d'information
Les bases de H261 MPEG2
3 types d'images : 3 codages
Images I (intra)
- Codes JPEG'
- Point d'accs squence (0.5s)
- Tc faible
Images P (Prdites)
- Prdites partir de I ou P
- Codage DPCM des vecteurs mvt
- Codage JPEG* de l'erreur de prdiction
- Tc lev
- Propagation de l'erreur
Images B (Bidirectionnelles)
- Interpoles partir des I P
- Tc le plus lev
GOP
2 paramtres de rglage
- N : distance inter-I (#12)
- M : distance inter-P (#3)
Estimation du mouvement par block matching
- Blocs 16x16
- Compromis simplicit / efficacit
- Rapide : algorithme logarithmique
Le codage des images P
1- Calcul des V
j
entre
2- Synthse de I
p
(n) :
3- Calcul de l'erreur : E(n) = I
p
(n) - I(n)
4- Codage JPEG* de E(n)
4
bis
- Mmorisation de
5- Codage DPCM des V
j
) 1 (

) ( n I n I et
) ( ) 1 (

) ( n I n I n V
p
= +
) (

n I
Codeur MPEG2
Dcodeur MPEG2
Codage et TVnum
Numrisation brute : 200 Mb/s
DVB # DVD = MPEG2 MP@ML
- 720 x 480/576 (30/25 Hz) avec IPB
- 4 Mb/s (PAL/SECAM) 9 Mb/s (studio)
- Tc de 40 18
V. Introduction la segmentation

La segmentation est un traitement bas-niveau qui consiste crer


une partition de l'image I en sous-ensembles R
i
appels rgions
telles que :

i
i
j i j i
i i
R I
R R j i
R
=
= =
=
0 ;
0
,

Une rgion est un ensemble de pixels connexes ayant des


proprits communes qui les diffrencient des pixels des rgions
voisines.

Le choix d'une technique est li :


A la nature de l'image (clairage, contours, texture ...)
Aux oprations en aval de la segmentation
- Compression
- RF, interprtation
- Mesure
Aux primitives extraire (droites, rgions, textures,...)
Aux contraintes d'exploitation (tps rel, mmoire ...)
Pas de norme ! Pas de mthode unique ! Pas de recette !
VI. Introduction l indexation
Texte crit ^recherche d'info. sur le contenu (symbolique du mot)
Images
Contenu d'une image ^texte !
Indexation manuelle dans des bases de donnes
Augmentation exponentielle du nombre d'images
Un dfi
R Automatisation de l'indexation d'images par le contenu
R Interfaces et moteurs de recherche adapts
Rque : Analyse d'une image = quelques sec.
Problme pos
R Retrouver des images semblables celles que cherche
l'utilisateur
Que cherche l'utilisateur ? ^exemples, mots cls
Quelles mesures considrer sur les images ?
Quelles fonctions de ressemblance ?
Contraintes de robustesse
rotation
chelle
clairage
VII. Introduction au tatouage
RProtger la proprit des images numriques
Objectif
Watermark = signal insr dans l'image
Unique ^identifie l'image
Multiple ^identifie la source
visible ^facile enlever, propritaire visible
invisible ^difficile enlever, piger les truands
2 types
Impossible enlever sans dgrader l'image
Rsiste au scaling, cropping, coding, modif histogramme
Invisible mais extractible
En nombre suffisants
Contraintes !
Original + watermark # original
watermark = signature lectronique
Remarques
Domaine spatial (peu rsistant)
flip des bits de poids faible de quelques pixels
Modifications d'amplitude (YUV)
Domaine frquentiel
Modifications de coefs TFD / TCD / Sous-bandes
Quelles approches
R Compromis entre (invisibilit / indlbilit)
VIII. Conclusion
Image numrique
Indexation
Compression
Segmentation
Tatouage
Rec. formes
BDO
Transmission
Dcision
Image ^Multimdia
Des techniques complexes
et prometteuses
Dimension affective forte
Au cur de nouveaux
services & usages