Vous êtes sur la page 1sur 58

Département de génie électrique

Master en Systèmes Intelligents et Energie - SIE

Protocole de communication
&
Codage
- Codage entropique -

Pr. Hicham Ghennioui


A.U. 2023-2024
Plan du chapitre
 Rappel sur le calcul des probabilité
 Généralités sur le codage source
 Caractérisation de l’information
 Caractérisation d’un codeur source
 Classification des codes
 Condition de préfixe et représentation arborescente d’un
code
 Procédure générale de construction d’un code instantané
 Inégalité de Kraft-Millan et Codes optimaux
 Théorème de codage de source
 Evaluation des performances de codage source
Pr H. Ghennioui 2

Rappel sur le calcul des probabilités
- Probabilité d’une intersection d’événements (1/2) -

Considérons deux variables aléatoires discrètes (V.A.D.) X et


Y de valeurs respectives x1, …, xm et y1, …, yn avec des
probabilités respectives p(x1), …, p(xm) et p(y1), …, p(yn).
 Probabilité conjointe : la probabilité composée p(xi,yj) est
la probabilité d’avoir simultanément xi et yj.
 Probabilité marginale : c’est la probabilité p(xi) d’avoir
individuellement xi.
 Relation entre probabilités conjointe et marginale

Pr H. Ghennioui 3
Rappel sur le calcul des probabilités
- Probabilité d’une intersection d’événements (2/2) -

 Probabilités conditionnelles
 Pour des V.A.D dépendantes

 Formules de Bayes

 Pour des variables indépendants

Pr H. Ghennioui 4
Rappel sur le calcul des probabilités
- Probabilité d’une réunion d’événements (1/1) -

 Définition : probabilité d’avoir soit xi soit yj ou soit tous les


deux,

 Généralisation : soit M événements z1, z2, …, zm équiprobables


de probabilités individuelles respectives p1, p2, …,pm (p1= p2=
…,=pm=p ), on a: Pr(z1, z2, …, zm ) ≤ p (≤Mp=M/M=1 ,0 ≤ p
≤1)
 Règles des probabilités totales : lorsque xi et yj sont
mutuellement exclusifs (impossible d’avoir xi et yj
simultanément), on a,
 Deux événements A et B sont mutuellement exclusifs si AB=

(La réalisation d’un événement empêche la réalisation de


l’autre).
 P(B)≠0 et P(B/A)=0  A et B sont mutuellement exclusifs.
Pr H. Ghennioui 5
Rappel sur le calcul des probabilités
- Tableau des probabilités conjointes (1/1) -

Pr H. Ghennioui 6
Rappel sur le calcul des probabilités
- Exemple -
 Exemple : On prend un jeu de cartes composé de 54
cartes et duquel on retire les 2 « jokers ».
 P(x=2)= 1/52=0.0192
 P(x=)= 13/52=0.25
 P(x=carte quelconque) = 1
 P(x=joker)=  (impossible)
 Exemple d’événements mutuellement exclusifs :
impossible d’obtenir à la fois un  et un .
 P(/A AA A)= 12/48=0.25=P() (événements indépendants).
 P(/   )= 13/48=0.2708P () (événements dépendants).

Pr H. Ghennioui 7
Généralités sur le codage source
- Objectif du codage source -

 Transformer la séquence issue de S en une séquence


normalisée ne présentant quasiment plus la redondance
de sorte à réduire la durée de transmission pour un
même débit.
 Le codeur source doit conserver l’information à
transmettre ou à stocker après codage,

Pr H. Ghennioui 8
Généralités sur le codage source
- Exemples d’application -(1/7)
 Transmission d’un Facsimile (Fax)
 La page à transmettre se compose des points représentés
par les éléments binaires (e.b.) : « 1 » pour un point noir et
« 0 » pour un point blanc.
 Les dimensions de la page sont 8.5x11 pouces (pouce=2.54
cm) .
 La résolution est de 200 points par pouce (4.10 4 points par
pouce carré).
 Le nombre d’e.b. nécessaire pour représenter cette page est
8.5x11x4x104=3.74 Mbits.
 La transmission de la page au moyen d’un modem de 14.4
kbps prend 4 minutes et 20 secondes!!!!
 Grâce aux techniques de codage, la durée de
transmission est réduite à 17 secondes.
Pr H. Ghennioui 9
Généralités sur le codage source
- Exemples d’application -(2/7)
 Transmission d’un Facsimile (Fax) – Codes Huffman –

Pr H. Ghennioui 10
Généralités sur le codage source
- Exemples d’application -(3/7)
 Transmission d’un Facsimile (Fax) – Codes Huffman –

Pr H. Ghennioui 11
Généralités sur le codage source
- Exemples d’application -(4/7)
 Transmission d’un Facsimile (Fax) – Codes Huffman –

Pr H. Ghennioui 12
Généralités sur le codage source
- Exemples d’application -(5/7)
 Transmission d’un Facsimile (Fax) – Exemple compression –

Run Length : 2W 5B 514W


2B
Modified Huffman : 0111 0011 01100101 0111 10

Taux de compression 22/523=4.065%

Pr H. Ghennioui 13
Généralités sur le codage source
- Exemples d’application -(6/7)
 Stockage des fichiers audio MP3
 Le signal musical est analogique stéréo.
 Pour une qualité CD, le canal de droite et celui de gauche
sont échantillonnés à 44.1 kHz et les échantillons sont
quantifiés sur 16 bits.
 Une seconde de musique stéréo au format CD-audio génère
44.1x103*16*2= 1.411 Mbits.
 En employant le codage MP3, cette valeur chute à 128
kbits sans perte perceptible de la qualité son.
 Une minute de musique stéréo exige 128x103x60/8=1
Mbyte.
 Un CD-ROM de capacité 650 Mbytes, peut stocker plus de
10 heures de musique stéréo MP3.
Pr H. Ghennioui 14
Généralités sur le codage source
- Exemples d’application -(7/7)
 Lignes téléphoniques
 En utilisant une ligne téléphonique analogique : la largeur de
bande de la ligne est limitée à B=4 kHz, la ligne transmet des
signaux analogiques avec un RSB= 30 dB et peut être
modélisée par un canal à bruit gaussien additif et sans
mémoire.
 La théorie de l’information permet de calculer la capacité de
la ligne par la formule suivante :
 C=Bxlog2(1+RSB)lin)=39 ,8698 bits/s4 kbytes/s
 En utilisant une ligne téléphonique numérique : la fréquence
d’échantillonnage est de 8 kHz et chaque échantillon est codé
sur 8 bits. Le débit est alors de 8 kbytes/s.
 La vitesse de téléchargement est deux fois plus haute qu’elle
est dans le cas des lignes analogiques.
Pr H. Ghennioui 15
Caractérisation de l’information
- Mesure de l’information- (1/2)
 Modélisation : soit xi un message élémentaire avec une probabilité
d’émission (d’occurrence) p(xi)=pi. La quantité d’information h(xi)
qu’il apporte est une fonction décroissante de son improbabilité 1/pi,

 Propriétés intuitives : x et y sont deux V.A. indépendantes,


 Ppt. 1 : si la probabilité d’émission d’un message x est certaine alors la quantité
d’information qu’il apporte est nulle : h(x)=f(1)=0.
 Ppt. 2 : la quantité information apportée par x et y est la somme des quantités
d’information de chacun: h(x,y)=h(x)+h(y) (propriété d’additivité).
 Ppt. 3 : la quantité information apportée par x et y est supérieure à la quantité
d’information apportée par x ou celle apportée par y : h(x,y)≥h(x). (propriété de
décroissance).
 Ppt. 4 : x et y sont indépendantes : h(xₓy)=h(x)+h(y) (équation fonctionnelle de
l’information).

Pr H. Ghennioui 16
Caractérisation de l’information
- Mesure de l’information - (2/2)
 Spécification de la quantité d’information: la fonction qui vérifie
les quatre propriétés est la fonction logarithme, la solution est donc :
h(x)=-λlog(p(x))
λ est une constante arbitraire qui fixe la base de logarithme.
 Unités: λ consiste à choisir une unité de la quantité de l’information,
λ= logb(e)=1/loge(b)
b est l’unité de l’information.
 Formule de Hartely proposée en 1928 (choix le plus fréquent) : b=2 et l’unité est
le Shannon : h(x)=-log2(p(x)) (Télécommunications numériques).
 Le nit (natural unit): si λ=1, h(x)=-ln(p(x)) : 1nit=1/ln(2)bit=1.44 Sh.
 Le dit (decimal unit): h(x)=-log10(p(x)) : 1dit=1/log10(2)bit=3.32 Sh.
 Exemples
 Chiffre décimal : h(x)=-log2(0.1)=3.32 Sh.

Pr H. Ghennioui 17
Caractérisation de l’information
- Entropie d’une source - (1/3)
 Contexte : soit une source aléatoire discrète, émettant K
messages élémentaires x1, …, xK, de probabilités
d’occurrence respectives p1, …, pK. L’émission de la
source est modélisée par une V.A. X avec pi=P{X=xi} pour
tout i  {1, …, K}.
 Définition : l’entropie de la source est la quantité
d’information en moyenne de cette dernière.
 Relation de Shannon établie en 1948 : l’entropie H(x) est
définie comme l’espérance mathématique de la quantité
d’information h(xi) de chaque message élémentaire xi,

Pr H. Ghennioui 18
Caractérisation de l’information
- Entropie d’une source - (2/3)
 Exemple : V.A. X binaire

Pr H. Ghennioui 19
Caractérisation de l’information
- Entropie d’une source - (3/3)
 Propriétés de l’entropie
 Ppt. 1 : si les messages élémentaires (événements) sont
équiprobables, l’entropie est maximale et elle vaut log2(K) : le
système est moins bien défini et les messages apportent le
plus d’information.
 Ppt. 2 : l’information est minimale lorsque l’un des messages
élémentaires est certain : le système est parfaitement connu
et aucun apport d’information est possible.
 Ppt. 3 : pour K événements équiprobables, l’entropie croit
avec K.
 Ppt. 4 : l’entropie est une fonction positive, continue et
symétrique en ses arguments.

Pr H. Ghennioui 20
Caractérisation de l’information
- Redondance - (1/1)

 Définition : l’entropie relative d’une source est définie


par H/Hmax<1 et la redondance est définie par:

=1-H/Hmax.
 Remarque : si les symboles de la sources sont
équiprobables alors la redondance de cette source est
nulle.

Pr H. Ghennioui 21
Caractérisation de l’information
- Taux d’information - (1/1)
 Définition : le débit (taux) de l’information est le produit de
l’entropie de la source par le nombre de symboles émis par
seconde,

(Débit temporel)
m est la durée moyenne d’émission de chaque symbole.
 Remarque : Le débit d’information moyen, exprimé en
[Sh/s] est équivalent à la cadence d’émission, exprimée en
[Bits/s] seulement pour une source de symboles binaires
équiprobables ou exprimée en [Bauds] quand. celle−ci
coïncide à la vitesse de modulation de la voie.

Pr H. Ghennioui 22
Caractérisation d’un codeur source
- Vocabulaire- (1/1)
 On considère une source S, de symboles s1, s2, …, sN
avec des probabilités p(s1), p(s2), …, p(sN).
 Le mot « message » ou « mot-source » désigne les éléments N-
aires ou leur extension émis par la source discrète S.
 Codage source transforme les symboles si, i=1, …, N, en une
séquence X de symboles xj, j=1 …, D. Les xj sont appelés
symboles codés ou symboles élémentaires.
 L’alphabet d’entrée peut être quelconque et celui de sortie est le
plus souvent binaire : D=2. L’alphabet de sortie est appelé
alphabet de sortie ou alphabet codeur.
 S est dite source primaire et X est dite source secondaire.
 Une chaine Ci (ou mot) de l’alphabet codeur est appelé mot-code.
C’est un regroupement de symboles codés d’un message donné.
Sa longueur est notée li=l(Ci).
Pr H.
Un code C est un ensemble de mots-codes Ci.
 Ghennioui 23
Caractérisation d’un codeur source
- Exemple - (1/1)
Une source de 4 symboles s1, s2, s3, s4.

 As={s1, s2, s3, s4} est l’alphabet d’entrée

 Ax={0, 1} est l’alphabet de sortie ou alphabet codeur

 C1=00, C2=01, C3=11, C4=10 sont les 4 mots-codes des

4 symboles s1, s2, s3, s4.

 C={C1, C2, C3, C4}={00, 01, 11, 10} est le code.

 Les 4 symboles codés possèdent la même longueur li=2,


i=1, …, 4.
Pr H. Ghennioui 24
Caractérisation d’un codeur source
- Caractéristiques - (1/1)
 Longueur moyenne d’un code:
 Définition : c’est la compacité du code définit par,
N
L  E li    p ( si )li .
 Plus L est faible plus le débiti 1 binaire de sortie sera réduit
 Théorème : la longueur moyenne d’un code est limité
inférieurement par H(S)/log2(D),
H (S )
L  Lmin .
log 2 ( D)
 Efficacité d’un codage:
 Définition : c’est le rapport entre la longueur moyenne

minimale et la longueur moyenne,


Lmin H (S ) H (X )
  
Pr H. Ghennioui L L log 2 ( D) log 2 ( D) 25
Caractérisation d’un codeur source
- Caractéristiques - (2/2)
 Redondance du code:
 Définition : la redondance est définie par,
log 2 ( D)  H ( X )
  1   .
log 2 ( D)
 Log2(D) est appelé la capacité du code.
 Si les symboles codés sont équiprobables alors la redondance
est nulle et l’efficacité vaut 1.
 Idée naturelle de codage: associer les longueurs de
mots-codes les plus grandes (resp. courtes) aux messages
les moins (resp. plus ) probables.

Pr H. Ghennioui 26
Classification des codes (1/2)
 Code à décodage unique:
 Définition : toute suite de mots-codes ne peut être interprétée
(décodée) que d’une seule manière.
 Exemple : AS={a, b, c, d}, AX={0,1}, C1={1, 10, 11, 01}, AS={a, b, c },
C2={0, 11, 010}
C1 n’est pas un code à décodage unique car la suite 0111 peut être interprétée
comme « daa » ou « bc ».
C2 est un code à décodage unique.
 Code régulier ou non-singulier:
 Définition : tous les mots-codes sont distincts
 Exemple : AS={a, b, c, d}, AX={0,1}, C1={00, 01, 01, 11}, C2={1, 10, 110, 111}
C1 est un code singulier et C2 est un code régulier.
 CNS : un code est à décodage unique sssi l’extension du code
est un code régulier.
Pr H. Ghennioui 27
Classification des codes (2/2)
 Code déchiffrable (séparable):
 Définition : à la réception d’une suite de symboles codés, il faut
pouvoir trouver le début et la fin des mots-codes.
 Exemple : AS={a, b, c, d}, AX={0,1}, C={0, 01, 011, 0111} est déchiffrable
(séparateur ‘0’).
 CS (mais non optimum en capacité) : utiliser des mots-codes
de longueur constante ou d’utiliser un séparateur par exemple.
 Code instantané (ou irréductible):
 Définition : reconnaitre chaque mot à mesure qu’il se présente
sans devoir se référer aux symboles qui suivent.
 Exemple : AS={a, b}, AX={0,1}, C={0, 000001}
n’est pas un code instantané : si on reçoit 0000001, ce n’est qu’à la réception
de ‘1’ final qu’on identifiera le premier ‘0’ du message étant le code d’un ‘a’.
 AS={s1, s2, s3, s4}, AX={0,1}, C1={0, 10, 110, 1110 }, C2={0, 01, 011, 0111 }
C1 utilise ‘0’ comme indicateur de fin de mot. Il est instantané. C2 n’est pas
Pr H. Ghennioui 28
instantané (0 comme indicateur de début du moy)
Condition de préfixe et représentation
arborescente d’un code (1/1)
 Code préfixe:
 Définition : un code pour lequel aucun mot n’est le début d’un
autre mot.
 CNS de préfixe : un code est instantané sssi aucun mot-code
n’est le préfixe d’un autre mot-code.
 Représentation arborescente d’un code:
 Principe : tout code peut être décrit par un arbre dont les
nœuds sont des regroupements de symboles de la source
secondaire.
 CN de préfixe : ne choisir comme mots-codes que des
extrémités de branche. Les autres nœuds n’ont pas de sens.

Pr H. Ghennioui 29
Exemple (1/1)
 Données: AS={s1, s2, s3, s4}, , AX={0,1}, C1={00, 01, 10,
11}, C2={0, 10, 110, 1110}
 Représentation arborescente:
Racine

2 branches 0

0 1 10
110
00 01 11
10 1110
C2
C1

Pr H. Ghennioui 30
Procédure générale de construction
d’un code irréductible (1/1)
 Utiliser un arbre dont chaque branche représente un symbole
de la source secondaire
 Choisir les mots-codes de telle sorte que pour tout couple de
mots, le chemin permettant de conduire à l’un des mots ne
soit pas inclus dans le chemin menant à l’autre mot.

Pr H. Ghennioui 31
Exemple (1/1)
 Données: AS={s1, s2, s3, s4}, , AX={0,1}, C1={0, 10, 110,
111}, C2={0, 11, 110, 111}
 Représentation arborescente:
Racine
- C1 est un code irréductible
(code préfixe).
0 1
- C2 n’est pas un code
11
00 01 10 préfixe car le chemin
menant à ‘11’ est inclus
100 101 110 111 dans le chemin menant à
‘110’ et à ‘111’.

Pr H. Ghennioui 32
Inégalité de Kraft-Millan et codes
optimums (1/2)
 Théorème de Kraft : CNS d’existence d’un code instantané
pour coder N messages avec des mots-codes de longueur
respectives l1, l2, …, lN construits à partir des symboles codés
D-aire est, N

D
i 1
 li
 1.

 Théorème de Mac-Millan : généralise le théorème de Kraft


à tout code déchiffrable. On déduit un code déchiffrable
pourra être toujours remplacé par un code instantané de
même longueur.

Pr H. Ghennioui 33
Inégalité de Kraft-Millan et codes
optimums (2/2)
 Code instantané complet: lorsque les symboles codés sont
indépendants et équiprobables alors on,
N

  1.
D  li

i 1

 Code optimal: C’est un code dont l’efficacité est maximale et


la longueur moyenne est minimale. Pour un tel code,
l’inégalité de Kraft-Millan est une égalité.

Pr H. Ghennioui 34
Techniques de codage source
- Généralités - (1/2)
 Il existe deux grandes familles de systèmes de compression :
 Les systèmes de compression sans perte :(réversibles).
 Les systèmes de compression avec perte (non-réversibles).
 Les méthodes compression sans perte donnent souvent des
gains de compression très important par rapport aux
méthodes de compression avec perte.
 Le choix du système de compression dépend de la nature
des données,
 Compression sans perte est utilisée pour les données de type
texte ou numérique
 Compression avec perte est utilisée pour les données de type
parole et image.
Pr H. Ghennioui 35
Techniques de codage source
- Généralités - (2/2)
 Codage réversible (compression sans perte) : il existe
différentes techniques de codage réversibles. On peut les
classer en deux types de classes :
 Codage à longueur fixe.
 Codage à longueur variable.
 Rappel : une règle générale du codage optimal consiste à
associer les mots-codes les plus courts aux symboles de
sources dont la probabilité est la plus élevée (li=-log2(Pi)).

Pr H. Ghennioui 36
Techniques de codage source
- Algorithme de Shannon-Fano -(1/2)
 Codage de Shannon-Fano (1949): c’est un cas particulier
du codage de Shannon dont l’alphabet codeur est binaire.
 Principe :

 Classer les symboles de la source primaire par

probabilité décroissante
 Diviser l’ensemble S des symboles de source primaire

en deux ensembles équiprobables S0 et S1.


 Recommencer l’opération jusqu’à obtenir des
ensembles ne contenant que des éléments isolés.
 Coder ainsi chaque symbole de source primaire avec un
mot code de longueur li=-log2(p(si)).
N N
On a alors,
Pr H. Ghennioui  i
p (
i 1
s )  1   .
2  li

i 1
37
Techniques de codage source
- Algorithme de Shannon-Fano -(2/2)
 Exemple : AS={s1, s2, …, s7}, , Ps={0.25, 0.25, 0.25, 0.125,
0.0625, 0.03125, 0.03125}, AX={0,1},
si pi Etape 1 Etape 2 Etape 3 Etape 4 Etape 5 Code
s1 0.25 0 (0.5) 00
0
s2 0.25 1 01
s3 0.25 0 10
s4 0.125 1 (0.5) 0 110
s5 0.0625 1 1110
1 0
s6 0.03125 1 0 11110
s7 0.03125 1 11111

Pr H. Ghennioui 38
Techniques de codage source
- Algorithme de Huffman statique -(1/3)
 Codage de Huffman statique (1952):
 Principe :

 Classer les symboles de la source primaire par probabilité


décroissante.
 Prendre les 2 symboles de probabilités les plus faibles et les
regrouper en un seul de probabilité égale à la somme de
probabilité des 2 symboles.
 Attribuer le bit ‘0’ et le bit ‘1’.
 Recommencer jusqu’à épuiser toute le liste (probabilité
cumulée à 100%).
 Un arbre de codage est alors construit où le code obtenu est
attribué à chaque élément en mettant bout à bout les bits
rencontrés en chemin.
Pr H. Ghennioui 39
Techniques de codage source
- Algorithme de Huffman statique -(2/3)
 Exemple : AS={s1, s2, s3, s4, s5}, , Ps={0.4, 0.19, 0.16, 0.15,
0.1}, AX={0,1},
s1 0.4 0.4 0.4 0.6 1
0
s2 0.19 0.25 0.35 0.4 1 000
0
s3 0.16 0.19 0 0.25 1 001

s4 0.15 0 0.16 1 010

s5 0.1 1 011

 Caractérisation:
L=2.2 symboles codés, Lmin=2.15 symboles codés
Efficacité : =97.7%
Redondance
Pr H. Ghennioui
: ρ=2.2818% 40
Techniques de codage source
- Algorithme de Huffman statique -(3/3)
 Codage de Huffman statique (1952):
 Remarques :

 Comme la technique de Shannon-Fano, le code Huffman


code les symboles les plus fréquents avec des petits mots.
Tandis que les plus rares reçoivent de plus longs codes
binaires.
 Le code Huffman est utilisé dans nombreux formats de
compression (zip, jpg, tiff, …)
 L’inconvénient du code Huffman statique est que l’on doit
attacher l’arbre au fichier compressé.

Pr H. Ghennioui 41
Techniques de codage source
- Conclusions sur Shannon et Huffman -(1/1)
 Ces 2 techniques sont difficiles à utiliser dans un système
temps-réel (complexité du dictionnaire d’encodage).
 Des exemples de codeurs-décodeurs plus simples et
économiques tout en gardant une efficacité intéressante :
 Codage par plage

 Codage de Lempel-Ziv

Pr H. Ghennioui 42
Techniques de codage source
- Technique arithmétique-(1/7)
 Principe
 Le code est associé à la séquence de symboles
(message) et non pas à chaque symbole de la séquence.
 Le code associé à une séquence est un nombre réel de

l’intervalle [0,1[.
 Le code est construit par des subdivisions récursives

d’intervalles. Un intervalle est subdivisé pour chaque


nouveau symbole qui appartient à la séquence. On obtient
en définitive un sous-intervalle de l’intervalle [0,1[ tel que le
nombre réel appartenant à cet intervalle représente la
séquence à coder.

Pr H. Ghennioui 43
Techniques de codage source
- Technique arithmétique -(2/7)
Soit une source S dont l’alphabet est As={s1, s2, …, sN}. Les
probabilités respectives des symboles sont p1=p(s1), p2=p(s2),
…, pN=p(sN). On note [Lsk, Hsk[ l’intervalle assigné au
symbole sk avec Hsk- Lsk=pk.
 Algorithme de codage :
1. Initialisation : Lc=0 et Hc=1.
2. Déterminer les longueurs des sous-intervalles liés aux symboles.
3. Passer au codage sur le prochain symbole sk.
4. Déterminer pour le sous-intervalle, le raffinement en sous-
intervalles.
5. Répéter les étapes 2, 3 et 4 jusqu’à obtenir le code de la
séquence entière.
Pr H. Ghennioui 44
Techniques de codage source
- Technique arithmétique -(3/7)
 Illustration de l’algorithme de codage : on considère
une séquence sM={s1, s2, …, sM} de M symboles à coder.
(sk) est le k-ème symbole de la séquence émise par la
source.
 Etape 1 : initialiser un premier intervalle [Lc, Hc[=[0, 1[ de taille Hc-
Lc=1.
 Etape 2 : Subdiviser l’intervalle en N sous-intervalles [Ls k, Hsk[ de
taille Hsk - Lsk =pk et,
 k 1

 Lsk  Lc  taille   pi ,
 i 1
 k
 Hs  Lc  taille  p ,
 k i 1
i

Pr H. Ghennioui 45
Techniques de codage source
- Technique arithmétique -(4/7)
 Etape 3 : Choisir le sous-intervalle correspondant au prochain
symbole sk qui apparait dans la séquence et redéfinir l’intervalle
initial [Lc, Hc[ avec,
 Lc  Lc  taille  Lsk ,

 Hc  Lc  taille  Hsk ,
 Etape 4 : Cet intervalle est subdivisé à nouveau selon le même
procédé que celui utilisé dans l’étape 2.
 Etape 5 : Les étapes 2, 3 et 4 sont répétées jusqu’à obtenir le mot
code représentant la séquence complète des symboles source.

Pr H. Ghennioui 46
Techniques de codage source
- Technique arithmétique -(5/7)
 Exemple de codage arithmétique: soient un alphabet
As={a,b,c,d,e} et les probabilités respectives Ps={0.3, 0.25,
0.2, 0.15, 0.1}. La séquence à coder est « bdcea ».
Exemple mot code:
0.51508125=(milieu
du dernier intervalle)

Pr H. Ghennioui 47
Techniques de codage source
- Technique arithmétique -(6/7)
 Algorithme de décodage :
1. Initialisation Lc=0 et Hc=1
2. Calculer la longueur du sous-intervalle du code Hc-Lc
3. Trouver le sous-intervalle [Ls k, Hsk] du symbole avec 1≤k≤N tel
que Lsk≤(Mot code - Lc)/longueur≤Hsk.
4. Obtention du symbole sk.
5. Mettre à jour le sous-intervalle,
 Lc  Lc  longueur  Lsk ,

 Hc  Lc  longueur  Hsk ,
6. Répéter les étapes 2, 3, 4 et 5 jusqu’à obtenir le décodage de tous
les symboles de la séquence.

Pr H. Ghennioui 48
Techniques de codage source
- Technique arithmétique -(7/7)
 Illustration: On applique l'algorithme de décodage à l'exemple
précédent avec mot code =0.51508125.
 Etape 1 : initialiser Lc=0 et Hc=1
 Etape 2 : calculer la longueur du sous-intervalle du code : Longueur = Hc-
Lc=1.
 Etape 3 : calculer le nombre (Mot code - Lc)/longueur=0.51508125 et
chercher k tel que ce nombre soit compris dans la partition initiale.
 Etape 4 : k=2, Il s'agit du sous-intervalle [0.3,0.55[ qui correspond au
symbole b.
 Etape 5 : On met à jour le sous-intervalle de codage Lc=Lc+longueur x
Lsk=0 + 1x0.3=0.3 et Hc=Lc+longueur x Hsk=0+1 x 0.55=0.55
 On répète l'étape 2 : longueur= 0.55-0.3=0.25
 Etape 3 : (0.51508125-0.3)/0.25 = 0,860325
 Etape 4 : k=4, il s'agit du sous-intervalle [0.75,0.90[ qui correspond au
symbole d.
 On revient à l'étape 5 et ainsi de suite …
Pr H. Ghennioui 49
Techniques de codage source
- Technique Lempel-Ziv -(1/9)
 Ce type de codage n’assume aucune connaissance à
priori de la statistique des données mais s’adapte à tout
changement des modèles qui sont traités.
 Une première version a été introduite par Jacob Ziv et
Abraham Lempel en 1977 : LZ77. Cet algorithme est utilisé
dans les méthodes de compression Zip (pkzip, gzip, zipit,
etc.) qui sont très populaires sur l’Internet.
 Les mêmes auteurs développent une version améliorée en
1978, basée sur un dictionnaire à structure arborescent :
LZ78.
 En 1984, Terry Welech a conçu une version améliorée de
LZ78 : LZW.
Pr H. Ghennioui 50
Techniques de codage source
- Technique Lempel-Ziv -(2/9)
 Plusieurs applications de compression sont basés sur le
LZ78 et LZW, parmi lesquels le standard UIT-T V.42 bis, le
format de compression GIF et le programme de
compression sous UNIX.
 Le principe de ce type de codage consiste à remplacer une
séquence répétée par un code très court.

Pr H. Ghennioui 51
Techniques de codage source
- Technique Lempel-Ziv -(3/9)
 Codage/Décodage de Lempel-Ziv
 Procédure d’analyse de répartition des blocs de longueurs
variables : Lempel-Ziv Parsing = Analyse grammaticale
 Constitution de blocs à partir de la séquence à coder
 Représentation de chacun des blocs par une paire de valeurs entières
 Conversion des paires de valeurs en nombre entiers.
 Codage des nombres entiers en binaire.
 Opération de décodage
 Segmentation de la séquence binaire reçue
 Conversion en décimal des séquences individuelles
 Représentation de chaque nombre entier par une paire de valeurs
 Traduction des paires de valeurs en blocs
 Restitution et décodage de la séquence des symboles source.

Pr H. Ghennioui 52
Techniques de codage source
- Technique Lempel-Ziv -(4/9)
 Codage de Lempel-Ziv
Soit la chaine de caractères X=(s1, s2, …, sN) à répartir en blocs de
longueurs variables.
 Etape 1 : constitution de blocs

 Le 1er bloc est le 1er caractère de la chaine X.


 Le 2ème bloc consiste en le plus court préfixe de (s2, …, sN) qui est différent
de s1 soit (s2, …, si) ce bloc.
 Le 3ème bloc sera le plus court préfixe de (si+1, …, sN) qui est différent de s1
et de (s2, …, si).
On suppose que cette procédure a produit les K premiers blocs de longueurs
variables (B1, B2, …, BK) et X(K) est la partie droite restante après
élimination de (B1, B2, …, BK) alors le prochain bloc BK+1 est le plus court
préfixe de X(K) qui est différent de tous les autres blocs (B1, …, BK) déjà
Pr H. Ghennioui 53
Techniques de codage source
- Technique Lempel-Ziv -(5/9)
 Codage de Lempel-Ziv
Soit la chaine de caractères X=(s1, s2, …, sN) à répartir en blocs de
longueurs variables.
 Etape 1 : constitution de blocs (suite)

 Par construction, les blocs de longueurs variables (B1, B2, …, BK) produit
par cette procédure à partir de X sont distincts, à l’exception du dernier bloc
qui peut ne pas l’être et soit égal à l’un des blocs précédents.
Illustration : La séquence X=(110110001101) sera répartie en ,
B1=1, B2=10, B3=11, B4=0, B5=00, B6=110, B7=1 (=B1).

Pr H. Ghennioui 54
Techniques de codage source
- Technique Lempel-Ziv -(6/9)
 Codage de Lempel-Ziv
Soit As=(0, 1, …, q-1) l’alphabet à partir duquel X est formée.
 Etape 2 : Codage de blocs
 Représenter chacun des blocs en une paire de deux entiers : le 1er bloc
sera représenté par la paire (0,B1). Pour tout autre bloc Bj formé d’un seul
symbole sera représenté par la paire (0,Bj) et si le bloc Bj est formé de plus
d’un symbole, alors il sera représenté par la paire (i,s) où s est le dernier
symbole dans le bloc Bj et Bi est le bloc représenté par la séquence des
symboles de Bj à part le dernier symbole (Bloc préfixe du dernier symbole).
Illustration : Dans l’exemple précédent (X=(110110001101), B1=1, B2=10,
B3=11, B4=0, B5=00, B6=110, B7=1 (=B1)), on trouve els paires,
(0,1), (1,0), (1,1), (0,0), (4,0), (3,0), (0,1).

Pr H. Ghennioui 55
Techniques de codage source
- Technique Lempel-Ziv -(7/9)
 Codage de Lempel-Ziv
 Etape 3 : Conversion de paires en entiers
 L’étape suivante consiste à remplacer chaque paire (i,s) par le nombre
entier q*i+s.
Illustration : Dans l’exemple précédent ((0,1), (1,0), (1,1), (0,0), (4,0), (3,0),
(0,1)), on obtient la séquence convertie 1, 2, 3, 0, 8, 6, 1.
 Etape 4 : Codage des nombres entiers en binaire
 Pour achever la description de l’encodeur, soit I1, I2, …, It la séquence des
nombres entiers correspondant aux blocs B1, B2, …, Bt.
 Chaque entier Ij est converti en binaire en une séquence de longueur
Lj=[log2(q*j)]
Illustration : Dans l’exemple précédent, on obtient la séquence convertie
I1 : L1=1, S1=1, I2 : L2=2, S2=10, I3 : L3= 3, S3=011, I4: L4= 3, S4= 000, I5: L5=4,
S5=1000, I6: L6=4, S6=0110, I7: L7=4, S7=0001.
Soit le
Pr H. Ghennioui mot de code résultant 110011000100001100001 56
Techniques de codage source
- Technique Lempel-Ziv -(8/9)
 Décodeur LZ
 On suppose qu’un vecteur appartenant à l’alphabet {0,1,2} a
été encodé par LZ en 001000010101010110000100000. On
cherche comment décoder cette séquence.
 Principe :
 Pour un alphabet de taille N, [Log2(N*j)] bits seront alloués au bloc Bj. Ceci
permet de répartir la séquence à décoder suivant cet ordre qui sera
convertit en un nombre I puis sous forme d’une paire (k,r) tel que I=N*k+r
où k et r représentent le quotient et le reste de la division de I par q.
 Cette paire permettra de trouver le bloc de longueur variable qui aidera à
reconstruire la séquence X originale.

Pr H. Ghennioui 57
Techniques de codage source
- Technique Lempel-Ziv -(9/9)
 Décodeur LZ (suite)
 Illustration :
Numéro Nombre de bits Séquence Séquence en Paire Bloc
du bloc dans ce bloc par bloc base 10
1 2 00 0 (0,0) 0
2 3 100 4 (1,1) 01
3 4 0010 2 (0,2) 2
4 4 1010 10 (3,1) 21
5 4 1011 11 (3,2) 22
6 5 00001 1 (0,1) 1
7 5 00000 0 (0,0) 0

La séquence originale est donc 0012212210


Pr H. Ghennioui 58

Vous aimerez peut-être aussi