Vous êtes sur la page 1sur 91

CODAGE ET COMPRESSION

D ’IMAGES

Jean-François Lerallut*
Joaquín Azpiroz Leehan**
Veronica Medina**

*UTC
**UAM-Iztapalapa

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
1 © 1999 UTC-UAM
INTRODUCTION
Importance des échanges de données
- accès grand public des réseaux
- utilisation d’images fixes et de graphiques
- diffusion images animées, vidéo temps réel
- transport de sons numérisés
- arrivée et généralisation du multimédia

Croissance en volume énorme


∙ problèmes de stockage, transport, capacités de réseaux ==>
∙ COMPRESSION pour optimiser stockage et transfert, et coûts....

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
2 © 1999 UTC-UAM
CODAGE : Numérisation + Compression

Méthodes de compression
- sans perte ( texte, données, images )
=> basées sur les propriétés de la source
=> codage réversible
- avec pertes ( images, sons )
=> basées sur les limites de la perception
visuelle ou auditive
=> codage irréversible

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
3 © 1999 UTC-UAM
Evaluation des performances

taille données originaless


- taux de compression =
taille données compresséess

- gain de compression = 1 – taux de compression

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
4 © 1999 UTC-UAM
Pour apprécier les capacités:
Unité Ce que cela pourrait représenter
Bit Un 0 ou un 1
Octet Un chiffre de 0 à 255, ou un caractère de texte
2 octets Un chiffre de 0 à ~64000
1 Ko Environ une page de texte
Mille pages de texte, ou une image plein écran,
1 Mo
6 secondes de son qualité CD
Un million de pages de texte, ou 1h 1/2 de son,
1 Go
50 secondes de vidéo
Le contenu de la BNF, 62 jours de musique
1 To
continue, 14 heures de vidéo
Tous les textes depuis l’origine du monde,
1 Po
170 années de musique, 19 mois de vidéo

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
5 © 1999 UTC-UAM
Quelques chiffres...
Une image TV (recommendation 601 ):

- un signal de LuminanceY
- deux signaux de chrominances Cb et Cr (différences de couleur)
- norme 4.2.2: deux fois plus d'échantillons dans Y que dans Cb et Cr
- fréquences d’échantillonnage: 13.5 MHz en Y, 6.75 pour Cb et Cr
- fréquences de ligne:15.625 kHz et fréquence d'image 25Hz soit 720
points/lignes (Y) et 360 pour chaque chrominance et 576
lignes/image
- quantification linéaire 8 bits par échantillon
d' où : 72O x 576 x 8 +2(36O x 576 x 8) = 6.63 1O6 digits binaires,
donc 166 Mbits/s pour le débit net (sans signaux de service)
- soit 216 Mbit/s pour le débit brut total
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
6 © 1999 UTC-UAM
Quelques chiffres...
type d'image nombre de digits débit net/s
binaires/image

TV -haute definition(Europe) 35,4 M 1800 M

TV classique (europe) 6,6 M 166 M

Visiophonie (faible qualité) 0,304 de 2,3M à 9,1 M

Diapositive +/- 150M

Fac-similé A4 ordinaire 2M selon support

Images médicales 32 K à qlq Giga

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
7 © 1999 UTC-UAM
Pourquoi compresser?

Modalités Volume pour une image Volume/an


(≅ 250 jours)
CT 0,5 Mo 75 à 250 Go
IRM 0,5 Mo 70 à 300 Go
US 0,35 Mo 1 à 12 Go
Angio 1 Mo 17 à 4000 Go
Rx 20 Mo 500 à 800 Go
Total = 0,5 à 5 To / an

Exemple: Etude RMN


256 x 256 x 100 coupes
occupe environ 50 Mo

Image compressée occupe


entre 1 et 2% de cette
taille

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
8 © 1999 UTC-UAM
donc...

• sur une disquette 3,5 ‘ : moins d'une image TV


• sur 1 DD de l Gigaoctets, moins de 40 secondes de TV
• sur un CD ROM (650M) 24 secondes et sans le son...

alors ? ? ?

la numérisation ne suffit pas, il faut coder


• les bases:
∙ redondance spatiale (notion de voisinage)
∙ redondances temporelles
∙ caractéristiques psycho-visuelles

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
9 © 1999 UTC-UAM
Pourquoi compresser?

Images Landsat
2340 x 3234 pixels
à 7 bits par pixel
4 canaux spectraux
30 plans par jour

TOTAL: 2.2 x 1011 bits


à transmettre ou
à stocker

Image de l’île de Maui (Hawaii) prise par Landsat Thematic Mapper


Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
10 © 1999 UTC-UAM
Pourquoi
compresser?

Etude complète RMN


256 x 256 x 100 coupes
occupe 50 MB

Image d’une coupe prend


128KB (12 bits)

Image compressée occupe


entre 1 et 2% de cette
taille

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
11 © 1999 UTC-UAM
Compression d’images
Objectfs:

• Minimiser l’espace de stockage


• Réduire la largeur de bande
• Réduire le temps de transfert

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
12 © 1999 UTC-UAM
Pourquoi la compression est-elle possible ?
•Redondance:
•liée à l ’aspect statistique
• éliminée au codage
• restituée au décodage

•exemples:
•corrélation entre pixels voisins
•corrélation entre coupes voisines
•corrélation entre images successives

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
13 © 1999 UTC-UAM
•Pertinence:
• mesurée par un critère de fidélité (qualité)
• éliminée au codage
• perte d ’information

•exemple:
• échantillonnage trop serré / détails
• trop de niveaux de gris
• trop de plans par seconde
• trop de coupes par axe
• points isolés dans les documents N&B

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
14 © 1999 UTC-UAM
Compression d’Images
Exemple

Transmission d’un FAX


Transmission TV numérique
Présentations multimédia
1-163 blanc 163B
164 noir 1N
165-199 blanc 34B
200-210 noir 11N
211-256 blanc 45B
257-267 noir 11N
268-302 blanc 34B
303 noir 1N
304-393 blanc 79B

393 valeurs vs. 9 données

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
15 © 1999 UTC-UAM
Modèle général d’un système de codage
Entrée f(x,y)

Transformateur coefficients
Quantificateur symboles
direct

Retour d ’erreur

Canal de Codeur canal


transmission

bruits

Décodeur Symboles reçus Transformateur


canal inverse

Image reconstruite Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
16 reçue f^(x,y) © 1999 UTC-UAM
Modèle général d’un système de codage

•Transformation: passage vers un autre domaine, où le


quantificateur et le codeur puissent être utilisés efficacement. On
effectue une réduction de la redondance.

•Quantificateur: grouper les données pour obtenir un nombre


plus petit de valeurs. On effectue une réduction de la
non-pertinence.

•Codeur: train binaire des valeurs quantifiées dans un code pour


diminuer le nombre de bits.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
17 © 1999 UTC-UAM
La compression sans pertes

On utilise la notion d ’entropie pour évaluer la limite


de réduction de la redondance et les performances du
codeur.

Définition:
S= ensemble de variables aléatoires indépendantes
S = { a1,a2,……..an } ai={0,1}
pi = probabilité d ’occurrence de ai
k =n
H 0( S ) = − ∑ pk. log 2( pk ) [en bits]
k =1

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
18 © 1999 UTC-UAM
La compression sans pertes
Exemples:
• N=8 pi=1/8, i=1,2,…….8
k =8
H 0( S ) = − ∑ 1 / 8. log 2( 1 / 8 )
k =1

H0 = 3 bits, maximum d ’incertitude


• N=8 p1=1, p2=p3=….=p8=0
H0 = 0 bits, maximum de certitude

Si les symboles consécutifs sont corrélés, on utilise l’entropie d ’ordre 2:

p(wi,wj)=probabilité jointe de 2 symboles consécutifs


i =n j=n
H 2 = − ∑ ∑ p( wi , wj ) log 2 p( wi , wj )
i = 1 j =1

H2 fournit une limite du nombre de bits nécessaires pour coder une suite si
les symboles sont codés 2 par 2
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
19 © 1999 UTC-UAM
Mesures d’entropie pour différents types d ’image
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
20 © 1999 UTC-UAM
Evaluation des performances:

soit ai un symbole
pi sa probabilité
Bi la longueur du code associé

Nombre moyen de bits nécessaires:


k =n
R = ∑ B kpk
k =1

Si R est voisin de H, le codeur est pratiquement


optimal.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
21 © 1999 UTC-UAM
Codage de Shannon - Fano (1949)

1) Pour une liste de symboles,compter les occurrences.


2) Trier la liste par ordre d ’occurrences décroissantes.
3) Diviser la liste en deux parties, le total des compteurs de fréquence
de la moitié supérieure devant être aussi proche que possible du total
de la moitié inférieure.
4) Affecter le chiffre binaire 0 à la moitié supérieure de la liste, et le
chiffre binaire 1 à la moitié inférieure.
5) Appliquer de façon récursive les étapes 3 et 4 à chacune des deux
moitiés, en ajoutant des bits aux codes, jusqu ’à ce que chaque
symbole ait un code.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
22 © 1999 UTC-UAM
Exemple:
Soit un message de 39 caractères,comportant 5 symboles, les lettres alphabétiques A à E.
1 et 2): Symbole Compte
A 15
B 7
C 6
D 6
E 5

3 et 4): Symbole Compte


A 15 0
B 7 0
1ère division
C 6 1
D 6 1
E 5 1
5): Symbole Compte
A 15 0 0
2ème division
B 7 0 1
1ère division
C 6 1 0
3ème division
D 6 1 1 0
4ème division
E 5 1 1 1

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
23 © 1999 UTC-UAM
Quantité d’information d ’un caractère: -log2(pi) bits

Quantité d’information du message = 85,25 bits

Shannon-Fano= 15x2 +7x2 + 6x2 +6x3 + 5x3 = 89 bits

Codage ASCII du message = 39 x 8 = 312 bits

Taux de compression = 3.5

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
24 © 1999 UTC-UAM
Codage de HUFFMAN (1952)
Principe: l ’arbre de codage se construit de bas en haut selon les
probabilités (au contraire de S-F) S = { a1, a2, a3, a4, a5, a6 }
p(a1)=0.4, p(a2)=0.3, p(a3)=0.1,
p(a4)=0.1, p(a5)=0.06, p(a6)=0.04

Etape 1: classer les symboles dans l ’ordre des probabilités


d ’occurrence décroissantes S = { a1, a2, a3, a4, a5, a6 }
Etape 2: regrouper séquentiellement les paires de symboles de plus
faible probabilité, et reclasser si nécessaire

a1 0.4 0.4 0.4 0.4 0.6


a2 0.3 0.3 0.3 0.3 0.4
a3 0.1 0.1 0.2 0.3
a4 0.1 0.1 0.1
a5 0.06 0.1
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
a6 0.04 25 © 1999 UTC-UAM
Etape 3: coder, avec retour arrière depuis le dernier
code, et en rajoutant un « 0 » ou un « 1 » pour
différencier les symboles préalablement regroupés

a1 1 1 1 1 0
a2 00 00 00 00 1
a3 011 011 010 01
a4 0100 0100 011
a5 01010 0101
a6 01011

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
26 © 1999 UTC-UAM
Evaluation du code:

Entropie H0=-0.4log2(0.4)-0.3log2(0.3)-0.1log2(0.1)
-0.1log2(0.1)-0.006log2(0.006)-0.04log2(0.04)
H0 = 2.14 bits

Longueur moyenne:
R=1(0.4)+2(0.3)+3(0.1)+4(0.1)+5(0.06)+5(0.04)
R = 2.20 bits

=> codage pratiquement optimal

Remarque:
Huffman modifié (tables normalisées par le CCITT),et
Huffman adaptatif (fax et formats TIFF)
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
27 © 1999 UTC-UAM
Codage arithmétique (1987)

Principe:remplacer un flot de symboles par un seul


nombre en virgule flottante compris entre 0 et 1.

Ex: chaîne de 10 caractères « BILL GATES »

caractère proba intervalle


espace 1/10 0.0<= r <0.1
A 1/10 0.1<= r <0.2
B 1/10 0.2<= r <0.3
E 1/10 0.3<= r <0.4
G 1/10 0.4<= r <0.5
I 1/10 0.5<= r <0.6
L 2/10 0.6<= r <0.8
S 1/10 0.8<= r <0.9
T 1/10 0.9<= r <1.0

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
28 © 1999 UTC-UAM
Le premier caractère fixe les limites basse et haute:
caractère lim basse lim haute
0.0 1.0
B 0.2 0.3
I 0.25 0.26
L 0.256 0.258
L 0.2572 0.2576
esp. 0.25720 0.25724
G 0.257216 0.257220
A 0.2572164 0.2572168
T 0.25721676 0.2572168
E 0.257216772 0.257216776
S 0.2572167752 0.2572167756

Le code 0.2572167752 représente de façon unique le message.

Taux de compression = 10x8 bits/ (float 32 bits) = 2.5

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
29 © 1999 UTC-UAM
Codages Lempel, Ziv, Welch
(1977,78,84)
Principe : substitution d ’un texte par un autre en faisant appel à un
dictionnaire de traduction.

LZ77: le dictionnaire est la suite linéaire et non filtrée du texte lors du


traitement séquentiel. Plutôt que de retranscrire un mot déjà rencontré,
on le remplace par un octet indiquant l ’emplacement de la précédente
occurrence et un octet indiquant la longueur de la chaîne.

LZ78: on construit le dictionnaire comme un arbre de phrases et une


occurrence est remplacée par son index dans le dictionnaire.

LZW: méthode dynamique et adaptative de construction du dictionnaire.


dictionnaire

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
30 © 1999 UTC-UAM
Codage par plages (RLE)
Principe: une séquence de données apparaissant plus de 4 fois est
remplacée par un nombre de répétition + la donnée à répéter. Un
caractère spécial indique le RLE.

Exemple: la suite de 25 valeurs


1111444444789333355555541
devient: #41#64789#43#6541 (17 symboles)

Pour une image, on balaie ligne à ligne ou en lacets: 512 x 512 pixels =
256k, 8 bits/pixel
100 220 15 200 pixels à 100 + 256 pixels à 220 + 56 à 15
99 220 15 220 pixels à 99 + 100 pixels à 220 +192 pixels à 15

Les 2 lignes=1024 octets


RLE ligne 1= 6 octets
RLE ligne 2= 6 octets
RLE lacet = 10 octets
=> taux de compression~ 100

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
31 © 1999 UTC-UAM
Codage par plages (RLE)

Performances:
- peu efficace pour un texte ou une image très inhomogène,
sauf par plans de bits:

image binaire: 000000000000111111111000000111111


12 9 6 6

- utilisé par les formats PCX, TIFF, PICT

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
32 © 1999 UTC-UAM
“Nouvelles” Méthodes

•Eliminer redondance dans les images (DPCM)

•Transformations (Fourier, Cosinus, Hadamard,….)

•Méthodes de 2ème génération (modèles de la vision


humaine)

•Méthodes hybrides

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
33 © 1999 UTC-UAM
Modulation DPCM

Dans la plupart des images, les pixels adjacents sont


fortement corrélés. Pour une image de 256 niveaux de
gris la variation entre valeurs est fréquemment inférieure
à 20 niveaux.

La modulation DPCM utilise cette propriété pour effectuer


un codage de l’image. Si le pixel xi doît être transmis, on
peut exploiter le fait que les éléments déjà transmis aient
une partie de l’information de cet élément.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
34 © 1999 UTC-UAM
Modulation DPCM

On peut faire une estimation en employant la valeur du pixel


précédent, xi-1, et la différence de cette estimation sera di.

Etant donné que la dynamique des différences est inférieure


à celle des pixels, le codage des différences sera plus
compact.

Les prédicteurs des parties codage et décodage sont


identiques.

Les techniques de compression DPCM qui utilisent des


critères de fidélité arrivent à des taux de compression entre 4
et 5:1
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
35 © 1999 UTC-UAM
Modulation DPCM

L’introduction d’un quantificateur dans la boucle produit un


codage inexact.

Visuellement, les erreurs de quantification produisent des


dégradations près des bords et dans les zones où il y a des
grandes variations de niveaux de gris.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
36 © 1999 UTC-UAM
Codage prédictif PCM et ADPCM
Modèle général:
+ erreur symboles
f(x,y) quantificateur
-
prédicteur

Prédicteur d ’ordre 1:
x ’i =k xi-1 + (1-k)M
k = coefficient de corrélation
M = E{x}

minimise E{(xi-x ’i)2}


pour k=1, x ’i = xi-1
c-à-d retard d ’un pixel

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
37 © 1999 UTC-UAM
Codage prédictif PCM et ADPCM

Prédicteur 2D:
ligne précédente
ligne courante
pixel prédit

Prédicteur 3D:

Plan précédent

Plan courant

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
38 © 1999 UTC-UAM
CONCLUSION
Exemples de compression exacte sur plusieurs
modalités => taux variable
Images 256 x 256 pixels, 8 bits/pixel, 64 Ko

22 Ko 34 Ko 37 Ko

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
39 © 1999 UTC-UAM
Codage par transformations
Principes de base:

• La transformation directe est une transformation unitaire


mono, bi ou tri- dimensionnelle.

• Les coefficients de la transformation sont peu corrélés


( réduction de la redondance )

• La transformation provoque une compaction d ’énergie


( réduction de la non-pertinence )

• La transmission des symboles est robuste au bruit

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
40 © 1999 UTC-UAM
Codage par transformations
Modèle général:

Entrée f(x,y)

Transformateur Coefficients Sélection des


F(u,v) coefficients
direct
Quantificateur

symboles
Canal de Codeur canal
transmission

bruits

Décodeur Symboles reçus Transformateur


canal inverse

Image reconstruite
BM-06 Chapitre 8. Compression
reçue f ’(x,y) Lerallut, Medina, Azpiroz
41 © 1999 UTC-UAM
Transformations courantes:
• Fourier
• Cosinus
• Hadamard
• Haar
• Karhunen-Loeve

- La plupart des transformations sont séparables:


k=N  j=N 
F (u , v) = ∑  ∑ f ( j , k ) Ah( j , u ) Av(k , v)
k =1  j =1 
- La plupart des transformations ont un algorithme de calcul rapide:

ex: Cooley-Tuckey pour la FFT


Nlog2N multiplications et additions, au lieu de N2 opérations

- En pratique, les codeurs utilisent des sous-blocs de l ’image, de taille


4x4 à 32x32 pixels, pour optimiser la sélection des coefficients en
fonction de la place du bloc dans le plan image (adaptativité)
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
42 © 1999 UTC-UAM
Sélection des coefficients:
- échantillonnage par zones
(éliminer les composantes de plus faible énergie)

u u

v conserver v conserver

éliminer éliminer

La forme et la taille de la zone peuvent être changées


de manière adaptative

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
43 © 1999 UTC-UAM
Sélection par seuil:

Conserver les composantes


qui dépassent un seuil

On transmet l ’amplitude et
position des composantes
conservées

Transformée cosinus discrète


d’une coupe RMN
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
44 © 1999 UTC-UAM
Transformées: Codage par seuil

Image originale Image compressée avec la


TDC à un taux de 13:1
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
45 © 1999 UTC-UAM
Transformées: Codage par seuil

Image de l’erreur:
différences entre
l’image décompresée
et l’image originale (mul-
tipliée par 10).
Compression par TDC à
un taux de 13:1

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
46 © 1999 UTC-UAM
Compression JPEG (1985-91)
Principe: basé sur la transformée en cosinus discrète
sur des blocs de 8x8 pixels.

Codage DC différentiel

Séquence zig zag

L ’utilisation de tables de quantification fixe la sélection des coefficients et leur


valeur arrondie
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
47 © 1999 UTC-UAM
Exemple de quantification:
140 144 147 140 140 155 179 175
144 152 140 147 140 148 167 179
152 155 136 167 163 162 152 172
168 145 156 160 152 155 136 160 Matrice de pixels d ’entrée
162 148 156 148 140 136 147 162
147 167 140 155 155 140 136 162
136 156 123 167 162 144 140 147
148 155 136 155 152 147 147 136

186 -18 15 -9 23 -9 -14 19


21 -34 26 -9 -11 11 14 7
-10 -24 -2 6 -18 3 -20 -1
-8 -5 14 -15 -8 -3 -3 8 Matrice DCT de sortie
-3 10 8 1 -11 18 18 15
4 -2 -18 8 8 -4 1 -7
9 1 -3 4 -1 -7 -1 -2
0 -8 -2 2 1 4 -6 0

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
48 © 1999 UTC-UAM
Exemple de quantification (suite):
3 5 7 9 11 13 15 17
5 7 9 11 13 15 17 19
7 9 11 13 15 17 19 21
9 11 13 15 17 19 21 23 Matrice de quantification pour
11 13 15 17 19 21 23 25 un facteur de qualité = 2
13 15 17 19 21 23 25 27
15 17 19 21 23 25 27 29
17 19 21 23 25 27 29 31

186 -15 14 -9 22 -13 -15 17


20 -35 27 -11 -13 15 17 0
-7 -27 0 0 -15 0 -19 0
-9 0 13 -15 -16 0 0 0 Matrice DCT après déquantification
0 13 0 0 -19 21 23 25
0 0 -17 0 0 0 0 0
15 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
49 © 1999 UTC-UAM
Compression JPEG: Exemple de perte de qualité

IRM tendon originale IRM tendon 10:1 IRM tendon 50:1


47.5 ko 4.75 ko 0.95 ko

IRM tendon 70:1 IRM tendon 99:1


0.68 ko 491 octets

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
50 © 1999 UTC-UAM
Codage en sous-bandes

• La technique permet d'obtenir des taux de compression


inférieurs à un bit par pixel.

• Principe de base:diviser l'image en bandes de fréquence,


sous-échantillonner et coder chaque sous bande séparé-
ment en utilisant un codeur et un taux de compression
adaptés aux statistiques de chaque bande.

• Système à 2 composantes: le système d'analyse et


synthèse en sous-bandes; et le système du codage, qui peut
utiliser une quantification différentielle ou vectorielle.

• Un filtrage bidimensionnel peut être effectué en utilisant


des filtres séparables monodimensionnels.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
51 © 1999 UTC-UAM
Codage en sous-bandes

• Le signal x[n] est divisé en utilisant les filtres h0 (passe bas) et


h1 (passe haut).

• Le résultat est sous échantillonné d'un facteur 2 pour maintenir


la résolution initiale de chaque échantillon.

•Pour le décodage, une interpolation linéaire est faite pour


doubler le nombre de points avant les filtrages g0[n] et g1[n].

• Les sorties des filtres sont additionnées pour reconstruire


l'image.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
52 © 1999 UTC-UAM
Compression par ondelettes
Appartient aux méthodes de codage par transformation et du codage en sous-bandes

La différence d'information entre les approximations d'un signal à des


résolutions 2j+1 et 2j peut être extraite en décomposant le signal sur
une base d'ondelettes orthonormales qui est une famille de fonctions:
2 ψ (2 x − n)
j j
construite à partir de la dilatation et translation d'une
fonction ψ (x) .

Cette décomposition définit une représentation multirésolution appelée


représentation par ondelettes, qui est calculée en utilisant un algorithme
pyramidal basé sur des convolutions par des filtres miroir en quadrature.

Cette représentation en ondelettes se place simultanément dans les


domaines de temps et de fréquence.

La redondance est éliminée parce que les fonctions sont orthogonales.


Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
53 © 1999 UTC-UAM
Compression par ondelettes
Principe: décomposer une image en une myriade de sous-bandes, c-à-d
des images de résolution inférieure.

Pour obtenir un niveau inférieur:


1) moyenner les pixels de l ’image originale 2 à 2 suivant l ’axe horizontal:
H(X)=(Xn+Xn+1)/2

2) calculer l ’erreur entre l ’image originale et l ’image sous-échantillonnée


dans le sens horizontal: G(X)=(Xn-Xn+1)/2

3) pour chaque image intermédiaire, moyenner dans le sens vertical:


H(Y)=(Yn+Yn+1)/2

4) pour chaque image intermédiaire, calculer l ’erreur dans le sens vertical:


G(Y)=(Yn-Yn+1)/2

On obtient une image d ’approximation de résolution moitié et trois images


de détails qui donnent les erreurs entre l ’image originale et l ’image
approximée.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
54 © 1999 UTC-UAM
Compression par ondelettes

Décomposition en sous-bandes

On réitère le processus autant de fois que nécessaire pour obtenir le nombre de sous-bandes voulu.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
55 © 1999 UTC-UAM
Compression par ondelettes

Transformation Inverse

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
56 © 1999 UTC-UAM
Compression par ondelettes

Système complet
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
57 © 1999 UTC-UAM
A chaque étape Ad2j+1f, l’image peut se décomposer en: Ad2jf
,D12jf ,D22jf, D32jf où Ad2jf est l’approximation discrète de l’image
ƒ(x,y) à la résolution 2j, et D2jf est l’image de détails à la
résolution 2j qui contient la différence d’information entre
Ad2j+1f, et Ad2jf.

L’image Ad2jf correspond aux fréquences les plus basses, D12jf


représente les fréquences verticales les plus hautes (bords
verticaux),
D22jf , représente les fréquences horizontales hautes et D32jf les
hautes fréquences dans les 2 directions (les coins ou les
diagonales).

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
58 © 1999 UTC-UAM
Exemples de compression/restitution par ondelettes

Image initiale Restitution ondelettes Restitution ondelettes


256 x 256 pixels Taux de compression = 8 Taux de compression = 32
8 bits/pixel PSNR = 41 dB PSNR = 33 dB

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
59 © 1999 UTC-UAM
Compression:
modalités de
décompression
progressive

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
60 © 1999 UTC-UAM
Codage Fractal
Principe:
Partitionner une image par une suite de transformations contractantes, en
cherchant des parties correspondantes dans les sous-blocs.

Distance de Hausdorff:
H(R2): espace formé de sous-ensembles compacts (fermés, bornés, non vides).
La distance du point x de R2 à l’ensemble B de H(R2) est:

d(x,B)=Min{d(x,y):y ε B}

La distance de 2 sous-ensembles A et B de H(R2)

d(A,B)=Max{d(x,B):x ε A}

La distance de Hausdorff entre A et B est:

hd(A,B)=Max{d(A,B),d(B,A)}
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
61 © 1999 UTC-UAM
Codage Fractal

Transformation contractante:

La transformation w de R2 -> R2 est Lipschitzienne de


facteur s ε R+ si:
d(w(x),w(y))<= s.d(x,y) pour tout x,y, ε R2
si 0<=s<=1, w est dite contractante.

La transformation w: H(R2) -> H(R2) définie par:


w(B)={w(x):x ε B} pour tout B ε H(R2)
est contractante sur (H(R2), hd), avec s pour facteur de
contraction.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
62 © 1999 UTC-UAM
Codage Fractal

Système de transformations itérées (IFS):


Un IFS est composé d’un ensemble de N transformations wi, chacune ayant son
facteur s.

Attracteur d’un IFS N

soit l’IFS {R2,wi , i=1,…N}. L’opérateur W de H(R2)->H(R2): W ( B ) = ! wi ( B )


i =1

Est contractant et a pour facteur de contraction celui de l’IFS. Cet opérateur W


possède un point fixe At:
A = W ( A ) = limW ( X ), ∀X ∈ H (ℜ )
n 2
t t n →∞

At est appellé attracteur de l’IFS. Il est invariant sous la transformation W, et est


égal à l’union de N copies de lui même transformées par w1,w2, …,wn

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
63 © 1999 UTC-UAM
CODAGE FRACTAL: exemples de partitionnements

(D ’après Y. Fisher)
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
64 © 1999 UTC-UAM
Exemples de compression / restitution par fractales

Image initiale Codage fractal Codage fractal


256 x 256 pixels Taux de compression= 9.5 Taux de compression= 33
8 bits/pixel PSNR = 36 dB PSNR = 29 dB

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
65 © 1999 UTC-UAM
Performances de
différents types et
systèmes de compression
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
66 © 1999 UTC-UAM
Codages Hybrides:
Principe:
Utiliser plusieurs algorithmes de compression exacts ou non, dans un certain
ordre, le taux de compression total étant le cumul des taux de chaque
méthode.

Par exemple: codage par transformation combiné avec un codage prédictif:

Les performances sont voisines d’une transformation bidimensionnelle.


Implantation matérielle facile.
On peut également faire suivre une transformation orthogonale d’un codage
par plage des coefficients.
Taux de compression entre 10:1 et 20:1
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
67 © 1999 UTC-UAM
Codage Anisotropique
(Wilson, 1983)
Principe: Amélioration du codage prédictif basé sur un prédicat pondéré de trois
composantes:
Un filtre de Wiener classique passe bas: Φ (ρ)
H 1(ρ) = x

Φ (ρ ) +σ
2
x n

où ρ est la fréquence radiale dans le domaine de Fourier, Φx(ρ) la densité


spectrale de puissance (DSP) et σ2n la DSP du bruit.
σ
2
Un filtre passe haut défini comme: H (ρ) = n

Φ ( ρ ) +σ n
2 2
x

La combinaison des 2 filtres est un passe-bande similaire aux étapes de


perception du système visuel humain.
cos [φ (k , l ) − θ ]σ n
2 2

Un filtre anisotrope H 3 [σ ,θ , φ (k , l )] =
Φx (ρ ) +σ n
2

utilisé pour le bruit autour d’une région anisotrope de l’image φ(k,l)


Les taux de compression peuvent atteidre 35:1.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
68 © 1999 UTC-UAM
Compression pyramidale
(Burt, 1983)
Cette technique utilise des structures similaires à celles de la voie visuelle.
L'image originale x(k,l) est filtrée avec un filtre passe bas gaussien.Le
résultat est une image qui peut être considérée comme une estimation
x1(k,l) de l'image de départ. L'erreur d’estimation est e1(k,l)=x(k,l)-x1(k,l).

La compression de l'image est dûe à 2 phénomènes:


• L'image e1(k,l) est une image à hautes fréquences, et comme l'oeil est peu sensible à ces
fréquences, l'image peut être quantifiée avec moins de précision que l'image originelle.
• L'image x1(k,l) est une image BF qui peut être représentée par un nombre réduit
d'échantillons en faisant un sous-échantillonnage 2D-> x’1(k/2,l/2)

En réitérant le processus, on filtre x’1 par un filtre passe bas gaussien


x2(k/2,l/2) on calcule l’erreur e2(k/2,l/2) et on sous-échantillonne
x2-> x’2(k/4,l/4)…

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
69 © 1999 UTC-UAM
Compression pyramidale

Après n itérations, des images de plus en plus réduites sont obtenues,


et la superposition est vue comme une structure pyramidale.
La reconstruction est progressive, des interpolations sont faites pour
compenser la décimation à chaque niveau.
Le taux de compression moyen est de l’ordre de 10:1.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
70 © 1999 UTC-UAM
Compression pyramidale

256
Originale filtre gaussien PB différence

128

64

32 etc
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
71 © 1999 UTC-UAM
Filtrage directionnel
(Kunt, 1984)

Principe:

• On effectue la Transformée de Fourier de l’image.


Le filtrage directionnel est utilisé pour représenter la relation entre
l’existence d’un contour et la contribution de celui-ci au spectre de
l’image.

• Un filtre directionnel est un filtre passe haut dans une direction


donnée du plan de Fourier. On emploie généralement 8 à 20 filtres
gaussiens pour isoler les hautes fréquences dans 8 à 20 directions.

• La superposition des images directionnelles et de l’image BF permet la


récupération de l’image initiale.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
72 © 1999 UTC-UAM
Filtrage directionnel
Le codage des images directionnelles et de l’image BF est fait par des
méthodes inexactes, introduisant une certaine dégradation de la
qualité.

Un codage par transformation est utilisé pour l’image BF, la phase est
codée par des mots de longueur fixe, et le module par le codage de
Huffman.

Pour les images directionnelles HF, on code les contours (passages par
zéro du laplacien) avec Huffman.

Les composants BF sont restitués par transformation inverse. Pour les


composants HF, on doit synthétiser les images directionnelles à partir
des passages par zéro, et de reconstruire les contours par
interpolation.

Les taux de compression obtenus sont de l’ordre de 40:1.


Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
73 © 1999 UTC-UAM
Filtrage directionnel

La transformée inverse produit 8 images directionnelles


de contours plus une image basse fréquence
L’addition redonne l’image d’origine.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
74 © 1999 UTC-UAM
Quantification
Un quantificateur permet la représentation d'une variable
selon un nombre limité de valeurs à sa sortie. Chaque
donnée d'entrée est forcée à prendre une valeur parmi les
solutions permises.

Les méthodes de quantification peuvent être classées en 2


groupes:

• La quantification scalaire, existant depuis le début des années 50 sous


la forme du quantificateur optimal Lloyd-Max

• La quantification vectorielle, qui est une généralisation de la


quantification scalaire, proposée par Linde, Buzo et Gray (LBG) au
début des années 80, et qui permet des taux de compression plus
élevés.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
75 © 1999 UTC-UAM
Quantification Scalaire
• Il s’agit de déterminer les valeurs optimales de la quantification et de
la reconstruction en terme de la Fonction de Densité de Probabilité
(FDP) et d’un critère d’optimisation.

• Dans une image, u est un scalaire qui représente l’intensité d’un


pixel, avec une FDP Pu(x). Si u est uniformement distribué, le
quantificateur est linéaire.

• Le quantificateur appelé Lloyd-Max essaie de minimiser l'erreur


quadratique moyenne de la quantification pour un nombre donné de
niveaux de quantification. Cette erreur est définie comme:

∫ x − u( x ) Pu( x )dx = E ( u − u ) ]
[
uL+1

E= [ ] 2 2

u1
• La minimisation de cette erreur donne des niveaux de transition qui
restent au milieu des niveaux de reconstruction. Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
76 © 1999 UTC-UAM
Quantification Vectorielle

• La quantification vectorielle est l'extension de la quantification


scalaire à un espace multidimensionnel. Cette méthode peut
exploiter la corrélation entre des pixels voisins dans l'image et
est basée sur le fait qu'un codage des vecteurs est plus
compact que le codage des scalaires.

• Le vecteur est formé à partir d’un sous-bloc de l’image de 2X2


ou 4X4 pixels.

• Le codeur et le décodeur partagent un même ensemble de


mots codés, où les vecteurs de reproduction possibles sont
connus sous le nom de “livres de codes” ou “codebooks”

• Le but de la technique est de minimiser la distorsion moyenne


entre les images d'entrée et de sortie
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
77 © 1999 UTC-UAM
Codage après la Quantification:
le Codage Réversible
• La dernière étape d'un système de compression d'images
est souvent un codage exact ou réversible.

• Pour obtenir un nombre minimal de bits, on utilise de


codes à longueur variable. Lorsque quelques valeurs
d'entrée apparaissent plus souvent que d'autres, on utilise
de codes courts pour les données plus fréquentes et des
codes plus longs pour des valeurs qui ont une plus faible
probabilité d'occurrence.

• Cet approche produit une plus grande efficacité du codage.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
78 © 1999 UTC-UAM
Codage après la Quantification:
le Codage Réversible

Quelques types de compression réversibles:


• Codage par plages, utilisée principalement pour le
codage des sources binaires comme l'impression de
documents graphiques et télécopies.
• Lempel-Ziv transforme d'une façon adaptative des
échantillons de longueur variable en codes de longueur
fixe.
• Codage de Huffman est un codage compact qui peut
être construit en ordonnant les symboles d'entrée selon
leurs probabilités d’occurence.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
79 © 1999 UTC-UAM
Mesures Quantitatives de Distorsion

•En général, les mesures quantitatives ne sont pas des bons


indicateurs de la performance des méthodes de
compression.

•Pour obtenir un indice plus représentatif, il est nécessaire


de faire des évaluations subjectives de la qualité visuelle de
l'image.

•Les mesures quantitatives sont utilisées pour comparer


différents types de processeurs ou d'algorithmes dans la
littérature. Les plus utilisées sont calculées autour de l'erreur
quadratique moyenne et du rapport signal/bruit.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
80 © 1999 UTC-UAM
Mesures Quantitatives de Distorsion

Erreur quadratique moyenne E {[x( m , n ) − x̂( m , n )] }


M −1 N −1

∑ ∑ [x( m , n ) − x̂( m , n )]
1

2 2

MN m =0 n=0

M −1 N −1

∑ ∑ [x( m , n ) − x̂( m , n )]
1 2

MN
ECM a = m =0 n =0
M −1 N −1
1
∑∑ [x ( m , n )]2

Erreur quadratique moyenne normalisée MN m =0 n=0

M −1 N −1
1
∑∑ [x ( m , n ) − x̂ ( m , n )]2

MN
ECM b = m =0 n=0

x max

Pour la première définition, l'EQM est normalisée par rapport à


l'énergie de l'image, et dans le cas (b), le facteur de normalisation
est la valeur maximale de l’intensité.
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
81 © 1999 UTC-UAM
Mesures Quantitatives de Distorsion
Erreur Absolue Moyenne et Erreur Absolue Moyenne Normalisée:
M −1 N −1
1 EMA
EMA = ∑∑ x ( m , n ) − x̂ ( m , n ) EMAN =
1 M −1 N −1
MN m =0 n =0
MN
∑ ∑ x( m , n )
m =0 n =0

Coefficient de Corrélation Normalisé:


M −1 N −1

∑ ∑ x( m , n ) x̂( m , n )
EMAN = m =0 n =0
1/ 2
 M −1 N −1 M −1 N −1
2
∑ ∑ [x ( m , n )]2
∑ ∑ [x̂ ( m , n )] 
 m =0 n =0 m =0 n=0 
Pour une reconstruction idéale, ccn=1.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
82 © 1999 UTC-UAM
Evaluation subjective de la
qualité de l’image
•Pour pouvoir effectuer une évaluation subjective de l'image, il est
nécessaire de rassembler un groupe d'observateurs experts qui voient
des images traitées et originelles dans un ordre quelconque, et qui
donnent une opinion sur la qualité visuelle de l'image.

•Les résultats sont notés sur une échelle qui va de 7 pour une image
sans dégradation perceptible, à 1 pour une image d'une qualité très
mauvaise.

Opinion Points
Imperceptible 7
A peine perceptible 6
Perceptible mais peu importante 5
Dégradation admisible 4
Dégradation très visible 3
Dégradation desagréable 2
Dégradation inadmissible 1
Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
83 © 1999 UTC-UAM
Codage des Images avec des Critères Psycho - Visuels.

• L’utilisation de modèles de la vision humaine permet


d’obtenir de taux de compression élevés en gardant une
bonne qualité de l’image.

• Il est nécessaire d'abord de faire une transformation de


l'image avec un modèle de la vision humaine, et ensuite
faire un codage.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
84 © 1999 UTC-UAM
Utilisation du modèle de la vision humaine

•Après le transfert ou le stockage, les données doivent


être décodées et traduites du domaine de la perception au
domaine de l'intensité lumineuse.

•Seule l’information nécessaire pour l’observation de


l’image est codée et stockée.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
85 © 1999 UTC-UAM
Critères Psycho-visuels:
Synthèse des hautes fréquences (Schreiber 1967)

L'image originelle est divisée en deux parties:


• image à basses fréquences qui donne une idée générale des niveaux
d'illumination, mais sans contours

• image passe haut qui contient l'information sur les bords et contours de
l'image originelle

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
86 © 1999 UTC-UAM
Synthèse des hautes fréquences (Schreiber 1967)

• L'image BF peut être codée en utilisant quelques coefficients seulement.

• L'image HF est produite en utilisant des opérateurs type gradient ou


Laplacien.

• Après un seuillage la localisation et l'amplitude des bords est codée.


• La reconstruction est faite à partir d'un filtre qui utilise les informations
des bords pour synthétiser la partie HF (synthetic high), et en additionnant
les deux parties.

• Ce système exploite les caractéristiques du système visuel, notamment le


phénomène d'inhibition latérale et permet une réduction importante de la
redondance d'information dans l'image.

L'implantation de cette méthode, qui peut être considérée comme un précurseur


des méthodes de codage directionnel, n'a pas été répandue à cause de la
complexité des calculs à l'époque.
Des taux de compression de 8:1 peuvent être obtenus. Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
87 © 1999 UTC-UAM
Codage à Base de Croissance de Régions
(Kunt,1985)

Principe:

1: Prétraitement: segmentation de l’image de texture


homogène.

2: Codage des contours.

3: Codage de la texture.

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
88 © 1999 UTC-UAM
Codage à Base de Croissance de Régions
(Kunt,1985)

1: Prétraitement
•Homogénéisation de zones de texture: atténuer les
petites variations de niveaux de gris en conservant les
contours.

•Codage de la texture: prendre la différence entre l’image


initiale et l’image filtrée

•Croissance de régions sur l’image filtrée

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
89 © 1999 UTC-UAM
Codage à Base de Croissance des Régions
(Kunt,1985)
2: Codage des contours. Approximation polygonale ou
polynomiale

3: Codage des textures:


Comme dans une région donnée il n'y a pas de grandes
variations de niveaux de gris, elle peut être approximée en
utilisant une fonction polynomiale.
La granularité éliminée au début, est réintroduite sous la
forme du bruit pseudo-aléatoire pour rendre l'image plus
"naturelle”.

Les taux de compression obtenus sont de l’ordre de 20:1.


Lerallut, Medina, Azpiroz
BM-06 Chapitre 8. Compression
90 © 1999 UTC-UAM
Comparaison et choix
La méthode de compression à choisir dépend fortement de la nature de
l’information à coder:

S’il s’agit par exemple de code machine, ou bien de données alphanumériques


(tableaux de comptabilité, …), on ne peut utiliser que des méthodes de codage
exact. On choisira l’algorithme le plus rapide, ou donnant le meilleur taux de
compression.

Dans le cas de sons et d’images fixes ou animées, on peut tolérer une perte
d’information SI celle-ci n’est pas perceptible par le système auditif ou visuel
humain. Les critères psychovisuels de quailté intervenant de manière subjective,
le choix d’une méthode est délicat, résultant d’un compromis entre vitesse,
taux et qualité.

Pour les images médicales, le contenu diagnostique de l’image doit être


préservé, donc codage exact (légal), ou avec de très faibles pertes (expérimental).

Lerallut, Medina, Azpiroz


BM-06 Chapitre 8. Compression
91 © 1999 UTC-UAM

Vous aimerez peut-être aussi