Vous êtes sur la page 1sur 133

Codage de source et

Institut compression
Mines-Telecom
Marco Cagnazzo,
cagnazzo@telecom-paristech.fr

J
Journées X-UPS
Introduction au codage de source et à la compression
Codage sans pertes
Quantification
Codage par transformée

Plan
Introduction au codage de source et à la compression
Principes
Codage sans pertes
Principes
Huffman et codage arithmétique
Quantification
Principes
Quantification scalaire prédictive
Quantification avec contrainte entropique
Codage par transformée
Principes
Allocation des ressources
Exemples

2/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Plan

Introduction au codage de source et à la compression


Principes

Codage sans pertes

Quantification

Codage par transformée

3/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Pourquoi comprimer ?

Exemple 1 : Libraire de photos numériques

◮ Images à 5 Megapixel
◮ Trois composantes couleur
◮ Un octet par composant
◮ Occupation mémoire : 15 Mo par photo
◮ Publication sur le Web ?

4/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Pourquoi comprimer ?
Exemple 2 : Télévision

◮ système analogique
⇒ bande de fréquence : 6 MHz
◮ Système numérique : TV-SD
1 composante de luminance 576 × 720
2 composantes de chrominance 288 × 360
quantification sur 8 bits
25 images par seconde
R ≈ 125 Mbps
◮ 2 heures de film > 100 Go
◮ TV-HD :
◮ 1920 × 1080 pixels, 50 images par second :
R ≈ 1250 Mbps, 2h de film > 1To

5/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Fondements de la compression
La redondance

◮ Redondance statistique des données


◮ images : homogénéité spatiale
◮ vidéo : similitude entre images successives
◮ texte : influence entre lettres et entre mots
◮ son : signal localement stationnaire
◮ Redondance psychovisuel / psychoacustique
◮ effets de masquage (spatial, temporel, en fréquence)
◮ sensibilité aux baisses fréquences (images)
◮ limites de système de perception humain
◮ Un algorithme de compression doit exploiter au maximum
la redondance des données

6/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Fondements de la compression

Types d’algorithme

◮ Algorithmes sans perte (lossless)


◮ Reconstruction parfaite
◮ Basés sur la redondance statistique
◮ Faible rapport de compression
◮ Algorithmes avec perte (lossy)
◮ Données reconstruites 6= données originales
◮ Basés sur la quantification
◮ Redondance psychovisuel : “perceptually lossless”
◮ Rapport de compression élevé

7/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance

Débit
Rapport (taux) de compression
Bin Rin
◮ T = Bout = Rout
Débit de codage
Bout
◮ Image : R = NM [bpp]
Bout
◮ Vidéo, son : R = T [bps]

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

8/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance

Qualité et distorsion
Le seul débit n’est pas suffisant pour évaluer un algorithme avec
pertes
Il faut déterminer la qualité ou la distorsion de l’image reconstruite
◮ Les Critères objectifs sont fonctions mathématiques de
◮ fn,m : image d’origine ; et
◮ efn,m : image reconstruite après compression
◮ Les critères objectifs non perceptuels ne prennent pas en
compte les caractéristiques du système visuel humain (SVH)
◮ Les critères objectifs perceptuels sont basés sur un modèle du
système visuel humain (SVH)

9/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance

Critères objectifs non perceptuels

◮ Signal d’erreur : E(f , ef ) = f − ef


◮ Erreur quadratique moyenne (MSE) D :
N M
1 1 XX 2
D(f , ef ) = 2
kEk = En,m
NM NM
n=1m=1

◮ Rapport signal sur bruit crête


 :
e
PSNR(f , f ) = 10 log10 2552
e D(f ,f )
◮ Mesure simple, dérivable, liée à la norme L2

10/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance
Critères objectifs perceptuels (images)

0.8

0.6

|H|
0.4

Weighted PSNR : Étant 0.2

donnée une fonction de 0


0.5
pondération fréquentielle 0.5
0
(filtre linéaire) h : 0

νy −0.5 −0.5
νx
!
2552
WPSNR(f , ef ) = 10 log10 où
DW (f , ef )
1
DW (f , ef ) =
2
kh ∗ Ek
NM
11/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance
Critères objectifs perceptuels (images)
Structural Similarity Index (SSIM Index) entre deux blocs x et y :

SSIM(x, y ) = [l (x, y )]α · [c (x, y )]β · [s (x, y )]γ


2µx µy + C1
l (x, y ) = Luminance
µ2x + µ2y + C1
2σx σy + C2
c (x, y ) = Contraste
σx2 + σy2 + C2
σxy + C3
s (x, y ) = Structure
σx σy + C3

pour simplicité, α = β = γ = 1, C3 = C2 /2

(2µx µy + C1 ) (2σxy + C2 )
SSIM =  
µ2x + µ2y + C1 σx2 + σy2 + C2

Le SSIM entre deux images est la moyenne des SSIM des blocs
12/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Perception des erreurs


Erreur distribuée, bruit blanc σ = 4

MSE: 16 SSIM: 0.906

13/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Perception des erreurs


Bruit concentré sur 100 × 100 pixels

MSE: 16 SSIM: 0.972

14/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Perception des erreurs


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

MSE: 16 SSIM: 0.987

15/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Perception des erreurs


Bruit sur les hautes fréquences spatiales

MSE: 16 SSIM: 0.882

16/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Perception des erreurs


Sous-échantillonnage dans l’espace des couleurs

MSE: 15.69 SSIM: 0.846

17/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

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

18/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance

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 ?

19/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance
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)

20/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Critères de performance

Bilan
Besoins contradictoire :

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

21/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes
Principes
Quantification
Codage par transformée

Outils fondamentaux pour la compression


◮ Transformée
◮ Concentre l’information en peu de coefficients
◮ Prédiction
◮ Méthode alternative (et parfois complémentaire) à la transformée
pour concentrer l’information
◮ Quantification
◮ Réduction du débit : représentation grossière des coefficients
moins importants
◮ Codage sans pertes (CSP) : réalisé par des codes à longueur variable
◮ Réduction de la redondance résiduelle

Prédiction Transformée Quantification CSP

22/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Plan

Introduction au codage de source et à la compression

Codage sans pertes


Principes
Huffman et codage arithmétique

Quantification

Codage par transformée

23/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 , . . . , xM } 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

24/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Choix du code
Code : C : xi ∈ X → ci ∈ {0, 1}∗
Codes à longueur fixe (FLC)
◮ Tout mot de code a la même longueur
◮ Si on a M = 256 symboles, il nous faut ⌈log M⌉ = 8 bits
pour coder chaque symbole
◮ Dans le cas d’un texte, M = 26, il nous faut ⌈log M⌉ = 5
bpS (bit par symbole)
Codes à longueur variable (VLC)
◮ ℓ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

25/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Exemple : Compression d’un texte français

Technique Code à longueur fixe


Nombre de symboles 26
Taux de codage (L) 5 bpS
Rapport de compression 1

◮ Chaque lettre est représentée sur 5 bits


◮ Aucune compression est obtenue

26/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

VLC : condition de décodabilité

◮ On utilise pas de “séparateurs” entre les mots de code


◮ Codes instantanés et décodables
◮ Inégalité de Kraft : il existe un code instantané avec
longueurs {ℓ1 , . . . , ℓM } si et seulment si :
X
2−ℓi ≤ 1
i

◮ Les codes décodables n’ont pas des meilleures


performances par rapport aux codes instantanés

27/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Inégalité de Kraft : Principes de la


demonstration
P
Condition du préfix ⇒ i 2−ℓi ≤ 1
◮ Construction de l’arbre binaire de profondeur ℓmax
◮ Association entre mots de code et nœuds
◮ Pour chaque feuille, on remonte vers la racine : combien
de mots de codes peut-on rencontrer ?
◮ Zéro ou un (condition du prefix)
◮ Numéro feuilles = A ≥ B = Numéro feuille avec exactement
un mot de code entre les ancêtres
◮ A = 2ℓmax
P
◮ B= M i=1 Nombre de feuilles qui descendent de l’i-ème
P
mot de code = Mi=1 2
ℓmax −ℓi

28/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Inégalité de Kraft : Principes de la


demonstration
P
i 2−ℓi ≤ 1 ⇒ Condition du préfix
◮ Construction de l’arbre binaire de profondeur ℓmax
◮ Premier mot de code c1 : prendre une feuille et remonter
au niveau ℓ1
◮ Couper le sous-arbre associé au premier mot de code c1
◮ Tout nœud survecu n’a pas c1 comme préfix
◮ Pour tout nouveau mot de code, on coupe le sous-arbre
associé
◮ Par consequence, si il reste des feuilles, on pourra trouver
un nouveau mot de code

29/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Inégalité de Kraft : Principes de la


demonstration
P −ℓi ≤ 1 ⇒ Condition du préfix
i2
◮ Raisonnement par récurrence et par construction
◮ On a montré comment trouver c1
◮ Récurrence : si on a trouvé {ci }n−1
i=1 , on peut trouver cn , avec n ≤ M
◮ Combien de feuilles on a éliminé au pas n − 1 ?
◮ Pour le mot de code ci on a éliminé 2ℓmax −ℓi feuilles ; en total :
n−1
X n−1
X
2ℓmax −ℓi = 2ℓmax 2−ℓi (1)
i=1 i=1
M
X
< 2ℓmax 2−ℓi ≤ 2ℓmax (2)
i=1

◮ On peut donc ajouter cn en remontant d’une des feuilles residuelles


jusqu’au niveau ℓn
30/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Inégalité de Kraft

◮ Un code est défini par l’ensemble des longueurs


{ℓ1 , . . . , ℓM }
◮ De l’ensemble des longueurs on construit un arbre
◮ De l’arbre on construit le code

31/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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

32/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Entropie d’une variable binaire


Exemple
p = P{X = 0} q =P{X = 1} = 1 − p
H(X ) = −p log(p) − (1 − p) log(1 − p)
1

0.9

0.8

0.7

0.6
H(X)

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1
P{X=0}
Institut Mines-Telecom Codage de source et compression
33/121 15.05.14
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Distribution à entropie maximum


On peut montrer que la distribution qui maximise l’entropie d’une v.a.
discrete à M valeurs est le vecteur p∗ = [p1∗ p2∗ . . . pM

] tel que
pi∗ = M1 ∀i ∈ {1, 2, . . . , M}
Problème de maximisation avec contrainte :
M
X M
X
1
p∗ = arg max pi log pi = 1
p pi
i=1 i=1

M M
!
X X ∂J ∗
J(p) = − pi log pi + λ pi − 1 (p ) = 0
∂pi
i=1 i=1
 
∂J 1
=− + log pi∗ +λ pi∗ = λ − log e = cnste
∂pi ln 2

34/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Entropie conjointe

◮ Considerons un couple de v.a. X et Y


◮ Distribution de probabilité conjointe
pi,j = P{X = xi , Y = yj }
◮ Entropie conjointe : information moyenne des couples
X
H(X , Y ) = − pi,j log pi,j
i,j

◮ Formalement, il n’y pas de différence entre l’entropie d’un


couple et l’entropie d’une variable Z avec les mêmes
probabilités (independemment des valeurs)

35/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Entropie conditionnelle

◮ Considerons un couple de v.a. X et Y


◮ Soit pj = P{Y = yj }
◮ Entropie conditionnelle :
X
H(X |Y ) = pj H(X |Y = yj )
j

◮ On montre facilement que :

H(X , Y ) =H(Y ) + H(X |Y )


H(X ) + H(Y |X )

36/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Propriétés de l’entropie

H(X ) >0
H(X , Y ) =H(Y ) + H(X |Y )
H(X ) + H(Y |X )
H(X , Y ) ≤H(X ) + H(Y ) avec égalité ⇔ indépendence
H(X |Y ) ≤H(X ) avec égalité ⇔ indépendence
H(X ) ≤ log2 M avec égalité ⇔ X ∼ U

37/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Code optimal
◮ On relâche la condition ℓi entier
◮ Minimisation avec contrainte :
X X
ℓ∗ = arg min pi ℓi soumis à 2−ℓi = 1

i i

38/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Code optimal
◮ On relâche la condition ℓi entier
◮ Minimisation avec contrainte :
X X
ℓ∗ = arg min pi ℓi soumis à 2−ℓi = 1

i i

!
X X ∂J
−ℓi
= pi − (λ ln 2)2−ℓi = 0

J(ℓ) = pi ℓi + λ 2 −1
∂ℓi
i i
X X
−ℓ∗
pi = (λ ln 2) 2 i 1 = λ ln 2
i i

2−ℓi = pi ℓ∗i = − log2 pi


X
L∗ = −pi log2 pi = H(X )
i

38/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Thèoreme de Shannon sur le codage de


source

Si on introduit à nouveau la condition ℓi ∈ N, on peut montrer


que :
◮ Thèoreme de Shannon

L∗ ≥ H(X )

avec égalité si et seulement si:

∀i ∈ {1, 2, . . . M}, ∃ℓi ∈ N | pi = 2−ℓi

39/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage entropique

Théorème de Shannon:
Taux de codage code optimale ≥ Entropie de la source
du coup le nom Codage Entropique.
◮ La relation devient une identité stricte si les probabilités
sont dyadiques (puissances négatives de deux)
◮ La relation est pratiquement une identité quand il y a un
nombre important de symboles dans l’alphabet.

40/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage entropique

◮ En consequence du Théorème de Shannon, on peut


facilement montrer que :

H(X ) ≤ L∗ < H(X ) + 1 (3)


l m
◮ Il suffit de prendre ℓk = log2 p1k
◮ Il est facile de montrer que l’inégalité de Kraft est satisfaite
◮ Il est aussi facile de prouver l’inégalité (3)

41/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage entropique

◮ Théorème de Shannon :

H(X ) ≤ L∗ < H(X ) + 1

◮ L’entropie est une excellente approximation du taux de


codage optimale
◮ Dans la suite on sera souvent amenés à considerer
L∗ = H(X )

42/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Exemple : Compression d’un texte français


Entropie de la source 3.999 bpS
Technique Code à longueur variable
Taux de codage (L) ≥ 3.999 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

43/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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.


44/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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%
45/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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%
46/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage 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
1 1 1
H = 0.4 · log2 + 0.2 · log2 + 2 · 0.15 · log2
0.4 0.2 0.15
1
+ 2 · 0.05 · log2
0.05

= 2.2464 bits/symbole
47/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Exemple : Compression d’un texte français


Technique Huffman
Entropie de la source 3.999 bpS
Taux de codage (L) 4.041 bpS
Rapport de compression 1.238
20 11

18 10

9
16

8
14

7
12

Codeword length
6
% Freq

10
5
8
4

6
3

4
2

2 1

0 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 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

Distribution des lettres dans un texte Longueur des mots de code dans le
français code d’Huffman

48/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage de Huffman

Comment améliorer les performances ?

◮ Le bloc des premiers K symboles du processus aléatoire Xi est


appellé X K
P
◮ H(X K ) ≤ i H(Xi ) avec égalité si et seulement si les variables
de X K sont independentes
◮ Codage par blocs : on essaie de reduire la longueur du code
mesurée en bits par symbole

49/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage de Huffman
Codage par blocs

H(X K )
◮ Hypothèse : la suite K est convergente
◮ Cela est vrai p.e. pour un processus stationnaire
◮ Longueur moyenne du code optimum :

H(X K ) ≤L∗ < H(X K ) + 1


H(X K ) L∗ H(X K ) 1
≤ = L∗S < +
K K K K
H(X K )
lim L∗S = lim = H(X )
K K K
L∗S → H(X ) ≤ H(X )

◮ H(X ) est appellé taux entropique

50/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage de Huffman

Codage par blocs

◮ Codage par blocs :

L∗S → H(X ) ≤ 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
◮ Le codage par blocs est avantageux même pour v.a.i.i.d. :
cela élimine le bit supplémentaire des distributions
non-dyadiques

51/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage de Huffman

Codage par blocs

◮ Codage par contextes : l’entropie d’un symbole donnés


ses K − 1 voisins est typiquement largement inférieure à
H(X )
◮ On peut donc imaginer de coder Xk |X k −1 dont l’entropie
est inférieure ou égale à H(X )
◮ On peut montrer que, pour un processus stationnaire,

lim H(Xk |X k −1 ) = H(X )


k

52/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Exemple : Compression d’un texte français


K=1 Entropie des lettres 3.999 bpB 3.999 bpS
K=2 Entropie des digrams 7.440 bpB 3.720 bpS
K=3 Entropie des trigrams 9.452 bpB 3.151 bpS
bpB : bits par bloc ; bpS : bits par symbole, bits par lettre
A
B
C 3
D
E
F
G
H
I
2.5
Les trigrams les plus communs :
J
K
L
2 ait ent les
M
N
O 1.5
1.59% 1.25% 0.94%
P
Q
R
lle des ant
1
S
T
U
0.78% 0.72% 0.70%
V
W
X
0.5
que our ien
Y
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
53/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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

54/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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

54/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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
L ≤ H(X K ) + 2
LS = L/K
HK
lim LS = lim = H(X )
K →∞ K →∞ K

◮ Faible complexité de codage/décodage (opérations


arithmétiques, dont le nom)
55/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 : ACFD

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

56/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 : ACFD

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

56/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 : ACFD

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

56/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 : ACFD

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

56/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 : ACFD

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

56/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

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 : ACFD

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

56/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage arithmétique

◮ 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é)

57/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage par contextes


◮ Estimation de P(X K ): souvent le prochain symbole ne
dépende que de peu de voisins.
◮ Idée : souvent il suffit connaître un voisinage limité du
symbole courant (contexte)
K
X
K
H(X ) = H(Xi |X i−1 )
i=1

◮ En théorie, le context est tout le passé : X i−1


◮ Le contexte peut être fait par les quelques lettres
précédentes ou les quelques pixels autour du pixel courant
◮ Si on a M possibles contextes, c’est comme si on avait M
codeurs arithmétiques, et on passait de l’un à l’autre
58/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage par contextes : Image N/B


Soient X et Y deux pixels voisins.

X X
Y N B Y N B
N 0.15 0.05 N 0.75 0.25
1 15
B 0.05 0.75 B 16 16
Probabilités conjointes Probabilités condition-
de X et Y nelles de X donné Y

H(X) H(X,Y)/2 H(X|Y) HE AE CB AE


0.722 0.577 0.432 1 0.722 0.432
HE: Huffman Encoder, One Symbol
AE: Arithmetic Encoder
CB-AE: Context-Based AE
59/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage arithmétique : conclusions

Avantages

◮ Permet d’implémenter le codage de longue suites de


symboles avec une complexité linéaire
◮ Codage par blocs : statistiques d’ordre supérieure et
distribution dyadiques
◮ Codage par contexte : simple modélisation des statistiques
d’ordre supérieure
◮ Adaptivité : sources non-stationnaires

60/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Codage sans pertes Principes
Quantification Huffman et codage arithmétique
Codage par transformée

Codage arithmétique : conclusions

Inconvénients

◮ Implémentation parfois compliquée


◮ Choix des contextes
◮ Adaptivité : il faut assez de données pour une estimation
robuste
◮ Besoin d’initialisation

61/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Plan

Introduction au codage de source et à la compression

Codage sans pertes

Quantification
Principes
Quantification scalaire prédictive
Quantification avec contrainte entropique

Codage par transformée

62/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Définitions

Q : x ∈ R → y ∈ C = {xb1 , xb2 , . . . xbL } ⊂ R

◮ C : Dictionnaire, c’est un sous-ensemble discret de R


◮ xbi : niveau de quantification, niveau de restitution,
codeword, mot de code
◮ e = x − Q(x) : Bruit de quantification

◮ Θi = x : Q(x) = xbi : Régions de décision
Un quantificateur scalaire (QS) est complètement défini par ses
régions et ses niveaux

63/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Définitions : Quantification scalaire (QS)

Q : x ∈ R → y ∈ C = {xb1 , xb2 , . . . xbL } ⊂ R

xb7

xb6

xb5
t0 t1 t2 t3 t4
t5 t6 t7 t8

xb4

xb3

xb2
xb1

64/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple 1
x(n)

0.5

−0.5

−1

0 5 10 15 20 25 30

65/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple 1
x(n)

0.5

−0.5

−1

0 5 10 15 20 25 30

65/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple 1
x(n)
y(n)=Q[x(n)]
1

0.5

−0.5

−1

0 5 10 15 20 25 30

65/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple 1
y(n)=Q[x(n)]
e(n)=x(n)−y(n)
1

0.5

−0.5

−1

0 5 10 15 20 25 30

65/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple 2
x(n)
y(n)=Q[x(n)]
1

0.5

−0.5

−1

0 5 10 15 20 25 30

66/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple 2
y(n)=Q[x(n)]
e(n)=x(n)−y(n)
1

0.5

−0.5

−1

0 5 10 15 20 25 30

66/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Définitions : Quantificateur régulier

Typiquement on considère un QS régulier :


1) Θi = (t i−1 , t i ), avec t ℓ ∈ R̄
2) xbi ∈ Θi

t0 t i−1 ti tL

xbi

Θi

67/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantificateur régulier

Dans la suite on considérera uniquement des quantificateurs


réguliers
◮ Pour un quantificateur régulier :

t 0 < xb1 < t 1 < xb2 < t 2 < . . . < xbL < t L

◮ Si le signal d’entrée est non-limité, t 0 = −∞ et t L = +∞


◮ Les t i sont appelés seuils de décision
◮ On définit ∆i la longueur de Θi
◮ Les ensembles T = {t i } et C = {xbi } définissent
complètement un QS régulier

68/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification comme codage/décodage

x(n) i(n) xb (n)


E D

Θi C

◮ Ce que le codeur envoie c’est les i(n)


◮ Le “décodage” associe à i(n) le mot de code xbi(n)
◮ Souvent (avec abus de langage) on appel quantification
l’application x → i et quantification inverse le décodage
i → xbi

69/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Débit d’un QS

◮ Le débit d’un QS est le nombre de bit nécessaire pour


représenter les indices i(n)
◮ Par définition, R = log2 L
◮ Cela correspond à un codeur à longueur fixe et à un
nombre de niveaux que soit une puissance entière de 2
◮ On verra dans le cours de codage sans pertes qu’il est
souvent possible de réduire ce coût de codage

70/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Distorsion

◮ On définit la distorsion ponctuelle comme l’erreur


quadratique :
2
d[x(n), xb(n)] = |e(n)|2 = x(n) − xb(n)

◮ Si on considère tout le signal x(·) de durée N, on utilise


comme distorsion l’erreur quadratique moyenne :
N−1
1 X
D= d[x(n), xb(n)]
N
n=0

71/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Distorsion : cas aléatoire

◮ Souvent on utilise des modèles aléatoires centrés pour les


signaux. Dans ce cas, l’EQM associé à la QS du
processus aléatoire X est :
n o n o
D = E |X (n) − Q(X (n))|2 = E |E(n)|2

◮ La distorsion est donc la puissance du processus aléatoire


E(n) = X (n) − Q(X (n))
◮ 2
On indiquera la distorsion d’un QS comme σQ

72/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Courbe débit/distorsion d’un QS

◮ Souvent on caractérise un QS par rapport au


nombre de niveaux L
◮ Le débit croit avec L : R = log2 L
◮ Pour tout les cas d’intérêt, la distorsion décroit
avec L, mais la relation explicite entre D et L
est plus difficile à déterminer
◮ En général, un QS est donc caractérisé par une courbe
paramétrique R(L), D(L)
◮ Il est intéressant de trouver la relation explicite entre D et R :
c’est la courbe débit/distorsion D = D(R)

73/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Courbes RD
◮ Courbe D(R) pour une v.a. uniforme :
D = σX2 2−2R
◮ Courbe D(R) pour une v.a. non uniforme et q.u. en haute
résolution :
D = kX σX2 2−2R
◮ Courbe D(R) pour une v.a. non uniforme et q.n.u. en haute
résolution :
D = cX σX2 2−2R
◮ cX est une constante qui dépend de la distribution de X
(facteur de forme)
◮ cX = 1√ dans le cas uniforme
◮ cX = 23 π dans le cas gaussien
◮ À faible resolution, il existe un algorithme qui produit un
74/121 QNUInstitut
15.05.14 localement
Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Débit de codage

2 possibilités pour coder les niveaux de quantification


◮ codes de longueur fixe
b bits par niveau avec log2 (L) ≤ b < log2 (L) + 1
◮ codes de longueur variable
bi bits pour coder x̂i P
entropie : H(x) = − Li=1 pi log2 (pi ) avec pi = P(x = x̂i )
P
longueur moyenne : b = Li=1 bi pi ≥ H(x)
code d’Huffman : b < H(x) + 1
⇒ plus performant

75/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Image Originale, 24 bpp

76/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 21 bpp PSNR 47.19 dB TC 1.143

77/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 18 bpp PSNR 42.38 dB TC 1.333

78/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 15 bpp PSNR 36.97 dB TC 1.600

79/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 12 bpp PSNR 31.40 dB TC 2.000

80/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 9 bpp PSNR 29.26 dB TC 2.667

81/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 6 bpp PSNR 27.83 dB TC 4.000

82/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification scalaire : exemple sur image


couleurs
Débit 3 bpp PSNR 25.75 dB TC 8.000

83/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Codage prédictive

Principes

◮ La seule quantification est peu efficace pour la


compression
◮ Modèle soujacent trop simple : échantillons indépendants
et tous également importants
◮ Idée : exploiter la corrélation entre échantillons par une
prédiction
◮ Réduction de la variance

84/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Schéma de codage

Schéma simplifié

◮ L’échantillon fk dépend des échantillon précédents (voisins)


◮ Si on connaît les voisins de fk , on les utilise pour le prédire
◮ Si on fait un bonne prédiction, bfk ≈ fk
fk ek ek
e efk
Q

bfk bfk

◮ Comment on fait la prédiction ?


◮ Qu’est-ce qu’on gagne ?

85/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Gain de prédiction

Erreur sur la prédiction = erreur sur le signal :

ek + bfk − (ek + bfk ) = fk − efk


ek − ek = e
ǫk = e

Gain de codage :

σf2 σf2 σe2


SNRp = 10 log10 = 10 log 10 2 + 10 log 10 2 = GP + GQ
ǭ2 σe ǭ

La prédiction doit produire un signal d’erreur dont la variance


est inférieure à la variance du signal d’origine

86/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Exemple

fk ∼ N (0, σ 2 ) E [fk fm ] = σ 2 ρ|k −m|


f̂k = fk −1 ρ : GP > 0 ?

ek = fk − fk −1 v.a. Gaussienne centrée


h i
σe2 = E (fk − fk −1 )2 = 2σ 2 − 2σ 2 ρ
σf2 σ2
GP = 10 log10 = 10 log10
σe2 2(1 − ρ)σ 2
1
GP > 0 ⇔ ρ >
2
87/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Schéma de codage
replacements
Schéma MICD (DPCM) complet
Encodeur :
fk ek ek
e
Q
ek
e
bfk efk
P
bfk

Décodeur :
ek
e efk

bfk efk
P
88/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Schéma de codage
Choix du prédicteur
Généralement on considère des prédicteurs linéaires : simples
et optimaux dans le cas Gaussien
Cas des images :
X
bfn,m = hi,j efn−i,m−j
(i,j)∈S

S : support causal demi-plan asymétrique


typiquement, S = {(0, 1), (1, 0), (1, 1)}

Représentation équivalente :
bfk = hT f(k ) f(k ) = {efn−i,m−j : (i, j) ∈ S}

h2 h3
89/121 15.05.14 Institut Mines-Telecom h 1 fk Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Schéma de codage
Choix du prédicteur : moindres carrés
Trouver le vecteur (filtre linéaire) h qui minimise :
h i
σe2 = E (fk − hT f(k ) )2

en faisant l’hypothèse que efn,m ≃ fn,m

90/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Schéma de codage
Choix du prédicteur : moindres carrés
Trouver le vecteur (filtre linéaire) h qui minimise :
h i
σe2 = E (fk − hT f(k ) )2

en faisant l’hypothèse que efn,m ≃ fn,m


h T
i
σe2 = E fk2 + hT f(k ) f(k ) h − 2ht fk f(k ) = σf2 + ht Rf h − 2ht c
T
Rf = E[f(k ) f(k ) ] c = E[fk f(k ) ]
∂σe2
= Rh − c
h
∂σe2
= 0 ⇔ h = R−1 c
h
90/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Méthodes prédictives : exemple

100

Prédicteur :
50 1 1
f̂n,m = fn−1,m + fn,m−1
2 2
0

σf2 = 2902.70
−50

σe2 = 84.71
−100
GP = 15.35dB

91/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Conclusions

Méthode simple de mise en œuvre


mais performances limitées en codage d’images

◮ introduit une causalité non naturelle en 2D


◮ code les pixels séparément
Très efficace pour exploiter la redondance spatiale de la vidéo

92/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification et codage

◮ Quantificateur optimal : doit-il être changé en vue du


codage sans perte ?
◮ Quelles sont les performances d’un système simple
comme un quantificateur uniforme suivi d’un codage
entropique ?

93/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification et codage
Formulation du problème

◮ On represente le quantificateur avec un q.u. dont le pas


est δ précédé d’une non transformation non linéaire, dont
la caracteristique est f (x)
◮ Il s’agit de minimiser la puissance de l’erreur de
quantification : Z
2 δ pX (x)
σQ = dx
12 f ′2 (x)
◮ sous contrainte sur l’entropie : H(X̂ ) ≤ b
◮ On peut montrer que en hypothèse d’haute résolution f ′
doit être constant

94/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
QS prédictive
Quantification
Quantification avec contrainte entropique
Codage par transformée

Quantification et codage

On peut montrer que, en hypothèse d’haute résolution :


◮ Pour un niveau de distortion (EQM) fixé, l’entropie
minimum des symboles du quantificateur est obtenue avec
un quantificateur uniforme
◮ Pour une entropie des symboles donnée, la distortion
minimum est obtenue avec un quantificateur uniforme
◮ Un q.u. suivi d’un codeur entropique a un gain de 2.81 dB
sur un codeur de Lloyd-Max dans le cas de sources
Gaussienne i.i.d.
◮ La courbe RD est toujours dans la forme D ∝ 2−2R

95/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Plan

Introduction au codage de source et à la compression

Codage sans pertes

Quantification

Codage par transformée


Principes
Allocation des ressources
Exemples

96/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Principes de la transformée linéaire

◮ Transformation linéaire : changement de base


◮ Représentation alternative du signal
◮ Séparation des données entre importants et pas importants
(concentration de l’energie)
◮ Déterminer les informations importantes pour notre
perception
◮ Allocation des ressources entre données importantes et
peu importantes
◮ Mise en évidence des caractéristiques
◮ Réduire la corrélation

97/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Transformée linéaire

Paradigme du codage par transformée


y0 yb0
Q0

y1 yb1
x y Q1 b
y b
x
T T −1

yM−1 ybM−1
QM−1

On passe du vecteur x à y = T f : on veut un vecteur plus


“facile” à quantifier : peu de coefficients “importants”, beaucoup
de coefficients “insignifiants”

98/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Transformations unitaires
T unitaire ⇒ T −1 = T H
avantages :

1. inversion immédiate
2. conservation de la norme : kYk = kXk
⇒ Distorsion sur Y = distorsion sur X :

h i h i h i
b 2 b H b b H H b
E kY − Yk = E (Y − Y) (Y − Y) = E (X − X) T T (X − X)
h i
b 2
= E kX − Xk
Propriété fondamentale pour décider l’allocation des ressource
dans le domaine transformée
99/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Principes du codage par sous-bandes

◮ Analyse temps-fréquence du signal


◮ Implantation par banc de filtres
◮ Échantillonnage critique
◮ Équivalence avec la transformée linéaire

100/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Codage en sous-bandes
y0 yb0
H0 ↓M Q0 ↑M F0

y1 yb1
H1 ↓M Q1 ↑M F1
x b
x
...
... ... ...
yM−1 ybM−1
HM−1 ↓M QM−1 ↑M FM−1

M−1
X
yk (m) = hk (ℓ)x(mM − ℓ) y =T x
ℓ=0
x = Py RP : PT = I

101/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Codage en sous-bandes
Filtres d’analyses et de synthèse

◮ Déterminer les filtres en sorte que la condition de RP soit


respectée est difficile
◮ Solution simple : bancs de filtres modulée

hk (n) = dk (n)h(n) fk (n) = dk (n)f (n)


r h
2 π i
dk (n) = cos (2k + 1)(2n + 1 + N − M)
M h 4M
π i
h(n) = f (n) = sin (2n + 1)
4M
◮ Choix de N et M : compromis entre résolution en
fréquence et en temps

102/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Codage par transformée


Exemple
Couple de v.a. fortement corrélées

x2 ∆2

(
1
∆1 ∆2
si (x1 , x2 ) ∈ S
fX1 ,X2 (x1 , x2 ) =
∆1 0 si (x1 , x2 ) ∈
/S
x1 ∆1 ≫ ∆2
∆1 ∆1
S X1 ∼ X2 ∼ U[− √ , √ ]
2 2 2 2

103/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Codage par transformée


Transformée : rotation de 45 degrés
Après transformation : v.a. indépendantes

(
1
∆1 ∆2
si (y1 , y2 ) ∈ S
y2 fY1 ,Y2 (y1 , y2 ) =
0 si (y1 , y2 ) ∈
/S
∆1 ∆2
∆1 Y1 ∼ U[− , ]
∆2 2 2
y1 ∆2 ∆2
Y2 ∼ U[− , ]
2 2

104/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Codage par transformée


Performances RD de la quantification après transformée
2σ 2 Q.U. de X1,X2
Q.U. de Y1,Y2
Distorsion

σ2

σ2
2

σ2
4

0 0.5 1 1.5 2 2.5 3 3.5 4


Débit − bits

105/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Allocation des ressource


◮ Composants de y = T x interprétées comme réalisations de M
processus aléatoires stationnaires de variance σk2
◮ Cas de transformée linéaire unitaire : T est une matrice carrée
et la distorsion est la même dans le 2 domaines
h i h i
D = E kX − Xk b 2 = E kY − Ykb 2
"M−1 # M−1
X X h i
=E b 2
(Yk − Yk ) = E (Yk − Ybk )2
k =0 k =0
M−1
X
= Dk
k =0

◮ On connaît la relation entre Dk et le débit de quantification bk


(hypothèse HR) :
Dk = ck σk2 2−2bk
106/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Allocation des ressource


Définition du problème
◮ Allocation optimale : minimiser D sous contrainte de débit
M−1
X M−1
X
min D(b) = ck σk2 2−2bk soumis à bk ≤ B
k =0 k =0
◮ Technique de Lagrange. Minimiser le critère :
M−1 M−1
!
X X
J(b, λ) = ck σk2 2−2bk + λ bk − B
k =0 k =0
◮ Solution (formule de Huang-Schulteiss) :
" #
c σ 2
B 1 k
bk∗ = + log k
2
M 2 cGM σGM

107/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Allocation des ressources


Interprétation du résultat

◮ Les ressources sont reparties uniformément (b̄ = B/M) avec


une correction qui dépend des variances
◮ Valeur de la distorsion des composantes :
2
cGM σGM
Dk∗ = ck σk2 2−2bk =cσk2 2−2b̄ 2−2b̄

2
= cGM σGM
ck σk2
M−1
X
DT = Dk∗ 2
=McGM σGM 2−2b̄
k =0

◮ Données Gaussiennes : cGM = ck = cN et donc


 2 
1 σ
bk∗ = b̄ + log 2k Dk∗ = cN σGM
2
2−2b̄
2 σGM
2
DT = McN σGM 2−2b̄
108/121 15.05.14 Institut Mines-Telecom Codage de source et compression
Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Gain de codage

◮ Soit X un vecteur aléatoire de M données d’entrée (son,


image...)
◮ Hypothèse : les composantes de X sont i.d., p.e. Gaussiennes
N (0, σX2 )
◮ Sans transformée, le mieux qu’on puisse faire est quantification
et allocation optimale des ressources (PCM). La distorsion est :

DPCM = McN σX2 2−2b̄

109/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Gain de codage

◮ Le gain de codage d’une transformée T est défini comme


le rapport entre la distorsion qu’on aurait sans transformée,
et la distorsion qu’on peut atteindre avec la transformée :

DPCM σ2 σ2
GT = = 2X = AM
2
DT σGM σGM

◮ La transformée doit rendre les variances des composantes


du vecteur Y les plus inégales possible
◮ La moyenne géométrique d’un ensemble de nombres
positifs est toujours inférieur ou égal à la moyenne
arithmétique

110/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Allocation des ressources

Algorithmes pratiques
La formule de Huang-Schulteiss
◮ Peut donner des valeurs négatifs
◮ Peut donner des valeurs fractionnaires
Donc on utilise des algorithmes sous-optimales
◮ Algorithme de Huang-Schulteiss modifié
◮ Algorithme greedy

111/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Allocation des ressources

Algorithme de Huang-Schulteiss modifié

1. On calcule bk∗ avec H.-S.


2. Si certaines bk∗ sont négatifs, on répète l’algorithme en
enlevant les σk2 concernée ; ces variables seront codées
avec zéro bitses variables seront codées avec zéro bits
3. Le pas précédent est répété jusqu’à quand il n’y a plus de
valeurs négatifs
4. Les valeurs trouvé sont arrondis à l’entier inférieur
5. Le débit résiduel est alloué aux coefficients avec l’erreur
maximum

112/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Algorithme greedy

1. Initialisation
◮ bk = 0 ∀k ∈ {0, 1, . . . M − 1}.
◮ Dk = σk2 ∀k ∈ {0, 1, . . . M − 1}.
P
2. Tant que k bk ≤ B
◮ ℓ = arg maxk Dk
◮ bℓ ← bℓ + 1
◮ Dℓ ← Dℓ /4

113/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Exemples de compression d’image

◮ Compression par TCD + Quantification + Codage Huffman


(JPEG)
◮ Compression par transformée en ondelette (banc de
filtres) + Quantification + Codage arithmetique + Allocation
optimale (JPEG2000)

114/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

JPEG
Comparaison JPEG / JPEG2000
Image Originale, 24 bpp

115/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Comparaison JPEG / JPEG2000

Débit: 1bpp

116/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Comparaison JPEG / JPEG2000

Débit: 0.75bpp

117/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Comparaison JPEG / JPEG2000

Débit: 0.5bpp

118/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Comparaison JPEG / JPEG2000

Débit: 0.3bpp

119/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Comparaison JPEG / JPEG2000

Débit: 0.2bpp

120/121 15.05.14 Institut Mines-Telecom Codage de source et compression


Introduction au codage de source et à la compression
Principes
Codage sans pertes
Allocation des ressources
Quantification
Exemples
Codage par transformée

Comparaison JPEG / JPEG2000

Débit: 0.2bpp pour JPEG, 0.1 pour JPEG2000

121/121 15.05.14 Institut Mines-Telecom Codage de source et compression

Vous aimerez peut-être aussi