Vous êtes sur la page 1sur 91

Principes fondamentaux

Outils

Compression d’image et vidéo : Introduction

Marco Cagnazzo

Département Traitement du Signal et des Images


TELECOM ParisTech

17 septembre 2012

M. Cagnazzo Introduction 1/86


Principes fondamentaux Compression
Outils Critères

Plan

1 Principes fondamentaux
Compression
Critères d’évaluation de un algorithme de compression

2 Outils
Codage sans pertes
Quantification

M. Cagnazzo Introduction 2/86


Principes fondamentaux Compression
Outils Critères

Acquisition des images et de la vidéo

Représentation des images et de la vidéo en numérique


Relation entre acquisition, représentation et perception
Espaces de couleur
Échantillonnage
Quantification

M. Cagnazzo Introduction 3/86


Principes fondamentaux Compression
Outils Critères

L’oeil
Lumière transformée en impulsion nerveuse par les récepteurs (rétine)
Cônes (6÷7 millions, au centre de la rétine) : très sensibles aux
couleurs, une bonne résolution, demandent beaucoup de lumière
Bâtonnets (75÷150 millions) : sensibles à l’intensité lumineuse,
faible résolution, très sensibles à faible luminosité

180000
Blind spot Cônes
Nombre de récepteurs par mm2

Bâtonnets
135000

90000

45000

80 60 40 20 0 20 40 60 80
Degrees

M. Cagnazzo Introduction 4/86


Principes fondamentaux Compression
Outils Critères

Perception de la lumière
Luminosité perçue : fonction logarithmique de
l’intensité
Dynamique des valeurs d’intensité : ≈ 1010
(100dB)
Le système visuel ne peut pas opérer sur cette
échelle simultanément
Changements de la sensibilité globale,
dynamique beaucoup plus limitée
Intensité lumineuse
Luminosité perçue : ce n’est pas une simple Intensité perçue

fonction de l’intensité

M. Cagnazzo Introduction 5/86


Principes fondamentaux Compression
Outils Critères

Sensibilité aux fréquences spatiales

2
La sensibilité au
contrast est
% Constrast

l’habilité à discerner
6 différents niveaux
de luminosité
Maximum à environ
2-5 cycles par
25 degré

100
240 120 60 30 15
Pixels per cycle

M. Cagnazzo Introduction 6/86


Principes fondamentaux Compression
Outils Critères

Perception de la couleur

445 nm 535 nm 575 nm


Spectre visible : 400÷700 nm
Cônes sensibles à différents
intervalles

Absorption
65% sensible au rouge
33% sensible au vert
2% sensible au bleu (mais très sensibles)

Sensation de la couleur :
correspond au tristimulus
400 450 500 550 600 650 700
Couleur obtenue comme
Wavelenght [nm]
combinaison des couleurs
primaires

M. Cagnazzo Introduction 7/86


Principes fondamentaux Compression
Outils Critères

Représentation des images numériques


Espaces de couleurs

Espace RGB Espace HSV

M. Cagnazzo Introduction 8/86


Principes fondamentaux Compression
Outils Critères

Représentation des images numériques


Images en niveaux de gris

Grille discrète, image N × M pixels


A chaque pixel (m, n), on associe un ordre de traitement k
Généralement, balayage ligne par ligne unilatéral :
k = (n − 1)M + m
On notera indifféremment fn,m ou fk
m M

n
fn,m = fk
N

M. Cagnazzo Introduction 9/86


Principes fondamentaux Compression
Outils Critères

Représentation des images numériques


Images couleurs : Format RVB

Images en couleurs : trois composantes, chacune représentée


comme une image en niveaux de gris.

M. Cagnazzo Introduction 10/86


Principes fondamentaux Compression
Outils Critères

Représentation des images numériques


Images couleurs : Format YUV

Images en couleurs : une composante de luminance et deux de


chrominance

M. Cagnazzo Introduction 11/86


Principes fondamentaux Compression
Outils Critères

Échantillonnage de l’espace de couleur


Schémas d’échantillonnage

Le schéma est représenté comme un rapport entre trois


termes :
J :a:b
J Taille horizontale du bloc d’échantillonnage de
référence, normalement 4
a Nombre d’échantillons de chrominance dans
la première ligne de J pixels
b Nombre d’échantillons de chrominance
additionnels dans la deuxième ligne de J
pixels

M. Cagnazzo Introduction 12/86


Principes fondamentaux Compression
Outils Critères

Échantillonnage de l’espace de couleur

4:1:1 4:2:0 4:2:2 4:4:4

YUV YUV YUV YUV

= = = =

Y Y Y Y

+ + + +
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

1 a=1 1 2 a=2 1 2 a=2 1 2 3 4 a=4


UV UV UV UV
2 b=1 b=0 1 2 b=2 1 2 3 4 b=4

1/4 horizontal resolution 1/2 horizontal resolution 1/2 horizontal resolution Full horizontal resolution
Full vertical resolution 1/2 vertical resolution Full vertical resolution Full vertical resolution

M. Cagnazzo Introduction 13/86


Principes fondamentaux Compression
Outils Critères

Quantification

Représentation des échantillons sur un ensemble discret


Quantification uniforme : arrondi
L = nombre de niveau
b = log2 L dynamique du quantificateur
Normalement b = 8 par composante
256 niveaux de gris (8 bpp)
16M couleurs (24 bpp)
High dynamics range : 32 à 64 bits par canal

M. Cagnazzo Introduction 14/86


Principes fondamentaux Compression
Outils Critères

Résolution de la vidéo
Échantillonnage spatial et temporel

SECAM 384 × 576 50 Hz


PAL 450 × 576 50 Hz
NTSC 323 × 486 60 Hz
QCIF 144 × 176 N/A
CIF 288 × 352 N/A
4CIF 576 × 704 N/A
SD/PAL 720 × 576 50 Hz
HD 720p/i 1280 × 720 50/100 Hz
HD 1080p/i 1920 × 1080 50/100 Hz
2K 2048 × 1556 24 Hz
4K 4096 × 2160 24 Hz
UHD 7680 × 4320 60 Hz

M. Cagnazzo Introduction 15/86


Principes fondamentaux Compression
Outils Critères

Représentation de la vidéo numérique

Séquence d’images numériques


On ajoute la dépendance du temps
Trois composantes dans le cas de vidéo couleur
Représentation RVB ou luminance/chrominance
Sous-échantillonnage des composantes couleur
n o
I : (n, m, T , c) → x ∈ 0, 1, . . . , 2b

M. Cagnazzo Introduction 16/86


Principes fondamentaux Compression
Outils Critères

Compression : Motivations
Exemple 1 : Libraire de photos numériques

Images numérique : au déla des 10 Megapixel


Trois composantes couleur
Un octet par composant
Occupation mémoire : 30 Mo par photo
Publication sur le Web ?

M. Cagnazzo Introduction 17/86


Principes fondamentaux Compression
Outils Critères

Compression : Motivations
Exemple 2 : Télévision

système analogique
⇒ bande de fréquence : 6 MHz
système numérique
1 composante de luminance 576 × 720
2 composantes de chrominance 288 × 360
quantification sur 8 bits
25 images par seconde
R ≈ 125 Mbps
⇒ bande de fréquence ?
2 heures de film > 100 Go

M. Cagnazzo Introduction 18/86


Principes fondamentaux Compression
Outils Critères

Fondements de la compression

POURQUOI EST-IL POSSIBLE DE COMPRIMER ?

Redondance statistique des données


homogénéité des images
similitude entre images successives
Redondance psychovisuel
sensibilité aux baisses fréquences
effets de masquage
autres limites du système visuel humain
Un algorithme de compression (ou codage) doit exploiter
au maximum la redondance des données

M. Cagnazzo Introduction 19/86


Principes fondamentaux Compression
Outils Critères

Types d’algorithme de compression

Algorithmes sans perte (lossless)


Reconstruction parfaite
Basés sur la redondance statistique
Faible rapport de compression
Algorithmes avec perte (lossy)
Image reconstruite 6= image originale
Basés sur la quantification
Redondance psychovisuel : “visually lossless”
Rapport de compression élevé

M. Cagnazzo Introduction 20/86


Principes fondamentaux Compression
Outils Critères

Types d’algorithme de compression

Algorithmes symétriques
Même complexité au codeur et au décodeur
Pas de compensation de mouvement
Faible rapport de compression
Temps réel
Algorithmes asymétriques
Codeur beaucoup plus complexe du décodeur
Estimation/compensation du mouvement
Rapport de compression élevé
Usage “off line”, distribution sur supports de mémoire

M. Cagnazzo Introduction 21/86


Principes fondamentaux Compression
Outils Critères

Débit

Rapport (taux) de compression


Bin Rin
T = Bout = Rout
Débit de codage
Bout
Image : R = NM [bpp]
Bout
Video, son : R = T [bps]

Codage d’image sans perte : T ≤ 3


Codage d’image avec perte : T ≈ 5 →?
Codage vidéo avec perte : T ≈ 20 →?

M. Cagnazzo Introduction 22/86


Principes fondamentaux Compression
Outils Critères

Qualité et distorsion

La qualité d’une image numérique est établie en utilisant des critères

Les critères objectifs sont fonctions mathématiques de :


fn,m : image d’origine ; et
efn,m : image reconstruite après compression

Critères objectifs non perceptuels


Erreur quadratique moyenne (MSE) :
PN PM
D = N1M n=1 m=1 (fn,m − efn,m )2  
2552
Rapport signal sur bruit crête : PSNR = 10 log10 D

Critères objectifs perceptuels


On utilise des modèles de perception
Le plus commune est le SSIM (Structural SIMilarity) index

M. Cagnazzo Introduction 23/86


Principes fondamentaux Compression
Outils Critères

Qualité et distorsion

Les Critères subjectifs sont basés sur l’évaluation de la


qualité des image faite par des humaines
Difficulté de créer un bon modèle du SVH
Analyse statistique des résultats
Évaluations longues, difficiles et coûteuses
En conclusion, souvent on se limite à utiliser les critères
objectifs non perceptuels :
Simplicité
Interprétation géométrique (norme euclidienne)
Optimisation analytique
Relation avec la qualité perçue ?

M. Cagnazzo Introduction 24/86


Principes fondamentaux Compression
Outils Critères

Perception des erreurs


Erreur distribuée, bruit blanc σ = 4

MSE: 16 SSIM: 0.906

M. Cagnazzo Introduction 25/86


Principes fondamentaux Compression
Outils Critères

Perception des erreurs


Bruit concentré sur 100 × 100 pixels

MSE: 16 SSIM: 0.972

M. Cagnazzo Introduction 26/86


Principes fondamentaux Compression
Outils Critères

Perception des erreurs


Bruit concentré sur les contours (estimation par filtre de Sobel)

MSE: 16 SSIM: 0.987

M. Cagnazzo Introduction 27/86


Principes fondamentaux Compression
Outils Critères

Perception des erreurs


Bruit sur les hautes fréquences spatiales

MSE: 16 SSIM: 0.882

M. Cagnazzo Introduction 28/86


Principes fondamentaux Compression
Outils Critères

Perception des erreurs


Sous-échantillonnement dans l’espace des couleurs

MSE: 21.27 SSIM: —

M. Cagnazzo Introduction 29/86


Principes fondamentaux Compression
Outils Critères

Effets spatiaux

Intensité lumineuse
Intensité perçue

M. Cagnazzo Introduction 30/86


Principes fondamentaux Compression
Outils Critères

Perception de la vidéo

Sensibilité aux fréquences spatio-temporelles (ralenti)


Masquage spatiale (comme dans les images)
Masquage temporel
Sensitiviy

Scene
Change

M. Cagnazzo Introduction 31/86


Principes fondamentaux Compression
Outils Critères

Perception et qualité : bilan

Modèles perceptuels nécessaires pour des bons


performances de compression
Système d’audition relativement bien compris, et exploité
dans les codeurs audio
Système de perception visuel encore loin d’être
parfaitement compris
Manque de mesures perceptuelles de qualité
complètement fiables
Tout de même, les meilleures performances de
compression ne peuvent pas être atteintes si on tient pas
en compte l’aspect psychovisuel

M. Cagnazzo Introduction 32/86


Principes fondamentaux Compression
Outils Critères

Complexité, retard et robustesse

La complexité d’un algorithme de codage peut être limitée


par :
contraintes liées à l’application (temps réel)
limités du matériel (hardware)
coût économique
Le retard est normalement mesuré au codeur
Lié à la complexité
Influencé par l’ordre de codage
Robustesse: sensibilité de l’algorithme de
compression/reconstruction à des petites altérations du
code comprimé (erreurs de transmission)

M. Cagnazzo Introduction 33/86


Principes fondamentaux Compression
Outils Critères

Critères de performance : Bilan

Besoins contradictoire :

⇓ Débit
⇑ Qualité
⇓ Complexité
⇑ Robustesse
⇓ Retard

M. Cagnazzo Introduction 34/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Plan

1 Principes fondamentaux
Compression
Critères d’évaluation de un algorithme de compression

2 Outils
Codage sans pertes
Quantification

M. Cagnazzo Introduction 35/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage sans pertes


Introduction

La compression sans perte est basée sur les statistiques des


données
Mots de code courts pour les symboles probables
Mots de code longs pour les symboles peu probables
Définitions :
Alphabet : X = {x1 , x2 , . . . , xN } ensemble des symboles à coder
{0, 1, . . . , 255} dans le cas de valeurs de
luminance
alphabet français dans le cas d’un texte
Code : application entre X et {0, 1}∗ , l’ensemble des
chaînes de bits de longueur finie.
Codes à longueur fixe
Codes à longueur variable

M. Cagnazzo Introduction 36/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Choix du code

Code : C : xi ∈ X → ci ∈ {0, 1}∗


Codes à longueur fixe.
Tout mot de code a la même longueur
Si on a N = 256 symboles, il nous faut log N = 8 bits pour
coder chaque symbole
Dans le cas d’un texte, N = 26, il nous faut log N = 5 bpS
(bit par symbole)
Codes à longueur variable
ℓi : longueur du mode de code ci
On peut comprimer sans pertes si :
Condition de décodabilité : condition du préfixe
Les symboles ne sont pas équiprobables

M. Cagnazzo Introduction 37/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Information et entropie

Le symbole xi a une probabilité pi d’apparaître


P
Longueur moyenne du code : L = pi ℓi
L’information associé à xi est I(xi ) = − log pi
I(xi ) ≥ 0
Si pi = 1, I = 0
Si deux symboles sont indépendants, I(xi , xj ) = I(xi ) + I(xj )
Entropie de la source : information moyenne des symboles
X
H(X ) = − pi log pi
i

Théorème de Shannon: le code optimale (c’est-à-dire,


minimum L) a
L ≥ H(X )

M. Cagnazzo Introduction 38/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage entropique

Théorème de Shannon:
Taux de codage code optimale ≥ Entropie de la source (1)
du coup le nom Codage Entropique.

La relation devient strictement une identité stricte si les


probabilités sont dyadiques (puissances négatives de deux)
La relation est pratiquement une identité pour un nombre
important de symboles de l’alphabet.

Donc l’entropie est une excellente approximation du taux de codage


optimale. Dans la suite la (1) est considérée comme une identité.

M. Cagnazzo Introduction 39/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Exemple : Compression d’un texte français

Technique Code à longueur fixe


Entropie de la source 3.999 bpS
Taux de codage (L) 5 bpS
Rapport de compression 1

Chaque lettre est représentée sur 5 bits


Aucune compression est obtenue

M. Cagnazzo Introduction 40/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage de Huffman

Huffman a découvert comment construire le code optimum


pour n’importe quelle source.
Exemple :

Symbole Probabilité
A 0.4
B 0.2
C 0.15
D 0.15
E 0.05
F 0.05

6 symboles, 3 bits par symboles sans codage.

M. Cagnazzo Introduction 41/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage de Huffman
A A
40% 40%

B B
20% 20%

C C
15% 15%

D D
15% 15% 0

25%

E E
5% 0 5% 0 1

10% 10%

F 1 F 1
5% 5%

M. Cagnazzo Introduction 42/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage de Huffman
A
40%
0

B
20% 0 100%

35%

C 1 0 1
15%

60%

D
15% 0 1

25%

E
5% 0 1

10%

F 1
5%

M. Cagnazzo Introduction 43/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage de Huffman

Code de Huffman

Symbole Probabilité Code


A 0.4 0
B 0.2 100
C 0.15 101
D 0.15 110
E 0.05 1110
F 0.05 1111

L = 0.4 · 1 + 0.2 · 3 + 0.15 · 3 + 0.15 · 3 + 0.05 · 4 + 0.05 · 4


= 2.3 bits/symbole

M. Cagnazzo Introduction 44/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Exemple : Compression d’un texte français


Technique Huffman
Entropie de la source 3.999 bpS
Taux de codage (L) 4.040 bpS
Rapport de compression 1.25
20

18
Distribution des
16
lettres dans un
14
texte français
12
% Freq

10

0
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

M. Cagnazzo Introduction 45/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage de Huffman

Comment améliorer les performances ?


Codage par blocs :
1 L’entropie d’un bloc de K symboles n’est jamais supérieure
à KH(X )
2 La distribution du bloc tend à être dyadique si K est grand
Codage par contextes : l’entropie d’un symbole donnés
ses K − 1 voisins est largement inférieure à H(X )
Les meilleures performances sont obtenues quand on
code l’entier message de K symboles comme un symbole
d’un alphabet de taille N K

1
H(X K ) → H(X ) ≤ H(X )
K

M. Cagnazzo Introduction 46/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Exemple : Compression d’un texte français


K=1 Entropie des lettres 3.999 bpS 3.999 bpl 4.040
K=2 Entropie des digrams 7.440 bpS 3.720 bpl 3.734
K=3 Entropie des trigrams 9.452 bpS 3.151 bpl 3.211
A
B
C 3
D
E
F
bpS : bits par symbole
G
H
2.5
bpl : bits par lettre
J
I

2
Les trigrams plus communs :
K
L
M
N
O
P
1.5 ait ent les
Q
R
1.59% 1.25% 0.94%
1
S
T lle des ant
U
V
W
0.5
0.78% 0.72% 0.70%
X
Y
que our ien
Z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0
0.67% 0.63% 0.60%
Distribution des digrams dans un texte
français

M. Cagnazzo Introduction 47/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Limites du code de Huffman

De l’exemple précédent, on comprend qu’on voudrait aller


jusqu’à la limite K =longueur du message.
C’est pratiquement impossible avec Huffman
Difficile et coûteux de connaître les probabilités
Complexité exponentielle du code avec la taille du bloc
Le dictionnaire devrait comprendre tout les possibles
messages de K symboles:
Tous les possibles textes
Toutes les possibles images
...
Le codage arithmétique résout le problème

M. Cagnazzo Introduction 48/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage sans pertes


Codage arithmétique

Le codage arithmétique permets de faire un codage par


blocs ou par contextes avec complexité linéaire
Idée : ne pas chercher le code pour n’importe chaîne de n
symboles, mais uniquement pour la chaîne à coder
Le codeur arithmétique n’est pas optimal, mais
asymptotiquement optimal
Faible complexité de codage/décodage (opérations
arithmétiques, dont le nom)
Le codage arithmétique est le plus commun, mais dans
des systèmes très simples on peut trouver Huffman

M. Cagnazzo Introduction 49/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage arithmétique: exemple


Symbole A B C D E F
Probabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ADFCD

A B C D E F
0 0.4 0.6 0.75 0.9 0.95 1

M. Cagnazzo Introduction 50/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage arithmétique: exemple


Symbole A B C D E F
Probabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ADFCD

A B C D E F
0 0.4 0.6 0.75 0.9 0.95 1

M. Cagnazzo Introduction 50/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage arithmétique: exemple


Symbole A B C D E F
Probabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ADFCD

A B C D E F
0 0.4 0.6 0.75 0.9 0.95 1

0 0.24 0.3 0.4

M. Cagnazzo Introduction 50/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage arithmétique: exemple


Symbole A B C D E F
Probabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ADFCD

A B C D E F
0 0.4 0.6 0.75 0.9 0.95 1

0 0.24 0.3 0.4

0.297
0.24 0.3

M. Cagnazzo Introduction 50/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage arithmétique: exemple


Symbole A B C D E F
Probabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ADFCD

A B C D E F
0 0.4 0.6 0.75 0.9 0.95 1

0 0.24 0.3 0.4

0.297
0.24 0.3

0.297 0.29925 0.2997 0.3

M. Cagnazzo Introduction 50/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage arithmétique: exemple


Symbole A B C D E F
Probabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ADFCD

A B C D E F
0 0.4 0.6 0.75 0.9 0.95 1

0 0.24 0.3 0.4

0.297
0.24 0.3

0.297 0.29925 0.2997 0.3

M. Cagnazzo Introduction 50/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage par blocs

Pour chaque nouveau symbole, 2 multiplications et 2


addition
Codage de la suite de symboles : centre de l’interval
sélectionné, avec précision inférieure à la demi-taille de
l’interval.
Problème : estimation de P(X K ), en principe avec
K =longueur totale du message
Exemple précédent
Q : Symboles supposés indépendants,
P(X K ) = Ki=1 p(xi )
Apprentissage des statistiques au cours du codage
(adaptivité)

M. Cagnazzo Introduction 51/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Codage sans pertes


Codage avec dictionnaire

Dictionnaire des suites de données communes construit


au fur et à mesure
Capable de s’adapter à des signaux non-stationnaires
Pas besoin d’initialization (codage universel)
À la base des algorithmes populaires de compression sans
perte (zip, gzip, bzip, etc.)

M. Cagnazzo Introduction 52/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification scalaire : Définition

Q : x ∈ R → y ∈ C = {x̂1 , x̂2 , . . . x̂L } ⊂ R

x̂7

x̂6

x̂5
d0 d1 d2 d3 d4
d5 d6 d7 d8

x̂4

x̂3

x̂2
x̂1

M. Cagnazzo Introduction 53/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification scalaire : Définition

Q : x ∈ R → y ∈ C = {x̂1 , x̂2 , . . . x̂L }


C : Dictionnaire
R = log2 L : Débit
E = X − Q(X ) : Bruit de quantification
 
D = E (X − Q(X )) = E E 2 : Distorsion
2

Θi = {x : Q(x) = x̂i } : Régions.


Évaluation de un quantificateur : courbe D(R)

M. Cagnazzo Introduction 54/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification scalaire regulière

Typiquement,
1) Θi = (di−1 , di )
2) x̂i ∈ Θi

d0 di−1 di dL

x̂i
Θi

M. Cagnazzo Introduction 55/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme

Simple
Minimise l’erreur maximale
Optimale pour v.a. uniforme
Courbe D(R) pour une v.a. uniforme :

D = σX2 2−2R

Courbe D(R) pour une v.a. non uniforme en haute résolution :

D = KX σX2 2−2R

M. Cagnazzo Introduction 56/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification optimale

Pour une densité de probabilité fX (x) donnée, déterminer le


quantificateur qui minimise la distorsion pour un débit donné.
Problème équivalent à déterminer les seuils di et les niveaux x̂i .
Solutions :
Solution analytique en haute résolution: D = hX σx2 2−2R
Si l’hypothèse de haute résolution est fausse, on peut
atteindre un minimum local de la distorsion avec
l’algorithme de Max-Lloyd

M. Cagnazzo Introduction 57/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification optimale
Algorithme de Max-Lloyd

Algorithme de Max-Lloyd
1 initialiser les régions (p.e. uniforme)
2 trouver les meilleures régions pour le dictionnaire donné

x̂i + x̂i+1
di = , i ∈ {1, . . . , L − 1}
2
3 trouver le meilleur dictionnaire pour les régions données
R
Θ xfX (x)dx
x̂i = E [X |X ∈ Θi ] = R i
Θi fX (x)dx

4 boucler en 2 jusqu’à la convergence

M. Cagnazzo Introduction 58/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de quantification

Image Originale, 24 bpp

M. Cagnazzo Introduction 59/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 21 bpp PSNR 47.19 dB TC 1.143

M. Cagnazzo Introduction 60/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 18 bpp PSNR 42.38 dB TC 1.333

M. Cagnazzo Introduction 61/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 15 bpp PSNR 36.97 dB TC 1.600

M. Cagnazzo Introduction 62/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 12 bpp PSNR 31.40 dB TC 2.000

M. Cagnazzo Introduction 63/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 9 bpp PSNR 29.26 dB TC 2.667

M. Cagnazzo Introduction 64/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 6 bpp PSNR 27.83 dB TC 4.000

M. Cagnazzo Introduction 65/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification uniforme
Exemple de codage

Débit 3 bpp PSNR 25.75 dB TC 8.000

M. Cagnazzo Introduction 66/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification
Conclusion

Quantification : au centre de la compression avec perte


Opération non réversible
Centrale dans le compromis débit-distorsion
Approximations à haute résolution:
D ∼ 2−2R
D ∼ σ2
La seule quantification est insuffisante à assurer des
bonnes performances de compression

M. Cagnazzo Introduction 67/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle (QV)


Introduction

La quantification est normalement utilisée sur séquences


d’échantillons
Idée : quantifier conjointement plusieurs échantillons (un
vecteur)
L’espace R N est donc partitionné en régions de décision
À chaque région on fait correspondre un représentant (un
vecteur)

M. Cagnazzo Introduction 68/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Exemple: signal corrélé


Signal AR(2)

1 1

0.8 0.8

0.6 0.6

0.4 0.4

0.2 0.2

0 0

−0.2 −0.2

−0.4 −0.4

−0.6 −0.6

−0.8 −0.8

−1 −1
0 20 40 60 80 100 120 140 160 180 200 −1 −0.5 0 0.5 1

M. Cagnazzo Introduction 69/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Introduction

Généralisation de la QS à l’espace R N
La QS est un cas particulier de la QV
Les régions de décisions sont délimité par des hyperplans
orthogonaux aux axes
Les représentants sont alignés parallèlement aux axes
Gains potentiels de la QV
Gain géométrique : forme arbitraire des régions de décision
et position arbitraire des représentants
Gain de corrélation : on exploite directement la corrélation
du signal

M. Cagnazzo Introduction 70/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Propriétés de la VQ

La VQ permet des amélioration par rapport à la SQ :


on peut exploiter la corrélation entre échantillons
on supprime la contrainte de cellules hypercubiques
on supprime la contrainte de débits entiers

M. Cagnazzo Introduction 71/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Définition

Définition de la quantification scalaire :

Q : x ∈ R → y ∈ C = {x̂1 , x̂2 , . . . x̂L } ⊂ R

Définition de la quantification vectorielle :

Q : x ∈ RK → y ∈ C = {b x L } ⊂ RK
b2 , . . . b
x1 , x

M. Cagnazzo Introduction 72/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
VQ comme codage et décodage

On peut la voir comme suite de deux opérations :


Codage : Association entre x et l’index i (la région Θi )
Décodage : Association entre l’index i (la région Θi et le
mot de code y = b
xi

x i y
E D

{Θi } C = {b
xi }i

M. Cagnazzo Introduction 73/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantificateur régulier
Régions convexes
b
xi ∈ Θi

M. Cagnazzo Introduction 74/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Algorithme de Lloyd généralisé

Problème : comment trouver la meilleur VQ pour une source


donnée ?
Solution : Algorithme de Lloyd généralisé (ou BLG)
Dictionnaire d’initialization C0
k =1
Boucle sur k (condition d’arrêt)
Définir les cellules pour le dictionnaire Ck −1 (nearest
neighbor)
Trouver le dictionnaire Ck par rapport aux cellules (centroid
condition)
k ←k +1

M. Cagnazzo Introduction 75/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Limites et applications de la VQ

VQ : la technique de compression ultime ?


Limite principale : complexité

Codage : calculer mini x − xbi 2
images : corrélation entre pixels lointains, complexité trop
importante
Versions sous-optimales de la VQ : compromis entre
complexité et performance
La VQ est utilisée dans la compression audio

M. Cagnazzo Introduction 76/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification scalaire
Exemple de codage

Débit 9 bpp PSNR 29.26 dB TC 2.667

M. Cagnazzo Introduction 77/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Exemple de codage

Débit 9.0 bpp PSNR 37.59 TC 2.667

M. Cagnazzo Introduction 78/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification scalaire
Exemple de codage

Débit 6 bpp PSNR 27.83 dB TC 4.000

M. Cagnazzo Introduction 79/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Exemple de codage

Débit 6.0 bpp PSNR 33.00 TC 4.000

M. Cagnazzo Introduction 80/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Exemple de codage

Débit 4.5 bpp PSNR 30.78 TC 5.333

M. Cagnazzo Introduction 81/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification scalaire
Exemple de codage

Débit 3 bpp PSNR 25.75 dB TC 8.000

M. Cagnazzo Introduction 82/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Exemple de codage

Débit 3.0 bpp PSNR 27.63 TC 8.000

M. Cagnazzo Introduction 83/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification vectorielle
Exemple de codage

Débit 1.5 bpp PSNR 21.41 TC 16.000

M. Cagnazzo Introduction 84/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Exemples de dictionnaires
N = 4, L ∈ {4, 16, 64}

M. Cagnazzo Introduction 85/86


Principes fondamentaux Codage sans pertes
Outils Quantification

Quantification : bilan

Quantification scalaire
Simple
Modèles débit-distorsion
Allocation des ressources
Seule est peu efficace (transformée, prediction)
Quantification vectorielle
Complexe
Théoriquement optimale
Difficile à utiliser en pratique
Difficile à utiliser conjointement à autres techniques

M. Cagnazzo Introduction 86/86

Vous aimerez peut-être aussi