Vous êtes sur la page 1sur 13

Chapitre 2.1.

Introduction

Codage de Source Dans une chaine de communication, le codeur permet de transformer source
par une suite de codes visant trois applications principales :

Sommaire
Information Codeur de Information
Source source Codée
2.1. Introduction
2.2. Propriétés d'une source d'information
2.3. Propriétés d'un code
Codage pour la compression : le codage consiste à réduire la taille du
2.3.1. Définition d'un code (exemple : ASCII et Morse)
message source en utilisant un code de compression.
2.3.2. Code non singulier ou régulier
Codage pour une bonne transmission : Dans un canal de communication,
2.3.3. Longueur d'un code : fixe et variable
la présence du bruit peut perturber la transmission du message. Dans ce cas,
2.3.4. Code non-ambigu
le codage appelé codage canal consiste à rajouter de la redondance au
2.3.5. Code préfixe
message pour s'assurer d'une bonne transmission. La redondance de la
2.3.6. Code instantané
transmission peut se faire en envoyant plusieurs fois le message sur le canal
2.3.7. Code à décodage unique
de communication.
2.3.8. Conditions de construction d'un bon code
Codage pour la protection de l'information : Ce type de codage consiste à
2.4. Construction d'un code instantané de longueur variable
rajouter un code de protection pour éviter de le décoder. Ce type de codage
2.4.1. Définition
est appelé Cryptographie. Un exemple de code de protection est celui utilisé
2.4.2. Longueur moyenne d'un code
dans la liaison WIFI des routeurs (Code AES).
2.4.3. Détermination de la longueur optimale du code : Théorème de Shannon
2.4.3.1. Longueur du code d’un symbole
Dans ce chapitre, on s'intéresse au codage source en explorant quelques
2.4.3.2. Longueur moyenne d'un code
techniques de compression de l'information source en utilisant un codage
2.4.4. Existence du code instantané : Théorème de Kraft-McMillan
approprié. Pour cela, on distingue deux types de source :
2.4.5. Construction d’un code instantané à l'aide d'un arbre
Source numérique comme exemple un fichier informatique ou une image
2.5. Méthodes de codage
numérique ;
2.5.1. Méthode de Shannon
2.5.2. Méthode de Schannon-Fano Source analogique comme par exemple la voix ou la musique. Dans ce cas,
2.5.3. Méthode de Huffman la source analogique est convertie en source analogique plus facile à
2.5.4. Comparaison des méthodes manipuler.
2.6. Conclusion
Une source renferme généralement de l'information redondante. L'objectif du
codage de source est de représenter l'information la plus petite possible comme
par exemple réduire la taille du fichier informatique pour le stockage ou pour
transmettre plus rapidement l'information dans le cas d'une chaîne de

Y. Chibani et H. Nemmour Page 1/26 Y. Chibani et H. Nemmour Page 2/26


communication numérique. Pour cela, on distingue deux types de codeurs de Deux situations extrêmes peuvent se présenter :
source : ( ) 1 : La source ne renferme pratiquement aucune
Codeurs avec pertes : ces codeurs permettent de réduire la taille du information. Le codage produira une forte compression de la source.
message de manière très importante. Cependant, ils présentent ( ) ( ) 0 : La source contient une faible redondance. Le
l'inconvénient de ne pas retrouver de manière exacte le message original. La codage produira une faible compression de la source.
compression est dite dans ce cas non réversible. Ces codeurs sont utilisés
dans certaines applications où il n'est pas nécessaire de reconstruire le Exemple 2.1 : Redondance de l'information contenue dans une image couleur.
message initial de manière exacte comme par exemple la musique (MP3), la On considère une source d'information qui délivre quatre couleurs avec les
vidéo (MPEG) ou l'image (JPEG). probabilités reportées dans le tableau suivant :
Codeurs sans pertes : ces codeurs assurent un taux de compression plus
faible mais le codage est réversible. Cette propriété est indispensable dans Symbole
certaines applications comme par exemple un fichier informatique
( ) 0.10 0.15 0.15 0.60
exécutable ou les compresseurs .zip.

Ce chapitre vise à présenter quelques méthodes de codage de l'information En considérant la base binaire, on calcule l'entropie de la source et l'entropie
d'une source stationnaire, discrète et sans mémoire pour la compresser. On maximale pouvant être délivrée par la source :
s'intéressera en particulier au codage de source sans pertes.
( ) ( ) ( ( ))
2.2. Propriétés d’une source d’information

Un bon codage de la source nécessite au préalable la mesure de la redondance ( ) (0.1 × (0.1) + 0.15 × (0.15) + 0.15 × (0.15)
contenue dans le message. Pour cela, on utilise l'entropie comme de la quantité +0.6 × (0.6))
d'information. Soit d'une source d'information considérée comme une vad
( ) = 1.5955
qui délivre des échantillons dont les valeurs sont prises dans un alphabet
= { , , … , }; est un symbole de l'alphabet pour = 1, … , avec ( )= ( )= (4)
étant le nombre de symboles.
( )=2
La redondance de l'information contenue dans la source est mesurée en
utilisant l'équation suivante : 1.5955
=1 20.2%
2
( ) Ce taux traduit qu'il y a 20% d'informations redondantes non utiles. Le rôle du
=1
( ) codeur est de pouvoir réduire ce taux pour ne garder que l'information utile.

( ) : Entropie de la source.
( ) : Entropie maximale de la source, ( )= ( ).
: Base du .
Y. Chibani et H. Nemmour Page 3/26 Y. Chibani et H. Nemmour Page 4/26
2.3. Propriétés d'un code
Symbole
2.3.1. Définition d’un code
Code 1 00 01 10 11 {00,01,10,11}
Un code est une règle permettant de mettre en correspondance chaque
symbole de la source à une chaine de caractères pouvant être binaires, chiffres, Code 2 0 1 01 10 {0,1,01,10}
alphanumériques ou tout autre code. Pour cela, on considère le schéma de
codeur de source : Un message composé des symboles de couleurs suivants =
peut être codé :
Information Source Information Codée Code 1 : = 00000101011010111111
Codeur de
= = Code 2 : = 001110101101010
source
={ , ,…, } ={ , ,…, }
D'une manière générale, une source d'information qui délivre des symboles
prenant ses valeurs dans l'alphabet = { , , … , } produit un mot-code

pour chaque symbole noté ( ) tel que :
est une vad associée au code.
est appelé variable mot-code qui prend ses valeurs dans l'alphabet des
= = ={ , ,…, } = ( ={ , ,…, }
mot-codes noté .
est appelé mot-code associé au symbole dont les valeurs sont prises ( ) est la fonction codage qui transforme le symbole de la source en un
dans un alphabet noté = {0,1, … , 1} tel que est la base de
mot-code = ( ) avec = 1, … , .
l'alphabet du code appelé alphabet -aire.
représente le nombre de mot-codes. Exemple 2.3 : Code Morse
Le code Morse est considéré comme un code ternaire qui permet de coder
En pratique, l'alphabet -aire peut prendre deux valeurs possibles : chaque symbole de l'alphabet Latin de à et chaque chiffre de 0 à 9 en une
=2 = {0,1} : la base de l'alphabet du code est dite binaire. Cette séquence de sons :
base est utilisée en communication numérique ou le stockage informatique. Aucun son : 0 (Silence)
=3 = {0,1,2} : la base de l'alphabet du code est dite ternaire. Cette Son court : 1
base est utilisée par exemple dans le code Morse Son long : 2

Exemple 2.2 : Codage de la couleur d'une image. Dans ce cas, l'alphabet du code est : = {0,1,2}. La figure suivante illustre le
Soit une image couleur composée de quatre couleurs, l'alphabet des symboles code inventé par Morse.
de la source est = { , , , }. En utilisant le code binaire, l'alphabet du code
est donc = {0,1}.

Dans le tableau suivant, deux codes différents sont reportés :

Y. Chibani et H. Nemmour Page 5/26 Y. Chibani et H. Nemmour Page 6/26


2.3.3. Longueur d'un code
Un code de longueur fixe est un code dont tous mot-codes ont la même
longueur (c.à.d le même nombre de bits). Un code de longueur variable est un
code dont chaque mot-code a sa propre longueur.

Exemple 2.6 : Taille en bits d'une image de 1000 pixels dont chaque pixel peut
délivrer l'un des quatre (4) symboles de couleur , , , en utilisant le code de
longueur fixe suivant :

Symbole
Dans ce code, chaque lettre (ou symbole) est représentée par une séquence de Code 00 01 10 11
points et de tirets : « S . » et « O _ ».
Par exemple, le message SOS est codé par : « . ».
La taille de l'image en bits est calculée en utilisant l'équation :
Exemple 2.4 : Code ASCII
= × ( )
Le code ASCII (American Standard Code for Information Interchange) permet
de coder chaque caractère alphanumérique et spécial en une séquence de 7
= 1000 × 2 = 2000
bits. Ce code était conçu pour la langue Anglaise. Par conséquent, il ne contient
pas les caractères accentués, ni de caractères spécifiques à une langue. C'est la
Au lieu de coder chaque symbole couleur par deux bits, une deuxième solution
raison pour laquelle le code ASCII a été étendu à 8 bits appelé désormais ASCII
consiste à tenir compte de la probabilité associée à chaque symbole.
étendu ou extended ASCII. La table du code ASCII à 8 bits est reportée dans la
série d'exercices n°2.
Exemple 2.7 : Taille en bits d'une image en tenant compte de la longueur de
chaque mot-code. Pour cela, on donne dans le tableau suivant le code pour
2.3.2. Code non singulier ou régulier
chaque symbole en tenant compte de la probabilité de chaque symbole.
Un code est dit non singulier lorsque chaque symbole de la source correspond
un seul et unique mot-code.
Symbole
Exemple 2.5 : Codes régulier et singulier de l'alphabet binaire. ( ) 1/2 1/4 1/8 1/8
Code 1 01 000 001
Symbole
Longueur 1 2 3 3
Code 1 0 1 11 10
Code 2 0 0 11 10 On constate que la longueur du mot-code est variable. Cette longueur dépend
de la densité de probabilité (ou d'apparition de chaque symbole).
Code 1 est régulier car chaque symbole a un seul mot-code. La taille en bits de l'image en tenant compte de la longueur de chaque symbole
Code 2 est singulier car deux symboles ont le même mot-code. se calcule en deux étapes :
Y. Chibani et H. Nemmour Page 7/26 Y. Chibani et H. Nemmour Page 8/26
Etape : Calcul du nombre de pixels pour chaque symbole de couleur : Soit le message codé = 1111, le décodage, se faisant de la gauche vers la
droite pour les deux codes, est le suivant :
1000 × = 500 pixels

1000 × = 250 pixels


Code 1 : = 1111 =
1000 × = 125 pixels

1000 × = 125 pixels


Code 2 : = 1111 =
Etape : Calcul de la taille de l'image en bits
500 × 1 + 250 × 2 + 125 × 3 + 125 × 3 = 1750 On constate que le Code 2 est non ambigu car il correspond à un seul message
source.
On constate que la taille en bits de l'image a été réduite sans perte
d'informations. Cette réduction peut être évaluée en calculant le taux de 2.3.5. Code préfixe
compression défini par : Un code est dit préfixe si et seulement si aucun mot-code n'est le début d'un
autre mot-code. En d'autres termes, il ne faut pas qu'un mot-code soit le début
è d'un autre mot-code.
=1

1750 Exemple 2.9 : Exemple de codes préfixe et non préfixe.


=1 = 12.5%
2000
Le codage des symboles avec des longueurs variables est donc préférable car il Symbole
permet d'économiser de l'espace ou de transmettre plus rapidement Code 1 00 10 11 010
l'information. On verra dans les prochaines sections la méthode de calcul de la
Code 2 1 00 10 01
longueur optimale d'un mot-code.

2.3.4. Code non ambigu On peut constater que le Code 2 est non préfixe. En effet, le code du symbole
Un code est dit non ambigu si chaque message codé doit correspondre un seul est le début du symbole .
et unique message source.
2.3.6. Code instantané
Exemple 2.8 : Décodage d'un message en utilisant deux codes différents. Un code est dit instantané lorsqu'un message contenant une séquence de mot-
codes peut être décodé mot-code par mot-code au fur et à mesure de leur
réception. En d'autres termes, il n'est pas nécessaire d'attendre la fin d'un
Symbole
message pour décoder un mot-code.
Code 1 1 00 11 10
Code 2 1 000 10 01

Y. Chibani et H. Nemmour Page 9/26 Y. Chibani et H. Nemmour Page 10/26


Exemple 2.10 : Exemple de codes instantané et non instantané. 2.3.8. Conditions de construction d'un bon code
Pour construire un bon code, deux conditions doivent être satisfaites :
Symbole code de longueur variable : chaque mot-code a sa propre longueur qui
dépend de la probabilité associée à chaque symbole de la source.
Code 1 00 10 11 01
code instantané : Cette condition implique que le code doit être préfixe, à
Code 2 1 000 10 01 décodage unique, non ambigu et régulier.

On peut constater que le Code 2 n'est pas instantané. Par exemple, la séquence Exemple 2.12 : Comparaison des codes.
d'un message codé = 1110 ne peut être décodé. Il faut attendre la réception
du deuxième symbole pour décoder le premier symbole. Cela est dû au fait que Symbole Propriété
le mot-code "1" est le début du mot-code "10".
Code 1 0 11 11 10 Ambigu
Cet exemple traduit qu'un code instantané doit être un code préfixe.
Code 2 0 110 01 10 Décodage non unique
2.3.7. Code décodage unique Code 3 0 10 110 111 Instantané, préfixe
Un code est dit à décodage unique ou déchiffrement unique si le décodage se
fait sans ambiguïté. Le décodage unique doit permettre de retrouver un seul Code 4 10 00 11 110 Décodage unique, non instantané
message source.
2.4. Construction d'un code instantané de longueur variable
Exemple 2.11 : Exemple de décodage unique.
2.4.1. Définition
Symbole Un code de longueur variable est dit code optimal lorsque la longueur moyenne
des mot-codes de la source est minimale. Cette définition traduit qu'il existe un
Code 1 00 10 11 01 lien entre la longueur d'un mot-code et la quantité d'information.
Code 2 1 10 11 00 On note :
: variable associée à la source d'information prenant ses valeurs dans
Code 3 1 000 10 01
l'alphabet = { , , … , }.
( ) est la probabilité des symboles prenant ses valeurs dans
Code 1 : Ce code est à décodage unique car il est préfixe (aucun mot-code
{ ( ), ( ), … , ( )}.
n'est le début d'un autre mot-code).
: variable associée à la source codée prenant ses valeurs dans l'alphabet
Code 2 : Ce code est à décodage non unique (Code ambigu).
= { , , … , } avec = {0,1, … , 1}, étant la base de
Code 3 : Code est à décodage unique mais pas instantané (non préfixe) car le
l'alphabet.
mot-code "1" est le préfixe du mot-code 10.
: variable associée à la longueur de la source codée prenant ses valeurs
= 1100100 = 1 10 01 00
dans l'alphabet = { , , … , } avec est la longueur du mot-code.

Note : Un code à décodage unique peut ne pas être instantané. Par contre, un
L'objectif de construction d'un code optimal est de chercher la longueur
code instantané est à décodage unique.
optimale pour chaque mot-code en tenant compte de sa probabilité ( ).

Y. Chibani et H. Nemmour Page 11/26 Y. Chibani et H. Nemmour Page 12/26


2.4.2. Longueur moyenne d'un code du mot-code est inversement proportionnelle au logarithme de sa probabilité
La longueur moyenne d'un code dépend de la quantité d'information contenue d'apparition, soit :
dans chaque symbole. Elle est donc liée à la probabilité d'apparition de chaque
symbole notée = ( = ). Chaque symbole de la source , = 1, … , , est 1
=
donc caractérisé par :

probabilit associ e au symbole ( )


mot code du symbole
longueur du mot code où définit la base du code.

La longueur moyenne d'un code, notée , est l'espérance mathématique Généralement, est réelle et génère une longueur non entière. Dans ce cas, il
appliquée sur la variable , soit : est possible de trouver une valeur entière de en la limitant entre deux bornes
inférieure et supérieure, soit :

= { }= < +1

( )
Exemple 2.13 : Soit une source une source qui délivre quatre couleurs de
probabilité et de longueur reportées dans le tableau suivant :
Deux cas peuvent se présenter :

Symbole
si = avec entier tel que 1 alors = = = .
0.125 0.3 0.325 0.25
1110 100 01 001 si ( ) + 1.

4 3 2 3
Exemple 2.14 : Soit une vad associée à la source délivrant quatre symboles
de l'alphabet = { , , , } avec les probabilités ( ) = {1/4, 1/5, 1/2, 1/
= 0.125 × 4 + 0.3 × 3 + 0.325 × 2 + 0.25 × 3 20}. Les longueurs pour chaque symbole sont donc calculés pour la base binaire
=2:
= 2.8
= =2 =2 =2 =2
2.4.3. Détermination de la longueur optimale du code Théorème de
Shannon = 2 = 2.32 2.32 3.32 3
2.4.3.1. Longueur d'un mot-code
La détermination de la longueur d'un mot-code repose sur l'utilisation de la = =2 =1 =1 =1
probabilité proposée par Shannon. Pour un symbole de la source, la longueur
= 2 = 4.32 4.32 5.32 =5

Y. Chibani et H. Nemmour Page 13/26 Y. Chibani et H. Nemmour Page 14/26


Symbole Exemple 2.15 : Calculer la longueur moyenne du code et la comparer à
l'entropie de la source de l'exemple 2.14.
1/4 1/5 1/2 1/20
2 2.32 1 4.32
1 1 1 1
2 3 1 5 = = ×2+ ×3+ ×1+ ×5
4 5 2 20

2.4.3.2. Longueur moyenne d'un code = 1.85


La longueur moyenne d'un mot-code s'obtient en multipliant chaque longueur
du mot-code par sa probabilité et en sommant sur = 1, … , : ( ) ( )

< +1 1 1 1 1 1 1 1 1
( ) × × × ×
4 4 5 5 2 2 20 20
avec ( ) ( ) = 1.675

( ( )+1
On constate que ( )< . Dans ce cas, le code n'est pas optimal. Son
( )
efficacité est égale à = = 90.5%.
( ) ( )+1 On peut définir également le taux de redondance de la source codée (après
codage) noté , soit :
( < ( )+1
( )
=1
La longueur moyenne du code est donc limitée par sa borne inférieure
correspondante à l'entropie de la source ( ) et sa borne supérieure
( ) + 1. =0 codage optimal
Dans ce cas, on définit l'efficacité d'un code par le rapport entre l'entropie de la
codage efficace
source et sa longueur moyenne notée :

( ) Exemple 2.16 : Calcul de la redondance avant et après codage de la source de


= l'exemple 2.14.

( ) 1.675
code inefficace =1 =1 = 16.25%
( ) 2
code efficace
=1 code optimal
( ) 1.675
=1 =1 = 9.46%
1.850

Y. Chibani et H. Nemmour Page 15/26 Y. Chibani et H. Nemmour Page 16/26


On constate que le codage a permis de réduire le taux de redondance de Un arbre est un graphe composé de nœuds reliés par des branches du sommet
l'information de la source de 16.25% à 9.46%. jusqu'à la base :
La racine de l'arbre est un nœud situé au sommet de l'arbre et la base de
2.4.4. Existence d'un code instantané Théorème de Kraft-McMillan l'arbre est un nœud terminal appelé feuille.
La construction d'un code instantané consiste tout d'abord à vérifier son Entre le nœud racine et le nœud feuille, il existe des nœuds intermédiaires
existence en utilisant le théorème de Kraft-McMillan. Ce théorème fournit une reliés à d'autres nœuds par des branches.
condition nécessaire et suffisante de l'existence d'un code instantané (donc à Un nœud intermédiaire au niveau a un parent au niveau 1 et génère au
décodage unique) exprimée en fonction de la longueur de mots du code. maximum nœuds appelés enfants au niveau + 1.
Soient { , , } les longueurs des mot-codes associées aux mots de codes Le nœud racine n'a pas de parent.
{ , , } pour coder une source dans un alphabet , alors le Un arbre est composé de plusieurs niveaux dont la profondeur est égale à la
théorème de Kraft-McMillan consiste à vérifier l'inégalité : longueur maximale d'un mot-code. La construction de l'arbre suit les étapes
suivantes :
o Niveau 0 : On génère un seul nœud appelé nœud racine.
1 o Niveau 1 : On génère au maximum nœuds.
o Niveau 2 : On génère au maximum nœuds.
o Niveau : On génère au maximum nœuds.
Exemple 2.17 : Vérifions l'existence d'un code instantané de l'exemple 2.14
pour = {2,3,1,5} et = 2.
La formation du mot-code consiste à :
affecter à chaque branche un symbole du code sélectionné de l'alphabet
2 =2 +2 +2 +2 = {0,1, … , 1};
concaténer les symboles du code de la racine jusqu'à sa feuille de la gauche
vers la droite.
29
2 = <1 Exemple 2.18 : Construction du code de l'exemple 2.14.
32

Etape 1: Classement des probabilités d'apparition du maximum au minimum


Cette inégalité traduit l'existence d'un code instantané mais ne fournit aucune
ou bien de la longueur minimale vers la longueur maximale.
information sur la génération des mot-codes instantanés. C'est la raison pour
laquelle, on utilise une technique fondée sur la construction d'un arbre
pour construire un code instantané. Symbole
1/2 1/4 1/5 1/20
2.4.5. Construction d’un code instantané l'aide d'un arbre
1 2 3 5
Pour construire un code instantané (sans préfixe et à décodage unique), le
moyen le plus efficace est l'utilisation de la représentation graphique par un
arbre où est la base du code. Si = 2, le codage est binaire; si =
3, le codage est ternaire.

Y. Chibani et H. Nemmour Page 17/26 Y. Chibani et H. Nemmour Page 18/26


Etape Formation de l'arbre et codage en affectant à chaque un code 0 ou 1. 2.5. Méthodes de codage

Niveau 0 : 2.5.1. Méthode de Shannon


0 1 La méthode de Shannon est considérée comme la méthode de base pour le
codage d'une source. Elle est fondée sur l’utilisation de l’information propre
Niveau 1 : pour déterminer la longueur du mot-code de chaque symbole de l’alphabet.
0 1 Pour une source définie sur un alphabet ={ , , }, choisi selon les
probabilités ( ) = { , , }, la longueur de chaque mot-code est définie
Niveau 2 :
à partir de ( ) en considérant l’entier supérieur ou égal à
0 1 l’information propre. Les mot-codes sont alors obtenus à l’aide d’un arbre de
Niveau 3 : codage .

0 1 Exemple 2.19 : Construction du code de Shannon d'une source composée des


Niveau 4 : symboles A, B, C, D, E, F et G avec les probabilités
( ) = {0.40, 0.19, 0.16, 0.11, 0.08, 0.05, 0.01} en utilisant la base binaire
0 1 0 1
= 2.
Niveau 5 :
Etape : Calcul de la longueur de chaque mot-code en utilisant l'équation :
Etape : Génération des mot-codes : < + 1 avec ( )
pour le symbole , le mot-code est : 0
pour le symbole R, le mot-code est : 10 Symbole
pour le symbole V, le mot-code est : 110 ( ) 0.40 0.19 0.16 0.11 0.08 0.05 0.01
pour le mot-code J, il y a quatre possibilités (4 chemins) : 11100 ou 11101
2 3 3 4 4 5 6
ou 11110 ou 11111.

On peut constater qu'un aucun mot-code n'est le préfixe d'un autre mot-code.
En résumé
La construction d'un code instantané nécessite les étapes suivantes :
Etape : Calcul de la longueur de chaque mot-code.
Etape : Calcul de la longueur moyenne du code.
Etape : Vérification de l'existence d'un code instantané en utilisant
l'inégalité de Kraft-McMillan.
Etape : Formation des mot-codes instantanés en utilisant l'arbre .

Y. Chibani et H. Nemmour Page 19/26 Y. Chibani et H. Nemmour Page 20/26


progressivement un arbre en partant du sommet (racine) de l’arbre,
Etape : Génération du code au travers l'arbre graphique représentés par les probabilités des symboles de la source, en subdivisant à
chaque étape les probabilités en deux sous-ensembles les plus équitables
possibles jusqu’à la base. A chaque étape, on crée soit un nœud terminal soit un
Niveau 0 :
nœud intermédiaire puis on les relie par des branches pour affecter un code.
0 1
Plus précisément, cette méthode se déroule selon les étapes suivantes pour un
Niveau 1 : arbre binaire ( = 2) :
0 1 0 1 Placer les probabilités des symboles de la source à la racine (sommet) du
graphe classées par ordre décroissant (du maximum au minimum).
Niveau 2 : L’ensemble des probabilités constitue le nœud racine.
0 1 0 1 Subdiviser l’ensemble des probabilités en traçant un trait vertical en deux
sous-ensembles de telle sorte que la somme des probabilités des deux sous-
Niveau 3 :
0 ensembles soit les plus proches possibles et les placer au niveau suivant.
1 0 1
Dessiner un nœud terminal (feuille) dans le cas des sous-ensembles
Niveau 4 : composés d’une seule probabilité et un nœud intermédiaire au niveau du
0 1 point de subdivision.
Tracer les branches pour relier les nœuds entre deux niveaux.
Niveau 5 : Répéter la subdivision jusqu’à la base de l’arbre en créant à chaque fois des
0 1 nœuds et des branches.
Affecter à chaque branche un « 0 » et « 1 »
Niveau 6 :
0 1 Former le mot code pour chaque symbole de la source en concaténant les «
0 » et « 1 » de la gauche vers la droite par la lecture des codes du nœud
Niveau 7 : racine vers le nœud terminal.

Exemple 2.20 : Construction du code de Shannon-Fano d'une source composée


Symbole des symboles A, B, C, D, E, F et G avec les probabilités
Mot-code : 00 010 011 1000 1001 10110 1011100 ( ) = {0.40, 0.19, 0.16, 0.11, 0.08, 0.05, 0.01}.

Le codage de Shannon est un code instantané et donc sans préfixe mais non
optimal. Le codage de Shannon devient optimal si l’entropie de la source ( )
est égale à ( ) (Symboles équiprobables).

2.5.2. Méthode de Shannon-Fano


Le principe de cette méthode repose sur l'exploitation des probabilités
d'apparition des symboles. Pour cela, on utilise la représentation graphique au
moyen de l'arbre . La méthode de Shannon-Fano consiste à construire
Y. Chibani et H. Nemmour Page 21/26 Y. Chibani et H. Nemmour Page 22/26
Symbole : A B C D E F G Additionner les deux probabilités et placer le résultat au niveau supérieur.
Associer un nœud terminal à chaque symbole de la source et un nœud
Niveau 0 : {0.40 0.19 0.16 0.11 0.08 0.05 0.01}
intermédiaire à la somme des probabilités.
0 1 Tracer les branches pour relier les nœuds placés entre deux niveaux.
Répéter la sélection jusqu’à arriver au sommet de l’arbre pour trouver la
Niveau 1 : {0.40 0.19} {0.16 0.11 0.08 0.05 0.01}
probabilité de valeur maximale 1.0 en créant à chaque étape des nœuds et
0 1 0 1 des branches.
Affecter à chaque branche un « 0 » et « 1 » en partant du sommet de l’arbre.
Niveau 2 : {0.40} {0.19} {0.16} {0.11 0.08 0.05 0.01} Former le mot code pour chaque symbole de la source en concaténant les «
A B C 0 1 0 » et « 1 » de la gauche vers la droite par la lecture des codes du sommet
vers chaque nœud terminal.
Niveau 3 : {0.11} {0.08 0.05 0.01}
D 1 Exemple 2.20 : Construction du code de Huffman d'une source composée des
0
symboles A, B, C, D, E, F et G avec les probabilités
Niveau 4 : {0.08} {0.05 0.01} ( ) = {0.40, 0.19, 0.16, 0.11, 0.08, 0.05, 0.01}.
E 1 Niveau 5 : 1.00
0
0 1
Niveau 5 : {0.05} {0.01}
F G Niveau 4 : 0.60
Mot-code : 00 01 10 101 1110 11110 11111 1
0
Longueur : 2 2 2 3 4 5 5
Niveau 3 : 0.25 0.35
2.5.3. Méthode de Huffman
0 1 0 1
Cette méthode a été inventée par Huffman en 1952 pour construire un code
instantané et donc sans préfixe. Le codage de Huffman est utilisé pour la Niveau 2 : 0.14
compression notamment JPEG pour les images, MPEG pour la vidéo et MP3
pour l’audio. 0 1
Cette méthode consiste à construire progressivement un arbre en
partant de la base jusqu’au sommet (racine) de l’arbre, représentés par les Niveau 1 : 0.06
probabilités des symboles de la source, en regroupant à chaque étape deux 0 1
probabilités les plus faibles. Plus précisément, cette méthode se déroule selon
les étapes suivantes pour un arbre binaire ( = 2). Niveau 0 : 0.01 0.05 0.08 0.11 0.16 0.19 0.40
Placer les probabilités des symboles de la source dans l’ordre croissant (du Symbole : G F E D C B A
minimum en maximum) à la base de l’arbre correspondant au Niveau 0. Mot-code : 00000 00001 0001 001 010 011 1
Sélectionner deux probabilités parmi les plus faibles. Longueur : 5 5 4 3 3 3 1

Y. Chibani et H. Nemmour Page 23/26 Y. Chibani et H. Nemmour Page 24/26


2.5.4. Comparaison des codes 2.6. Conclusion
Les performances de chaque code peuvent être évaluées en utilisant trois
critères : longueur moyenne du code ( ), l'efficacité du code ( ) et taux de Ce chapitre était consacré à la présentation des notions fondamentales de
redondance ( ). Les tableaux suivants reportent respectivement les longueurs codage source, notamment, les propriétés d’un codage efficace et à
de chaque mot-code ainsi que les performances de chacun des codes de déchiffrement unique. Quelques méthodes de codage et de compression ont été
Shannon, Shannon-Fano et Huffman. également étudiées et comparées. Il s'avère que l’algorithme de Huffman est
plus efficace et permet une compression sans perte avec une longueur variable
Symbole des codes binaires.

( ) 0.40 0.19 0.16 0.10 0.08 0.05 0.02

Shannon 2 3 3 4 4 5 7
Shannon-Fano 2 2 2 3 4 5 5
Huffman 1 3 3 3 4 5 5

Les performances de chaque code sont donc :

Longueur Efficacité du Taux de


Performance
moyenne (Sh) code (%) redondance (%)
Source ( ) = 2.3312 --- 16.96
Shannon 2.9300 79.57 20.43
Shannon-Fano 2.4500 95.19 4.84
Huffman 2.4000 97.14 2.86

On peut constater que la méthode de Shannon a augmenté le taux de


redondance tandis que la méthode de Huffman est la plus efficace pour le
codage de la source d'information. Le codage de Huffman devient plus efficace
si les longueurs des mots de code ont la même longueur.

Les méthodes de Shannon-Fano et Huffman nécessitent la connaissance a priori


des probabilités des symboles de la source. En pratique, ces probabilités sont
généralement inconnues. Dans ce cas, on peut les estimer en faisant une étude
statistique sur la source en comptant la fréquence d'apparition de chaque
symbole. Dans le cas contraire, on utilise une autre méthode qui ne nécessite
aucune connaissance a priori des symboles de la source.

Y. Chibani et H. Nemmour Page 25/26 Y. Chibani et H. Nemmour Page 26/26

Vous aimerez peut-être aussi