Académique Documents
Professionnel Documents
Culture Documents
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
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
où
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}.
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
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
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é ( ).
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
< +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 :
( ) 1.675
code inefficace =1 =1 = 16.25%
( ) 2
code efficace
=1 code optimal
( ) 1.675
=1 =1 = 9.46%
1.850
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 .
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).
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