Vous êtes sur la page 1sur 23

UFR de Sciences Universit de Caen

THEORIE DE LINFORMATION

___

CODAGE DE SOURCE

___


G.BINET MdC 61
T_info_source p.1
UFR de Sciences Universit de Caen
THEORIE DE LINFORMATION


I. MODELISATION DUNE SOURCE

I.1 Modle mathmatique dune source :

I.2 Source discrte sans mmoire :

II. MESURE DE L'INFORMATION:

II.1 Quantit d'information:

II.2 Entropie d'une source :

II.3 Entropie jointe entre deux sources :

II.4 Quantit d'information mutuelle :

II.5 Entropie conditionnelle :

II.6 Expressions de la quantit d'information mutuelle et de l'entropie
conditionnelle moyenne :

II.7 Intrt de ces quantits et formulations :


III. CODAGE DE SOURCES DISCRETES :

III.1 Dbit moyen d'information :

III.2 Codage avec mots de longueur fixe, efficacit :
Mots de codes de longueur fixe :
Codage par blocs, extension de la source :
Thorme du codage de source, 1
er
thorme de Shannon :
III.3 Codage, mots de longueur variable :
Codes prfixes :
Longueur moyenne de code :
Ingalit de Kraft :
Thorme du codage de source, 2
me
thorme de Shannon :
III.4 Codage de Huffman :
Algorithme :
III.5 Codage de Fano-Shannon :


G.BINET MdC 61
T_info_source p.2
UFR de Sciences Universit de Caen
IV. COMPRESSION DE L'INFORMATION

IV.1 Les diffrentes mthodes :

IV.2 Le codage statistique longueur variable :

IV.3 Codage par dictionnaire : mthode de Lempel-Ziv

IV.4 Le codage par rptition : mthode RLE (RLC)


G.BINET MdC 61
T_info_source p.3
UFR de Sciences Universit de Caen
THEORIE DE LINFORMATION

I. MODELISATION DUNE SOURCE

Il est possible de classer les sources en deux catgories selon les signaux ou messages quelles mettent :
Les sources analogiques : domaine de la TV, la vido, la radio (laudio en gnral).
Les sources discrtes : disques optiques (Cd, DVD,), les mmoires magntiques (disques durs,
bandes,).
Quelque soit le type de source, linformation doit tre transmise sous forme numrique. Lencodeur de source est
llment charg de la transformation du format de linformation. Bien entendu, le problme est diffrent selon
que nous avons faire une source continue ou discrte.

I.1 Modle mathmatique dune source :

Une source transmet une information un rcepteur celui-ci ne connaissant pas linformation qui va lui tre
transmise.
Un exemple simple permet d'introduire les ides ncessaires. Deux interlocuteurs discutent en franais, lun deux
prononce un mot commenant par "cha", celui qui coute peut avoir une ide de la suite du mot : "riot" "teau"
"peau" ? srement pas "gnon". Que peut-on en dduire? L'information est en gnral imprdictible ou
partiellement imprdictible. Nous pouvons mme aller plus loin : qu'est-ce qui est intressant pour celui qui
coute? Srement pas une suite qu'il connat coup sr car ce n'est plus une information, il est d'autant plus
intress qu'il ne peut pas prdire la suite.
Ce petit exemple nous amne donc aux deux constatations suivantes:
1. Une source d'information met en gnral un message non dterministe. D'un point de vue signal ce
ne peut tre qu'un signal alatoire et la modlisation mathmatique associe doit tre stochastique
une information est un processus stochastique.
2. Ce qui rend une information intressante est son caractre imprdictible. Une information est ainsi
d'autant plus riche qu'elle est peu probable.

I.2 Source discrte sans mmoire :

Pour caractriser les sources, de nombreux termes sont emprunts la description du langage courant. Une
source dispose d'un "alphabet" constitu d'lments ou symboles ou caractres {x
1
, x
2
, x
3
,, x
K
} . K est la
longueur de l'alphabet. Ces symboles sont associs pour constituer un message. Emettre un message revient
mettre une succession de symboles appartenant une source. Chaque symbole x
k
de l'alphabet a une
probabilit d'utilisation p
k
.
Pour simplifier le problme, une catgorie de sources est plus simple modliser : celle des sources pour
lesquelles la probabilit d'mission d'un caractre est indpendante de ce qui a t mis avant ou sera mis aprs.
C'est ce qui dfini une source sans mmoire.

G.BINET MdC 61
T_info_source p.4
UFR de Sciences Universit de Caen
II. MESURE DE L'INFORMATION:

II.1 Quantit d'information:

A partir des remarques suivantes:
La quantit d'information d'un symbole est d'autant plus grande que celui-ci est peu probable.
La quantit d'information de deux symboles successifs est la somme de leurs quantits d'information.
La quantit d'information note I est une fonction qui doit ainsi avoir les proprits suivantes:
1. I(.) est une fonction continue de la probabilit p
i
.
2. I(p
k
) si p
k
I(p
k
) est une fonction dcroissante de p
k
.
3. I(p
k
et p
j
) = I(p
k
) + I(p
j
).
4. Un symbole certain possde une quantit d'information nulle : I(p
k
=1) = 0.
Une fonction mathmatique remplit les conditions 1, 3 et 4 : log(p
k
). Pour obtenir la proprit 2, il suffit de
prendre log(p
k
) = log(1/p
k
).
La quantit d'information d'un symbole x
k
de probabilit p
k
a ainsi t dfinie par Shannon comme :

)
p
1
log( ) p log( - ) x ( I
k
k k
= =

units:
Dans la dfinition de la quantit d'information il n'a pas t prcis la base du logarithme utilise et c'est cette
base qui dfinit l'unit. Plusieurs systmes existent:
Base 2 : c'est celle historiquement choisie par Shannon qui est l'origine de cette dfinition. L'unit
ainsi obtenue est le bit pour binary digit ou binary unit. Cette unit a t rebaptise le shannon en
hommage son inventeur mais cette appellation reste peu usite. Pour une source binaire de deux
symboles quiprobables, p
k
=1/2 et I(x
k
) = 1 bit . Le symbole d'une source binaire qui est un bit possde
donc une quantit d'information de 1 bit, d'o l quivalence. Par la suite, sauf prcision contraire, c'est
l'unit que nous utiliserons.
Base e : utilisation du logarithme Nprien dit encore logarithme naturel. L'unit devient alors le nats
pour natural units. Sachant que Ln(a) = Ln(2).log
2
(a) = 0,69315.log
2
(a) 1 nats = 0,69315 bits et
1bit = 1,44269 nats.
Autres bases : d'autres bases ont t proposes mais priori peu utilises. En conformit avec le
systme dcimal, la base 10 qui donne le dit pour dcimal unit. Signalons enfin la base 3 l'origine du
trit pour trinary unit.

Rappel sur les changements de base: Soit deux bases de logarithmes : base a et base b. Le passage entre les
bases se fait par : log
b
( p ) = log
b
( a ) . log
a
( p )
G.BINET MdC 61
T_info_source p.5
UFR de Sciences Universit de Caen
II.2 Entropie d'une source :

L'entropie H(S) d'une source S est la quantit d'information moyenne contenue dans l'alphabet X de cette source.
Du point de vue mathmatique, cela s'exprime par H(S) = E[ I(X) ] soit:

= =
k
k
k
k
k k
)
p
1
og( l p ) x I( p ] X) ( I [ E

=
=
K
1 k
k
k
)
p
1
log( p ) S ( H
exprime en bits/symbole ou Shannon/symbole.

Exemple: source binaire avec deux symboles "0" et "1" de probabilits
respectives p et 1-p.
0,5 0
1
1 p
H( X )
)
p - 1
1
log( p) - (1 )
p
1
log( p ) S ( H + =
cette entropie est maximale pour p = 0,5 et vaut zro pour p = 0 et p = 1.

Cet exemple est un cas particulier d'une source ayant un alphabet de K symboles. On dmontre que (voir TD)
que son entropie est maximale lorsque tous les symboles sont quiprobables donc p
k
= 1/K et l'entropie devient:
) K log( ) K log(
K
1
) S ( H
K
1 k
= =

=
. Ce qui montre le thorme suivant sur l'entropie d'une source:
) K log( ) S H( 0


II.3 Entropie jointe entre deux sources :

Cette notion permet de mesurer le degr de similitude entre deux sources.
Soit deux sources : X d'alphabet {x
1
, x
2
,,x
N
}
Y d'alphabet {y
1
, y
2
,,y
M
}
Du point de vue alatoire, il existe une densit de probabilit jointe entre deux caractres : p( x
i
, y
j
). Ceci permet
de dfinir la quantit d'information jointe due aux deux caractres:
)
) y , x p(
1
log( ) y , x p( ) y , x ( I
j i
j i j i
=
l'entropie jointe des deux sources est alors la quantit d'information moyenne jointe entre deux caractres de la
source :
)
) y , x p(
1
log( ) y , x p( ) Y , X H(
i j
j i
j i
=


G.BINET MdC 61
T_info_source p.6
UFR de Sciences Universit de Caen
Cas ou les deux sources sont indpendantes: p( x
i
, y
j
) = p( x
i
).p( y
j
)

+ =
+ =
=
i
) Y H(
j
j
j i
j
) X H(
i
i
i j
j , i
j
j i
j , i
i
j i
j , i
j i
j i

) y p(
1
log ) y p( ) x p(
) x p(
1
log ) x p( ) y p(
) y p(
1
log ) y p( ) x p(
) x p(
1
log ) y p( ) x p(
) y p( ) x p(
1
log ) y p( ) x p( ) Y , X H(
4 4 4 3 4 4 4 2 1
4 4 4 3 4 4 4 2 1

) Y H( ) X H( ) Y , X H( + =


II.4 Quantit d'information mutuelle :

Pour la dfinir, il suffit de reprendre le calcul prcdent dans le cas o les sources ne sont pas indpendantes en
faisant apparatre les deux termes prcdents :
) Y H( ) X H(
) y , x p(
) y p( ) x p(
log ) y , x p(
) y , x p(
) y p(
1
log ) y , x p(
) x p(
1
log
) y , x p(
) y p( ) x p(
log ) y , x p(
) y p(
1
log ) y , x p(
) x p(
1
log ) y , x p(
) y , x p(
) y p( ) x p(
log ) y , x p(
) y p( ) x p(
1
log ) y , x p(
) y , x p(
) y p( ) x p(
log ) y , x p(
) y , x p(
1
log ) y , x p( ) Y , X H(
j , i
j i
j i
j i
j
) y p(
i
j i
j
i
) x p(
j
j i
i
j , i
j i
j i
j i
j , i
j
j i
j , i
i
j i
j , i
j i
j i
j i
j , i
j i
j i
j , i
j i
j i
j i
j , i
j i
j i
j
i
+ + =
+ + =
+ + =
+ =
=

4 43 4 42 1
4 43 4 42 1
Dans ce rsultat le premier terme est un terme supplmentaire par rapport au cas de sources indpendantes : c'est
le terme d'information mutuelle. Sachant que p( x
i
, y
j
) p( x
i
).p( y
j
) ce terme est ngatif . En dfinissant la
quantit d'information mutuelle I( X , Y ) entre les deux sources comme une quantit positive nous aurons:
) Y , X I( - ) Y H( ) X H( ) Y , X ( H
) y ( ).p x ( p
) y , x ( p
log ) y , x ( p ) Y , X I(
j , i
j i
j i
j i
+ =
=


Nous retrouvons bien sr le cas de deux sources indpendantes pour lesquelles :
p( x
i
, y
j
) = p( x
i
).p( y
j
) I( X , Y ) = 0 H( X , Y ) = H( X ) + H (Y )

G.BINET MdC 61
T_info_source p.7
UFR de Sciences Universit de Caen
II.5 Entropie conditionnelle :

Nous pouvons aussi dfinir partir des densits de probabilit conditionnelles une quantit d'information
conditionnelle:
) / x ( p
1
log ) / x ( I
j
j
y i
y i
=
puis une entropie conditionnelle :

= =
i i
y i
y i y i y i y
) / x ( p
1
log ) / x p( ) / x ( I ) / x p( ) / X ( H
j
j j j j

et enfin une entropie conditionnelle moyenne :

= =
i
y i
y i
j
j
j
y j Y
) / x ( p
1
log ) / x p( ) y p( ) / X ( H ) y p( ) / X H(
j
j j


II.6 Expressions de la quantit d'information mutuelle et de l'entropie
conditionnelle moyenne :

L'entropie conditionnelle permet d'obtenir d'autres formulations de ces quantits en utilisant la loi de Bayes :
p( x , y ) = p( x/
y
).p(y) = p( y/
x
).p(x)
4 4 4 4 4 4 3 4 4 4 4 4 4 2 1
43 42 1
4 4 4 4 4 4 3 4 4 4 4 4 4 2 1
4 4 3 4 4 2 1
) X H(
1
j
x j
i
i
i Y
j , i
i
i x j
) / X H( -
j i
y i y i j
j , i
i
) x p( ) / y p(
j y i
j , i
y i j y i
j , i
j i
j y i
j y i
j , i
j i
j i
j i
) / y p(
) x p(
1
log ) x p( ) / X H( -
) x p(
1
log ) x p( ) / y p( ) / x p( log ) / x p( ) y p(
) x p(
1
log ) y p( ) / x p( ) / x p( log ) y p( ) / x p(
) y ).p( x p(
) y ( p ) / x p(
log ) y ( p ) / x p(
) y ).p( x p(
) y , x p(
log ) y , x p( ) Y , X I(
i
i
Y
j j
i
i
x j
j j j
j
j
=
=




+ =
+ =
+ =
= =

Un rsultat semblable peut tre tabli en permutant le rle de x et y d'o les deux expressions quivalentes de la
quantit d'information mutuelle:

) Y/ H( - ) Y H( ) X/ H( - ) X H( ) Y , (X I
X Y
= =


Ces expressions ajoutent deux nouvelles formulations de l'entropie jointe des deux sources :

) X/ ( H ) Y H( ) Y/ H( ) X H( ) Y , X I( - ) Y H( ) X H( ) Y , X H(
Y X
+ = + = + =


G.BINET MdC 61
T_info_source p.8
UFR de Sciences Universit de Caen
II.7 Intrt de ces quantits et formulations :

Cet intrt ne peut tre compltement compris qu'aprs introduction de nouvelles dfinitions mais nous pouvons
l'illustrer sur un cas simple. Lors de la transmission par un canal, nous souhaitons rcuprer l'information sans
distorsion, autrement dit, l'alphabet de sortie du canal doit tre le mme que celui de l'entre. Simplifions encore
l'exemple un canal qui doit transmettre des messages. Si nous appelons p la probabilit d'erreur nous pouvons
schmatiser le fonctionnement du canal par le graphe suivant :
Nous reviendrons plus tard plus en dtail sur ce type de schma. Ici c'est celui d'un canal dit "binaire symtrique"
et il a la signification suivante:
Sources : entre X d'alphabet { x
1
= "0" , x
2
= "1" } et p( x
1
) = p( x
2
) = 1/2 (caractres quiprobables).
sortie Y d'alphabet { y
1
= "0" , y
2
= "1" } et p( y
1
) = ? p( y
2
) = ?.

Probabilits conditionnelles p( y/x ): c'est une donne du graphe.
p( y
1
/x
1
) = 1 p
p( y
2
/x
2
) = 1 p
p( y
2
/x
1
) = p
p( y
1
/x
2
) = p

Probabilits jointes entre les deux sources : calcules avec la loi de Bayes p( x , y ) = p( y/x ).p( x )
p( x
1
, y
1
) = (1-p) 1/2
p( x
2
, y
1
) = p 1/2
p( x
1
, y
2
) = p 1/2
p( x
2
, y
2
) = (1-p) 1/2

Probabilits marginales de la source Y : calcules partir des probabilits jointes ) y , x p( ) y ( p
j
2
1 i
i j
=
=
p( y
1
) = (1-p) 1/2 + p 1/2 = 1/2
p( y
2
) = p 1/2 + (1-p) 1/2 = 1/2
Source d'entre X
Alphabet : { 0 , 1 }
p
p
1
1-p
0
1-p
Source de sortie Y
Alphabet : { 0 , 1 }
0
1

G.BINET MdC 61
T_info_source p.9
UFR de Sciences Universit de Caen
Probabilits conditionnelles p( x/y) : calcules partir de la loi de Bayes p( x/y ) = p( x , y ) / p( y ) en
utilisant le rsultat prcdent.
p( x
1
/y
1
) = 1 p
p( x
1
/y
2
) = p
p( x
2
/y
1
) = p
p( x
2
/y
2
) = 1 - p

Quantit d'information d'un caractre :
I( x
1
) = I( x
2
) = log
2
(2) = 1 bit
I( y
1
) = I( y
2
) = log
2
(2) = 1 bit

Entropie de chaque source:
H( X ) = 1 bit par symbole (= log
2
(K) avec K=2).
H( Y ) = 1 bit par symbole.

Entropie jointe: calcul direct partir de probabilits jointes.
H( X , Y ) = (1/2) (1-p) log[ 2/(1-p) ] + (1/2) p log( 2/p ) + (1/2) p log( 2/p ) + (1/2) (1-p) log[ 2/(1-p) ]
= (1-p) log[ 2/(1-p) ] + p log( 2/p ) = (1-p) [ 1 - log( 1-p ) ] + p [ 1 - log( p ) ]
= 1 - (1-p) log( 1-p ) - p log( p )

Entropie conditionnelle moyenne:

) p log( p ) p - 1 log( ) p - 1 ( -
)
p
1
log( p )
p 1
1
log( ) p - 1 (
2
1
)
p
1
log( p )
p 1
1
log( ) p - 1 (
2
1

) x / y p(
1
log ) x / y p( ) x p( ) Y/X ( H
i j
i j
i j i
=

=
=


Etant donn la symtrie des relations, H( X /Y ) aura, dans ce cas particulier, la mme expression.

Quantit d'information mutuelle:
1
er
calcul partir de l'entropie jointe.
I( X , Y ) = H (X ) + H( Y ) - H( X , Y )
= 1 + (1-p) log( 1-p ) + p log( p )
2
me
calcul partir de l'entropie conditionnelle moyenne H( Y /X ):
I( X , Y ) = H( Y ) H (Y /X ) = 1 + (1-p) log( 1-p ) + p log( p )
Toujours par symtrie, la troisime mthode de calcul partir de H ( X /Y ) est identique au prcdent.

G.BINET MdC 61
T_info_source p.10
UFR de Sciences Universit de Caen
Quelques remarques :
1. si p = 0 ce qui veut dire pas d'erreur de transmission alors I( X , Y ) = 1. Similitude parfaite entre les
deux sources, la transmission se passe bien. H( X , Y ) = 1.
2. si p = , pagaille complte lors de la transmission. Dans ce cas I( X , Y ) = 0, plus du tout de similitude
entre les deux sources. H( X , Y ) = H( X ) + H( Y ) = 2. Tout se passe comme si les deux sources
taient indpendantes.
3. si p = 1, nouveau I( X , Y ) = 1. Les deux sources sont nouveau tout fait semblables. Le fait qu'il y
a dans ce cas permutation du "0" et du "1" n'ayant pas d'importance.

III. CODAGE DE SOURCES DISCRETES :

III.1 Dbit moyen d'information :

Si K est la taille de l'alphabet d'une source discrte sans mmoire X, nous avons dj vu que celle-ci contient une
quantit moyenne d'information par symbole qui est l'entropie H( X ). Cette entropie admet une limite maximale:
H( X ) log( K )
la limite tant atteinte lorsqu'il y a quiprobabilit entre tous les symboles de l'alphabet de la source.
Si la source met ses symboles une cadence rgulire d'un symbole toute les
s
secondes, 1/
s
est la vitesse
d'mission de la source exprime en symboles/seconde. Le dbit moyen d'information sera naturellement
caractris par:
H( X )/
s
exprim en bits/s (ou shannon/s, dits/s, ..).

III.2 Codage avec mots de longueur fixe, efficacit :

Nous prendrons par la suite le cas d'un codage binaire.

Mots de codes de longueur fixe :
Une manire simple de coder en binaire l'alphabet d'une source est d'attribuer chaque symbole R bits. Il y a
donc 2
R
codes possibles et bien sr nous avons la condition 2
R
K l'galit tant possible lorsque le nombre K
de symboles de la source est une puissance de 2. Dans le cas contraire nous aurons : 2
R-1
< K < 2
R
. Cette dernire
relation permet de dterminer le nombre R de bits ncessaires au codage de l'alphabet d'une source de K
symboles:
R = Int[ log
2
( K ) ] + 1
Nous savons que :
H( X ) log
2
( K )
R log
2
( K ) R H( X ).
L'galit a lieu lorsque tous les symboles de la source sont quiprobables et lorsque K est une puissance de 2.
G.BINET MdC 61
T_info_source p.11
UFR de Sciences Universit de Caen
Un codage est dit d'autant plus efficace que le nombre de codes possibles inutiliss est faible. L'efficacit dpend
aussi de la quantit d'information moyenne de la source. L'efficacit d'un codage sera ainsi dfinie par :
R
) X H(
=

elle est exprime en %.

Exemple:
K= 24 log
2
( K ) = 4,585 R = 5 2
R
= 32 5 codes non utiliss.
Si tous les symboles sont quiprobables : H( X ) = 4,585 et = 91,7 %.

Codage par blocs, extension de la source :
Pour amliorer l'efficacit du codage, on peut transmettre et donc coder les symboles non pas individuellement
mais par blocs de J symboles. Cette technique est appele l'extension de la source.

Exemple: avec { A , B } on peut faire avec J = 2 les blocs { AA , AB , BA , BB }.

A partir d'une source dite primaire, nous fabriquons une source secondaire.
Source primaire de K symboles extension source secondaire de K
J
symboles
Si nous utilisons N bits de codage par bloc : N log
2
( K
J
) N J log
2
( K ) et N = Int[ J log
2
( K ) ] + 1.
Le nombre de bits par symbole de la source primaire est R = N / J = Int[ log
2
( K ) ] + 1/J (remarque : R n'est plus
un entier).
L'efficacit de codage de la source primaire est gale :
J
1
2
2
] ) K ( log Int[
) X ( H
+
= rsultat comparer celui
obtenu sans extension de source :
1 ] ) K ( log Int[
) X ( H
2
1
+
= et, cause du terme en 1/J en dnominateur de
2
,
nous avons
2
>
1
. La technique d'extension de source peut ainsi amliorer l'efficacit du codage pour des mots
de codes de longueur fixe.
Du point de vue de la source tendue N est le nombre de bits attribus un de ses symboles et l'efficacit du
codage est gale :
N
) X H( J
R
) X H(
2
= = .
Tout se passe comme si la source tendue avait une entropie de J.H( X ).

Exemple:
K= 24 , J = 3 K
J
= 13824 N = 14 2
N
= 16384 R = 4,666.
Si tous les symboles sont quiprobables : H( X ) = 4,585 et
2
= 98,25 %.

G.BINET MdC 61
T_info_source p.12
UFR de Sciences Universit de Caen
Thorme du codage de source, 1
er
thorme de Shannon :
Il dcoule de l'extension de source:
Pour une source tendue N J.H( X ) + 1. Pour la source primaire N/J = R H( X ) + 1/J.
En posant 1/J = , peut tre en thorie rendu aussi petit que l'on veut. D'o le premier thorme de Shannon:

Pour avoir un codage sans erreur, une source X doit tre code en moyenne avec au moins H( X ) bits.
R H( X )

III.3 Codage, mots de longueur variable :

Lorsque tous les symboles de l'alphabet ne sont pas quiprobables, l'extension de source ne permettra pas
d'augmenter jusqu' 100% l'efficacit. Historiquement, le code de Morse rsouds ce problme l'ide tant
d'utiliser un codage "court" pour les symboles les plus utiliss (de probabilit leve) et en rservant un codage
plus "long" aux symboles peu utiliss (de probabilit faible). C'est cette ide qui est reprise et formalise dans le
codage avec mots de longueur variable.

Codes prfixes :
Pour introduire les notions essentielles nous allons utiliser en exemple trois codages possibles pour une source de
4 symboles. Ces exemples sont dans le tableau ci-dessous:

Caractres Probabilits Code I Code II Code III
I 1/2 1 0 0
B 1/4 00 10 01
F 1/8 01 110 011
O 1/8 10 111 111

Supposons que nous cherchions transmettre le message BOF
1. Avec le code I, le message envoy est : 001001. C'est ce que voit le rcepteur. Comment peutil
l'interprter? De manire correcte bien sr mais aussi 00 1 00 1 c'est dire BIBI. Problme, le message
n'est pas dcodable de manire unique. Ceci est du au fait que le 1, code attribu I est le dbut d'un
autre code 10 attribu au O. Pour viter cette situation, il ne faut pas qu'un code soit le "prfixe" d'un
autre code. Les codes qui remplissent cette condition sont des codes prfixes.
2. Avec le code III, le message envoy est 01111011. Au dcodage nous pouvons voir 0 111.c'est dire
IOMais ici nous nous rendons compte du fait que ce qui suit c'est dire soit 1, soit 10, soit 101 ne
sont pas des codes et donc, nous pouvons revenir en arrire pour modifier l'interprtation soit 01 111
011 et retrouver le bon message. Le code n'est pas dcodable de manire instantane. Ceci est aussi d
au fait que le code utilis n'est pas un code prfixe.
3. Le code II est lui un code prfixe et nous avons les deux proprits souhaites: dcodable de manire
unique et de manire instantane.

G.BINET MdC 61
T_info_source p.13
UFR de Sciences Universit de Caen
Un code prfixe est, par dfinition, un code dont aucun code n'est le prfixe d'un autre.
Un code prfixe est dcodable de manire unique et instantane.

Arbre d'un code :
Un codage binaire peut tre reprsent de manire graphique par un arbre. Les arbres sont aussi des
reprsentations commodes pour crire les algorithmes de codage et de dcodage.
Les arbres correspondant aux trois codages prcdents sont :
Codage I Codage II Codage III
O F B
I
O F
B
I
F
B
I
O
0 1
Conventions:
Un dplacement gauche correspond un "0".
Un dplacement droite correspond un "1".
Chaque dplacement cre un nud de l'arbre.
Chaque nud un pre (vers le haut) et peut avoir deux fils (vers le bas).
Le lien entre deux nuds est une branche.
Un nud qui n'a pas de fils est une feuille.
Sur le cas n2 nous voyons une autre dfinition du code prfixe :

Un code prfixe est un code dont les symboles cods sont des feuilles.

Longueur moyenne de code :
Pour une source X d'alphabet { x
k
} de probabilits associes { p
k
}, la longueur moyenne du code sera dfinie
par :

=
=
K
1 k
k k
p n R
o n
k
est la longueur du code associ au symbole x
k
.

Ingalit de Kraft :
Elle cherche rpondre la question de la condition d'existence d'un code prfixe.
Nous venons de voir qu'un code prfixe se fabrique partir d'un arbre de codage et que sa condition d'obtention
est que les codes soient des feuilles de l'arbre.

G.BINET MdC 61
T_info_source p.14
UFR de Sciences Universit de Caen
C
k
2
n-nk
n
k

n
Le schma ci-dessus va illustrer le raisonnement conduisant l'ingalit de Kraft :
0 1
Nous construisons un arbre binaire de hauteur n le nombre de codes possibles (nombre de
feuilles finales possibles) est de 2
n
.
A la hauteur n
k
, nous dcidons d'attribuer ce nud un code C
k
Ce nud devient une feuille de
l'arbre du code et, pour obtenir un code prfixe, cela interdit tous les nuds qui peuvent s'en dduire. Le
nombre de nuds interdits est de 2
n-nk
.
Si l'alphabet coder contient K symboles auxquels sont attribus des codes de longueur variable { n
k
},
le nombre total de feuilles interdites sera : .

=
K
1 k
n - n
k
2
Le nombre de feuilles interdites est infrieur ou gal au nombre de feuilles finales : .
n
K
1 k
n - n
2 2
k

=
En divisant chaque membre de la relation par 2
n
, nous obtenons l'ingalit de Kraft :
1 2
K
1 k
n -
k

=

celle-ci peut se gnraliser au cas non binaire c'est--dire un codage avec r symboles (en binaire r = 2) :
1 r
K
1 k
n -
k

=


Thorme du codage de source, 2
me
thorme de Shannon :
Ce thorme exprime les conditions sur R .

Limite basse:
) e ( log )
p
2
Ln( p )
p
2
( log p n p - )
p
1
( log p R - ) X H(
2
k
k
-n
k
k
k
-n
2 k
k
k k
k
k
2 k
k k

= = =
G.BINET MdC 61
T_info_source p.15
UFR de Sciences Universit de Caen
Nous savons que Ln(x) ( x-1 ) ) e ( log ) 1 -
p
2
( p R - ) X ( H
2
k
k
-n
k
k


) e ( log p - 2 R - ) X (
2
1
k
k
k
n -
k

=

3 2 1
H
soit en utilisant l'ingalit de Kraft : 1 2
k
-n
k


0 R - ) X ( H R ) X ( H o l'galit correspond au cas
ou p
k
= 2
-nk
.

Limite haute:
Nous venons de voir que la limite basse est thoriquement atteinte par un choix astucieux des { n
k
} tels que :
2
-nk
= p
k
soit n
k
= - log
2
( p
k
) .
Plus un symbole est probable, moins on lui attribue de bits.
Cette condition n'est pas facilement ralisable car n
k
est un entier. En pratique nous serons donc obligs de
choisir n
k
- log
2
( p
k
) > n
k
-1 soit :
1 -n
k
n
k k
2 p
+
< 2 .
Il vient ainsi :
1 n - ) p ( log
k k 2
+ <
k k k k 2 k
p n p - ) p ( log p + <
( ) R 1 ) X H( 1 R - ) X H( - p n p - ) p ( log p
k
k k k
) X H( -
k
k 2 k
> + + < + <

4 4 3 4 4 2 1

La runion des deux expressions donne la relation suivante :

1 ) X H( R ) X ( H + <


G.BINET MdC 61
T_info_source p.16
UFR de Sciences Universit de Caen
III.4 Codage de Huffman :

C'est un codage de source avec des mots de longueur variable. Mis au point en 1952, bas sur les probabilits des
caractres de la source c'est un algorithme optimal qui minimise le nombre moyen de bits utiliss pour le codage.
Nous nous contenterons de la description de l'algorithme sans prouver ces proprits nonces.

Algorithme :
O F
B
I
En reprenant un exemple dj utilis rappelons les proprits de l'arbre d'un code
prfixe :
L'arbre est constitu de nuds et de branches.
En gnral, un nud dit nud "pre" est obtenu par liaison de deux nuds
dits nuds "fils".
Certains nuds n'ont pas de "fils" : ce sont les feuilles de l'arbre. Pour un
code prfixe, les symboles de la source doivent se voir attribuer un code qui
est une feuille de l'arbre.
0 1
Un nud n'a pas de pre : c'est le sommet de l'arbre.
Pour construire l'arbre, il faut partir des feuilles, faire des associations de noeuds deux par deux jusqu'
l'arrive au sommet de l'arbre.

L'algorithme d'Huffman prcise une mthode pour associer entre eux les diffrents nuds. La technique est la
suivante :
1. A chaque tape, les nuds sont rangs dans un tableau par ordre de probabilits dcroissantes.
2. Les deux nuds du bas du tableau, donc ceux de probabilits les plus faibles sont associs
pour donner un nud "pre". Celui-ci se voit attribuer comme probabilit la somme des
probabilits de ses deux "fils".
3. Nous avons un nouvel ensemble de nuds ayant un lment en moins (remplacement des
deux "fils" par le "pre") et nous reprenons l'tape 1 jusqu' l'arrive au sommet de l'arbre
(ensemble de nuds d'un seul lment).
4. L'ensemble initial des nuds est constitu des feuilles donc des symboles de la source;

Remarque : lors du classement des nuds par probabilits dcroissantes, il se peut que deux nuds aient mmes
probabilits. Leur classement est alors arbitraire. Lors de l'implantation des algorithmes, le choix le plus simple
au niveau programmation est d'attribuer, en cas d'quiprobabilit, la place la plus leve au dernier nud cr.
Nous adopterons cette coutume dans les exemples sachant qu'il s'agit ici d'un choix arbitraire.

Prenons l'exemple du code II du paragraphe II.3 dont l'arbre est pris en exemple ci-dessus:
I 0,5 0,5 0,5
B 0,25 0,25 0,5
O 0,125 0,25
F 0,125
G.BINET MdC 61
T_info_source p.17
UFR de Sciences Universit de Caen
En prenant comme codage:
0
1 I 1 B 01 O 000 F 001.
C'est le code complmentaire de celui que nous avons considr, l encore c'est une question de choix arbitraire,
il aurait suffit de choisir comme codage:
1
0 I 0 B 10 O 111 F 110.
Nous pouvons aussi remarquer qu' l'initialisation O et F auraient pu tre permuts.

Autre exemple:

E 48% 48 48 48 52
A 21% 21 21 31 48
S 12% 12 19 21
T 8% 11 12
U 6% 8
Y 5%
LSB MSB

D'o la table de codage:
Nombre moyen de bits par sympbole :
le bits/symbo 2,13 p n R
k
k k
= =


Entropie de la source:
bits 2,11 )
p
1
( log p ) X H(
k
k
2 k
= =


Soit une efficacit = 98,5%.
Pour transmettre 100 lettres en ASCII : 800 bits , avec ce code il faut
en moyenne 213 bits.
Symbole Codage
Longueur
n
k
E 1 1
A 01 2
S 001 3
T 0001 4
U 00000 5
Y 00001 5
Remarques :
L'efficacit peut tre amliore si on effectue au pralable une extension de source c'est dire une
transmission par blocs.
Si p
k
= 2
-nk
, on obtient une efficacit = 100%.
Ce type de technique amlior est aussi utilis pour la compression de donnes comme pour les
algorithmes Lempel Ziv (LZ97, LZW.) utiliss pour le compactage sur disque dur (Zip).

G.BINET MdC 61
T_info_source p.18
UFR de Sciences Universit de Caen
III.5 Codage de Fano-Shannon :

Antrieur au codage d'Huffman, l'arbre est construit en partant du sommet c'est dire du MSB pour le codage. Il
est bas sur la recherche de groupes de probabilits les plus proches possibles. Il donne, dans les cas simples, le
mme rsultat que le codage d'Huffman mais il n'a pas son caractre optimal et il induit en gnral un codage
moins efficace.

Algorithme:
1. Ordonner les symboles de la source en probabilits dcroissantes
2. Sparer les symboles en deux groupes de probabilits les plus proches possibles.
3. Le MSB du groupe suprieur sera "0" et celui du groupe infrieur "1".
4. Recommencer l'opration dans chaque sous-groupe pour affecter les bits suivants et ce jusqu'
sparation de tous les symboles de la source.

Avec l'exemple prcdent:
E 48% 0
A 21% 1 0
S 12% 1 1 0
T 8% 1 1 1 0
U 6% 1 1 1 1 0
Y 5% 1 1 1 1 1
MSB LSB

Nous retrouvons ici la mme table de codage que celle fournie par la mthode d'Huffman.


IV. COMPRESSION DE L'INFORMATION

L'tude du codage d'Huffman sur le codage de source montre une mthode de compression de l'information. Ce
sujet n'est pas l'objet de ce cours mais quelques notions dans ce domaine seront ici introduites.

IV.1 Les diffrentes mthodes :

Les deux mthodes tudies : Huffman et Fano, sont bases sur la thorie gnrale de l'information dveloppe
par Shannon et ncessitent la connaissance des probabilits ainsi que la transmission, en plus du message, de la
table de codage utilise. En pratique, les mthodes de codage peuvent aller du plus simple au plus complexe
selon l'information coder (texte, image, son) et sont sparables en plusieurs catgories :
Les codages statistiques longueur variable.
Les codages par dictionnaire.
Les codages par rptition.
G.BINET MdC 61
T_info_source p.19
UFR de Sciences Universit de Caen
Nous donnerons dans chaque cas un exemple simple sachant que toutes ces mthodes possdent des variantes et
amliorations selon le concepteur du systme de compression.

IV.2 Le codage statistique longueur variable :

Dvelopp dans l'tude des chapitres prcdents, l'algorithme de base est celui d'Huffman dveloppe en 1952.
Cette mthode est venue concurrencer celle de Fano (ou Fano-Shannon) qui est l'heure actuelle compltement
abandonne dans les applications.
Le codage d'Huffman est donc une mthode ancienne qui a subi des remises jour permettant d'amliorer ses
performances et qui reste de ce fait encore utilise. Les grandes applications qui y font appel sont :
Format TIFF (Tagged Image Format File) de compression des images.
Format JPEG (Join Photographic Expert Group) qui utilise en plus une transforme de Fourier en
cosinus (DCT).
Format MNP (Microcom Networking Protocol) de transmission de donnes sur lignes tlphonique
(avec adjonction d'un systme correcteur d'erreur).

Les performances de cet algorithme permettent d'atteindre des taux de compression d'environ 31% mais les
oprations de compactage et dcompactage sont relativement lentes. Cet algorithme ncessite la connaissance
des statistiques et la transmission de la table de codage.

IV.3 Codage par dictionnaire : mthode de Lempel-Ziv

Ces algorithmes sont des mthodes qui, n'ayant pas de statistiques sur la source, vont se constituer en ligne un
dictionnaire ou figurent les groupes de mots qui se trouvent rpts dans le document compresser. Le fait que
la production du dictionnaire soit spcifique aux donnes traiter font de ces algorithmes un procd capable
d'adaptation un grand nombre de besoins.
L'algorithme de base a t dvelopp en 1977-1978 par Abraham Lempel et Jacob Ziv et est l'algorithme dit
LZ77 et LZ78. Une amlioration de ces algorithmes a t propose en 1984 par Welch ce qui donne l'algorithme
LZW.

La mthode :
Le principe est le suivant:
1. Nous disposons d'un dictionnaire initial de 256 caractres ASCII numrots de 0 255.
2. Sont ajouts ces codes deux caractres de contrle.
3. Au fur et mesure de l'apparition de blocs de caractres, ceux-ci sont ajouts au dictionnaire.
4. Tous les lments du message sont cods sur le mme nombre de bits.
5. L'lment du message compact est le rang du caractre dans la table. Ce rang est cod sur plus de 8
bits : 10 bits, 12 bits.
Il est ncessaire de limiter la taille du dictionnaire et les codes associs sont tous de mme taille. Pour coder sur
10 bits, le dictionnaire aura 1024 lments.
G.BINET MdC 61
T_info_source p.20
UFR de Sciences Universit de Caen
Le principe de l'algorithme LZW est expliqu sur un exemple :
Soit transmettre le message LES PAGES D'IMAGES D'ORAGES . Les tapes pas pas de la compression
sont dans le tableau suivant o, pour plus de commodit, l'espace est not "_". Le message sera cod sur 10 bits
ce qui permet un dictionnaire de 1024 mots.
Message Ajout au dictionnaire Code latent Code mis Code hexadcimal
mis sur 10 bits
L rien L rien
E LE (258) E L 04C
S ES (259) S E 045
_ S_ (260) _ S 053
P _P (261) P _ 020
A PA (262) A P 050
G AG (263) G A 041
E GE (264) E G 047
S rien ES rien
_ ES_ (265) _ 259 103
D _D (266) D _ 020
' D' (267) ' D 044
I 'I (268) I ' 027
M IM (269) M I 049
A MA (270) A M 04D
G rien AG rien
E AGE (271) E 263 107
S rien ES rien
_ rien ES_ rien
D ES_D (272) D 265 109
' rien D' rien
O D'O (273) O 267 10B
R OR (274) R O 04F
A RA (275) A R 052
G rien AG rien
E rien AGE rien
S AGES (276) S 271 10F
rien rien S 053

D'o le message compact (exprim en hexadcimal):
04C04505302005004104710302004402704904D10710910B04F05210F053
En ASCII, les donnes codes sur 8 bits occupent 27*8 = 216 bits.
Compactes par LZW sur 10 bits, il y a 20*10 = 200 bits.
G.BINET MdC 61
T_info_source p.21
UFR de Sciences Universit de Caen
Nous avons ici un taux de compression de 92,6% sur un exemple adapt mais il est vident que l'efficacit de cet
algorithme sera d'autant plus grande que les donnes compresser seront de taille importante.

Dcompression :
L'un des avantages de cette mthode est qu'elle ne ncessite pas la transmission de la table de codage.
L'algorithme de dcompression se fait simplement en reconstituant pas pas le dictionnaire.
Reprenons l'exemple :
Code hexa
reu
Code latent Texte Ajout au dictionnaire Code latent
04C rien L rien E
045 L E LE (258 = 102
H
) S
053 E S ES (259 = 103
H
) _
020 S _ S_ (260 = 104
H
) P
050 _ P _P (261 = 105
H
) A
041 P A PA (262 = 106
H
) G
047 A G AG (263 = 107
H
) E
103 G ES GE (264 = 108
H
) _
020 ES _ ES_ (265 = 109
H
) D
044 _ D _D (266 = 10A
H
) '
027 D ' D' (267 = 10B
H
) I
049 ' I 'I (268 = 10C
H
) M
04D I M IM (269 = 10D
H
) A
107 M AG MA (270 = 10E
H
) E
109 AG ES_ AGE (271 =10F
H
) D
10B ES_ D' ES_D (272 = 110
H
) O
04F D' O D'O (273 = 111
H
) R
052 O R OR (274 = 112
H
) A
10F R AGE RA (275 = 113
H
) S
053 AGE S AGES (276 = 114
H
) rien

Cet algorithme est actuellement l'un des plus performants du march, il fourni des taux de compression de 30%
40% et il est la base de nombreuses utilisations :
La grande majorit des algorithmes de compression : GZIP, PKZIP, WINZIP,
Le format GIF (Graphic Interchange Format) de compression d'images.
La compression de donnes pour la transmission sur modem norme V42 bis.

G.BINET MdC 61
T_info_source p.22
UFR de Sciences Universit de Caen
IV.4 Le codage par rptition : mthode RLE (RLC)

Le plus typique et le plus simple de ces algorithmes est la mthode RLE (Run Length Encoding) ou encore RLC
(Run Length Coding).
Elle consiste reprer une donne qui a des apparitions conscutives frquentes. Dans ce cas, elle sera remplace
par deux indications :
1. Un chiffre qui indique le nombre de rptitions.
2. La donne elle-mme.

Par exemple: Elle E2le donne do2ne.
Ces exemples montrent que dans le cas du texte, la mthode risque d'tre peu efficace. Pour qu'elle le devienne,
il faut que les donnes concernes aient si possible un grand nombre de rptitions successives. Les donnes qui
conviennent ce type d'algorithme sont les images o il y a de grandes rptitions entre pixels voisins. Cela est
applicable pour des images noir et blanc mais aussi pour des images couleur si elles sont spares en diffrents
plans.
Prenons le cas simple d'un cran monochrome o nous avons la convention : "1" = pixel allum et "0" = pixel
teint. La succession des tats des pixels :
11111111000001111110000 sera reprsente par 81 50 61 40. Nous pouvons conomiser quelques bits sachant
qu'il s'agit d'une alternance de "1" et de "0" : il n'est ncessaire de prciser que la nature du premier bit de le liste
soit dans l'exemple : 81 5 6 4.
Dans le cas de couleurs, celle-ci sont reprsentes par un nombre entier (de 0 255 par exemple). Afin de ne pas
confondre le nombre de rptitions avec le code de la couleur, il est ncessaire d'ajouter un caractre sparateur
entre les diffrentes zones, le caractre sparateur usuel pour RLE est le "#" et un autre caractre sparateur entre
le nombre d'occurrences et le code de couleur lui-mme qui est en gnral l'espace.
88888888 24242424242424 67676767 #8 8#7 24#4 67#
De grande simplicit, cet algorithme est toujours utilis dans :
Les logiciels d'images plan par plan : PCX (Paintbrush), IFF/LBM (De Luxe Paint),
Tlcopie : norme CCITT groupes 3 et 4.

Ce codage devient inefficace lorsque le systme d'exploitation intgre un systme de compression de type LZW
ce qui est le cas actuellement de nombreux systmes d'exploitation.
G.BINET MdC 61
T_info_source p.23