Académique Documents
Professionnel Documents
Culture Documents
Première partie :
Ingénierie du codage des sources
Benoît MACQ
benoit.macq@uclouvain.be
Préface 1
Références 2
I Syllabus 3
2 Codage entropique 21
2.1 Limites théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Codage des sources sans mémoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 Codage de Shannon-Fano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.2 Codage de Huffman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Remarques sur les codes de Shannon-Fano et sur les codes de Huffman . . . . 25
2.2.4 Codage de Huffman adaptatif . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3 Codage par dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Codages universels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 Codage arithmétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.2 UVLC : Universal Variable Length Coding . . . . . . . . . . . . . . . . . . . . 31
3 Quantification 33
3.1 Quantification scalaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1.1 Rappels sur les séquences aléatoires . . . . . . . . . . . . . . . . . . . . . . . . 36
3.1.2 Caractéristiques du bruit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
II Exercices 47
Séance 1 49
Séance 2 51
Séance 3 53
Préface
La deuxième partie fournit les éléments théoriques ainsi que leur mise en œuvre des façons de
coder l’information pour la mettre à l’abri des erreurs de transmission.
La troisième partie présente les principes généraux utilisés pour protéger l’information (authen-
ticité, confidentialité, intégrité,. . .) au moyen d’outils de cryptographie. Ces deux dernières parties
ne sont pas reprises ici et sont présentées respectivement par J. Louveaux et O. Pereira.
Références
1. HISTORIQUES
Au cours des années 1940, Claude Shannon a développé une théorie mathématique de l’in-
formation pour modéliser efficacement les aspects fondamentaux des communications numé-
riques. Deux aspects importants y sont apparus, à savoir :
– les liens entre information et probabilités ;
– la définition et les performances des fonctions de codage et de décodage.
L’article fondateur de la théorie de l’information et du codage a eu 50 ans en 1998 puisque sa
référence est "A Mathematical Theory of Communication" publié en 1948 dans "Bell System
Tech. Journal", vol. 27, pp. 379-423 et pp. 623-656.
2. BIBLIOGRAPHIQUES
La partie théorique de ce cours s’appuie notamment sur :
– Information Theory and Reliable Communication de Robert GALLAGER, publié chez John
Wiley ;
– Digital Coding of Waveforms de JAYANT et NOLL, publié chez Prentice Hall ;
– Théorie des codes de Jean-Guillaume DUMAS, Jean-Louis ROCH, Eric TANNIER et Sé-
bastien VARRETTE, publié chez DUNOD.
Première partie
Syllabus
Chapitre 1
On constate que la quantification empêche une reconstruction parfaite du signal 𝑥(𝑡) à partir
des échantillons 𝑋𝑒 (𝑛). Cependant, dans le problème débit-distorsion détaillé au Chapitre 4, la
distorsion introduite par la numérisation du signal est souvent négligeable en comparaison des
distorsions introduites par le codage réducteur de débit, c’est-à-dire la compression.
Le canal par lequel les messages sont transmis vers le récepteur est en général un médium
analogique (courant porteur sur paire téléphonique, onde électromagnétique dans l’air ou onde
portée par un signal optique dans une fibre) si bien qu’une opération de constitution d’un signal
électrique à partir de la sortie du codage est nécessaire : cette opération s’appelle la modulation et
a pour but de maximiser l’occupation du canal tout en minimisant la puissance émise ainsi que les
erreurs de transmission.
Les opérations de modulation et de démodulation ne sont pas abordées ici et font l’objet des
cours de Télécommunications. D’un point de vue fonctionnel, le modulateur, le canal physique et
le démodulateur constituent un canal numérique. Nous supposerons dans ce cours que les canaux
sont stationnaires et sans mémoire et simplement caractérisés par une relation entrée-sortie telle
que définie à la figure ci-dessous.
En effet, en raison des perturbations présentes sur le canal physique et des limites quant aux
opérations de modulation et de démodulation, les événements discrets numériques en entrée peuvent
être transmis erronément. La caractérisation des erreurs de transmission peut se faire à travers une
matrice de probabilités conditionnelles
c’est-à-dire quelle est la probabilité que l’événement 𝑋(𝑛) = 𝑥𝑖 était celui envoyé sur le canal lorsque
l’on observe 𝑌 (𝑛) = 𝑥𝑗 en sortie de ce canal.
En cas de canal à transmission sans erreurs, cette matrice est diagonale (𝑝𝑖∣𝑖 = 1 et 𝑝𝑖∣𝑗 = 0 si
𝑖 ∕= 𝑗).
Le canal est sans mémoire et stationnaire si les 𝑝𝑖∣𝑗 ne dépendent pas du temps (l’indice 𝑛
ci-dessus) et des valeurs discrètes 𝑋(𝑛 − 𝑘) envoyées précédemment. C’est une hypothèse assez
restrictive par rapport aux systèmes réels (par exemple un téléphone portable peut avoir des carac-
téristiques de transmission variant dans le temps lorsque l’on se déplace en voiture).
Un cas particulier de canal largement étudié en théorie de l’information est le canal binaire
symétrique sans mémoire :
Ce type de canal est caractérisé par un taux d’erreur 𝑝1∣2 = 𝑝2∣1 = 1 − 𝑝1∣1 = 1 − 𝑝2∣2 = 𝜀
(typiquement 10−9 pour une transmission par fibre optique, 10−4 à 10−6 pour une transmission par
satellite).
Trois types de codage ont été proposés pour remédier à ces limitations :
a. le codage de source permet d’obtenir une représentation du message la plus compacte possible,
en tout cas nécessitant un débit inférieur à la capacité du canal ;
b. le codage cryptographique qui effectue un chiffrement du message (problème de confidentia-
lité) et qui effectue une signature du message (problème d’authenticité et d’intégrité) permet
de résoudre les problèmes de sécurité ;
c. le codage du canal résout les problèmes d’erreurs de transmission en effectuant un codage
correcteur (ou, éventuellement, simplement détecteur) d’erreurs.
Dans cette première partie du cours, on supposera que le canal permet de constituer un nouveau
canal dont le débit a été réduit légèrement par les codes correcteurs d’erreurs, mais qui fournit une
transmission sans erreurs des sources codées. Il est important de noter que le codage cryptographique
(en tout cas le chiffrement) fournit une sortie constituée de signaux pseudo-aléatoires à partir des-
quels il est très difficile de retrouver le message original si l’on n’a pas accès au procédé de décodage
cryptographique. Le codage de source, étant essentiellement un codage réducteur de débit basé sur
la redondance contenue dans les messages, il est indispensable d’effectuer le codage cryptographique
APRES le codage de source, car une source chiffrée, à cause de son caractère pseudo-aléatoire, ne
contient plus de redondance. Cet ordre des codages permet de rendre robuste la transmission car
en enlevant la redondance avant de chiffrer, on rend la tâche plus difficile pour les pirates.
Les trois types de codage se cascaderont donc comme à la figure suivante :
– il faut que la quantité d’information liée à l’événement [𝑋1 (𝑚) = 𝑥𝑘 ] et [𝑋2 (𝑛) = 𝑥𝑙 ] notée
𝐼 ([𝑋1 (𝑚) = 𝑥𝑘 et 𝑋2 (𝑛) = 𝑥ℓ ]) soit telle que
et est définie comme étant l’entropie de la variable aléatoire 𝑋(𝑛). On peut donner plusieurs inter-
prétations de l’entropie :
– la quantité moyenne d’information qu’un événement apporte (un événement non fréquent
contient plus d’information qu’un événement fréquent) ;
– l’incertitude dans la sortie d’un événement (les systèmes avec un événement très fréquent ont
moins d’entropie que les systèmes avec de nombreux événements équiprobables) ;
– la dispersion dans la distribution de probabilité ;
– le nombre moyen minimum de chiffres binaires nécessaires pour désigner un message de ma-
nière unique (de manière générale, 𝑘 chiffres binaires spécifient 2𝑘 messages et 𝑀 messages
nécessitent ⌈log2 𝑀 ⌉ bits).
issu de la même source discrète numérique que 𝑋(𝑛) où chaque variable prend des valeurs dans un
alphabet {𝑥0 , 𝑥1 , . . . , 𝑥𝐷−1 } avec des probabilités 𝑝0 , 𝑝1 , . . . , 𝑝𝐷−1 .
En toute généralité, on peut noter la probabilité de l’événement
et dès lors mesurer la quantité d’information associée à cette occurrence particulière du vecteur
aléatoire par
− log 𝑝𝑘−𝑁/2 ,...,𝑘,...,𝑘𝑁/2
et son entropie par
𝐷−1
∑ 𝐷−1
∑ 𝐷−1
∑
𝐻 ([𝑋(−𝑁/2) et . . . et 𝑋(𝑁/2)]) = − ... ... 𝑝𝑘−𝑁/2 ,...,𝑘,...𝑘𝑁/2 log 𝑝𝑘−𝑁/2 ,...,𝑘,...,𝑘𝑁/2
𝑘−𝑁/2 =0 𝑘=0 𝑘𝑁/2 =0
L’entropie de la source discrète numérique . . . , 𝑋(0), 𝑋(1), . . . , 𝑋(𝑚) . . . sera mesurée par
1
lim ⋅ 𝐻 ([𝑋(−𝑁/2) . . . 𝑋(0) . . . 𝑋(𝑁/2)]) = 𝐻𝑋
𝑁 →∞ 𝑁 +1
Si la source est composée de variables aléatoires indépendantes et identiquement distribuées,
alors
𝑝𝑘−𝑁/2 ,...,𝑘,...,𝑘𝑁/2 = 𝑝𝑘−𝑁/2 . . . 𝑝𝑘 . . . 𝑝𝑘𝑁/2 ,
Dans la plupart des cas, les sources numériques ne sont pas composées de variables indépendantes
(même si elles sont, par contre, très souvent identiquement distribuées).
En pratique, pour mesurer leur entropie, on effectue une transformation de ces sources qui
conduit à des variables plus ou moins indépendantes et on mesure l’entropie sur cette représentation
transformée.
or il est aisé d’observer sur le graphe suivant que ln 𝑧 ≤ 𝑧 − 1 ∀ 𝑧, l’égalité étant obtenue pour 𝑧 = 1.
où 𝑘 ′ représente les indices pour lesquels 𝑝𝑘′ ∕= 0. Dès lors, nous retrouvons la relation voulue puisque
[𝐷−1 𝐷−1
] [𝐷−1 ]
∑ 1 ∑ ∑ 1
𝐻 (𝑋(𝑛)) − log 𝐷 ≤ ln(𝑒) − 𝑝𝑘′ = ln(𝑒) −1 ≤0
′
𝐷 ′ ′
𝐷
𝑘 =0 𝑘 =0 𝑘 =0
car
𝐷−1 𝐷−1
∑ 1 ∑ 1
si 𝑝𝑘 ∕= 0 ∀ 𝑘, = 1 et sinon <1
𝐷 𝐷
𝑘′ =0 ′ 𝑘 =0
Cette borne indique que la quantité d’information contenue dans 𝑋(𝑛) est strictement inférieure
ou égale au nombre de bits nécessaire à sa représentation naturelle. En effet, intuitivement la borne
s’explique par le fait que le pire que l’on puisse faire est d’assigner log2 𝐷 bits à chaque valeur.
Ainsi une suite de caractères ASCII codée sur 8 bits (256 valeurs possibles) a une entropie égale
ou inférieure à 8 bits. On verra au chapitre 2 comment changer le codage des variables aléatoires
pour obtenir une représentation dont le débit correspondant est proche de l’entropie.
La moyenne de cette entropie conditionnelle donne une mesure de l’équivoque sur la variable
aléatoire à l’entrée lorsque l’on connaît la variable aléatoire en sortie. Elle est donnée par
𝐷−1
∑ 𝐷−1
∑
𝐻 𝑋(𝑛) si 𝑌 (𝑛) = −
( )
𝑝ℓ 𝑝𝑘∣ℓ log2 𝑝𝑘∣ℓ
ℓ=0 𝑘=0
𝐷−1
∑ 𝐷−1
∑
= − 𝑝𝑘,ℓ log2 𝑝𝑘∣ℓ
ℓ=0 𝑘=0
Shannon a (montré que la capacité du canal est donnée par la valeur maximale de la quantité
𝐻 (𝑋(𝑛)) − 𝐻 𝑋(𝑛) si 𝑌 (𝑛) par rapport à l’ensemble des probabilités d’utilisation des symboles
)
𝑥0 , 𝑥1 , . . . , 𝑥𝐷−1 à l’entrée du canal. Cette dernière quantité est appelée l’information mutuelle et
sera présentée plus en détails dans un prochain paragraphe.
On voit immédiatement que si le canal est parfait 𝐻 𝑋(𝑛) si 𝑌 (𝑛) = 0 et que la capacité du
( )
canal est obtenue pour une distribution à l’entrée où tous les 𝑝𝑥 (𝑘) = 𝐷 1
, alors la capacité du canal
vaut log 𝐷.
Dans le cas du canal binaire symétrique caractérisé par le taux d’erreur 𝜖, on a 𝑝0∣0 = 𝑝1∣1 = 1 − 𝜖
et 𝑝0∣1 = 𝑝1∣0 = 𝜖.
Théorème :
On peut montrer que la capacité du canal obtenue pour une variable binaire à l’entrée telle que
𝑝𝑥 (0) = 𝑝𝑥 (1) = 12 vaut
1 + 𝜀 log 𝜀 + (1 − 𝜀) log2 (1 − 𝜀)
De plus, en l’absence de perturbation, la capacité vaut 1.
Démonstration :
En effet, d’une part
1 ( )
∑ 1 1 1
𝐻(𝑋(𝑛)) = − 𝑝𝑘 log2 𝑝𝑘 = 2 − log2 = − log2 = log2 2 = 1
2 2 2
𝑘=0
et d’autre part
1 ∑
∑ 1
𝐻 𝑋(𝑛) si 𝑌 (𝑛)
( )
= − 𝑝ℓ 𝑝𝑘∣ℓ log2 𝑝𝑘∣ℓ
ℓ=0 𝑘=0
( )
= − 𝑝0 𝑝0∣0 log2 𝑝0∣0 + 𝑝0 𝑝1∣0 log2 𝑝1∣0 + 𝑝1 𝑝0∣1 log2 𝑝0∣1 + 𝑝1 𝑝1∣1 log2 𝑝1∣1
[ ]
1( )
= −2 (1 − 𝜀) log2 (1 − 𝜀) + 𝜀 log2 𝜀
2
= −(1 − 𝜀) log2 (1 − 𝜀) − 𝜀 log2 𝜀
d’où
𝐻(𝑋(𝑛)) − 𝐻 𝑋(𝑛) si 𝑌 (𝑛) = 1 + 𝜀 log2 𝜀 + (1 − 𝜀) log2 (1 − 𝜀)
( )
) (
𝑝𝑥∑
𝐻(𝑋) − 𝐻(𝑋∣𝑌 ) ≥ − log2 𝑒 𝑝𝑥,𝑦 −1
𝑥,𝑦
𝑝𝑥∣𝑦
( )
∑ 𝑝𝑥 𝑝𝑦
= log2 𝑒 𝑝𝑥,𝑦 1 −
𝑥,𝑦
𝑝𝑥,𝑦
par la règle de Bayes
(∑ ∑ )
= log2 𝑒 𝑝𝑥,𝑦 − 𝑝𝑥 𝑝𝑦
𝑥,𝑦 𝑥,𝑦
| {z }
1
( ∑ ∑ )
= log2 𝑒 1 − 𝑝𝑥 𝑝𝑦
𝑥 𝑦
| {z }
1
= 0
Théorème :
On s’intéresse à présent à l’entropie jointe : 𝐻(𝑋, 𝑌 ) = 𝐻(𝑋) + 𝐻(𝑌 ∣𝑋) = 𝐻(𝑌 ) + 𝐻(𝑋∣𝑌 ).
Intuitivement, pour décrire 𝑋 et 𝑌 , on décrit d’abord 𝑋 et puis 𝑌 étant donné 𝑋.
Démonstration :
∑
𝐻(𝑋, 𝑌 ) = − 𝑝𝑥,𝑦 log2 𝑝𝑥,𝑦
𝑥,𝑦
∑
= − 𝑝𝑥,𝑦 log2 𝑝𝑥 𝑝𝑦∣𝑥
𝑥,𝑦
∑ ∑ ∑
= − 𝑝𝑥 𝑝𝑦∣𝑥 log2 𝑝𝑥 − 𝑝𝑥,𝑦 log2 𝑝𝑦∣𝑥
𝑥 𝑦 𝑥,𝑦
| {z }
1
= 𝐻(𝑋) + 𝐻(𝑌 ∣𝑋)
Pour obtenir la seconde égalité, on remplace 𝑝𝑥,𝑦 par 𝑝𝑦 𝑝𝑥∣𝑦 au lieu de 𝑝𝑥 𝑝𝑦∣𝑥 dans la première
équation et on procède de la même manière. □
Corollaire :
Une implication directe de ce théorème est que l’on a l’égalité suivante :
Corollaire :
De même, on en déduit que
où 𝑝𝑥,𝑦 est la probabilité jointe, et 𝑝𝑥 et 𝑝𝑦 sont les probabilités marginales. Lorsque le logarithme
en base 2 est utilisé, l’unité de mesure de la MI est le bit.
On peut également exprimer l’information mutuelle en utilisant l’entropie :
L’équation précédente nous apprend que la MI est égale à zéro lorsque les variables 𝑋 et 𝑌
sont totalement indépendantes (𝐻(𝑋) = 𝐻(𝑋∣𝑌 ) et 𝐻(𝑌 ) = 𝐻(𝑌 ∣𝑋)). Au contraire, si 𝑋 et 𝑌
sont égaux, la MI sera maximale (puisque 𝐻(𝑋∣𝑋) = 0). La MI est par conséquent une quantité
positive qui est toujours plus petite que l’entropie de la variable aléatoire. Cela semble intuitif,
puisqu’aucune variable ne peut apprendre plus sur 𝑋 que 𝑋 elle-même (𝐼(𝑋; 𝑌 ) ≤ 𝐼(𝑋; 𝑋)).
La MI est habituellement exprimée en utilisant les entropies jointes 𝐻(𝑋, 𝑌 ) plutôt que les
probabilités conditionnelles :
Interprétation Comme cela a été dit précédemment, l’information mutuelle fournit une mesure
de la capacité d’un canal. Elle représente également la réduction de la longueur de la description de
𝑋 lorsque l’on connaît 𝑌 , ou encore la quantité d’information que 𝑌 donne sur 𝑋.
En pratique, les distributions de probabilités 𝑝𝑥 sont données par l’histogramme des réalisations
de la variable 𝑋, et 𝑝𝑥,𝑦 est calculé en utilisant l’histogramme joint. L’histogramme joint donne le
nombre d’occurences de chaque couple de valeurs (𝑥, 𝑦). Si 𝑋 peut prendre 𝑚 valeurs différentes et
que 𝑌 peut en prendre 𝑛 différentes (les tailles de 𝑝𝑥 et 𝑝𝑦 sont respectivement 𝑚 et 𝑛), la taille de
𝑝𝑥,𝑦 sera 𝑚 × 𝑛.
EXEMPLE 1 : Soit 𝑋 une source simple émettant à travers un canal bruité.
La MI entre 𝑌 et 𝑋 est une mesure de l’information originale qui reste dans 𝑌 . On peut aussi
exprimer la capacité du canal, qui donne la quantité maximale d’information qui peut être envoyée
à travers le canal, de la manière suivante :
𝐶 = max 𝐼(𝑋; 𝑌 )
𝑝𝑥
EXEMPLE 2 : Soit 𝑋 une source simple émettant à travers 2 canaux bruités différents.
EXEMPLE 3 : Soit deux observations différentes (𝑋 et 𝑌 ) d’un même phénomène. Par exemple,
considérons deux photos d’un même objet. Dans ce cas, les deux variables (𝑋 et 𝑌 ) devraient
contenir des informations similaires (𝐻(𝑋, 𝑌 ) = 𝐻(𝑋) = 𝐻(𝑌 ) idéalement). Cependant, comme
les deux canaux de transmission ont des caractéristiques différentes (temps, exposition, position de
l’objet,...), la MI diminuera après la prise d’image.
Dans le cas d’images du même objet en des positions différentes, les entropies 𝐻(𝑋) et 𝐻(𝑌 ) sont
égales (même objet), mais le manque d’alignement réduit la MI puisque l’entropie jointe augmente.
En effet, comme on peut le voir ci-dessous, l’histogramme joint s’élargit quand les images ne sont
pas alignées.
MI comme distance Dans l’équation qui suit, 𝐷 a les propriétés d’une distance (définie positive,
symétrique, inégalité triangulaire) et est utilisée dans de nombreuses applications.
𝐼(𝑋; 𝑌 )
𝐷(𝑋, 𝑌 ) = 1 −
max(𝐻(𝑋), 𝐻(𝑌 ))
En second lieu, la régistration d’images : La régistration est une méthode qui vise à trouver le
meilleur alignement (matching) entre deux images. Dans le cas de prises d’images multiples d’un
même objet / d’une même scène, il y a un intérêt à placer toutes les images dans un même référentiel
spatial afin d’effectuer une analyse des pixels basée sur les différentes images au même moment.
Dans le domaine médical, par exemple, différentes modalités sont utilisées. On pourrait vouloir
regarder une image CT (rayons X) et une image PET (Positron Emission Tomography) en même
temps. Cependant, comme les deux images ne requièrent pas le même équipement, elles ne sont
pas dans le même référentiel spatial et on ne connaît pas la correspondance entre pixels. Le but de
la régistration est d’aligner l’une de ces images (qui est appelée moving image) sur l’autre image
(appelée fixed image).
La distance 𝐷(𝑋, 𝑌 ) entre deux images peut être utilisée pour trouver la meilleure transforma-
tion entre ces images. En effet, les paramètres de transformation qui donnent la plus petite distance
maximiseront l’information que les images ont en commun, donnant ainsi la transformation pour
laquelle le matching est optimal.
Ensuite, connaissant la transformation, on peut l’appliquer à l’image fixe afin d’obtenir la fusion
entre les différentes modalités.
Propriétés de l’information mutuelle Reprenons tout d’abord quelques propriétés qui ont été
utilisées précédemment :
∙ 𝐼(𝑋; 𝑌 ) = 𝐼(𝑌 ; 𝑋) : l’information mutuelle est symétrique
∙ 𝐼(𝑋; 𝑋) = 𝐻(𝑋)
∙ 𝐼(𝑋; 𝑌 ) ≤ 𝐻(𝑋) et 𝐼(𝑋; 𝑌 ) ≤ 𝐻(𝑌 ) : l’information d’une variable sur une autre ne peut être
plus grande que l’information que l’image contient sur elle-même
∙ 𝐼(𝑋; 𝑌 ) ≥ 0
∙ si 𝑋 et 𝑌 sont indépendants, 𝐼(𝑋; 𝑌 ) = 0
Ensuite, on définit l’information mutuelle conditionnelle à partir des entropies conditionnelles
correspondantes :
𝐼(𝑋; 𝑌 ∣𝑍) = 𝐻(𝑋∣𝑍) − 𝐻(𝑋∣𝑌, 𝑍)
Enfin, terminons par cet énoncé :
Théorème :
Supposons que les variables 𝑋, 𝑌 et 𝑍 forment une chaîne de Markov : 𝑋 → 𝑌 → 𝑍 et que 𝑍
est indépendant de 𝑋∣𝑌 , c’est-à-dire que 𝑝𝑥,𝑦,𝑧 = 𝑝𝑥 𝑝𝑦∣𝑥 𝑝𝑧∣𝑦 : 𝑋 → 𝑝𝑦∣𝑥 → 𝑌 → 𝑝𝑧∣𝑦 → 𝑍. Alors,
𝐼(𝑋; 𝑌 ) ≥ 𝐼(𝑋; 𝑍).
Démonstration :
𝐼(𝑋; 𝑌, 𝑍) = 𝐻(𝑌, 𝑍) − 𝐻(𝑌, 𝑍∣𝑋) = 𝐻(𝑋) − 𝐻(𝑋∣𝑌, 𝑍)
= 𝐻(𝑌 ) + 𝐻(𝑍∣𝑌 ) − 𝐻(𝑌 ∣𝑋) − 𝐻(𝑍∣𝑌, 𝑋) = 𝐻(𝑋) − 𝐻(𝑋∣𝑍) + 𝐻(𝑋∣𝑍) − 𝐻(𝑋∣𝑌, 𝑍)
= 𝐼(𝑋; 𝑌 ) + 𝐼(𝑋; 𝑍∣𝑌 ) = 𝐼(𝑋; 𝑍) + 𝐼(𝑋; 𝑌 ∣𝑍)
Or 𝐼(𝑋; 𝑍∣𝑌 ) = 0 par indépendance et 𝐼(𝑋; 𝑌 ∣𝑍) ≥ 0. On a donc 𝐼(𝑋; 𝑌 ) ≥ 𝐼(𝑋; 𝑍). □
Chapitre 2
Codage entropique
L’objectif de ce chapitre est de proposer des méthodes de codage des sources discrètes numériques
telles que le nombre de bits pour les encoder soit minimum. La stratégie suivie est de constituer des
codes à longueur variable en associant des mots courts aux événements les plus probables. Illustrons
ce principe par un exemple. Soit la source discrète numérique dont on observe l’occurrence d’un
certain nombre de variables : 0 0 0 − 1 0 0 2 0 0 1 0 0 0
On pourrait envisager d’encoder de telles variables sur un code à longueur fixe et obtenir, en
allouant 3 bits par variable, au total 39 bits pour les 13 variables observées :
000 000 000 101 000 000 010 000 000 001 000 000 000
0 0 0 -1 0 0 2 0 0 1 0 0 0
On pourrait améliorer le codage par un code à longueur variable tel que la longueur du code soit
inversement proportionnelle à la probabilité d’occurrence des événements.
𝐶𝑘
[𝑋(𝑖) = 0] 0
[𝑋(𝑖) = 1] 1 0
[𝑋(𝑖) = −1] est codé par 1 1 0
[𝑋(𝑖) = 2] 1 1 1 0
[𝑋(𝑖) = −2] 1 1 1 1
[𝑋(𝑖) = 𝑥𝑘] ] est codé par un mot code 𝐶𝑘 de longueur 𝐿𝑘 .
On obtient dès lors une représentation
0 0 0 110 0 0 1110 0 0 10 0 0 0
0 0 0 -1 0 0 2 0 0 1 0 0 0
qui est passée de 39 bits à 19 bits.
Le code à longueur variable, pour pouvoir être décodé de manière univoque, doit être un code
uniquement déchiffrable : le code 𝐶 est uniquement déchiffrable sur un alphabet 𝑉 = {0, 1} si et
seulement si ∀ 𝑥 = 𝑥1 , 𝑥2 , . . . , 𝑥𝑀 , 𝑥𝑖 ∈ 𝑉, ∃ ! 𝑐 = 𝑐1 , 𝑐2 , . . . , 𝑐𝑚 , 𝑐𝑖 ∈ 𝐶 tel que 𝑐 = 𝑥.
Un code 𝐶 possède la propriété du préfixe si aucun mot de code 𝐶𝑘 n’est le début d’un autre mot
de code. Notons que si les mots de code ont tous la même longueur, ils possèdent automatiquement
cette propriété. On code préfixe est uniquement déchiffrable mais la réciproque est fausse en général.
Par exemple 𝐶 = {0, 01} est uniquement déchiffrable mais ne possède pas la propriété du préfixe.
Si l’on a 𝐶 = {0, 01}, et que l’on reçoit le code 0001, on le découpera en 0∣0∣01 car on sait
qu’avant un 1 il y a toujours un 0. Ce code est donc uniquement déchiffrable. Par contre, avec
𝐶 = {0, 01, 001}, si l’on a le code 001001, on peut l’interpréter de deux manières différentes :
0∣01∣001 ou 001∣001. Ce code n’est donc pas uniquement déchiffrable.
Le décodeur peut ainsi fonctionner en lisant bit par bit le code comprimé et en sortant un
événement [𝑋(𝑖) = 𝑥𝑘 ] chaque fois qu’un mot code 𝐶𝑘 a été complété.
Les caractéristiques des codes à longueur variable, outre la caractéristique préfixe, peuvent ai-
sément se comprendre à la lumière de l’exemple.
1. Le codage à longueur variable fournit un débit variable, avec des augmentations de débit
lorsque des événements improbables arrivent, c’est-à-dire là où se trouve beaucoup d’informa-
tion. Un exemple de ce principe est clairement illustré lors de la transmission d’un fax où le
débit de la page est ralenti lorsque de l’information est présente, de sorte que l’augmentation
de débit correspondante puisse être adaptée à la capacité fixée du canal.
2. Le codage à longueur variable est très fragile vis-à-vis des erreurs de transmission. Une erreur
introduite sur le code comprimé désynchronise le processus de décodage. Un codage à longueur
variable doit donc être accompagné par un codage de canal efficace, comprenant un code
correcteur d’erreurs mais surtout une stratégie efficace de resynchronisation (introduction
régulière de mots de synchronisation).
3. L’implantation de circuits de codage et de décodage à longueur variable nécessite l’usage de
mémoires de codes à longueur variable ainsi que de mécanismes efficients de synchronisation
et de temporisation du codeur et du décodeur.
c’est-à-dire si 𝐿𝑘 = − log2 𝑝𝑘
Le débit moyen d’un code quelconque est donné par
𝐷−1
∑
𝑅= 𝑝𝑘 𝐿𝑘
𝑘=0
On voit donc que la limite inférieure du débit moyen d’un code à longueur variable d’une variable
aléatoire 𝑋(𝑛) est donnée par l’entropie 𝐻((𝑋(𝑛)).
Le rendement d’un code est donné par 𝜂 = 𝐻
𝑅 et est toujours inférieur ou égal à 1.
Si l’on souhaite maintenant examiner la limite théorique de l’encodage d’une source discrète nu-
mérique . . . , 𝑋(0), 𝑋(1), . . . , 𝑋(𝑛), . . ., il faut envisager d’encoder des vecteurs (𝑋(−𝑁/2), . . . , 𝑋(0),
. . . , 𝑋(𝑁/2)) de probabilités 𝑝𝑘−𝑁/2 ,...,𝑘,...,𝑘𝑁/2 .
Chacun des événements
est encodé par un mot code 𝐶𝑘−𝑁/2 ,...,𝑘,...,𝑘𝑁/2 optimal si sa longueur est telle que
et on peut montrer que le débit moyen tend vers 𝐻𝑋 lorsque 𝑁 tend vers l’infini.
En général, on effectue un codage entropique sur des variables aléatoires qui ont été rendues
plus ou moins indépendantes, de telle sorte que l’on peut effectuer un codage des variables indépen-
damment les unes des autres (𝐻𝑋 = 𝐻 (𝑋(𝑛)) et un code optimal individuel pour 𝑋(𝑛) conduira
à un code optimal pour des vecteurs de la source).
La stratégie de codage pour des sources constituées d’événements indépendants 𝑋(𝑛) est de
constituer des structures arborescentes binaires, où chaque bifurcation de l’arbre correspond à un
événement le plus équiprobable possible.
Il faut noter que la condition 𝐿𝑘 = − log2 (𝑝𝑘 ) est en général impossible à réaliser car − log2 (𝑝𝑘 )
est rarement un nombre entier. En particulier, si un des évènements [𝑋(𝑛) = 𝑥0 ] est très probable,
alors − log2 (𝑝0 ) sera un nombre bien inférieur à 1.
Dans ce cas, il faut envisager de constituer des vecteurs d’une certaine longueur pour retrouver
des probabilités mieux conditionnées. On peut ainsi démontrer que même dans le cas de sources
constituées d’événements indépendants, il est toujours plus favorable d’effectuer un codage de vec-
teurs plutôt que de variables individuelles.
△
et 𝑃 (𝑋(𝑛) = 𝑥𝑖 tel que 𝑥𝑖 ∈ alphabet 1 ) = 𝑃 (alphabet 1)
△
≃ 𝑃 (𝑋(𝑛) = 𝑥𝑗 tel que 𝑥𝑗 ∈ alphabet 2 ) = 𝑃 (alphabet 2)
Le code ainsi construit peut se représenter en forme d’arbre dans lequel on retrouve le code
attribué à chaque 𝑠𝑖 : 𝑠1 = 00, 𝑠2 = 10, 𝑠3 = 11, 𝑠4 = 010, 𝑠5 = 0110, 𝑠6 = 0111.
On peut observer que le codage obtenu est de type préfixe et est également bien un codage
entropique, ce qui sera toujours le cas avec le codage de Huffman.
Dans l’exemple étudié ci-dessus, les probabilités des deux événements les moins probables ne
sont pas égales, et donc le codage est mal utilisé. Ainsi, l’entropie et le débit ne sont pas égaux.
Cependant, ils sont quand même proches puisque :
∑
𝑅= 𝑝𝑘 𝐿𝑘 = 0.3 ⋅ 2 + 0.25 ⋅ 2 + 0.15 ⋅ 2 + 0.15 ⋅ 3 + 0.10 ⋅ 4 + 0.05 ⋅ 4 = 2.45
𝑘
∑
𝐻=− 𝑝𝑘 log2 𝑝𝑘 = −0.3 log2 0.3−0.25 log2 0.25−2⋅0.15 log2 0.15−0.1 log2 0.1−0.05 log2 0.05 = 2.39
𝑘
2.2.3 Remarques sur les codes de Shannon-Fano et sur les codes de Huffman
Efficacité L’efficacité de ce type de méthode dépend de la distribution de probabilité de la source
à coder. Si cette distribution peut conduire à des partages entre sous-alphabets strictement équi-
probables (ce qui était le cas dans l’exemple donné pour illustrer le codage de Shannon-Fano), alors
l’efficacité du codage sera égale à 1. Cette condition (non respectée pour l’exemple illustrant le
𝑗
codage de Huffman) conduit à des distributions de probabilités telles que 𝑝𝑘 = 12 .
Il est à noter toutefois que la procédure de Huffman, pour une distribution de probabilité donnée,
est optimale (il n’y a pas d’autre code à longueur variable donnant une meilleure efficacité).
Une situation particulièrement défavorable au niveau de l’efficacité se présente lorsqu’une des
probabilités 𝑝0 est largement supérieure à 0.5. Dans ce cas, on peut constituer de nouveaux événe-
ments formés de la vectorisation de plusieurs variables.
Par exemple, en concaténant deux variables 𝑋(𝑛) et 𝑋(𝑛 + 1) on obtient un nouvel alphabet
Ainsi si 𝑝0 = 0.7, un bit sera utilisé au plus haut niveau de deux événements de probabilités 0.7
et 0.3, tandis que en constituant un vecteur de deux variables 𝑝0 𝑝0 = 0.49 la situation sera plus
favorable. On peut montrer aisément que même dans le cas de sources sans mémoire, on augmente
toujours l’efficacité d’un code à longueur variable en vectorisant.
Lorsqu’un événement 𝑥0 a une probabilité très importante, on peut effectuer une vectorisation
relativement simple en codant des rafales 𝑥0 𝑥0 . . . 𝑥0 et ensuite en effectuant un codage mot par
mot des occurrences des autres valeurs. Le codage par rafales (run length coding) de la valeur la
plus probable est indispensable pour le codage d’événements binaires tels que la suite de pixels (0
ou 1) d’une page noir et blanc à transmettre par téléfax.
On y reviendra lors de la description du codage entropique des coefficients d’une transformée
linéaire.
Implémentation Lorsque l’on doit effectuer le codage entropique d’une source sans mémoire,
il faut d’abord estimer les probabilités 𝑝𝑘 . Cette estimation peut être effectuée par le calcul des
fréquences issues de l’observation d’un grand nombre de variables 𝑋(𝑛)
𝑛𝑘
𝑝𝑘 ≃
𝑁𝑡𝑜𝑡
où 𝑛𝑘 est le nombre d’observations de 𝑋(𝑛) = 𝑥𝑘 que l’on divise par le nombre d’observations 𝑁𝑡𝑜𝑡 .
Lors du codage proprement dit, il est important de noter que si la distribution de probabilités
change, il faut mettre à jour le code à longueur variable et l’envoyer au décodeur avant de lui envoyer
les mots comprimés proprement dits. Plusieurs méthodes de codage de Huffman adaptatif ont été
décrites dans la littérature. Nous en étudions une ci-après.
Illustrons cela par un exemple. Supposons que l’on désire encoder la séquence suivante : aaa aaa
aaa bcd bcd bcd. La figure ci-dessous illustre la construction du code, pas à pas.
On remarque qu’à la suite du codage du dernier caractère, il faut encore mettre à jour l’arbre de
Huffman. En effet, comme illustré sur la figure, le caractère @ ayant une fréquence de 5 est à un
niveau supérieur dans l’arbre que le caractère (c ou d) qui a une fréquence de 6. L’arbre de Huffman
dans cet état ne respecte plus la règle voulant qu’un caractère plus fréquent possède un mot de code
plus court qu’un caractère moins fréquent. C’est pourquoi l’on met à jour l’arbre.
L’avantage du codage de Huffman adaptatif est que l’on ne doit pas transmettre l’arbre de
Huffman puisque l’on peut le retrouver à partir de ce qui est transmis. Le décodage s’effectue donc
également en construisant petit à petit l’arbre de Huffman. Reprenons la séquence aaa aaa aaa bcd
bcd bcd. En Huffman classique il faudrait 33 bits pour coder la séquence + 41 bits pour coder
l’arbre de Huffman (caractères ASCII + codage de chaque caractère) = 74 bits alors qu’en Huffman
dynamique 67 bits sont suffisants (le codage du premier caractère @ est supposé connu du décodeur).
z}|{ ↓
1 2 3 4 5 6 7 8 9
2 2 A B (1,1,B) A AB ∣ CBBABC
↓
1 2 3 4 5 6 7 8 9
3 4 / C (0,0,C) AABC ∣ BBABC
z}|{ ↓
1 2 3 4 5 6 7 8 9
4 5 B B (2,1,B) AA B CBB ∣ ABC
z}|{ ↓
1 2 3 4 5 6 7 8 9
5 7 AB C (5,2,C) A AB CBBABC |
Il est à noter que pour encoder le dernier caractère, on ne peut pas se servir d’une répétition
(ici en effet, on aurait pu prendre la répétition de ABC). Il doit bien plutôt être encodé à l’aide du
troisième champ de la sortie.
Remarquons enfin que si on limite le nombre de bits aloué au codage des positions, on limite
également les possibilités de recherche des mêmes occurences des séquences de caractère.
Le codage arithmétique fournit par ailleurs une procédure de codage de l’intervalle [Inf, Sup[ en
fournissant le nombre 𝛼 en représentation binaire pointant vers [Inf, Sup[ sans ambiguïté.
Pour illustrer ce premier algorithme, prenons la séquence "bebecafdead" avec les probabilités
des lettres a à f données précédemment.
Dès lors, la séquence "bebecafdead" est encodée par un réel compris entre 0.15633504384 et
0.1563350464, par exemple 𝛼 = 0.156335045. On obtient un codage plus efficace que le codage
de Huffman car on code sur un nombre non entier de bits, surtout si l’une des probabilités est
supérieure à 0.5.
Dans l’exemple précèdent, on remarque que tout réel de l’intervalle [0.15633504384, 0.1563350464[
représente une chaîne infinie qui commence par "bebecafdead". Pour informer le processus de dé-
codage de s’arrêter, il faut :
– soit fournir le nombre de symboles à décoder (typiquement au début du fichier compressé, ou
comme partie entière),
– soit utiliser un caractère spécial (type EOF) ajouté à la fin du message à coder et auquel on
assigne la plus faible probabilité.
La procédure de décodage est basée sur le fait que le premier caractère à décoder est celui dont
les bornes contiennent le nombre 𝛼. Le décodage est également basé sur l’usage de deux registres
Inf et Sup mis à jour selon la procédure suivante :
→ Décodage : initialisation
Input : 𝛼 ∈ [0, 1[ % nombre que l’on veut décoder
TANT QUE (c !=EOF (end of file))
c = symbole dans l’intervalle qui contient 𝛼 dans la table
Afficher c
Taille = Bsup (c) - Binf (c) = y - x
𝛼 = 𝛼 − 𝐵inf (𝑐)
𝛼 = 𝛼/Taille
FIN TANT QUE
Il existe une version dynamique de cet algorithme, mais elle n’est pas étudiée ici.
Prenons par exemple le vecteur X(4) = [0 0 1 X X]. Les X représentent les bits du vecteur
apparaissant après le premier "1" rencontré. La probabilité de chaque X sera de 50% car chaque
bit est équiprobable au sein d’un mot binaire. Cependant les "0" avant le premier 1 rencontré
représentent une information fort redondante.
Le principe de l’UVLC réside dans le fait qu’on ne cherchera pas à encoder les bits les moins
significatifs (les X) appelés LSB (Least Significant Bits) car leur probabilité étant de 50%, il n’y
aura pas de gain de codage. Par contre est intéressante la position du premier "1", noté MNZSB.
Le codage est effectué ligne par ligne. On compte le nombre de "0" apparaissant avant un
MNZSB, ce nombre est appelé Run Length (RL). Le codage d’un RL sera expliqué dans la suite, il
utilise un paramètre 𝑚𝑖 qui dépend de l’indice de la ligne à coder. Une fois la position du MNZSB
connue, on envoie les LSB de la colonne sans codage. La colonne contenant ces LSB ne sera plus
utilisée par la suite, on l’efface donc du tableau pour la suite. On procède de la même façon jusqu’au
prochain MNZSB puis on passe à la ligne suivante.
Chapitre 3
Quantification
L’objectif du Chapitre 2 était de fournir des outils permettant le codage entropique de sources
discrètes numériques sans mémoire. La séquence d’événements 𝑋(𝑛), supposés indépendants (sources
sans mémoire), est encodée par un code à longueur variable.
Chaque événement 𝑋(𝑛) = 𝑥𝑘 se voit allouer un code 𝐶𝑘 de longueur 𝐿𝑘 la plus proche possible
de − log2 𝑝𝑘 , de sorte que l’efficacité du code soit la plus proche possible de 1.
Le codage entropique de sources discrètes numériques sans mémoire peut s’appliquer tel quel
dans le cas où l’on veut effectuer le codage réversible (sans pertes) d’une source de ce type (voir
paragraphe 1.1). Le débit associé au codage d’une telle source est variable, fonction de la probabilité
des événements à encoder. Seule la moyenne du débit est prévisible :
𝐷−1
∑ 𝐷−1
∑
𝑅= 𝑝𝑘 𝐿𝑘 ≥ − 𝑝𝑘 log2 𝑝𝑘 = 𝐻
𝑘=0 𝑘=0
Dans le cas des formes d’ondes, le codage se pose en des termes différents : il s’agit souvent -
étant donné un débit 𝑅 - d’assurer une représentation codée du signal permettant la reconstruction
la plus fidèle possible de la source.
On supposera que les sources de formes d’ondes ont été échantillonnées à une fréquence permet-
tant une reconstruction fidèle du signal de départ et quantifiées suffisamment finement pour que dans
la suite des opérations, on puisse considérer être en présence d’une source discrète d’échantillons
𝑋(𝑛) prenant des valeurs réelles.
Par ailleurs, les échantillons 𝑋(𝑛) ne peuvent plus être considérés comme une source sans mé-
moire. Si on prend des échantillons voisins dans une image ou dans une séquence sonore, ces points se
"ressemblent" fortement. Une image est caractérisée par des objets constitués de points (les pixels,
pour "picture elements") semblables. Un son donné est également constitué d’une suite d’échan-
tillons possédant des caractéristiques similaires.
Un codeur de formes d’ondes va être constitué de 3 éléments :
– un décorrélateur dont le but est de transformer la séquence d’échantillons 𝑋(𝑛) en une sé-
quence d’échantillons décorrélés 𝑌 (𝑛). On parle de transformée décorrélative. On supposera
dans ce qui suit que des échantillons décorrélés sont indépendants (ce qui n’est vrai que dans
le cadre d’une approximation de premier ordre) ;
– un quantificateur dont le but est de limiter l’information contenue dans 𝑌 (𝑛). Il s’agit donc
d’une opération irréversible induisant des erreurs. Cependant, la quantification permet d’uti-
liser un code à longueur variable. En effet, les valeurs quantifiées 𝑌 𝑞 (𝑛) prennent des valeurs
dans un alphabet de taille limitée (finie) de valeurs réelles 𝑦−𝑁/2 , . . . , 𝑦0 , . . . , 𝑦𝑁/2−1 ;
– un codeur entropique encodant les valeurs 𝑌 𝑞 (𝑛). L’entropie de 𝑌 𝑞 (𝑛) peut être modulée par
la quantification. Le débit moyen à atteindre sera donc obtenu par un choix adéquat des
paramètres de quantification : la relation entropie-quantification fait également l’objet de ce
chapitre. Afin d’atteindre de manière constante un débit fixé, la sortie du codeur entropique
est souvent régulée par une mémoire tampon, remplie par des mots-codes à longueur variable
et vidée à débit constant. Le niveau de remplissage de la mémoire tampon peut rétroagir sur la
quantification pour éviter tout débordement : si le codeur entropique envoie trop d’information
et que l’on laisse faire, le canal va déborder. La mémoire tampon est donc là pour éviter cela
en adaptant le pas de quantification.
Dans le cas d’une image 2D, la relation entre 𝑋 et 𝑌 se décrit au moyen de coefficients de
transformée 𝑘𝑚,𝑛 (𝑖, 𝑗) comme suit :
∑∑
𝑦𝑚,𝑛 = 𝑘𝑚,𝑛 (𝑖, 𝑗)𝑥(𝑖, 𝑗)
𝑖 𝑗
Notons qu’en pratique, on n’applique jamais une transformée sur toute une image, car un point
en haut n’a en général pas de point commun avec un point en bas. On découpe bien plutôt l’image
en blocs 8 × 8 de telle sorte que la corrélation entre les points soit importante. On peut alors choisir
un pas de quantification 𝑞 pour chaque bloc.
D’autre part, décorréler revient à réaliser une analyse fréquentielle du signal, ayant pour but
de décrire le signal sous forme de valeurs fréquentielles : les basses fréquences ont des valeurs
importantes tandis que les hautes fréquences ont des valeurs faibles. Par conséquent, la transformée
utilisée a pour effet de concentrer l’information sur les coefficients d’ordre faible. Ainsi, on quantifie
plus grossièrement les variations élevées car l’oeil est moins gêné par les erreurs sur les fréquences
élevées.
Le décodeur de formes d’ondes est composé des éléments réalisant les opérations inverses :
– décodage entropique, éventuellement synchronisé par une mémoire tampon fournissant les
𝑌 𝑞 (𝑛) ;
– les 𝑌 (𝑛) sont approximés à partir des 𝑌 𝑞 (𝑛) : une erreur de quantification 𝜀 apparaît à ce
niveau ;
∼
– un signal 𝑋 est reconstruit à partir de 𝑌 𝑞 (𝑛). Ce signal est différent de 𝑋(𝑛) à cause des
erreurs de quantification. On peut décrire cette erreur mathématiquement avec les coefficients
de la transformée inverse ℎ𝑚,𝑛 (𝑖, 𝑗) (prenons le cas d’une image 2D) :
∑∑
𝑥′ (𝑖, 𝑗) = 𝑥(𝑖, 𝑗) + 𝜀(𝑖, 𝑗) = 𝑞
ℎ𝑚,𝑛 (𝑖, 𝑗)𝑦𝑚,𝑛
𝑚 𝑛
∑∑
= ℎ𝑚,𝑛 (𝑖, 𝑗)(𝑦𝑚,𝑛 + 𝜀𝑚,𝑛 )
𝑚 𝑛
∑∑ ∑∑
= ℎ𝑚,𝑛 (𝑖, 𝑗)𝑦𝑚,𝑛 + ℎ𝑚,𝑛 (𝑖, 𝑗)𝜀𝑚,𝑛
|𝑚 𝑛
{z } |𝑚 𝑛
{z }
𝑥(𝑖,𝑗) (transformée inverse) 𝜀(𝑖,𝑗) dû à la quantification
∼
Le décodage produit un signal 𝑋 plus ou moins bruité en fonction du niveau de quantification.
En effet, on observe dans cette dernière équation que si l’on ne quantifie rien, on retrouve 𝑥(𝑖, 𝑗)
sans erreur.
∼
La différence entre 𝑋 et 𝑋(𝑛) est souvent mesurée en terme de rapport signal à bruit. Pour les
formes d’ondes, on utilise également d’autres échelles de mesure de la distortion plus proche des
phénomènes de perception par un observateur (qualité visuelle ou qualité sonore).
L’effet du codage est de comprimer le signal à un certain débit 𝑅, atteint en quantifiant plus ou
moins fortement afin de limiter l’information. Si l’on désire moins d’erreurs, le débit 𝑅 augmente,
mais l’entropie 𝐻 diminue. Si on quantifie plus grossièrement, on a plus d’erreurs mais alors 𝑅
diminue. Tout est donc une question de compromis.
Le codage des formes d’ondes va donc produire des courbes débit-distorsion qui seront étudiées
mathématiquement au Chapitre 4. Ces courbes possèdent l’allure suivante :
La valeur 𝑌 (𝑛) quantifiée est reconstruite par l’approximation 𝑌 𝑞 (𝑛) = 𝑘𝑞. L’erreur de quanti-
fication 𝑌 (𝑛) − 𝑘𝑞 = 𝜀(𝑛) est une variable aléatoire comprise dans l’intervalle [−𝑞/2, 𝑞/2[.
Densité de probabilité Lorsque les échantillons 𝑋(𝑛) sont très finement quantifiés, on peut
supposer que la distribution de leurs valeurs possibles est continue.
On définit la densité de probabilité 𝑝(𝑥) comme suit :
∫ 𝑋
𝑃 (𝑋(𝑛) ≤ 𝑋) = 𝑝(𝑥) 𝑑𝑥
−∞
Moyenne La moyenne est l’espérance de la variable 𝑋(𝑛). Comme le processus est stationnaire,
elle ne dépend pas de 𝑛 :
∫ +∞
𝜇𝑥 = 𝐸{𝑋(𝑛)} = 𝑥 𝑝(𝑥) 𝑑𝑥
−∞
Σ valeurs 𝑋(𝑛) observées
≃
Nombre total de valeurs observées
Autocovariance La mesure de la corrélation entre les échantillons d’un processus se fait générale-
ment par la fonction d’autocovariance, qui mesure l’espérance du produit de l’écart d’un échantillon
par rapport à la moyenne, par l’écart d’un échantillon voisin par rapport à la moyenne
Γ𝑥 (𝑚) = 𝐸{(𝑋(𝑛) − 𝜇𝑥 )(𝑋(𝑛 + 𝑚) − 𝜇𝑥 )}
Σ(val. 𝑋(𝑛) obs. −𝜇𝑥 ) (val. 𝑋(𝑛 + 𝑚) obs. −𝜇𝑥 )
≃
Nombre total de paires de valeurs observées
Il faut noter que puisque le processus est stationnaire, Γ𝑥 (𝑚) ne dépend que de la distance entre
voisins. On peut aussi observer que Γ𝑥 (0) = 𝜎𝑥2 .
Bruit Un bruit est une séquence qui ne contient pas d’information et qui est donc décorrélée (une
image de bruit est une alternance complètement aléatoire de points).
Un bruit a donc une fonction d’autocovariance du type
Γ𝑥 (𝑚) = 𝜎 2 si 𝑚 = 0
=0 si 𝑚 =
∕ 0
Processus de Markov d’ordre 1 Les formes d’ondes (image et son) sont souvent modélisées
relativement simplement par un processus de Markov.
Un processus de Markov d’ordre 1 a une fonction d’autocovariance
Γ𝑥 (𝑚) = 𝜎𝑥2 𝜌∣𝑚∣ avec 𝜌 < 1
L’écart par rapport à la moyenne d’un échantillon et l’écart par rapport à la moyenne d’un
échantillon distant de 𝑚 du premier échantillon prennent souvent le même signe, conduisant à des
valeurs significatives de Γ𝑥 (𝑚) quand 𝑚 est petit. Par contre, pour des valeurs élevées de 𝑚, Γ𝑥 (𝑚)
tend vers 0.
Plus 𝜌 est proche de 1, plus le processus est corrélé.
[( Si le) pas( de quantification est faible, on peut considérer que 𝑝𝑦 (𝑦) est constante sur l’intervalle
𝑘 − 2 𝑞, 𝑘 + 2 𝑞 et dès lors que 𝑝𝑦 (𝑦) ≃ 𝑝𝑦 (𝑘𝑞) = 𝑝𝑘𝑦 sur cet intervalle. On écrit donc,
1 1
) [
)](𝑘+ 12 )𝑞
𝑦2
[(
𝜇𝜀 = 𝑝𝑘𝑦 − 𝑘𝑞𝑦
2 (𝑘− 21 )𝑞
2 )2
[( )) ]
𝑘 + 21 − 𝑘 − 21
) ( (( ) (
𝑘 2 1 1
= 𝑝𝑦 𝑞 − 𝑘𝑞 𝑘+ − 𝑘− 𝑞
2 2 2
= 0
Enfin le calcul de 𝜎𝜀2 peut se faire de la même manière
∫ +∞ +∞ ∫ (𝑘+ 1 )𝑞
∑ 2
2 2
𝜎𝜀 = 𝜀 𝑝𝜀 (𝜀) 𝑑𝜀 = (𝑦 − 𝑘𝑞)2 𝑝𝑦 (𝑦) 𝑑𝑦
1
−∞ 𝑘=−∞ (𝑘− 2 ) 𝑞
or
∫ +∞ +∞ ∫
∑ (𝑘+ 12 )𝑞 +∞
∑
𝑝𝑦 (𝑦) 𝑑𝑦 = 1 ≃ 𝑝𝑘𝑦 𝑑𝑦 = 𝑝𝑘𝑦 ⋅ 𝑞
−∞ 𝑘=−∞ (𝑘− 12 )𝑞 𝑘=−∞
+∞
∑ 1
⇒ 𝑝𝑘𝑦 =
𝑞
𝑘−∞
et donc
𝑞2
𝜎𝜀2 =
12
Cette valeur est aussi une bonne approximation pour les autres distributions si le pas 𝑞 de
quantification est petit, mais c’est également la valeur exacte atteinte pour une distribution uniforme
avec quantificateur linéaire. En effet, soit une telle distribution sur un intervalle 𝐷. On a alors :
+∞ ∫ (𝑘+ 1 )𝑞
∑ 2 1
𝜎𝜀2 = (𝑦 − 𝑘𝑞)2 𝑑𝑦
( 𝑘− 12
)𝑞 𝐷
𝑘=−∞
or pour une distribution uniforme, l’erreur sur chacun intervalle est nulle au milieu
et maximale aux bords ; on a la même variance de l’erreur sur chacun des 𝑁 intervalles
∫ 𝑞
𝑁 2 2 𝑁 𝑞3
= 𝑦 𝑑𝑦 =
𝐷 −𝑞 𝐷 12
2
𝑞2 𝐷
= car 𝑁 = = nombre d’intervalles de quantification
12 𝑞
Une fois le pas de quantification déterminé, il est possible de calculer les probabilités
[( ) ( ) ] ∫ (𝑘+ 1 )𝑞
1 1 2
𝑝𝑘 = 𝑃 𝑘− 𝑞 ≤ 𝑌 (𝑛) ≤ 𝑘 + 𝑞 = 𝑝𝑦 (𝑦) 𝑑𝑦 ≃ 𝑝𝑘𝑦 𝑞
2 2 (𝑘− 1 )𝑞 2
De là on peut calculer la moyenne du débit, en sortie d’un codeur entropique, des valeurs
quantifiées 𝑌 𝑞 (𝑛), représentées par les entiers 𝑘 :
+∞
∑
𝑅≃𝐻= −𝑝𝑘 log2 𝑝𝑘
𝑘=−∞
d’où ∑ 1 ∑ 1
𝐻=− 𝑝𝑘 log2 𝑝𝑘 = − log2 = log2 𝑁
𝑁 𝑁
𝑘 𝑘
( 2)
𝜎
Il est ainsi possible d’établir la courbe du rapport signal à bruit 𝜎𝑦2 en fonction du débit 𝐻.
𝜀
A nouveau, pour une distribution uniforme, quantifiée avec un quantificateur linéaire,
∫ 𝐷
𝐷2 𝑞2𝑁 2
( )
2 1 𝐷
2
2
𝜎𝑦 = 𝑥 𝑑𝑥 = = 𝑁=
−𝐷 𝐷 12 12 𝑞
2
donc
𝜎𝑦2 𝐷2 /12 𝐷2
= = = 𝑁2
𝜎𝜀2 𝑞 2 /12 𝑞2
d’où √ ( )
𝑞
𝜎𝑦2 1 𝜎𝑦2
𝐻 (𝑌 (𝑛)) = log2 𝑁 = log2 = log2
𝜎𝜀2 2 𝜎𝜀2
Il n’existe pas d’expression (analytique simple pour une distribution de Laplace. Néanmoins la
𝜎𝑦2
)
courbe liant 𝐻 (𝑌 (𝑛)) à 2 log 𝜎2 peut être vue comme une droite à 45∘ légèrement décalée de
𝑞 1
𝜀
𝜎2
sorte que l’on peut écrire 𝐻 = 1
2 log2 (𝜙 𝜎𝑦2 ) avec 𝜙 = 1, 25.
𝜀
Chapitre 4
En fait, pour mieux comprimer les échantillons 𝑋(𝑛), il vaut mieux leur faire subir préalablement
une transformation décorrélative en échantillons 𝑌 (𝑛). Nous allons montrer dans ce cas que
[( 2 ) ]
𝑞 1 𝜎𝑥
𝑅 = 𝐻(𝑌 (𝑛)) = log /𝐺𝑇
2 𝜎𝜀2
où 𝐺𝑇 est le gain de codage lié à l’introduction de la transformation.
Dans cette dernière formule, 𝜎𝑥2 correspond à la variance du signal de forme d’onde et 𝜎𝜀2 corres-
pond à la variance de l’erreur sur la forme d’onde reconstruite après décodage. 𝐻(𝑌 𝑞 (𝑛)) représente
quant à lui le débit moyen nécessaire pour encoder les coefficients décorrélés quantifiés.
Inversement, le vecteur numéro 𝑘 peut être reconstruit à partir des coefficients transformés
𝑁
∑ −1
𝑋(𝑘𝑁 + 𝑗) = ℎ𝑗,𝑖 𝑌𝑖 (𝑘) 𝑗 = −𝑁/2, . . . , 0, . . . , 𝑁/2 − 1
𝑖=0
On constate ainsi que la séquence 𝑋(𝑛) est décomposée en 𝑁 séquences 𝑌𝑖 (𝑘) de coefficients
transformés contenant chacun 𝑁 fois moins d’échantillons que 𝑋(𝑛). La séquence 𝑋(𝑛) est recons-
truite par vecteurs de 𝑁 échantillons, chaque vecteur étant défini comme une somme pondérée de
𝑁 vecteurs prédéfinis [ℎ0,𝑖 , ℎ1,𝑖 , . . . , ℎ𝑁 −1,𝑖 ] pondérés par les coefficients transformés 𝑌𝑖 (𝑘).
Le débit par échantillon 𝑋(𝑛) pour encoder ainsi la forme d’onde est donné par
𝑁 −1 𝑁 −1
( )
1 ∑ 𝑞 1 ∑1 𝜎𝑌2𝑛
𝐻 = 𝐻(𝑌𝑛 (𝑘)) = log2 𝜙𝑛 [bits/échantillon]
𝑁 𝑁 2 𝜎𝜀2𝑛
𝑛=0 𝑛=0
avec 𝜙 = 1 si 𝑌𝑖 ≡ uniforme;
𝜙 = 1.25 si 𝑌𝑖 ≡ Laplace.
𝑁 −1
( ) ⎡(
𝑁 −1
)1/𝑁 ⎤
2
𝜎 𝑌𝑛 𝜎 2
1 ∑ 1 1 ∏
𝐻 = log2 𝜙𝑛 2
= log2 ⎣ 𝜙 𝑛 2 𝑌𝑛 ⎦
𝑁 2 𝜎𝜀𝑛 2 (𝑞 /12)
𝑛=0 𝑛=0
moyenne géométrique
zv }| {
u𝑁 −1
u∏
𝑁
⎷ 𝜙𝑛 𝜎𝑌2𝑛 v
u𝑁 −1
1 𝑛=0 u∏
= log2 √ avec ⎷
𝑁
𝜙𝑛 𝜎𝑌2𝑛 = 𝐺−1 2
𝑇 𝜙𝑚 𝜎 𝑥
2 −1
𝑁∏
𝑁 𝑛=0
𝑞 2 /12
𝑛=0
𝜎𝑥2
( )
1 −1
= log2 𝐺𝑇 𝜙𝑚 2
2 𝑞 /12
où 𝐺𝑇 est le gain de codage dû à la transformée.
Pour analyser d’où provient ce gain de codage, examinons plus précisément les termes intervenant
dans l’expression de 𝐻. Tout d’abord, et en supposant les variables centrées,
Par ailleurs, le signal reconstruit est entaché d’un bruit dû à la quantification des coefficients
𝑌𝑖 (𝑘).
𝑁 −1
ℎ𝑗,𝑖 𝑌𝑖𝑞 (𝑘)
∑
˜
𝑋(𝑘𝑁 + 𝑗) =
𝑖=0
𝑁
∑ −1
= ℎ𝑗,𝑖 [𝑌𝑖 (𝑘) + 𝜀𝑖 (𝑘)]
𝑖=0
donc
˜
𝜀(𝑘𝑁 + 𝑗) = 𝑋(𝑘𝑁 + 𝑗) − 𝑋(𝑘𝑁 + 𝑗)
𝑁
∑ −1
= ℎ𝑗,𝑖 𝜀𝑖 (𝑘)
𝑖=0
d’où
et par conséquent
𝑁 −1 𝑁 −1 𝑁 −1 2
∑ 1 2 ∑ ∑ ℎ𝑗,𝑖 𝑞 2
𝜎𝜀2 = 𝜎𝜀𝑗 =
𝑁 𝑁 12
𝑗=0 𝑗=0 𝑖=0
d’où ⎛ ⎞
𝑁 −1 𝑁 −1
𝑞2 ∑ ∑ ℎ2𝑗,𝑖
= 𝜎𝜀2 / ⎝ ⎠
12 𝑁
𝑗=0 𝑖=0
En exprimant Γ𝑥 (𝑚) sous la forme markovienne Γ𝑥 (𝑚) = 𝜎𝑥2 𝑟𝑥 (𝑚), on obtient finalement :
⎡ ⎤
⎢[ ]1/𝑁 [𝑁 −1 (𝑁 −1 𝑁 −1 )]1/𝑁 ⎡𝑁 −1 𝑁 −1 ⎤ ⎥
⎢ −1
⎢ 𝑁∏ ∑ ∑ ℎ2𝑗,𝑖 𝜎 2 ⎥
1 ∏ ∑ ∑
𝑘𝑛,𝑖 𝑘𝑛,𝑖′ 𝑟𝑥 (𝑖 − 𝑖′ ) ⎦ 𝑥⎥
⎥
𝐻 = log2 ⎢ 𝜙𝑛 ⎣
2
2 ⎢ 𝑁 𝜎𝜀 ⎥
⎢ 𝑛=0 𝑛=0 𝑖=0 𝑖′ =0 𝑗=0 𝑖=0 ⎥
⎣| {z }| {z }| {z } ⎦
→ 𝜙𝑚 → 𝐺−1
𝜎 → 𝐺−1
𝜀
[ ( 2) ]
1 𝜎𝑥
𝐻= log2 𝜙𝑚 /(𝐺 𝐺
𝜎 𝜀 )
2 𝜎𝜀2
Le gain de codage se compose ainsi du produit de deux termes : 𝐺𝜎 est lié au noyau de la
transformée et indique l’inverse du produit des variances des coefficients transformés et 𝐺𝜖 est lié à
la norme des fonctions de base de la transformée.
On peut montrer que si la transformée est normalisée (𝐺𝜖 = 1), alors la maximisation de 𝐺𝜎
conduit à choisir la transformée décorrélative, c’est-à-dire celle déterminée par
Exemple Soit le processus 𝑋(𝑛) suivant un processus de Markov d’ordre 1. Soit la transformée
normalisée d’ordre 2 définie par
[ √ √ ]
1/ √2 1/√2
= [𝑘𝑚,𝑛 ]
−1/ 2 1/ 2
et donc [ √ √ ]
1/√2 −1/√ 2
[ℎ𝑖,𝑗 ] = = [𝑘𝑚,𝑛 ]−1
1/ 2 1/ 2
Graphiquement, la transformée peut être visualisée sur la figure suivante :
Les points représentent des paires de points [𝑋(2𝑘), 𝑋(2𝑘 + 1)] que l’on peut observer. Les
valeurs 𝑋(𝑛) sont uniformément distribuées sur l’intervalle [0, 𝐷[ mais par contre les paires de
points successifs sont concentrés autour de la droite 𝑋(2𝑘) = 𝑋(2𝑘 + 1) à cause de la corrélation
du processus.
{( )2 }
𝑋(2𝑘) + 𝑋(2𝑘 + 1)
𝜎𝑌20 = 𝐸 √
2
1 { 1 {
𝐸 (𝑋(2𝑘))2 + 𝐸 {𝑋(2𝑘) 𝑋(2𝑘 + 1)} + 𝐸 (𝑋(2𝑘 + 1))2
} }
=
2 2
1 2 1 2
= 𝜎 + Γ𝑥 (1) + 𝜎𝑥
2 𝑥 2
= 𝜎𝑥 + 𝜌𝜎𝑥 = (1 + 𝜌)𝜎𝑥2
2 2
{( ) }
2 −𝑋(2𝑘) + 𝑋(2𝑘 + 1) 2
𝜎 𝑌1 = 𝐸 √
2
= (1 − 𝜌)𝜎𝑥2
Le codage par prédiction constitue une alternative au codage par transformée. Le principe
consiste à encoder (quantification et codage entropique) la différence entre l’échantillon à trans-
mettre 𝑋(𝑛) et une valeur prédite 𝑋(𝑛)
ˆ calculée à partir des échantillons . . . , 𝑋(𝑛
˜ − 3), 𝑋(𝑛
˜ −
2), 𝑋(𝑛 − 1) disponibles au décodeur.
˜
Le prédicteur dans le schéma ci-dessus a pour fonction de mémoriser un certain nombre d’échan-
tillons précédant 𝑋(𝑛) tels qu’ils sont reçus au décodeur (c’est le sens de la boucle prévue au codeur).
A cause du bouclage de l’erreur de quantification, le gain de codage est plus difficile à calculer.
On calcule les coefficients du prédicteur en général en minimisant la variance de la séquence
𝑌 (𝑛).
Deuxième partie
Exercices
Séance 1
Exercice 1
Calculer un point de la courbe débit-distorsion pour la distribution suivante, avec un pas de
quantification 𝑞 = 𝐷/3.
Exercice 2
Un processus de Markov d’ordre 1 est caractérisé par le fait que 𝐸{𝑥(0) 𝑥(1)}
[ =1 𝜌 𝜎1𝑥 et
2
]
√ √
𝐸{𝑥(𝑛) 𝑥(𝑛 + 𝑘)} = 𝜌∣𝑘∣ 𝜎𝑥2 (on suppose que 𝜇𝑥 = 0). Montrez que la transformée 2 2
− √12 √1
2
est orthogonale. Donnez le gain de codage de cette transformée.
Exercice 3
Donnez un code de Huffman pour l’alphabet dont les probabilités sont 𝑎 = 0.9 ; 𝑏 = 0.05 ;
𝑐 = 0.05.
Séance 2
Exercice 1
Soient les variables aléatoires 𝑋 et 𝑌 ayant la distribution de probabilité 𝑝(𝑥, 𝑦) suivante :
Y=
𝑃 (𝑋, 𝑌 ) 0 1 2
0 1/9 1/9 1/9
X=1 1/9 0 2/9
2 1/9 2/9 0
Exercice 2
Une urne contient des boules rouges, blanches et noires avec les probabilités 𝑝𝑅 , 𝑝𝐵 et 𝑝𝑁 . On
considère comme variable aléatoire X, la couleur d’une boule tirée au hasard.
(a) Montrer que l’entropie de l’événement consistant à tirer 𝑘 boules avec remise est donnée par la
relation : 𝐻(𝑋1 , 𝑋2 , . . . , 𝑋𝑘 ) = 𝑘𝐻(𝑋) où 𝐻(𝑋) est l’entropie d’un seul tirage.
(b) Lorsque les boules ne sont pas remises, donner un argument justifiant la relation 𝐻(𝑋𝑖 ) = 𝐻(𝑋).
(c) Démontrer cette relation dans le cas de 2 tirages.
(d) Utiliser cette relation pour montrer que l’entropie de l’événement consistant à tirer 𝑘 boules
sans remise est inférieure à celle avec remise.
Exercice 3
On dit que les variables aléatoires 𝑋, 𝑌 et 𝑍 forment une chaîne de Markov 𝑋 → 𝑌 → 𝑍 si la
probabilité conditionnelle de 𝑍 dépend seulement de 𝑌 . On écrit alors 𝑝(𝑥, 𝑦, 𝑧) = 𝑝(𝑥)𝑝(𝑦∣𝑥)𝑝(𝑧∣𝑦).
(a) Démontrer que 𝑋 et 𝑍 sont indépendantes conditionnellement à 𝑌 : 𝑝(𝑥, 𝑧∣𝑦) = 𝑝(𝑥∣𝑦)𝑝(𝑧∣𝑦).
(b) Démontrer que 𝐼(𝑋; 𝑌 ) ≥ 𝐼(𝑋; 𝑍) en utilisant le résultat du (a) et la règle de la chaîne 1 pour
l’information mutuelle 𝐼(𝑋; 𝑌, 𝑍).
(c) Soient 𝑋, 𝑌 et 𝑍 des variables aléatoires ayant une distribution de probabilité sur les ensembles
𝒳 de taille 𝑛, 𝒴 de taille 𝑘 et 𝒵 de taille 𝑚. Démontrer que si on a 𝑛 > 𝑘 et 𝑚 > 𝑘, alors
𝐼(𝑋; 𝑍) ≤ log2 𝑘.
(d) Expliquer ce qu’il se passe lorsque 𝑘 = 1.
1. La règle de la chaîne pour l’information mutuelle est donnée par
𝑛
∑
𝐼([𝑋1 , . . . , 𝑋𝑛 ]; 𝑌 ) = 𝐼(𝑋𝑖 ; [𝑌 ∣𝑋1 , . . . 𝑋𝑖−1 ])
𝑖=1
Exercice 4
Définition : 𝜌(𝑥, 𝑦) est une distance si elle vérifie les propriétés suivantes ∀ 𝑥, 𝑦, 𝑧 :
1) 𝜌(𝑥, 𝑦) ≥ 0
2) 𝜌(𝑥, 𝑦) = 𝜌(𝑦, 𝑥)
3) 𝜌(𝑥, 𝑦) = 0 si et seulement si 𝑥 = 𝑦
4) 𝜌(𝑥, 𝑦) + 𝜌(𝑦, 𝑧) ≥ 𝜌(𝑥, 𝑧)
(a) Soit 𝜌(𝑋, 𝑌 ) = 𝐻(𝑋∣𝑌 ) + 𝐻(𝑌 ∣𝑋). Vérifier que 𝜌(𝑋, 𝑌 ) = 𝐻(𝑋, 𝑌 ) − 𝐼(𝑋; 𝑌 ) = 2𝐻(𝑋, 𝑌 ) −
𝐻(𝑋) − 𝐻(𝑌 ).
(b) Démontrer que 𝜌(𝑋, 𝑌 ) vérifie toutes les propriétés d’une distance si la notation 𝑋 = 𝑌 signifie
qu’il existe une correspondance biunivoque (bijection) entre 𝑋 et 𝑌 . (Conseil : Pour démontrer la
dernière propriété, utiliser la subadditivité forte 2 )
2. subadditivité forte :
Séance 3
Exercice 1
Lequel de ces codes ne peut pas être un code de Huffman ?
(a) {1, 01, 00}
(b) {00, 01, 10, 110}
(c) {01, 10}
Exercice 2
Considérez la variable aléatoire avec la loi de probabilité dans le tableau suivant :
𝑥∈𝒳 𝑝(𝑥)
𝑥1 0.5
𝑥2 0.26
𝑥3 0.11
𝑥4 0.04
𝑥5 0.04
𝑥6 0.03
𝑥7 0.02
Exercice 3
Des mots comme "Stop" ou "Feu" sont petits, pas car leur utilisation est fréquente, mais peut-
être car on souhaite minimiser le temps nécessaire pour les dire. Supposez que 𝑋 = 𝑖 avec probabilité
𝑝𝑖 , 𝑖 = 1, . . . , 𝑚. Soit ℓ𝑖 le nombre de bits nécessaire pour coder 𝑋 = 𝑖, et 𝑐𝑖 le coût par lettre du
mot 𝑋𝑖 . Le coût moyen du code est donc
𝑚
∑
𝐶= 𝑝𝑖 𝑙𝑖 𝑐𝑖
𝑖=1
Ignorez, pour cette minimisation, les contraintes qui imposent que les ℓ𝑖 soient des entiers.
Calculez les longueurs optimales ℓ★𝑖 .
(b) Comment pouvez-vous utiliser l’algorithme de Huffman pour minimiser 𝐶 sur tous les codes
(binaires) uniquement décodables ?
Exercice 4
Soit 𝒳 = {1, 2, 3, 4, 5}. Considérez les deux lois de probabilité 𝑝 et 𝑞 définies sur cet alphabet,
et les deux codes 𝐶1 et 𝐶2 dans le tableau suivant :
Exercice 5
On nous donne 6 bouteilles de vin. On sait qu’une des bouteilles est mauvaise. L’analyse vi-
suelle des bouteilles permet de déterminer la probabilité que chacune d’entre elles soit celle qui est
mauvaise :
bouteille #𝑖 𝑝𝑖
1 7/26
2 5/26
3 4/26
4 4/26
5 3/26
6 3/26
Nous souhaitons déterminer la mauvaise bouteille. Supposez que l’on goûte les vins un à un.
Choisissez l’ordre dans lequel ils doivent être goûtés pour que le nombre d’essais soit minimisé.
Rappelez-vous que si les 5 premières bouteilles sont bonnes, vous ne devez pas goûter la dernière.
(a) Quelle bouteille doit être testée en premier ?
(b) Quel est le nombre moyen d’essais qui doivent être réalisés ?
Admettez maintenant que vous pouvez goûter le mélange du contenu de plusieurs bouteilles, au
lieu de les goûter une à une.
(c) Quelle est la valeur minimale du nombre moyen de tests qui doivent être faits pour déterminer
la mauvaise bouteille ?
(d) Quel mélange doit être testé en premier ?
∑ 𝑝𝑖
3. Distance de Kullback-Leibler : 𝐷(𝑝∣∣𝑞) = 𝑝𝑖 log 𝑞𝑖
qui mesure la distance entre les distributions de probabilité
𝑖