codage d'huffman, lempel-ziv, arithm tique - site … › files › 2013 › 05 ›...

114
Principes Codage optimale Autres Techniques Quantification avec contrainte entropique Principes du codage sans perte Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement du Signal et des Images TELECOM ParisTech 11 Janvier 2013 M. Cagnazzo Codage sans perte 1/55

Upload: others

Post on 04-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Principes du codage sans perteCodage d’Huffman, Lempel-Ziv, arithmétique

Marco Cagnazzo

Département Traitement du Signal et des ImagesTELECOM ParisTech

11 Janvier 2013

M. Cagnazzo Codage sans perte 1/55

Page 2: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Plan

1 Principes

2 Codage optimaleHuffmanCodage arithmétiqueCodage adaptive et basé contexte

3 Autres TechniquesLempel-ZivRun LengthJBIG

4 Quantification avec contrainte entropique

M. Cagnazzo Codage sans perte 2/55

Page 3: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Plan

1 Principes

2 Codage optimaleHuffmanCodage arithmétiqueCodage adaptive et basé contexte

3 Autres TechniquesLempel-ZivRun LengthJBIG

4 Quantification avec contrainte entropique

M. Cagnazzo Codage sans perte 3/55

Page 4: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Introduction

La compression sans perte est basée sur les statistiques desdonné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 deluminancealphabet français dans le cas d’un texte

Code : application entre X et {0, 1}∗, l’ensemble deschaînes de bits de longueur finie.

Codes à longueur fixeCodes à longueur variable

M. Cagnazzo Codage sans perte 4/55

Page 5: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

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 bitspour coder chaque symbole

Dans le cas d’un texte, M = 26, il nous faut ⌈log M⌉ = 5bpS (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éfixeLes symboles ne sont pas équiprobables

M. Cagnazzo Codage sans perte 5/55

Page 6: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Exemple : Compression d’un texte français

Technique Code à longueur fixeNombre de symboles 26Taux de codage (L) 5 bpSRapport de compression 1

Chaque lettre est représentée sur 5 bits

Aucune compression est obtenue

M. Cagnazzo Codage sans perte 6/55

Page 7: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

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é aveclongueurs {ℓ1, . . . , ℓM} si et seulment si :

i

2−ℓi ≤ 1

Les codes décodables n’ont pas des meilleuresperformances par rapport aux codes instantanés

M. Cagnazzo Codage sans perte 7/55

Page 8: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Inégalité de Kraft : Principes de la demonstration

Condition du préfix ⇒∑

i 2−ℓi ≤ 1

Construction de l’arbre binaire de profondeur ℓmax

Association entre mots de code et nœudsPour chaque feuille, on remonte vers la racine : combiende mots de codes peut-on rencontrer ?

Zéro ou un (condition du prefix)

Numéro feuilles = A ≥ B = Numéro feuille avec exactementun mot de code entre les ancêtres

A = 2ℓmax

B =∑M

i=1 Numéro feuilles qui descendent de l’i-ème motde code =

∑Mi=1 2ℓmax−ℓi

M. Cagnazzo Codage sans perte 8/55

Page 9: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Inégalité de Kraft : Principes de la demonstration

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 remonterau 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-arbreassocié

Par consequence, si il reste des feuilles, on pourra trouverun nouveau mot de code

M. Cagnazzo Codage sans perte 9/55

Page 10: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Inégalité de Kraft : Principes de la demonstration∑

i 2−ℓi ≤ 1 ⇒ Condition du préfixRaisonnement par récurrence et par construction

On a montré comment trouver c1

Récurrence : si on a trouvé {ci}n−1i=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∑

i=1

2ℓmax−ℓi= 2ℓmax

n−1∑

i=1

2−ℓi (1)

< 2ℓmax

M∑

i=1

2−ℓi ≤ 2ℓmax (2)

On peut donc ajouter cn en remontant d’une des feuilles residuellesjusqu’au niveau ℓn

M. Cagnazzo Codage sans perte 10/55

Page 11: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

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

M. Cagnazzo Codage sans perte 11/55

Page 12: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Information et entropie

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

Longueur moyenne du code : L =∑

piℓi

L’information associé à xi est I(xi) = − log pi

I(xi) ≥ 0Si pi = 1, I = 0Si deux symboles sont indépendants, I(xi , xj) = I(xi) + I(xj)

Entropie de la source : information moyenne des symboles

H(X ) = −∑

i

pi log pi

M. Cagnazzo Codage sans perte 12/55

Page 13: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

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)

0 0.2 0.4 0.6 0.8 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

P{X=0}

H(X

)

M. Cagnazzo Codage sans perte 13/55

Page 14: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Distribution à entropie maximum

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

1 p∗

2 . . . p∗

M ] tel quep∗

i = 1M ∀i ∈ {1, 2, . . . ,M}

Problème de maximisation avec contrainte :

p∗ = arg maxp

M∑

i=1

pi log1pi

M∑

i=1

pi = 1

M. Cagnazzo Codage sans perte 14/55

Page 15: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Distribution à entropie maximum

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

1 p∗

2 . . . p∗

M ] tel quep∗

i = 1M ∀i ∈ {1, 2, . . . ,M}

Problème de maximisation avec contrainte :

p∗ = arg maxp

M∑

i=1

pi log1pi

M∑

i=1

pi = 1

J(p) = −M∑

i=1

pi log pi + λ

(

M∑

i=1

pi − 1

)

∂J∂pi

(p∗) = 0

∂J∂pi

= −

(

1ln 2

+ log p∗

i

)

+ λ p∗

i = λ− log e = cnste

M. Cagnazzo Codage sans perte 14/55

Page 16: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Entropie conjointe

Considerons un couple de v.a. X et Y

Distribution de probabilité conjointepi ,j = P{X = xi ,Y = yj}

Entropie conjointe : information moyenne des couples

H(X ,Y ) = −∑

i ,j

pi ,j log pi ,j

Formalement, il n’y pas de différence entre l’entropie d’uncouple et l’entropie d’une variable Z avec les mêmesprobabilités (independemment des valeurs)

M. Cagnazzo Codage sans perte 15/55

Page 17: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Entropie conditionnelle

Considerons un couple de v.a. X et Y

Soit pj = P{Y = yj}

Entropie conditionnelle :

H(X |Y ) =∑

j

pjH(X |Y = yj)

On montre facilement que :

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

H(X ) + H(Y |X )

M. Cagnazzo Codage sans perte 16/55

Page 18: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

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

M. Cagnazzo Codage sans perte 17/55

Page 19: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Code optimal

On relâche la condition ℓi entier

Minimisation avec contrainte :

ℓ∗ = arg minℓ

i

piℓi soumis à∑

i

2−ℓi = 1

M. Cagnazzo Codage sans perte 18/55

Page 20: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Code optimal

On relâche la condition ℓi entier

Minimisation avec contrainte :

ℓ∗ = arg minℓ

i

piℓi soumis à∑

i

2−ℓi = 1

J(ℓ) =∑

i

piℓi + λ

(

i

2−ℓi − 1

)

∂J∂ℓi

= pi − (λ ln 2)2−ℓ∗

i = 0

i

pi = (λ ln 2)∑

i

2−ℓ∗

i 1 = λ ln 2

2−ℓ∗

i = pi ℓ∗i = − log2 pi

L∗ =∑

i

−pi log2 pi = H(X)

M. Cagnazzo Codage sans perte 18/55

Page 21: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Thèoreme de Shannon sur le codage de source

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

Thèoreme de Shannon

L∗ ≥ H(X )

avec égalité si et seulement si:

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

M. Cagnazzo Codage sans perte 19/55

Page 22: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

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éssont dyadiques (puissances négatives de deux)

La relation est pratiquement une identité quand il y a unnombre important de symboles dans l’alphabet.

M. Cagnazzo Codage sans perte 20/55

Page 23: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Codage entropique

En consequence du Théorème de Shannon, on peutfacilement montrer que :

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

Il suffit de prendre ℓk =⌈

log21pk

Il est facile de montrer que l’inégalité de Kraft est satisfaite

Il est aussi facile de prouver l’inégalité (3)

M. Cagnazzo Codage sans perte 21/55

Page 24: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Codage entropique

Théorème de Shannon :

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

L’entropie est une excellente approximation du taux decodage optimale

Dans la suite on sera souvent amenés à considererL∗ = H(X )

M. Cagnazzo Codage sans perte 22/55

Page 25: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Exemple : Compression d’un texte français

Entropie de la source 3.999 bpSTechnique Code à longueur variableTaux de codage (L) ≥ 3.999 bpSRapport de compression ≤ 1.25

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 Z0

2

4

6

8

10

12

14

16

18

20

% F

req

Distribution deslettres dans untexte français

M. Cagnazzo Codage sans perte 23/55

Page 26: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Plan

1 Principes

2 Codage optimaleHuffmanCodage arithmétiqueCodage adaptive et basé contexte

3 Autres TechniquesLempel-ZivRun LengthJBIG

4 Quantification avec contrainte entropique

M. Cagnazzo Codage sans perte 24/55

Page 27: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de Huffman

Huffman a découvert comment construire le code optimumpour n’importe quelle source.

Exemple :

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

6 symboles, 3 bits par symboles sans codage.

M. Cagnazzo Codage sans perte 25/55

Page 28: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de Huffman

1

25%

F5%

E5%

D15%

C15%

B20%

A40%

F5%

E5%

D15%

C15%

B20%

A40%

0

1

10%

0

1

10%

0

M. Cagnazzo Codage sans perte 26/55

Page 29: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de Huffman

1

F5%

D15%

C15%

B20%

A40%

E5% 1

10%

0

1

0

0

1

25%

35%

1

0

60%

100%

0

M. Cagnazzo Codage sans perte 27/55

Page 30: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de Huffman

Symbole Probabilité CodeA 0.4 0B 0.2 100C 0.15 101D 0.15 110E 0.05 1110F 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

H = 0.4 · log21

0.4+ 0.2 · log2

10.2

+ 2 · 0.15 · log21

0.15

+ 2 · 0.05 · log21

0.05∼= 2.2464 bits/symbole

M. Cagnazzo Codage sans perte 28/55

Page 31: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Exemple : Compression d’un texte français

Technique HuffmanEntropie de la source 3.999 bpSTaux de codage (L) 4.041 bpSRapport de compression 1.238

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 Z0

2

4

6

8

10

12

14

16

18

20

% F

req

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 Z0

1

2

3

4

5

6

7

8

9

10

11

Cod

ewor

d le

ngth

Distribution des lettres dans un textefrançais

Longueur des mots de code dans lecode d’Huffman

M. Cagnazzo Codage sans perte 29/55

Page 32: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de HuffmanComment améliorer les performances ?

Le bloc des premiers K symboles du processus aléatoire Xi estappellé XK

H(XK ) ≤∑

i H(Xi ) avec égalité si et seulement si les variablesde XK sont independentes

Codage par blocs : on essaie de reduire la longueur du codemesurée en bits par symbole

M. Cagnazzo Codage sans perte 30/55

Page 33: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de HuffmanCodage par blocs

Hypothèse : la suite H(X K )K est convergente

Cela est vrai p.e. pour un processus stationnaire

Longueur moyenne du code optimum :

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

H(XK )

K≤L∗

K= L∗

S <H(XK )

K+

1K

limK

L∗

S = limK

H(XK )

K= H(X)

L∗

S → H(X) ≤ H(X)

H(X) est appellé taux entropique

M. Cagnazzo Codage sans perte 31/55

Page 34: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de HuffmanCodage par blocs

Codage par blocs :

L∗

S → H(X ) ≤ H(X )

Les meilleures performances sont obtenues quand oncode l’entier message de K symboles comme un symboled’un alphabet de taille NK

Le codage par blocs est avantageux même pour v.a.i.i.d. :cela élimine le bit supplémentaire des distributionsnon-dyadiques

M. Cagnazzo Codage sans perte 32/55

Page 35: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage de HuffmanCodage par blocs

Codage par contextes : l’entropie d’un symbole donnésses K − 1 voisins est typiquement largement inférieure àH(X )

On peut donc imaginer de coder Xk |X k−1 dont l’entropieest inférieure ou égale à H(X )

On peut montrer que, pour un processus stationnaire,

limk

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

M. Cagnazzo Codage sans perte 33/55

Page 36: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Exemple : Compression d’un texte français

K=1 Entropie des lettres 3.999 bpB 3.999 bpSK=2 Entropie des digrams 7.440 bpB 3.720 bpSK=3 Entropie des trigrams 9.452 bpB 3.151 bpS

bpB : bits par bloc ; bpS : bits par symbole, bits par lettre

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

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0

0.5

1

1.5

2

2.5

3

Distribution des digrams dans untexte français

Les trigrams les plus communs :ait ent les1.59% 1.25% 0.94%lle des ant0.78% 0.72% 0.70%que our ien0.67% 0.63% 0.60%

M. Cagnazzo Codage sans perte 34/55

Page 37: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Limites du code de Huffman

De l’exemple précédent, on comprend qu’on voudrait allerjusqu’à 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 blocLe dictionnaire devrait comprendre tout les possiblesmessages de K symboles:

Tous les possibles textesToutes les possibles images. . .

M. Cagnazzo Codage sans perte 35/55

Page 38: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Limites du code de Huffman

De l’exemple précédent, on comprend qu’on voudrait allerjusqu’à 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 blocLe dictionnaire devrait comprendre tout les possiblesmessages de K symboles:

Tous les possibles textesToutes les possibles images. . .

Le codage arithmétique résout le problème

M. Cagnazzo Codage sans perte 35/55

Page 39: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique

Le codage arithmétique permets de faire un codage parblocs ou par contextes avec complexité linéaireIdée : ne pas chercher le code pour n’importe chaîne de nsymboles, mais uniquement pour la chaîne à coderLe codeur arithmétique n’est pas optimal, maisasymptotiquement optimal

L ≤ H(X K ) + 2

LS = L/K

limK→∞

LS = limK→∞

HK

K= H(X )

Faible complexité de codage/décodage (opérationsarithmétiques, dont le nom)

M. Cagnazzo Codage sans perte 36/55

Page 40: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique: exemple

Symbole A B C D E FProbabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ACFD

0.4 0.6 0.750 10.9

A0.95

B C D FE

M. Cagnazzo Codage sans perte 37/55

Page 41: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique: exemple

Symbole A B C D E FProbabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ACFD

0.95

B C D FEA0.4 0.6 0.750 10.9

M. Cagnazzo Codage sans perte 37/55

Page 42: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique: exemple

Symbole A B C D E FProbabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ACFD

0.95

B C D FE0.9

A

0.30 0.24 0.4

0.4 0.6 0.750 1

M. Cagnazzo Codage sans perte 37/55

Page 43: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique: exemple

Symbole A B C D E FProbabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ACFD

0.95

B C D FE10.9

A

0.3

0.297

0 0.24

0.3

0.4

0.24

0.4 0.6 0.750

M. Cagnazzo Codage sans perte 37/55

Page 44: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique: exemple

Symbole A B C D E FProbabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ACFD

0.95

B C D FE0 10.9

A

0.3

0.297

0

0.297 0.29925 0.2997

0.24

0.3

0.3

0.4

0.24

0.4 0.6 0.75

M. Cagnazzo Codage sans perte 37/55

Page 45: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique: exemple

Symbole A B C D E FProbabilité 0.4 0.2 0.15 0.15 0.05 0.05

Séquence à coder : ACFD

0.95

B C D FE0 10.9

A

0.3

0.297

0

0.297 0.29925 0.2997

0.24

0.3

0.3

0.4

0.24

0.4 0.6 0.75

M. Cagnazzo Codage sans perte 37/55

Page 46: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique

Pour chaque nouveau symbole, 2 multiplications et 2addition

Codage de la suite de symboles : centre de l’intervalsélectionné, avec précision inférieure à la demi-taille del’interval.

Problème : estimation de P(X K ), en principe avecK =longueur totale du message

Exemple précédent : Symboles supposés indépendants,P(X K ) =

∏Ki=1 p(xi)

Apprentissage des statistiques au cours du codage(adaptivité)

M. Cagnazzo Codage sans perte 38/55

Page 47: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage par contextes

Estimation de P(X K ): souvent le prochain symbole nedépende que de peu de voisins.

Idée : souvent il suffit connaître un voisinage limité dusymbole courant (contexte)

H(X K ) =

K∑

i=1

H(Xi |Xi−1)

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

Le contexte peut être fait par les quelques lettresprécédentes ou les quelques pixels autour du pixel courant

Si on a M possibles contextes, c’est comme si on avait Mcodeurs arithmétiques, et si on passe de l’un à l’autre

M. Cagnazzo Codage sans perte 39/55

Page 48: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage par contextes : Image N/B

Soient X et Y deux pixels voisins.

XY N BN 0.15 0.05B 0.05 0.75

XY N BN 0.75 0.25B 1

161516

Probabilités conjointesde X et Y

Probabilités condition-nelles de X donné Y

H(X) H(X,Y)/2 H(X|Y) HE AE CB AE0.722 0.577 0.432 1 0.722 0.432

HE: Huffman Encoder, One SymbolAE: Arithmetic EncoderCB-AE: Context-Based AE

M. Cagnazzo Codage sans perte 40/55

Page 49: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique : conclusionsAvantages

Permet d’implémenter le codage de longue suites desymboles avec une complexité linéaire

Codage par blocs : statistiques d’ordre supérieure etdistribution dyadiques

Codage par contexte : simple modélisation des statistiquesd’ordre supérieure

Adaptivité : sources non-stationnaires

M. Cagnazzo Codage sans perte 41/55

Page 50: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

HuffmanCodage arithmétiqueCodage adaptive et basé contexte

Codage arithmétique : conclusionsInconvénients

Implémentation parfois compliquée

Choix des contextes

Adaptivité : il faut assez de données pour une estimationrobuste

Besoin d’initialisation

M. Cagnazzo Codage sans perte 42/55

Page 51: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Plan

1 Principes

2 Codage optimaleHuffmanCodage arithmétiqueCodage adaptive et basé contexte

3 Autres TechniquesLempel-ZivRun LengthJBIG

4 Quantification avec contrainte entropique

M. Cagnazzo Codage sans perte 43/55

Page 52: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire

Dictionnaire des suites de données communes construitau fur et à mesure

Capable de s’adapter à des signaux non-stationnaires

Pas besoin d’initialisation (codage universel)

À la base des algorithmes populaires de compression sansperte (zip, gzip, bzip, etc.)

M. Cagnazzo Codage sans perte 44/55

Page 53: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

4 5 6 7 8 9 A B C D E

0 1

0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0

0

1 00

1 2 3

M. Cagnazzo Codage sans perte 45/55

Page 54: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table

Input

Output

Present

7 8 9 A B C D E

0 1

0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

1 2 3 4 5 6

M. Cagnazzo Codage sans perte 45/55

Page 55: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

New

6 7 8 9 A B C D E

0 1

0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

1 2 3 4 5

M. Cagnazzo Codage sans perte 45/55

Page 56: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

Add

Input

Table

6 7 8 9 A B C D E

0 1

0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0 0

0

0

0

1 2 3 4 5

M. Cagnazzo Codage sans perte 45/55

Page 57: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Output

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0 0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 58: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Present

Table Output

Input

0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0 0 1 0 0

M. Cagnazzo Codage sans perte 45/55

Page 59: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Present

Table Output

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 60: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

New

Input

Table Output

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0 1

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 61: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table Output

Add

Input

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0 1

0

0

1

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 62: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Output

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0 1

0

0

1

2

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 63: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Present

Table Output

Input

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

1

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 64: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table Output

New

Input

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

1

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 65: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Add

Input

Table Output

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

1

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

0

1

0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 66: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Output

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

1

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

0

1

0

1

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 67: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

OutputTable

Present

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 68: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table

Input

Present

Output

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1

0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 69: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

New

Input

Table

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1

0 0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 70: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Add

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1

0 0

0

0

0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 71: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

Input

Table

Output

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1

0 0

2

0

0

0

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 72: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Prefix

Output

Input

Table

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0

0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 73: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Prefix

Input

Table Output

0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

1

2

1

0

1 2

0

0

0

0

0 1 0 0

M. Cagnazzo Codage sans perte 45/55

Page 74: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Present

Input

Table Output

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 75: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

OutputTable

Present

Input

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 76: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Present

OutputTable

Input

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0 0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 77: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table Output

Input

New

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0 0 0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 78: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Add

Table Output

Input

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0 0 0

0

0

0

0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 79: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table

Output

Output

Input

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

0 0 0

2

0

0

0

0

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 80: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table

Present

Input

Output

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 81: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

New

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

1

0

0

0

0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 82: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table Output

Input

Add

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

1

0

1

0

0

0

0

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 83: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

Input

Output

Table

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

1

0

1

0

0

0

0

0

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 84: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

Input

Prefix

Table

1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

1

0

1

0

0

0

0

0

0 1 0 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 85: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table Output

Prefix

Input

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

1

0

0

0

0

0

1

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 86: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Present

OutputTable

Input

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 87: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Present

Output

Input

Table

0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0

0 1 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 88: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

New

Input

Table Output

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 1

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 89: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Table Output

Add

Input

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 1

1

0

1

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 90: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Output

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 1

1

0

1

4

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 91: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

New

Input

Table

0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 0

1

0

1

4

0 1 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 92: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Output

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 0

1

0

1

4

1

0

0

4

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 93: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Input

Table Output

Prefix

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 0

1

0

1

4

1

0

0

4

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 94: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Codage avec dictionnaire: exemple

Output

Prefix

Input

Table

0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0

0

0

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

0

0 0

0

0

1

2

1

0

1 2

0

2

0

0

0

0

0

1

1 0 0

1

0

1

4 4

0

0 1 0 0 0 0 0

M. Cagnazzo Codage sans perte 45/55

Page 95: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

M. Cagnazzo Codage sans perte 46/55

Page 96: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

2 0x 0x

M. Cagnazzo Codage sans perte 46/55

Page 97: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0x

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

2 0x 0x

M. Cagnazzo Codage sans perte 46/55

Page 98: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0x

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

0xy 0x3

00xy

M. Cagnazzo Codage sans perte 46/55

Page 99: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

3 000y

00

00y

00y

M. Cagnazzo Codage sans perte 46/55

Page 100: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

00

00y

4 1z 000y0001z

M. Cagnazzo Codage sans perte 46/55

Page 101: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

00

00

4 1z

1

1z

0001z

M. Cagnazzo Codage sans perte 46/55

Page 102: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

00

00

00w

1

1z

0001z5

000100w

M. Cagnazzo Codage sans perte 46/55

Page 103: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

00

00

00w

1

1

5 000100w

000w

M. Cagnazzo Codage sans perte 46/55

Page 104: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

00

00

00w

1

1

5 000100w

000w

M. Cagnazzo Codage sans perte 46/55

Page 105: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Décodage avec dictionnaire: exemple

Table Input

OutputNew

0 1 2 3 4 5 6 7 8 9 A B C D E

0 1

20 1 2 02

00

00

000

1

1

2 0001000

00

M. Cagnazzo Codage sans perte 46/55

Page 106: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Run-Length Encoding (RLE)

Codage d’images B/N

Longues suites de zéros et uns

Idée : coder la longueur des suites au lieu des valeurs despixels

M. Cagnazzo Codage sans perte 47/55

Page 107: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Run-Length Encoding (RLE)

Code d’Huffmann : alphabet tropgrand

Code d’Huffmann sur les puissancesde 2

Chaque longueur est représentécomme somme de puissances de 2(représentation binaire)

Mode horizontale : longueur absolue

Mode verticale : différence parrapport à la ligne supérieure (si elleest ≤ 3)

Pass : noveau block

+1 −1HM

Pass

+3 −3 +2 −2

∆ = 0

Mode verticale : symboles et coded’Huffmann

M. Cagnazzo Codage sans perte 48/55

Page 108: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

Run-Length Encoding (RLE) : Exemple

5

29

41

38

24

24

23

4 10

23

18

19

6

4 7

29

HM 16+8+4+1 16+4+2+1 16+8VM 0 +1 -1HM 16+2 32+4+2 4+2 PASS 4 PASS 8+2VM +1 +3 -2 +3 HM 4+1

M. Cagnazzo Codage sans perte 49/55

Page 109: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

JBIG-1Joint Bi-level Image Experts Group

Standard ISO/IEC 11544 et recommandation ITU-T T.82

Codeur arithmétique basé contexte

codage progressive (scalable en résolution)

Template de 10 pixels, 2 formes et pixel variable

Template à 2 ligne : meilleure vitesse d’exécution mais ≈ 5% de perte en

compression

M. Cagnazzo Codage sans perte 50/55

Page 110: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Lempel-ZivRun LengthJBIG

JBIG-2Joint Bi-level Image Experts Group

Standard ISO/IEC 14492 et recommandation ITU-T T.88

Image segmentée en texte , halftones , et autre

Texte : Un dictionnaire de symbole est créé et codé

Halftone : l’image en niveau de gris originale estreconstruite et codée, avec un dictionnaire de halftonepatterns

Autre : Codage arithmétique basé contexte

Les fichiers PDF (version 1.4 et supérieure) peuventcontenir données codées un JBIG2

M. Cagnazzo Codage sans perte 51/55

Page 111: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Plan

1 Principes

2 Codage optimaleHuffmanCodage arithmétiqueCodage adaptive et basé contexte

3 Autres TechniquesLempel-ZivRun LengthJBIG

4 Quantification avec contrainte entropique

M. Cagnazzo Codage sans perte 52/55

Page 112: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Quantification et codage

Quantificateur optimal : doit-il être changé en vue ducodage sans perte ?

Quelles sont les performances d’un système simplecomme un quantificateur uniforme suivi d’un codageentropique ?

M. Cagnazzo Codage sans perte 53/55

Page 113: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Quantification et codageFormulation du problème

On represente le quantificateur avec un q.u. dont le pasest δ précédé d’une non transformation non linéaire, dontla caracteristique est f (x)

Il s’agit de minimiser la puissance de l’erreur dequantification :

σ2Q =

δ

12

pX (x)f ′2(x)

dx

sous contrainte sur l’entropie : H(X̂ ) ≤ b

On peut montrer que en hypothèse d’haute résolution f ′

doit être constant

M. Cagnazzo Codage sans perte 54/55

Page 114: Codage d'Huffman, Lempel-Ziv, arithm tique - Site … › files › 2013 › 05 › compression_03...Codage d’Huffman, Lempel-Ziv, arithmétique Marco Cagnazzo Département Traitement

PrincipesCodage optimale

Autres TechniquesQuantification avec contrainte entropique

Quantification et codage

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

Pour un niveau de distortion (EQM) fixé, l’entropieminimum des symboles du quantificateur est obtenue avecun quantificateur uniforme

Pour une entropie des symboles donnée, la distortionminimum est obtenue avec un quantificateur uniforme

Un q.u. suivi d’un codeur entropique a un gain de 2.81 dBsur un codeur de Lloyd-Max dans le cas de sourcesGaussienne i.i.d.

La courbe RD est toujours dans la forme D ∝ 2−2R

M. Cagnazzo Codage sans perte 55/55