Académique Documents
Professionnel Documents
Culture Documents
Codage Entropique
Pr Amina SERIR
Master 1 ST
1
Chapitre 2: Codage entropique
II.1 Rappels sur la théorie de l’information.
Entropie et mesure de l’information
II.2 Codage de Huffman – Shannon-Fano
II.3 Le codage arithmétique
II.4 La version adaptative de Huffman
II.5 Le codage LZW
II.6 Critères d’évaluation
2
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Introduction
La compression sans pertes est basée sur les statistiques des données
Mots de code courts pour les symboles probables.
Définitions:
3
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
4
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Choix du code
5
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Choix du code
6
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
7
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
VLC: Conditions de décodabilité
On n’utilise pas de séparateurs entre les mots de
codes. Donc, il faut que le code soit décodable.
Exemple 1:
Symboles A B C
Codes 0 01 11
AABAAC: 00010011 décodage: AAA??
Exemple 2:
Symboles A B C
Codes 0 10 11
AABAAC:00100011 décodage:AABAAC
8
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Le code préfixe
Un code préfixe (ou code instantané) est un code ayant
la particularité de ne posséder aucun mot ayant pour préfixe
un autre mot. Autrement dit, aucun mot fini d'un code préfixe
ne peut se prolonger pour donner un autre mot.
C'est une propriété souvent recherchée pour les codes à
longueur variable, afin de pouvoir les décoder lorsque
plusieurs mots sont concaténés les uns aux autres sans qu'il
soit nécessaire d'utiliser des séparateurs (les séparateurs
rendent préfixes des codes non préfixes). Ce sont des codes
non ambigus.
9
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Inégalité de Kraft:
10
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Inégalité de Kraft
11
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Information et Entropie
12
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Entropie d’une variable binaire
13
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Distribution à entropie maximale
14
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Entropie conjointe
15
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Entropie conditionnelle
16
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Propriétés de l’entropie
17
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Code optimal
18
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Théorème de Shannon sur le codage de source
19
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Codage Entropique
20
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Codage Entropique
21
II.1 Codage sans pertes - Rappels
sur la théorie de l’information
Codage Entropique
22
II.2 Codages de Shannon-Fano et
Huffman
Codage Shannon-Fano
Les principaux pionniers de la compression de données furent sans doute C.
Shannon et R. M. Fano. Ils démontrèrent que l’on peut coder un message en
utilisant la probabilité d’apparition d’un symbole ainsi que la base 2. Le principe
est de recoder des informations sur moins de 8 bits.
23
II.2 Codages de Shannon-Fano et
Huffman
Codage Shannon-Fano
L’algorithme de compression Shannon-Fano
Mot à coder T S I A Q U E
Fréquence 3 2 2 1 1 1 1
26
II.2 Codages de Shannon-Fano et
Huffman
Codage Shannon-Fano
Autre exemple : Codons ABCDE avec
Symbole A B C D E
fréquence 15 7 6 6 5
27
II.2 Codages de Shannon-Fano et
Huffman
Codage Shannon-Fano
Autre exemple : Codons ABCDE
Symbole fréquence code Total bits
A 15 1.38 00 30
B 7 2.48 01 14
C 6 2.70 10 12
D 6 2.70 110 18
E 5 2.96 111 15 28
II.2 Codages de Shannon-Fano et
Huffman
Codage Shannon-Fano
Remarque :
Cette méthode ne permet pas d’approcher efficacement
l’entropie. On lui préfère l’algorithme de Huffman.
29
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
D.A. Huffman a inventé en 1952, un algorithme de compression capable, à
partir d'une analyse statistique des données, d'associer à celles les plus
souvent présentes les codes les plus courts. Inversement, les données les
plus rares se verront attribuer les codes les plus longs.
30
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
Principe
Pour la compression Huffman, le codage des signes est une
fonction inverse de leur probabilité d'apparition.
Il faut connaître préalablement la statistique d'apparition des
signes. En pratique, on fait un tableau donnant le nombre
d'apparitions de chaque signe, qui s'appelle nœud dans
l'information à transmettre. On construit un arbre binaire en
partant du bas. Les deux caractères les moins fréquents de la
liste, qui s'appellent "enfants", sont reliés par leurs "Parents" en
faisant la somme des comptes des fréquences. Les symboles
prennent alors les valeurs 0 et 1 et sont retirées de la liste. Le
processus est répété sur l'ensemble des caractères jusqu'à ce
qu'il ne reste plus qu'un seul élément parent formant la racine
de l'arbre. Pour décoder, il suffit de descendre dans l'arbre.
31
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
Exemple
Symboles en fonction de leurs apparitions.
A=15 B= 7 C= 6 D= 6 E= 5
On prend les deux signes de poids le plus faible: ici D
et E de poids respectif 6 et 5. Ces deux nœuds sont
retirés de la liste D et affectaient à la branche 0 du
nœud parent, et E est affecté à la branche 1. Leur
somme est égal 11. On prend ensuite les deux
nœuds les plus faibles: B et C. Ils sont reliés par un
nouveau nœud parent avec un point de 13.
32
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
Nœuds Parents
Nœuds Enfants
33
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
La prochaine étape, les deux nœuds de poids le plus faible sont les
nœuds partant de B/C et de D/E. Ils sont reliés par un nouveau
nœud parent de poids 24. Dans la liste des nœuds libres les enfants
n'y sont plus.
34
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
A = 0 B = 100 C = 101
D = 110 E = 111 35
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
36
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
37
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
En résumé la méthode de Huffman peut-être traduite de la manière
suivante :
1. Les symboles sont triés et classés en fonction de leur fréquence dans
un ordre décroissant.
2. A partir des deux symboles présentant la fréquence la plus faible, un
nœud est créé. Il lui est affecté un poids égal à la somme des
fréquences des deux symboles.
3. Le nœud créé remplace désormais les deux symboles dans la suite du
processus. A ces derniers sont affectés respectivement les chiffres
binaires 0 pour le plus fréquent et 1 pour le plus rare.
4. La même démarche est reprise en considérant les deux symboles ou
nœuds de poids le plus faible. Elle est renouvelée tant qu’il ne reste
plus d’un nœud libre.
38
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
Autre exemple
39
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
40
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
41
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
42
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
43
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
44
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
45
II.2 Codages de Shannon-Fano et
Huffman
Codage de Huffman
Inconvénients
46
II.3 Codage arithmétique
47
II.3 Codage arithmétique
• La compression arithmétique, comme Huffman est une
compression statistique, mais elle utilise des réels à la place
des bits.
• On utilise les partitions d’un intervalle [a b] (initialement [0
1]), la taille de chaque sous-intervalle est inversement
proportionnelle à la fréquence du symbole lui correspondant.
• Chaque symbole à compresser réduit l’intervalle courant [a b]
au sous-intervalle [a’ b’] lui correspondant. Cet intervalle [a’
b’] est lui-même partitionné etc…
• On obtient ainsi finalement un intervalle [A B], très petit ; les
données stockées sont alors la longueur N de la séquence à
compresser et la borne inférieure A de l’intervalle final.
48
II.3 Codage arithmétique
• Algorithme
A=15 B= 7 C= 6 D= 6 E= 5
51
II.3 Codage arithmétique
•Valeurs fréquence Probabilité intervalle
A 15 0.384315 [0, 0.384315]
B 7 0.179487 [0.384315,
0.563802]
C 6 0.153846 [0.563802,
0.717648]
D 6 0.153846 [0.717648,
0.871494]
E 5 0.128506 [0.871494, 1]
54
II.3 Codage arithmétique
Décodage
• Initialiser le compteur 0 et charger le modèle établi par le
codeur.
Tant que le compteur est inférieur au nombre des symboles
codés
Chercher dans l’ensemble des sous-intervalles du modèle,
le sous-intervalle dans lequel se trouve le message codé
CODE.
Chercher le symbole correspondant à ce sous intervalle.
Message[Compteur]=symbole
Code = (Code-limitebasse du sous intervalle))/(limite haute –
limite basse)
Incrémenter le compteur
Fin tant que.
55
II.3 Codage arithmétique
Décodage
La valeur transmise est : Code= 0.183092
Cette valeur appartient à [0, 0.384315]
Cette intervalle correspond à la valeur A
Code=(0.183092-0)/0.384315=0.476411
Code appartient à [0.384315,0.563802]
Cette intervalle correspond à la valeur B
Code=(0.476411-0.384315)/ 0.179487=0.513106
Code appartient à [0.384315,0.563802]
Cette intervalle correspond à la valeur B
Code=(0.513106-0.384315)/ 0.179487=0.717550
Code appartient à ?
Cette intervalle correspond à la valeur ?
56
II.3 Codage arithmétique
Exemple
57
II.3 Codage arithmétique
Exemple
58
II.3 Codage arithmétique
Exemple
59
II.3 Codage arithmétique
Exemple
60
II.3 Codage arithmétique
Exemple
61
II.3 Codage arithmétique
Exemple
62
II.3 Codage arithmétique
Exemple
63
II.4 Les versions adaptatives-
Huffman adaptatif
Problématique:
L’encodage de Huffman nécessite une connaissance a priori de la
probabilité d’apparition des symboles.
Il faut alors effectuer une étude statistique des données pour
générer un code.
Ensuite effectuer l’encodage de Huffman.
Procédure d’encodage se fait en deux étapes. Ce qui n’est pas
toujours pratique.
Solution triviale
Commencer par l’hypothèse d’équiprobabilité.
Pour le kème symbole construire un nouveau code de Huffman basé
sur les symboles précédents.
Complexité calculatoire élevée
64
II.4 Les versions adaptatives-
Huffman adaptatif
Solution élaborée: Soit l’alphabet A={a1,…, an}
1. Fixer un code initial pour l’alphabet.
2. Arbre formée d’une seule feuille NYT(not yet transmitted).
3. Parcourir les éléments de la source.
A. Si l’élément NYT
i. Envoyer NYT
ii. Mise à jour de l’arbre
B. Sinon
i. Envoyer le mot code de l’élément
ii. Mise à jour de l’arbre
4.Condition d’arrêt: parcours de toute la source.
Note 1: Code dépend de la fréquence des éléments.
Note 2: Encodeur et décodeur doivent être synchros.
65
II.4 Les versions adaptatives-
Huffman adaptatif
Alphabet de n éléments:
Un arbre contient 2n-1 noeuds (racines+feuilles)
Les attributs d’un noeuds sont: symboles, gauche=0, droite=1,
parent, frère(a et b), feuille F, poids=4, identificateur id=50, symbole
a.
68
II.4 Huffman adaptatif
Encodage (1)
Message: a a r d v a k
Code:
69
II.4 Huffman adaptatif
Encodage (2)
Message: a a r d v a k
Code: 00000
70
II.4 Huffman adaptatif
Encodage (3)
Message: a a r d v a k
Code: 000001
71
II.4 Huffman adaptatif
Encodage (4)
Message: a a r d v a k
Code: 000001010001
72
II.4 Huffman adaptatif
Encodage (5)
Message: a a r d v a k
Code: 000001010001
73
II.4 Huffman adaptatif
Encodage (6)
Message: a a r d v a k
Code: 0000010100010000011
74
II.4 Huffman adaptatif
Encodage (7)
Message: a a r d v a k
Code: 000001010001000001100010101
75
II.4 Huffman adaptatif
Encodage (7)
Message: a a r d v a k
Code: 000001010001000001100010101
76
II.4 Huffman adaptatif
Encodage (9)
Message: a a r d v a k
Code: 000001010001000001100010101
77
II.4 Huffman adaptatif
Encodage (10)
Message: a a r d v a k
Code: 000001010001000001100010101
78
II.4 Huffman adaptatif
Encodage (11)
Message: a a r d v a k
Code: 0000010100010000011000101010
79
II.4 Huffman adaptatif
Encodage (12)
Message: a a r d v a k
Code: 0000010100010000011000101010
80
II.4 Huffman adaptatif
Encodage (12)
Message: a a r d v a k
Code: 0000010100010000011000101010110001010
81
II.4 Huffman adaptatif
Encodage (13)
Message: a a r d v a k
Code: 0000010100010000011000101010110001010
82
II.4 Huffman adaptatif
Encodage (14)
Message: a a r d v a k
Code: 0000010100010000011000101010110001010
83
II.4 Huffman adaptatif
Décodage (1)
Message décodé:
Code: 0000010100010000011000101010110001010
84
II.4 Huffman adaptatif
Décodage (2)
Message décodé: a
Code: 0000010100010000011000101010110001010
85
II.4 Huffman adaptatif
Décodage (3)
Message décodé: a a
Code: 0000010100010000011000101010110001010
86
II.4 Huffman adaptatif
Décodage (4)
Message décodé: a a
Code: 0000010100010000011000101010110001010
87
II.4 Huffman adaptatif
Décodage (5)
Message décodé: a a r
Code: 0000010100010000011000101010110001010
88
II.4 Huffman adaptatif
Décodage (6)
Message décodé: a a r
Code: 0000010100010000011000101010110001010
89
II.4 Huffman adaptatif
Décodage (7)
Message décodé: a a r d
Code: 0000010100010000011000101010110001010
90
II.4 Huffman adaptatif
Décodage (7)
Message décodé: a a r d
Code: 0000010100010000011000101010110001010
91
II.4 Huffman adaptatif
Décodage (8)
Message décodé: a a r d v
Code: 0000010100010000011000101010110001010
92
II.4 Huffman adaptatif
Décodage (9)
Message décodé: a a r d v
Code: 0000010100010000011000101010110001010
93
II.4 Huffman adaptatif
Décodage (10)
Message décodé: a a r d v
Code: 0000010100010000011000101010110001010
94
II.4 Huffman adaptatif
Décodage (11)
Message décodé: a a r d v
Code: 0000010100010000011000101010110001010
95
II.4 Huffman adaptatif
Décodage (12)
Message décodé: a a r d v
Code: 0000010100010000011000101010110001010
96
II.4 Huffman adaptatif
Décodage (13)
Message décodé: a a r d v
Code: 0000010100010000011000101010110001010
97
II.4 Huffman adaptatif
Décodage (14)
Message décodé: a a r d v a
Code: 0000010100010000011000101010110001010
98
II.4 Huffman adaptatif
Décodage (15)
Message décodé: a a r d v a
Code: 0000010100010000011000101010110001010
99
II.4 Huffman adaptatif
Décodage (16)
Message décodé: a a r d v a k
Code: 0000010100010000011000101010110001010
100
II.4 Huffman adaptatif
Décodage (17)
Message décodé: a a r d v a k
Code: 0000010100010000011000101010110001010
101
II.4 Huffman adaptatif
Décodage (18)
Message décodé: a a r d v a k
Code: 0000010100010000011000101010110001010
102
II.5 Le codage Lempel Ziv Welch
(LZW)
Cet algorithme est un des plus répandu. On le trouve dans les formats
GIF et TIFF. Il constitue même une partie de la compression V42bis
des modems. En 1977, Abraham Lempel et Jakob Ziv ont créé le
premier élément de la famille des compresseurs LZ. Ce compresseur,
nommé LZ77, est utilisé dans les programmes d'archivages de donnés
comme PKZIP, ARJ ou bien LHA. Il est spécialisé dans les données
textuelles alors que LZ78 est plus efficace pour des donnés binaires
comme les images.
En 1984, alors qu'il travaillait chez Unisys, Terry Welch modifia LZ78
pour l'implanter dans des contrôleurs de disques. Le résultat fut
l'algorithme LZW.
103
II.5 Le codage Lempel Ziv Welch
(LZW)
LZW est capable de travailler avec n'importe quel type de données. Il
est rapide en compression et décompression et ne nécessite pas
d'opération à virgule flottante. De par le fait qu'il encode au niveau
bit et non au niveau de l'octet, il ne se soucie pas du processeur, et
de la manière dont il code les informations.
105
II.5 Le codage Lempel Ziv Welch
(LZW)
Algorithme de compression LZW:
w = NULL;
Tant que ( lecture d’un caractère k )
{ if (wk existe dans le dictionnaire
w = wk; // concaténation de w et k (wk)
else
ajouter wk au dictionnaire;
retourner le code de w;
w = k;
}
106
II.5 Le codage Lempel Ziv Welch
(LZW) exemple w
NULL
k
^
Sortie Indexe Symbole
^ W ^ 256 ^W
W E W 257 WE
E D E 258 ED
D ^ D 259 D^
^ W
Chaîne ^W E 256 260 ^WE
"^WED^WE^WEE^WEB^WET E ^ E 261 E^
". ^ W
Exemple 2 à coder ^W E
108
II.5 Le codage Lempel Ziv Welch
(LZW) exemple
w k Sortie Indexe Symbole
^ ^
^ W W 256 ^W
La chaine à décoder est :
"^WED<256>E<260><2 W E E 257 WE
61><257>B<260>T". E D D 258 ED
D <256> ^W 259 D^
109
II.6 Critères d’évaluation
Rapport (taux de compression):
Nbitsentree
T
Nbitssortie
Débit de codage:
Nbitssortie
R [bits / ech]
Nbechantillons
Image de taille MxN Vidéo, son
Nbitssortie Nbitssortie
R [bpp] R [bps]
MN T 110
II.6 Critères d’évaluation
111