(Hitta) Information Binaires
description
Transcript of (Hitta) Information Binaires
Information binaire
Codes correcteurs
et Compression
Dr HITTA Amara
Guelma University 08-Mai-1945
and
Sci. Res. Center in Welding &
Testing, Draria. Algeria
5.07.2008
1
TABLE DES MATIERES
Contenu 2
1 Introduction sur les codes binaires 5
1.1 Les corps de Galois . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Les codes binaires en blocs . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.1 Exemples de codes binaires . . . . . . . . . . . . . . . . . . . . 11
1.2.2 Taux de transmission . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.3 Codage des images . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.4 Compacts Disques . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.5 Video-Disque . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.6 Codes non binaires . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Canaux de transmission de l’information . . . . . . . . . . . . . . . . 16
1.4 Decodage par la vraisemblance maximale . . . . . . . . . . . . . . . . 20
3
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
1.5 Codage detecteur et correcteur d’erreurs . . . . . . . . . . . . . . . . 21
2 Codage de source et compression 25
2.1 Entropie et information binaires . . . . . . . . . . . . . . . . . . . . 25
2.1.1 Source Discrete finie . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.2 Information mutuelle . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.3 Capacite d’un canal de transmission . . . . . . . . . . . . . . . 31
2.1.4 Source Continue . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2 Codage de source et compression . . . . . . . . . . . . . . . . . . . . 40
2.3 Compression sans perte d’information . . . . . . . . . . . . . . . . . 42
2.3.1 Codage binaire de Shannon-Fano . . . . . . . . . . . . . . . . 48
2.3.2 Codage binaire de Huffman . . . . . . . . . . . . . . . . . . . 50
2.3.3 Codages arithmetique et LZW . . . . . . . . . . . . . . . . . . 52
2.4 Compression avec perte d’information . . . . . . . . . . . . . . . . . 53
2.4.1 JPEG (Joint Photographie Experts Group) . . . . . . . . . . 53
2.4.2 MPEG (Moving Picture Experts Group) . . . . . . . . . . . . 55
2.5 Exercices et solutions . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3 Codes correcteurs lineaires en blocs 63
3.1 Codes lineaires binaires . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2 Matrice generatrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3 Code dual et matrice de controle . . . . . . . . . . . . . . . . . . . . 69
3.4 Codes de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.5 Codes de Hamming etendu . . . . . . . . . . . . . . . . . . . . . . . 75
3.6 Les Codes de Golay binaires et ternaires . . . . . . . . . . . . . . . . 77
3.7 Codes de Hadamard . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Mr HITTA Amara4
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
4 Decodage des codes lineaires 81
4.1 Decodage par le syndrome . . . . . . . . . . . . . . . . . . . . . . . . 81
4.1.1 Partition de l’espace . . . . . . . . . . . . . . . . . . . . . . . 82
4.1.2 Algorithme de decodage avec Hr(2) . . . . . . . . . . . . . . . 84
4.1.3 Algorithme de decodage par le syndrome . . . . . . . . . . . . 87
4.2 Decodage a distance minimale . . . . . . . . . . . . . . . . . . . . . 89
4.3 Codes raccourcis, codes demultiplies . . . . . . . . . . . . . . . . . . 96
4.4 Codes de Reed Muller . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.4.1 Decodage des Codes de Reed Muller . . . . . . . . . . . . . . 99
4.5 Codes de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.6 Codes BCH et leurs algorithmes de decodage . . . . . . . . . . . . . 102
4.6.1 Decodage des codes BCH par l’exemple . . . . . . . . . . . . . 102
4.6.2 Decodage general d’un code BCH . . . . . . . . . . . . . . . . 104
5 Bornes asymptotiques d’un code 109
5.1 Bornes d’un code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6 Parametres asymptotiques des codes 119
6.1 Existence de codes et parametres asymptotiques . . . . . . . . . . . 119
6.2 Poids enumerateur et probabilite d’erreurs . . . . . . . . . . . . . . . 121
Mr HITTA Amara5
08-Mai 45 Guelma University
CHAPITRE
1
INTRODUCTION SUR LES CODES
BINAIRES
De nos jours, l’information represente un enjeu mondiale de taille. Elle tire ses orig-
ines des travaux de Shannon E. (1948) et ceux de Ralph W.L. et Harry Nyquiest
sur la transmission des signaux.
La theorie des codes traite des mecanismes consistant a parer la defaillance physique
sur la transmission des donnees. Un des plus celebres theoremes de Shannon garan-
tit l’ existence de codes pouvant transmettre l’information a des taux (bits/s) ap-
prochant la capacite du canal de communication avec une probabilite d’erreurs ar-
bitrairement petite.
Transmise sous forme a travers des supports de communication ( ligne telephonique,
liaison satellite, onde radio, bande magnetique), l’information peut etre, a ce titre,
perturbee par des sources diverses : erreurs humaines, bruits de fond des appareil-
lages electroniques, qualite mediocre des signaux emis, flou des photographies trans-
7
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
mises, manipulations ou intrusions externes. Le destinataire recevra ainsi un texte
tronque et parfois .
La solution pour la securite de l’information transmise consiste alors en un codage a
son emission et un decodage a sa reception couplee d’un cryptage qui ne laissent
sur le canal de transmission qu’un texte inintelligible et donc inutile pour ceux a qui
elle n’est pas destinee.
Malheureusement, les theoremes de Shannon ne fournissent pas de methodes per-
mettant de construire explicitement des codes aux performances maximales puisque
le but final est de construire des encodeurs et des decodeurs, possedant de bons
parametres, de sorte que le codage et le decodage de l’information soient rapides,
la correction des erreurs soit aisee et le transfert de bits par unite de temps soit
maximal.
Les premiers codes qui ont vus le jour, sous forme algebrique explicite, sont ceux de
R. W. Hamming (1950) de parametres n = 2r − 1 et k = n − r ; ils corrigent une
erreur. J. E. Golay generalisa les codes de Hamming a des codes binaires de longueur
(pr − 1)/(p − 1), p entier premier, et construit deux codes parfaits ; le premier est
le code binaire G2312(2) corrigeant 3 erreurs et le second est le code ternaire G11
6 (2)
corrigeant deux erreurs.
La plus importante des contributions dans ce domaine fut celle de Hocquenghem
(1959), Bose et Ray-Chaudhuri (1960). Leurs codes, baptises BCH, ont de bons
parametres, des algorithmes de decodage efficients et corrigent plusieurs erreurs.
La decouverte de ces codes a ouvert la voie a la recherche des methodes pra-
tiques pour l’implementation des encodeurs et des decodeurs ainsi qu’a la recherche
d’algorithmes de decodage performants ; on cite, entre autres, l’algorithme de Berle-
kamp. En 1960, I. S. Reed et G. Salomon du M.I.T (Massashuts Institute of Tech-
nology) introduisent les codes BCH de longueur p− 1 sur un corps fini de Galois a
p elements.Enfin, recemment des codes aux performances maximales, meilleurs que ceux predits
par la theorie de Shannon et qui depassent asymptotiquement la borne de Var-
shamov, sont proposes par le mathematicien Russe D. . Ils utilisent la geometrie
des courbes algebriques sur les corps finis de Galois. Leurs distances minimales sont
grandes, et se sont reveles tres utiles pour les transmissions tres perturbees, par ex-
Mr HITTA Amara8
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Figure 1.1: Schema general d’un systeme de communication
emple, celles effectuees par satellite. Jusqu’a present, les codes obtenus a partir des
courbes algebriques n’ont pas encore ete utilises, car leurs algorithmes de decodage
n’etaient pas suffisamment effectifs.
1.1 Les corps de Galois
Un corps est un ensemble qui possede des proprietes essentielles qui nous permette
d’effectuer les operations usuelles utilisant la commutativite, l’associativite et la dis-
tribution. Les exemples les plus courants sont: l’ensemble Q des nombres rationnels,
l’ensemble R des nombres reels et l’ensemble C des nombres complexes. L’ensemble
Z des entiers n’est pas un corps car la division de deux entiers non nuls n’est pas
forcement un entier. On s’interesse essentiellement aux corps finis dont les elements
sont un nombre fini de 0 et 1. Pour les obtenir, la methode la plus familliere est
l’arithmetique modulaire sur l’ensemble des entiers relatifs Z. Pour un entier positif
n fixe et a ∈ Z, la division euclidienne de a par n suppose l’existence d’un entier b
et d’un reste r, 0 ≤ r ≤ n, tels que a = nb+ r. On ecrit a ≡ r (mod n). L’ensemble
des restes modulo n est l’ensemble fini Zn = {0, 1, · · · , n− 1}.
Soit p un entier premier.
Definition 1.1.1 (Corps de Galois) Le p-corps de Galois est l’ensemble fini, Zp =
{0, 1, . . . , p− 1}, des restes modulo p.
Mr HITTA Amara9
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
L’arithmetique d’un p-corps finis de Galois, p entier premier, est utile pour le codage
algebrique ceci est du, en particulier, au fait que :
Theoreme 1.1.2 Tout element non nul admet un inverse pour la multiplication.
Preuve : Soit a ∈ Z∗p. Les entiers a et p sont premiers entre eux. Il existe, d’apres le
theoreme de Bezout deux entiers x et y tels que ax+py = 1 donc ax ≡ 1 (mod p).
Ainsi, x est l’inverse de a dans Zp. �
Theoreme 1.1.3 Tout element non nul admet un inverse pour la multiplication.
Definition 1.1.4 (Corps de Galois) Le p-corps de Galois est l’ensemble fini, Zp =
{0, 1, . . . , p− 1}, des restes modulo p.
Exemple 1.1.1 (5-Corps de Galois) Dans le 5-corps de Galois Z5 = {0, 1, 2, 3, 4},l’element 2 admet comme inverse 3 et vice-versa car 2.3 = 3.2 = 6 ≡ 1 modulo 5. Les
elements 1 et 4 sont leurs propres inverses car 1.1 ≡ 1 et 4.4 = 16 ≡ 1 modulo 5. �
Exemple 1.1.2 (11-Corps de Galois) Dans le corps Z11 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, x},on a modulo 11 : 1.1 ≡ 1, 2.6 ≡ 1, 3.4 ≡ 1, 5.9 ≡ 1, 8.7 ≡ 1, x.x ≡ 1.
D’autre part, 12 ≡ 1, 22 ≡ 4, 32 ≡ 9, 42 ≡ 5, 52 ≡ 3, 62 ≡ 3, 72 ≡ 5, 82 ≡ 9,
92 ≡ 4 et x2 ≡ 1. On peut meme resoudre certaines equations quadratiques. Ainsi,√
1 = ±1 = 1 ou x,√
3 = 5 ou 6. Mais√
2 n’existe pas dans Z11. �
L’ordre d’un corps fini est egal au nombre des elements qu’il contient. On demontre
et nous l’admettons :
• Chaque corps fini est d’ordre pn, puissance d’un certain nombre premier p ou
n est un entier non nul.
• Pour chaque puissance pn d’un nombre premier p, il existe un corps de Galois
unique d’ordre pn note Zpn .
Mr HITTA Amara10
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Posons Zq un corps fini d’ordre q = pn. Chaque sous-corps de Zq est d’ordre
pm, pour un entier positif m divisant n. Inversement, si m est un entier positif
diviseur de n, il existe un sous-corps unique de Zq d’ordre pm.
• Si Zq est un corps d’ordre q = pn, p entier premier, la caracteristique de Zq est
p. De plus, le corps Zq contient une copie de Zp comme sous-corps. Le corps
Zq est considere ainsi comme une extension de Zp.
• Le groupe multiplicatif Z∗q du corps fini Zq est cyclique d’ordre q−1 et aq = a,
pour tout a ∈ Zq. Le generateur du groupe cyclique Z∗q est dit element
primitif de Zq.
• Si a, b sont des elements d’un corps fini de caracteristique p, alors (a+ b)pn
=
apn
+ bpn
pour tout n ∈ N∗.
En particulier : Le corps de Galois binaire, Z2 = {0, 1}, possede des proprietes
essentielles et pratiques, a savoir qu’aucune erreur de signe n’est possible et que tout
element est egal a son carre : a2 = a et a = −a pour tout a ∈ Z2. . Les elements 0
et 1 sont dits bits.
1.2 Les codes binaires en blocs
Ce sont des codes dont tous les mots ont la meme longueur, dite longueur du code.
On les rencontre, plus particulierement, lorsqu’il s’agit d’une transmission a travers
un canal sans memoire , c’est-a-dire que les mots envoyes ne dependent pas de
ce qui s’est passe avant leurs transmissions et que la sortie a un instant donne ne
depend statistiquement que de l’entree correspondante.
Definition 1.2.1 (Code binaire) Un code binaire en blocs , note Ckn(2), est
un ensemble de mots, forme par les bits 0 et 1, de longueur n. Leurs nombre est
|Ckn(2)| = 2k. Les k premiers bits sont dits bits d’information. Le poids d’un
mot code est le nombre de bits 1 qui le compose.
Mr HITTA Amara11
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
On peut ainsi ajouter, indifferemment, a chaque mot le bit 0 ou 1 pour que son
poids soit paire. Par ailleurs, on verifie les inegalites
1 ≤ |Ckn(2)| = 2k ≤ 2n.
Lorsque k = n, on obtient le code trivial Zn2 ; Il contient 2n mots de longueur n et
ne corrige aucune erreur.
Le principe general pour la detection des erreurs est le suivant :
• L’emetteur transforme le message initial a l’aide d’une technique qui genere
certaines redondances de l’information au sein du message code.
• Le recepteur verifie, a l’aide de la meme technique, que le message recu est
bien le message envoye grace a ces redondances.
Si le code est bien concu, on peut detecter et corriger l’erreur survenue ; C’est la
vocation principal des codes correcteurs.
Apres detection, il y aurait une auto-correction (Forward Error Correction : FEC)
par des codes par blocs (Hamming ou Reed-Salomon) ou par des codes convolutifs
(Viterbi). Sinon, le recepteur demande a l’emetteur de retransmettre une nouvelle
fois le message code (Automatic Repeat ReQuest : ARQ). Cette requete se presente
sous plusieurs formes :
• Protocole “stop and wait ” attendant une reponse ARQ ou NACK.
• Protocole “go back and N”, N=NACK Seul. Il identifie le bit errone a
partir duquel tout est transmis.
• Protocole NACK selectif qui precise le bit defaillant a transmettre seul.
Le codage ARQ est le plus utilise dans les reseaux notamment les protocoles de
telecommnication, a savoir HDLC, X25 et TCP. Le taux de perte est faible et le
delai de transmission est tolerable. Ces deux methodes peuvent etre combinees.
Mr HITTA Amara12
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
0000 0000 0000 0001 0001 0001 0010 0010 0010 0011 0011 0011
0100 0100 0100 0101 0101 0101 0110 0110 0110 0111 0111 0111
1000 1000 1000 1001 1001 1001 1010 1010 1010 1011 1011 1011
1101 1101 1101 1101 1101 1101 1110 1110 1110 1111 1111 1111
Table 1.1: Code 3-repetition
1.2.1 Exemples de codes binaires
Exemple 1.2.1 (Code de parite C23(2)) Il est forme par les mots code 000, 011,
101 et 110. Il n’y a qu’une erreur a detecter et pas plus, car chaque mot code differe
d’un autre mot code en deux positions. Ce code ne corrige aucune erreur, car si le
mot 010 est recu, l’un des mots 001, 110 ou 011 aurait ete envoye avec une erreur
de transmission. �
Exemple 1.2.2 (Code 2-repetition) Le message code est un double exemplaire
du message initial. Le recepteur s’apercoit qu’il y a eu erreur si les deux exemplaires
ne sont pas identique. �
On utilise aussi les codes ou la redondance est tellement suffisante pour detecter
certaines erreurs survenues lors de la transmission.
Exemple 1.2.3 (Code 3-repetition) C’est un code de longueur 12 ou le message
initial, forme de 4 bits, est repete 3 fois. On obtient les 24 = 16 mots codes suivants :
Avec ce code : Certaines erreurs detectees ne sont pas corrigibles a savoir : une
erreur differente sur au moins deux exemplaires. D’autres sont detectees et mal
corrigees a savoir : une meme erreur sur deux exemplaires simultanement. �
Exemple 1.2.4 (Transmission avec un code de parite C45(2)) La transmission
du message 0101 fait intervenir un codage systematique 01010. Le dernier bit est dit
parite de controle. Il est egal a la somme des autres bits du message. En passant
dans le canal de transmission, une source de bruit lui fait subir des modifications
pour devenir 11010. �
Mr HITTA Amara13
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Figure 1.2: Transmission avec un code de parite C45(2)
1.2.2 Taux de transmission
Definition 1.2.2 (Taux de transmission) Le taux de transmission ou d’
information d’un code binaire Ckn(2) de longueur n qui a |Ckn(2)| = 2k mots,
0 ≤ k ≤ n, est defini par
R[Ckn(2)] =
1
nlog2 |Ck
n(2)| =k
n.
Le nombre r = n − k est dit la redondance du code : Plus la redondance est
grande, plus le codage est precis et efficace.
Ainsi, si chaque mot envoye est un mot code, alors n = k et r = 0 ; il n’y a
rien a corriger dans ce cas de figure. Comme 1 ≤ |Ckn(2)| ≤ 2n, on en deduit que
0 ≤ R[Ckn(2)] ≤ 1. Les travaux de Shannon combines avec ceux du Mathematicien
Sovietique Rom Varshamov et l’americain E. N. Gilbert, ont montre qu’on pouvait
construire des codes ayant un taux de transmission optimal par rapport a la fiabilite
du canal de transmission.
Mr HITTA Amara14
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 1.2.5 (Codes detecteurs)
• Le code trivial Zn2 = {00, 01, 10, 11} a pour parametres n = k = 2, alors
|Zn2 | = 4 et r = 0. Comme R[Zn
2 ] = 1, ce code ne detecte et ne corrige aucune
erreur.
• Pour le code de parite C23(2) = {000, 011, 101, 110}, on a R[C2
3(2)] = 2/3 et
r = 1. En general, Le code de parite d’ordre n, Cn−1n (2), a pour taux de
transmission (n− 1)/n.
• Le code de repetition C1n(2) a pour taux de transmission a 1/n. �
Les exemples qui suivent montrent que la theorie des codes ne concerne pas que
les transmissions dans le sens des telecommunications mais aussi la sauvegarde des
donnees, les techniques d’archivages, les imperfections sur les surfaces des disques
durs et les interferences des frequences radios avec les receptions des telephones
mobiles.
1.2.3 Codage des images
Le format utilise est le format Bitmap, dit carte de bits. Les points d’une image
sont appeles pixels �picture elements�. Chaque pixel est decrit par un nombre
indiquant sa couleur ; chaque image est, ainsi, representee par une serie de nombre.
Ce codage est simple mais l’inconvenient est que l’image occupe une place memoire
importante car les pixels sont petits et nombreux ...! :
Les photographies, en provenance de la sonde spatiale Mariner 9 a partir de la
planete Mars, etaient divisees en pixels. A chaque pixel etait affecte un niveau de
gris variant entre 1 et 26 = 64 ; chaque pixel etait code par un mot de Z26 . A la
reception, il etait possible de corriger jusqu’a 7 erreurs par pixel, ce qui explique
l’excellente qualite des images recues a l’epoque.
Mr HITTA Amara15
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
1.2.4 Compacts Disques
Une simple rayure sur la surface d’un disque compact, de l’ordre d’un millemetre,
suffit de detruire environ 3300 bits d’information sur la piste ! Il ne s’agit la que
des rayures, et il existe malheureusement bien d’autres sources d’erreurs, a savoir :
les pousieres, le voile du disque, les interferences, ou tout simplement des defauts de
metallisation de la surface.
Pour remedier a cette situation, on utilise les codes de Reed-Solomon : Ils sont
inventes en 1960 par I. S. Reed et G. Solomon au M.I.T. Lincoln Labs. Construits
sur un corps de Galois fini, ils ont ete ensuite utilises par la NASA et l’Agence
Spatiale Europeene. On les rencontre aussi dans les disques audionumeriques (CD)
ou le signal musical est traduit en un code binaire.
Le codage permet de lutter contre l’influence des rayures. Pour les CD audio,
le taux d’une erreur non corrigee par 109 bits lu , passe a 10−13 pour les 109 bits
lu , passe a 10−13 pour les CD-ROM a l’aide du code �Cross-Interleaved Reed-
Solomon Code, C.I.R.C.� ce qui veut dire tout simplement codes croises de
Reed-Solomon avec entrelacement. Ce code utilise dans le systeme du disque
compact permet de corriger 3840 bits effaces, et meme jusqu’a 12288 bits par inter-
polation.
1.2.5 Video-Disque
Il existe, par ailleurs, depuis quelques annees un support de meme nature que le
disque compact, utilise pour le stockage du son et de l’image, le Video-Disque,
VD. Il permet de restituer, en plus de l’image, un son de haute qualite. Le principe
de numerisation de l’image est simple, puisqu’on peut exprimer toutes les couleurs
a partir de trois couleurs : Rouge, Verts et Bleu (RVB).
La couleur C de chaque pixel s’ecrit
C = x.R + y.V + z.B
ou x, y et z designent les intensites (chrominances) respectives des trois couleurs.
Par exemple, une combinaison en proportions identiques du bleu, du rouge et du
Mr HITTA Amara16
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
vert donnera la couleur blanche lorsque les intensites sont a leur maximum, ou gris
lorsque les intensites sont plus faibles et lorsque les intensites sont nulles on a la
couleur noire. En codant sur 8 bits on obtient 28 = 256 intensites. Chaque pixel est
represente par une suite binaire de trois mots de 8 bits.
Pour le stansdard francais PAL, une image video est de 625 lignes, chacune est
formee par des pixels. Cette repesentation permet de supporter 16.777.216 couleurs.
Si l’on considere qu’il y a 400 pixels par ligne, il faut 25× 625× 400××8× 3 = 150
millions bits pour une seconde d’images avec une frequence de 25 images par seconde.
En incluant le son et les differents codages on arrive a une quantite phenomenale
d’information.
Tres prochainement, un nouveau standard de transmission des images video verra
le jour, il sera au format 16×9 (16/9), contrairement au format actuelle 4×3, et en
haute definition, c’est-a-dire 1250 lignes pour 1920 pixels, au lieu de 625 pour 400
points.
Dans l’etat actuel des choses, aucun canal n’a un debit suffisant pour transmettre
le son et l’image en 16/9 et en haute definition. Pour cela, on ne transmet pas les
trois chrominances mais plutot deux chrominances et une luminance (somme
des trois chrominances). La couleur manquante sera reconstituee a partir de ces
trois parametres. Ce qui sera transmis est : le son, la luminance en numerique et
les deux couleurs en analogique.
1.2.6 Codes non binaires
On donne maintenant deux exemples de codes non binaire sur un corps de Galois
Zp ou p est entier premier superieur a 2.
Exemple 1.2.6 (Code de Hamming ternaire) Considerons le corps de Galois
ternaire Z3 = {0, 1, 2} forme par les restes modulo 3. Posons n = 4, le code de
Hamming ternaire est defini par H2(3) = {abcd ∈ Z43 : a+ b = c et b+ c+ d = 0}.
Les premieres bits a et b sont les bits d’information, donc k = 2 et H2(3) = C42(3).
Il a 32 = 9 mots codes, a savoir : 0000, 1012, 2021, 0111, 1120, 2102, 0222, 1201,
2210. �
Mr HITTA Amara17
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 1.2.7 (Code ISBN) International Standard Book Number, est un code
de longueur 10 sur Z11. A chaque livre est affecte un code a1a2 · · · a9ax tel que la
formule de controle, ci-dessous, soit satisfaite : 1.a1 +2.a2 +3.a3 +4.a4 +5.a5 +6.a6 +
7.a7 +8.a8 +9.a9 +xax ≡ 0 (mod. 11), sachant que x.x ≡ 1 et −x ≡ 1 (mod. 11).
La lettre x est utilisee par les Romains pour designer le nombre 10. Le code ISBN
detecte une erreur : Supposons que ai est change en k ; le terme iai devient ik.
Alors 1.a1 + · · ·+ (i− 1)ai−1 + i(ai− ai + k) + · · ·+xax ≡ i(k− ai) (mod. 11). Mais
i 6= 0 et k − ai 6= 0 donc i(k − ai) 6≡ 0 (mod. 11) car Z11 est un corps. La detection
est realisee puisque l’expression de controle n’est pas satisfaite. Ainsi, dans l’ISBN
2.09.176706.9, les chiffres sont choisis tels que : 2 → la langue francaise, 09 →l’editeur, 176706 → l’identification. Le dernier chiffre est le symbole de controle
puisque∑9
i=1 iai = 207 ≡ 9 (mod. 11). Cet ISBN est bon. �
Contrairement aux codes binaires en bloc ou le codage/decodage d’un bloc depend
uniquement des informations de ce bloc, on defini :
Les codes convolutifs comme etant des codes dont les mots ont des longueurs
differentes. Chaque mot code depend, d’une maniere continue, des mots emis avant
et apres sa transmission.
On les rencontre plus particulierement lorsqu’il s’agit d’une transmission a travers un
canal avec memoire. Le procede du codage convolutif, developpe a partir d’un article
de Peter Elias [1955], repose sur l’idee de transmettre les mots codes determines non
seulement a partir des bits d’information recus de la source mais egalement d’autres
bits recus auparavent. Ces codes presentent la propriete remarquable de pouvoir
etre decode par des algorithmes generaux dont le plus connu est celui propose par
Andrew Viterbi [1967] dans le cadre des techniques de decodage sequentiel.
1.3 Canaux de transmission de l’information
Un canal est un systeme physique permettant la transmission d’une information
entre deux points distants dans le temps ou l’espace. Ainsi, la description d’un canal
necessite
Mr HITTA Amara18
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Un alphabet d’entree qui contient les symboles que l’on peut transmettre
a travers ce canal.
• Un alphabet de sortie qui contient les symboles d’entree et probablement
d’autres symboles que l’on peut recevoir a l’autre bout du canal.
• Une fonction probabiliste qui decrit la facon avec laquelle les symboles
d’entree sont transformes par le canal.
Le canal le plus simple est le canal discret sans memoire: C’est la donnee d’une
source (entree) et d’une sortie, discretes finis : X = Xentree = {x1, · · · ,xk} et
Y = Ysortie = {y1, · · · ,yn}. Lorsque xi est envoye, le mot yj sera recu avec une
probabilite conditionnelle :
pij = P{yj recu /xi envoye } telle que∑i,j
pij = 1.
La matrice de passage d’un etat a un autre est de type k × n, a savoir
T =
p11 p12 · · · p1n
......
pk1 pk2 · · · pkn.
Si la somme des termes de chaque ligne et de chaque colonne est egale a 1, on parle
de matrice stochastique ou matrice de transition.
Un canal est dit symetrique si l’ensemble des bits de sortie peut etre partitionne en
sous-ensembles de telle sorte que pour chacun de ces sous-ensembles, la sous-matrice
de passage correspondante est symetrique.
Exemple 1.3.1 (Canal symetrique) Considerons un canal discret de source bi-
naire et de sortie ternaire : X = {0, 1} et Y = {0, 1, 2}. La matrice de transition de
ce canal est
M =
(0.7 0.2 0.1
0.1 0.2 0.7
).
La sortie Y se partitionne en 2 sous-ensembles Y1 = {0, 2} et Y2 = {1} dont les
matrices de passage correspondantes sont symetrique et sont respectivement
M1 =
(0.7 0.1
0.1 0.7
)et M2 =
(0.2
0.2
).
Mr HITTA Amara19
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
11−p //
p
!!
1
0
p
==
1−p//0
Figure 1.3: Canal binaire symetrique
Le canal de transmission est donc symetrique. �
On decrit dans ce qui suit trois types de canaux, suivant que la source et la sortie
sont discretes ou continues
1) Canal Binaire Symetrique a probabilite d’erreurs :
Lorsque la source et la sortie sont binaires,
Xentree = Y sortie = {0, 1},
le canal (X, Y, p) est dit Canal Binaire Symetrique de probabilite d’erreurs p ,
0 ≤ p ≤ 1, et note CBS(p). Le nombre p designe la probabilite lorsque l’un des
bits est altere ou mal recu (le bit 0 est change en 1 et vice-versa). On peut choisir
p < 12, sinon on considere 1 − p. La probabilite de y recu sachant que x transmis,
est
P(y|x) =
p si x 6= y
1− p si x = y.
Ainsi, P(0|0) = P(1|1) = 1− p et P(1|0) = P(0|1) = p.
La transition entre ces deux etats lors de cette transmission est resumee par la
matrice stochastique
T =
(1− p p
p 1− p
).
Si aucune erreur n’est survenue, le canal est dit parfait.
Mr HITTA Amara20
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Un autre canal que nous utiliserons regulierement est le canal d’effacement, dans
lequel les symboles ne sont pas modifies, mais effaces.
2) Canal binaire a effacement :
Lors d’un brouillage sur une ligne telephonique ou d’une interruption breve de lecture
de la piste d’un CD, un bit ou plusieurs sont endomages ou effaces. Soit
Xentree = {0, 1} et Ysortie = {0, 1, ?}
ou ? est un symbole d’effacement qui remplace les bits 0 et 1 avec une probabilite
p, 0 < p < 1. Les probabilites de transition entre les differents etats sont P(0|0) =
P(1|1) = 1− p, P(0|1) = P(1|0) = 0, P(0|?) = P(1|?) = p. Schematiquement, on a
11−p //
p**
1
?
0
p44
1−p//0
Figure 1.4: Canal binaire a effacement
La matrice de transition de ce canal est de type 2× 3 :
TC =
1− p 0 p
0 1− p p
.
Ainsi, le canal de transmission, en recevant le mot x, l’efface avec une probabilite p
ou le transmet intact avec la probabilite 1− p. Dans ce cas, une erreur de canal est
appelee erreur d’effacement.
3) Canal Z :
C’est un canal binaire non symetrique ou Xentree = {0, 1} et Ysortie = {0, 1}. Les
probabilites de transition sont donnees par
P(0|0) = 1, P(0|1) = 0, P(1, 0) = p et P(1, 1) = 1− p.
Mr HITTA Amara21
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
La matrice de transition de ce canal est de type 2× 2 :
TZ =
(1 p
0 1− p
).
Schematiquement, on a
01 //0
1
p
99
1−p//1
Figure 1.5: Canal Z
4) Canal Gaussien :
L’entree est est un intervalle par contre la sortie est l’ensemble R :
Xentree = [−1, 1] et Ysortie = R.
La probabilite de transition est donnee par la loi normale de moyenne x et d’ecart-
type σ :
P(y|x) =1
σ√
2πexp
[−1
2
(y− x
σ
)2].
1.4 Decodage par la vraisemblance maximale
Le decodage par la vraisemblance maximale se fait suivant les principes suivants :
1. Decodage complet : Si y est recu, on decode au mot code x
de facon que la probabilite P(y|x) soit maximale.
Mr HITTA Amara22
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
2. Decodage Incomplet : Si y est recu, le decodage doit se faire a
un mot code telle que la probabilite soit maximale sinon l’erreur
sera detectee sans etre corrigee.
Exemple 1.4.1 Le code ISBN detecte une erreur et ne corrige aucune, le decodage
est incomplet. De meme, le decodage avec le code de parite C23(2) est incomplet. �
Considerons un code binaire de longueur n. Supposons que le mot y est recu sachant
que x est envoye a travers un canal CBS(p). Si y et x different en k positions lors
de cette transmission. L’erreur e survenue admet k bits 1 et les n− k bits restants
sont des 0 :
P(y|x) = pk(1− p)n−k.
Exemple 1.4.2 On utilise le code de Hamming H3(2) = C37(2). Supposons que
y = 0011111 est le mot recu a travers un CBS de probabilite p = 0.1. On prefere
decoder y a 0001111 puisque P(y | 0001111) ' 0, 009414801 > P(y | 1011010) '0, 000000961. �
1.5 Codage detecteur et correcteur d’erreurs
Il s’agit d’ajouter des informations, dites redondantes de types bits de controle, pour
detecter et eventuellement corriger, a la reception, les erreurs provoquees par un
canal bruite. En procedant de cette maniere, on diminue la probabilite d’occurence
des erreurs et on augmente la capacite de correction et de detection du code. Plus
cette probabilite est faible par rapport a celle du canal de transmission, meilleur est
le codage.
Une methode systematique, introduite par R. W. Hamming en 1950, consiste a
ajouter a chaque mot transmis un symbole binaire, dit parite de controle, egal a
la somme de ses bits. Le message x = x1 . . . xn−1 sera code, ainsi, sous la forme
x = x1 . . . xn−1pn ou pn = x1 + x2 + · · ·+ xn−1.
Mr HITTA Amara23
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Si pn = 0, le mot emvoye est un mot code. Il n’y a rien a corriger.
• Si pn = 1, le receveur s’apercoit qu’une ou plusieurs erreurs de transmission
sont survenues.
Designons par X la variable aleatoire representant le nombre d’erreurs survenues
lors de la transmission d’un mot de longueur n a travers un CBS de probabilite p.
La variable aleatoire X suit une loi binomiale X ↪→ B(n, p). La probabilite pour que
k erreurs surviennent lors de cette transmission est
P(X = k) = Ckn p
k (1− p)n−k.
Exemple 1.5.1 (Parite de controle) Supposons que XSource = {00, 01, 10, 11}et que la transmission se fait a travers un CBS de probabilite 0, 125. La proba-
bilite pour qu’au moins une erreur survienne est P(X ≥ 1) = C12(0, 125).(0.875) +
C11(0, 125).(0, 125) ≈ 0, 234 < 0, 5. En allongeant chaque mot par sa bit de controle,
les erreurs simples sont facilement detectables. La probabilite d’occurence des er-
reurs doubles parmi les 3 bits est P(X = 2) = C23(0, 125).(0, 125).(0.875) ≈ 0, 041 <
0.234. Que se passe-t-il, lorsqu’il y a plus de bruit, donc plus d’erreurs ?. Pour cela,
soit p = 1/3 > 0, 125, alors P(X ≥ 1) = C12(1/3).(2/3) ≈ 0, 5555 > 0, 5. �
Exemple 1.5.2 (Occurence des erreurs) Supposons qu’on veut transmettre 211 =
2048 mots de longueur n = 11 a travers un CBS de probabilite p = 10−8, et
que les bits sont envoyes a un debit de 107 bits/s. Le nombre de mots transmis
par seconde est 107/11. La probabilite pour qu’une erreur survienne est C111p (1 −
p)10 ' 11.10−8. Le nombre de mots transmis incorrectement chaque seconde est
(11.10−8) × (107/11) = 0, 1 mot. Par consequent, on a une erreur chaque 10 sec-
onde, 6 chaque minute, 360 en une heure et 8640 chaque jour; c’est enorme, n’est-ce
pas ? �
Voyons maintenant, comment on peut minimiser l’occurence des erreurs en al-
longeant chaque mot par sa parite de controle. Dans ce cas, n = 12.
Mr HITTA Amara24
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 1.5.3 (Minimiser l’oOccurence des erreurs) Seules les erreurs dou-
bles sont indetectables ; la probabilite de leurs occurence est p2 = C212p
2(1 −p)10 ' 66.10−16. Le nombre de mots transmis incorrectement par seconde est
(66.10−16) × (107/12) = 5, 5.10−9. Ce qui correspond a une erreur tous les 2000
jours. �
Mr HITTA Amara25
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Mr HITTA Amara26
08-Mai 45 Guelma University
CHAPITRE
2
CODAGE DE SOURCE ET
COMPRESSION
2.1 Entropie et information binaires
L’outil de base est le concept de l’entropie, introduit par Shannon en 1948 ; elle
est vue comme une mesure mathematique de l’information ou l’incertitude sur
l’information. La quantite d’information d’un message est le nombre de bits
possibles pour obtenir un codage optimal a partir de messages donnes. En pratique,
on s’interesse plutot au cas ou ce message est un texte ecrit, une image de television
ou autre. Pour cela, considerons un message dont le resultat doit etre transmis a
travers un canal quelconque. Ce message est considere comme une variable aleatoire
discrete ou continue qui suit une certaine loi de probabilite.
27
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
2.1.1 Source Discrete finie
Soit X une variable aleatoire discrete prenant les valeurs x1, . . . , xn avec des proba-
bilites d’occurence respectives p1, ..., pn c’est-a-dire
P[X = xi] = pi, i = 1, · · · , n etn∑i=1
pi = 1.
Ainsi :
• Si p1 = 1, alors pi = 0 pour tout i 6= 1, le resultat X = x1 est realise et
n’apporte aucune information.
• Si p1 = 0, 001, la quantite d’information delivree par cet evenement est plus
importante que celle d’avant.
En somme, on cherche a construire une fonction d’une variable aleatoire X de prob-
abilite p, notee I(p), verifiant les hypotheses suivantes :
• I(p) ≥ 0. I(p) est nulle si p = 1 c’est-a-dire que X est un evenement certain.
• I(p) est une fonction decroissante et continue de p.
• I(p1p2) = I(p1) + I(p2) pour deux evenements independants de probabilites p1
et p2.
Dans le cas binaire, la seule fonction qui verifie ces hypotheses est
I(p) = − log2 p = log2(1/p).
Definition 2.1.1 (Entropie) L’ entropie de la variable aleatoire X, notee H(X),
est la quantite d’information moyenne par symbole emis par la source:
H(X) = −n∑i=1
pi log2 pi =n∑i=1
pi log2 (1/pi)
Mr HITTA Amara28
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Par convention, on pose 0× log(1/0) ≡ 0 car limθ→0+
log(1/θ) = 0.
Exemple 2.1.1 (Pile ou face) On jette une piece de monnaie. La variable aleatoire
X, resultat de cette experience, prend les valeurs x1 = pile ou x2 = face. Les deux
evenements sont equiprobables donc p1 = p2 = 0.5 et H(X) = 1. Il n’y a qu’une
seule information. �
Par consequent :
Nous pouvons utiliser, l’information tiree de l’experience de cet exemple, comme
unite de mesure de l’information appelee bit, binary digit, comme l’a deja propose
l’ Organisation Internationale de normalisation (ISO).
La definition de l’entropie necessite les remarques suivantes :
• H(X) depend de la loi de probabilite suivie par X et non des valeurs prises
par X.
• H(X) est l’esperance mathematique de la variable aleatoire I(X) = − log2 P[X].
• La quantite d’information d’un message represente le nombre minimal de bits
necessaires pour coder toutes ces significations possibles.
• Si les n evenements X = xi ont la meme incertitude 1/n alors
H(X) = log2(n) bits.
• L’incertitude d’une variable aleatoire (v.a.), c’est-a-dire son entropie, est max-
imale lorsque sa distribution de probabilite est uniforme c’est-a-dire equipartie.
Son entropie vaut alors le logarithme du cardinal de l’ensemble des valeurs pos-
sibles pour cette v.a..
Mr HITTA Amara29
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 2.1.2 (Entropie d’un alphabet naturel) Le tableau suivant indique
les probabilites, en pourcentage, d’occurence des 26 lettres de lalphabet anglais :
p(A) = 7.87, p(B) = 1.56, p(C) = 2.68, p(D) = 3.89, p(E) = 12.66, p(F ) = 2.55,
p(G) = 1.87, p(H) = 5.74, p(I) = 7.07, p(J) = 0.10, p(K) = 0.60, p(L) = 3.94,
p(M) = 2.43, p(N) = 7.05, p(O) = 7.76, p(P ) = 1.88, p(Q) = 0.10, p(R) = 5.95,
p(S) = 6.31, p(T ) = 9.78, p(U) = 2.80, p(V ) = 1.02, p(W ) = 2.15, p(X) = 0.16,
p(Y ) = 2.01, p(Z) = 0.07.
L’entropie de l’anglais sera alors d’environ 4.1 bits par lettre. �
Un codage optimal est celui qui minimise le nombre de bits transmis. Chaque
I(pi) = − log2(pi) represente le nombre de bits necessaires pour encoder, d’une facon
optimale, le message X = xi.
Exemple 2.1.3 (Code optimal) Considerons trois messages A, B et C tels que
p(A) = 0.2 et p(B) = p(C) = 0.5 ; on a H(X) = 1, 5. Un codage optimal attribue
un bit a A et 2 bits a B et C. Le message A est code comme 0, par contre les
messages B et C sont codes comme 11 et 10 ; le message ABCA sera code 011100.
Le nombre moyen de bits par message est 6/4 = 1, 5 ; ce code est optimal, car si
le message C est code sous la forme 1, on aura dans ce cas de figure l’embaras du
choix entre CC et B. �
Exemple 2.1.4 (Le jet d’un de) On jette un de. Le resultat de cette experience
est X = 1, 2, · · · , 6. Comme ces evenements sont equiprobables de probabilite 1/6,
alors
H(X) = −6∑i=1
(1
6
)log2
(1
6
)' 2, 5849625 bits.�
Exemple 2.1.5 (Le jet de deux des) On jette deux des. Le resultat sera la vari-
able aleatoire X qui est egale a la somme des deux des. On a 1 facon pour que X = 1,
2 facons pour que X = 3, 3 facons pour que X = 4, 4 facons pour que X = 5, 5
facons pour que X = 6, 6 facons pour que X = 7, 5 facons pour que X = 8, 4 facons
Mr HITTA Amara30
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
pour que X = 9, 3 facons pour que X = 10, 2 facons pour que X = 11 et 1 facon
pour que X = 12. Par consequent, l’entropie de cette exprerience :
H(X) = H
(1
36,
2
36,
3
36,
4
36,
5
36,
6
36,
5
36,
4
36,
3
36,
2
36,
1
36
)= −
(1
36
)log2
(1
36
)− · · · · · · −
(1
36
)log2
(1
36
)= 3, 2744000191929 bits.�
Exemple 2.1.6 (Entropie maximale) Considerons les jeux suivants :
• Loto simple : 6 bons numeros sur les 45, on a n1 = C645 = 8145060 possi-
bilites.
• Quarte : sur les 12 chevaux, il y a n2 = 12.11.10.9 = 11880 resultats possibles.
• Tirer un carre d’as : Il y a une chance sur les n3 = C452 = 270725 cartes.
Le plus incertain est le Loto. Il y a equiprobabilite donc les entropies sont maxi-
males :
H1(Loto) = log n1 ' 23.0 bit,
H2(Quarte) = log n2 ' 13.5 bit,
H3(Poker) = log n3 ' 18.0 bit. �
La fonction d’entropie binaire, a travers un canal binaire symetrique de probabilite
p, est donnee par
H2(p) =
p log2
(1
p
)+ (1− p) log2
(1
1− p
)si p ∈]0, 1[
0 si p = 0 ou 1.
La fonction d’entropie binaire atteint son maximum lorsque p = 0, 5.
Mr HITTA Amara31
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
2.1.2 Information mutuelle
Soit Y une seconde variable aleatoire discrete prenant les valeurs y1, . . . , ym avec des
probabilite d’occurence q1, . . . , qm telles que q1 + . . . + qm = 1. Notons par rij la
probabilite pour que le couple (X, Y ) prenne la valeur (xi, yj)
rij = P{ (X, Y ) |X = xi et Y = yj}.
On a alors
pi =m∑j=1
rij et qj =m∑i=1
rij.
L’entropie du couple (X, Y ) est definie par
H(X, Y ) = −n∑i=1
m∑j=1
rij log2 rij.
Ce qui donne l’inegalite
H(X, Y ) ≤ H(X) +H(Y ).
L’egalite est obtenue si et seulement si les deux variables aleatoires sont independantes.
Les probabilites marginales sont definies par
P(X = xi) ≡m∑j=1
P(X = xi, Yj), P(Y = yi) ≡n∑i=1
P(X = xi, Y = yj),
La probabilite conditionnelle de X sachant Y est
P(X = xi|Y = yj) =P(X = xi, Y = yj)
P(Y = yj)si P(Y = yj) 6= 0.
L’ entropie conditionnelle de la variable aleatoire X sachant Y = yj est donnee par
H(X|Y = yj) = −n∑i=1
P(X = xi|Y = yj) log P(X = xi|Y = yj).
L’entropie conditionnelle de la variable aleatoire X sachant Y sera alors
H(X|Y ) = −m∑j=1
P(Y = yj)
[n∑i=1
P(X = xi|Y = yj) log P(X = xi|Y = yj)
]
= −m∑j=1
n∑i=1
P(X = xi, Y = yj) log P(X = xi|Y = yj).
Mr HITTA Amara32
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
L’entropie du couple (X, Y ), l’entropie conditionnelle et les entropies marginales
sont reliees par la formule
H(X, Y ) = H(X) +H(X|Y ) = H(Y ) +H(Y |X).
La variable Y recue a la sortie du recepteur comporte des differences avec la variable
X dues aux perturbations agissant sur le support de transmission.
La quantite d’information conditionnelle de Y sachant X realisee est I(Y |X) =
− log2[P(Y |X)]. C’est la mesure de l’observation de Y qui n’etait pas deja fournit par
l’observation de X. La formule de Bayes P(X∩Y ) = P(X).P(Y |X) = P(Y ).P(X|Y )
nous donne l’information de la realisation de X et Y : I(X∩Y ) = I(X)+I(Y |X) =
I(Y ) + I(X|Y ). Ainsi, les imperfections du canal de transmission peuvent etre
traduite en termes d’information mutuelle moyenne qu’apporte la variable de sortie
Y (resp. d’entree X) sur la variable d’entree X (resp. de sortie Y ) :
I(X, Y ) = H(X)−H(X|Y ) = H(Y )−H(Y |X) = I(Y,X).
Le terme H(X|Y ) (resp. H(Y |X)), dit ambiguite, est l’incertitude qui reste sur X
(resp. Y ) lorsque Y (resp. X) est connue. L’information mutuelle I(X, Y ) est une
distamce entre X et Y , puisque
• I(X, Y ) ≥ 0.
• I(X, Y ) = 0 si X = Y
• I(X, Y ) = I(Y,X).
• Si Z est une troisieme variable aleatoire alors I(X,Z) + I(Z, Y ) ≤ I(X, Y ).
2.1.3 Capacite d’un canal de transmission
La capacite d’un canal, exprimee en bits, est le maximum des I(X, Y ) suivant
toutes les lois de probabilite possibles sur X
C = max I(X, Y ) = max[H(Y )−H(Y |X)].
Mr HITTA Amara33
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Ainsi :
La capacite d’un canal correspond au maximum d’information
transmise.
Exemple 2.1.7 (Capacite d’un CBS(p)) La capacite de ce canal est atteinte
pour une loi uniforme sur les bits d’entree donc P[X = 0] = P[Y = 1] = 0, 5.
Comme on connait la loi de Y sachant X, on va utiliser I(X, Y ) = H(Y )−H(Y |X).
La probabilite de Y est
P(Y = 0) = (0, 5)× (1− p) + (0, 5)× p = 0, 5 et P(Y = 1) = 0, 5.
Donc H(Y ) = −2× (0, 5)× log2(0, 5) = 1. D’autre part, on a
H(Y |X) = 0, 5×H(Y |X = 0) + 0, 5×H(Y |X = 1).
Comme H(Y |X = 0) = H(Y |X = 1) = H2(p) alors H(Y |X) = H2(p). D’ou
La capacite d’un CBS(p) = 1 - H2(p) .
• Pour p = 0.5, l’entropie binaire est maximale. Donc la capacite est nulle. La
sortie n’apporte aucune information sur la source; X et Y sont independantes.
• Pour p = 0, il n’y a jamais erreur et Y = X. La capacite du canal est
maximum.
• Pour p = 1, il n’y a erreur de transmission. Comme Y = 0 (resp. Y = 1)
correspond X = 1 (resp. X = 0). La capacite du canal est maximum. �
Exemple 2.1.8 (Capacite d’un CBE(p)) La capacite est atteinte pour une loi
uniforme sur l’entree. La loi de probabilite de la v.a. Y est P(Y = 0) = P(Y = 1) =
0, 5(1− p) et P(Y = ε) = p. Ainsi, on a
H(Y ) = − [(1− p) log2(1− p) + p log2 p− (1− p) log2 2]
H(Y |X = 0) = H(Y |X = 1) = −[(1− p) log2(1− p) + p log2 p] = H(X|Y ).
Mr HITTA Amara34
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Ce qui donne
La capacite d’un CBE(p)= 1-p . �
Exemple 2.1.9 (Capacite d’un canal binaire Z(p)) Par definition de la capacite
du canal, on a
C = max I(Y,X) = max[H(Y )−H(Y |X)].
Le maximum est pris sur toutes les lois sur X. Posons P(X = 1) = q alors
necessairement P(X = 0) = 1− q ce qui donne
H(Y |X) = −∑x
P(X = x)∑y
P(Y |X = x) log P(Y |X = x)
= P (X = 0).0 + P(X = 1).H2(p)
= qH2(p).
D’autre part, H(Y ) = H2(P(Y = 1)) = H2(q(1− p)) et alors
C = maxLoi sur X
I(Y,X) = maxq
[H2(q(1− p)− qH2(p)].
Le maximum se trouve en annulant la derivee par rapport a q
dI(X, Y )
dq= (1− p) log
1− (1− p)q(1− p)q
−H2(p) = 0.
Ce qui donne
q =1
(1− p)(
1 + 2H2(p)1−p
)D’ou le maximum :
La capacite de Z(p) est CZ = H2
(1
1 + 2H2(p)1−p
)− H2(p)
(1− p)(
1 + 2H2(p)1−p
) . �
Degageons maintenant les proprietes fondamentales de l’entropie.
Mr HITTA Amara35
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Definition 2.1.2 (Convexite) Une fonction numerique f est dite convexe, sur
un intervalle I =]a, b[, si pour tous x1 et x2 ∈ I et pour 0 ≤ λ ≤ 1, on a
f(λx1 + (1− λ)x2) ≤ λf(x1) + (1− λ)f(x2).
La fonction f est dite strictement convexe si l’egalite est realisee pour λ = 0 et
λ = 1. Une fonction f est concave si −f est convexe.
Definition 2.1.3 (Convexite) Les fonctions log2(1/x), x2, ex et x log x sont stricte-
ment convexes sur l’intervalle ]0,+∞[. �
L’un des importants outils de la theorie de l’information est :
Theoreme 2.1.4 (Inegalite de Jensen) Si f est une fonction continue stricte-
ment convexe sur un intervalle I et sin∑i=1
λi = 1, λi > 0, alors
n∑i=1
λif(xi) ≤ f
(n∑i=1
λixi
), xi ∈ I.
On a l’egalite si x1 = . . . = xn. En general, si X est une variable aleatoire
d’esperance moyenne E(X), alors
E[f(X)] ≥ f(E[X])
Si f est strictement convexe et E[f(X)] = f(E[X]) alors X est une constante de
probabilite 1.
Mr HITTA Amara36
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Preuve : On raisonne par recurrence. Pour n = 1, n = 2 ceci est verifie puisque f
est strictement convexe. Supposons que l’inegalite est verifiee pour n− 1. On a
n∑i=1
λif(xi) = λnf(xn) + (1− λn)n−1∑i=1
λi1− λn
f(xi)
≥ λnf(xn) + (1− λn)f
(n−1∑i=1
λi1− λn
xi
)
≥ f
[λnxn) + (1− λn)
n−1∑i=1
λi1− λn
xi
]
= f
(n∑i=1
λixi
). �
Proposition 2.1.5 Soit X une variable aleatoire discrete prenant les valeurs x1, . . . , xn
avec des probabilites d’occurence p1, . . . , pn, alors
0 ≤ H(X) ≤ log2 n.
Preuve : D’apres l’inegalite de Jensen et le fait que la fonction x 7→ log2(1/x) est
strictement convexe sur l’intervalle ]0,∞[, apres verification, on aura
H(X) =n∑i=1
pi log2
(1
pi
)≤ log2
(n∑i=1
pi1
pi
)= log2 n.
L’egalite est obtenue si pi =1
npour 1 ≤ i ≤ n. �
Soient P et Q deux distributions de probabilites definies sur un meme ensemble AX .
Definition 2.1.6 (Entropie relative) La divergence de Kullback-Leibner de
P par rapport a Q, est
DKL[P ||Q] =∑x
p(x) log (p(x)/q(x))
Mr HITTA Amara37
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
L’information mutuelle peut s’ecrire sous la forme
I(X, Y ) =∑x
∑y
p(x, y) logp(x, y)
p(x)p(y)= DKL[p(X, Y )||p(X)q(Y )].
Proposition 2.1.7 Soient |X| le nombre de valeurs prises par une variable aleatoire
discrete X et U(X) = 1/|X| la distribution uniforme sur ces valeurs. Alors
H(X) = log |X| −DKL[PX ||U ].
Preuve : On a
H(X) = −∑x∈AX
PX(x) logPX(x)
= log |X| −∑x∈AX
[PX(x) log |X|]−∑x∈AX
PX(x) logPX(x)
= log |X| −∑x∈AX
PX(x)[logPX(x) + log |X|]
= log |X| −D[PX ||U ].�
Proposition 2.1.8 (Inegalite de Gibbs) L’entropie relative DKL verifie
DKL[PX ||QX ] ≥ 0 c’est-a-dire∑
x PX(x) log PX(x) ≥∑
x PX(x) log QX(x).
L’egalite est satisfaite si PX = QX .
Preuve. En utilisant l’inegalite de Jensen avec X ≡ Q
Pet f(x) ≡ log
1
x, alors
E [log(1/(Q/P ))] ≥ log(1/E[Q/P ]) = log(1/[∑i
piqi/pi]) = log 1 = 0.
L’egalite est satisfaite lorsque qi/pi est une constante, a savoir 1. �
En general, on a
DKL[P ||Q] 6= DKL[Q||P ]
Mr HITTA Amara38
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
ce qui veut dire que DKL ne peut etre consideree comme une distance au sens
mathematique du terme. Pour cela, considerons P et Q deux densites de distribu-
tions sur {0, 1} et soient p et q la probabilite de 0 respectivement dans les distribu-
tions P et Q c’est-a-dire p(0) = p et q(0) = q. Calculons ces deux expressions.
DKL[P ||Q] = p(0) logp(0)
q(0)+ p(1) log
p(1)
q(1)= p log
p
q+ (1− p) log
1− p1− q
= p log p+ (1− p) log(1− p)− p log q − (1− p) log(1− q)
= −H2(p)− [p log q + (1− p) log(1− q)].
et
DKL[Q||P ] = q(0) logq(0)
p(0)+ q(1) log
q(1)
p(1)= q log
q
p+ (1− q) log
1− q1− p
= q log q + (1− q) log(1− q)− q log p− (1− q) log(1− p)
= −H2(p)− [q log p+ (1− q) log(1− p)].
Si Q est uniforme c’est-a-dire q = 0, 5, alors
DKL[P ||Q] = 1−H2(p) et DKL[Q||P ] = −1− 1
2log(p(1− p))
qui sont differentes pour p 6= 0.5. �
Il existe, par ailleurs, des relations interessantes entre la fonction d’entropie H2(p),
p ∈]0, 1[ et certains cœfficients binomiaux que l’on utilisera ulterieurement lors de
l’etude sur les bornes asymptotiques.
Remarquons que
2−nH2(p) = pnp(1− p)n−np.
Theoreme 2.1.9 Soit 0 ≤ p ≤ 1
2. On a :
pn∑i=0
Cin ≤ 2nH2(p).
Mr HITTA Amara39
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Preuve : On peut ecrire
1 = (p+ (1− p))n ≥∑
0≤i≤pn
Cinp
i(1− p)n−i
≥∑
0≤i≤pn
Cinp
np(1− p)n−np
= 2−nH2(p)∑
0≤i≤pn
Cin.
D’ou le resultat. Pour la deuxieme relation, rappelons la formule de Stirling, a
l’infini :
n! ∼√
2πn(n/e)n.
En effet, la distribution de Poisson de moyenne n s’ecrit
P(r, n) = e−nnr
r!, r ∈ {0, 1, 2, · · · }.
Pour n suffisament grand c’est-a-dire au voisinage n ' r, cette distribution admet
comme approximation la distribution de Gauss de moyenne r et de variance n :
e−nnr
r!' 1√
2πnexp
(−(r − n)2
2λ
).
Posant r = n dans cette formule, on obtient
e−nnn
n!' 1√
2πnc’est-a-dire n! ' nne−n
√2πn. �
Theoreme 2.1.10 Soit 0 ≤ p ≤ 1
2. On a :
H2(p) = limn→∞
1
nlog2
(pn∑i=0
Cni
).
Preuve : Soit m la partie entiere de n m = [n]. Alors m = pn + O(1), lorsque
n→∞. D’apres la formule de Stirling, a l’infini on a :
log2(n!) =1
2log2(2n)− n+ n log2(n) +O(1).
Mr HITTA Amara40
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Par consequent, lorsque n tend vers l’infini, on peut ecrire
n−1 log2
(pn∑i=0
Cin
)≥ n−1 log2C
mn = n−1{n log2 n−m log2m− (n−m) log2(n−m) +O(n)}
= H2(p) +O(1). �
2.1.4 Source Continue
Le message X est considere comme une variable aleatoire continue de probabilite
p(x) verifiant
+∞∫−∞
p(x)dx = 1.
L’entropie de X est l’esperance de la variable aleatoire − log[p(x)] c’est-a-dire
H(X) = −+∞∫−∞
p(x) log[p(x)]dx.
Exemple 2.1.10 (Loi uniforme) Soit X une variable aleatoire continue. Si X
suit la loi uniforme U ([0, a]), alors
p(x) =
1
asi 0 ≤ x ≤ a
0 ailleurs.
Un calcul immediat fournit
H(X) = log a.�
Mr HITTA Amara41
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 2.1.11 (Loi normale) Si X suit la loi normale centree N (0, 1), sa
densite de probabilite est
p(x) =1
σ√
2πe−(x2/2σ2).
Alors
H(X) = log(σ√
2πe).�
2.2 Codage de source et compression
A l’inverse du codage correcteur et detecteur d’erreurs, le codage qui consiste a
supprimer les redondances peut utiles est dit codage de source ou compression
des donnees, synonyme d’economie et de gain de place important. C’est une
necessite imperative pour reduire l’encombrement des canaux de transmission et
augmenter, par la, la capacite de stockage de l’information.
La compression video fait partie integrante de plusieurs applications multimedia
d’aujourd’hui. Ceratines applications, par exemple les lecteurs DVD, la television
numerique, la television par satellite, la transmission video par l’Internet, la video
conference, la securite video et les cameras numeriques sont limitees par la capacite
memoire ou de bande passante pour la transmission, ce qui stimule la demande pour
des rapports de compression video plus elevee.
Pour illustrer ces situations donnons-en des exemples concrets sur les tailles reelles
des donnees a stocker avant la compression.
Exemple 2.2.1 (Image couleur fixe) Une image est definie par trois composantes,
dites primaires : la luminance Y et deux chrominances U et V. Le nombre de
pixels pour les 576 lignes est de 720 pixels par ligne. Chacune des 3 primaires est
codee sur un octet de 8 bits correspondant a 28 = 256 niveaux de quantification.
On obtient, ainsi, trois structures :
• La structure 4:2:2 : Comporte une luminance Y pour chaque pixel (720×576) et deux chrominances U et V un pixel sur deux (360 × 576). Ce qui
Mr HITTA Amara42
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
donne :
Le nombre de bits dans une image = (bits de luminance) + (bits de chrominance)
= 576× 720× 8 + (576× 360× 8)× 2
' 6, 63× 106 bits ' 0, 83 Moctet.
• Ainsi, une disquette haute densite de 1, 4 Moctets apres formatage, ne peut
contenir qu’une seule image couleur.
• La structure 4:2:0 : Elle comporte un element luminance Y pour chaque
pixel (720× 576) et un element chrominance U ou V un pixel sur deux et en
alternance une ligne sur deux (360× 288). Ce format, base sur une reduction
de la definition verticale pour les informations chrominance peu decelable par
l’œil, favorise la definition horizontale au detriment de la definition verticale.
• La structure 4:1:1. Elle comporte un element luminance pour chaque pixel
(720 × 576) et des elements chrominance tous les quatre pixels (180 × 576).
Ceci implique une reduction de la definition horizontale pour les informations
chrominance. �
Exemple 2.2.2 (Image couleur animee) La frequence image est de 25 Hertz
c’est-a-dire 25 images par seconde. La transmission d’une sequence animee necessite
un debit net de 6, 63 × 106 × 25 ' 166 Mbits/sec. Ce debit ne tient pas compte
des signaux complementaires indispensable a la synchronisation. Ajouter a cela les
signaux de service, on obtient un debit brut de 216 Mbits/sec. Comme le debit max-
imum sur le reseau numerique est de 144 Mbits/sec, la transmission d’une image
couleur animee necessite un codage de source approprie. �
Exemple 2.2.3 (Taille pour un film en couleur) Si on utilise les standards de
Television numerique (4/5) :
• 1 image = 720× 576× 16 = 0, 83 Moctets.
• 25 images par seconde : 1 s = 0, 83× 25 = 20, 75 Moctets/seconde.
• 1 film de 90 minutes = 90× 60× 20, 75 = 114125 Moctets ' 114 Goctets. �
Mr HITTA Amara43
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Ceci dit, on distingue deux types de codage de source :
• Compression sans perte d’information : Quand on decompresse, on peut
reconstruire exactement l’information initiale a patir de l’information com-
primee.
• Compression avec perte d’information : Quand on decompresse, il y
a une perte d’une partie de l’information initiale, mais la perception reste
inchangee dans le cas des images, de filmes ou de musique.
2.3 Compression sans perte d’information
Le plus celebre des codes de compression sans perte d’information est le Code de
Huffman ou l’on suppose que les probabilites d’occurence des mots possibles d’une
source alphabet sont connues. L’algorithme de codage de Huffman produit un code
optimal pour une telle source.
Soit S un alphabet de reference, c’est-a-dire un ensemble de lettres. En general,
S = {0, 1}. En concatenant des lettres de l’alphabet S, on forme des mots dont la
longueur correspond au nombre de lettres utilisees. Notons par S+ l’ensemble des
mots sur S de longueur finie et par Sn l’ensemble des mots de longueur n.
Soit X une variable aleatoire prenant ses valeurs sur un alphabet de reference fini
SX = {a1, a2, · · · , an}. La probabilite pour que X = x ∈ SX sera notee p(x). Un
code binaire Cn(X) est une application : f : SX → {0, 1}+. L’image x = f(x) ∈{0, 1}+, x ∈ SX , est dit mot code. Sa longueur sera notee par `(x). La longueur
moyenne du code Cn(X) est definie par
L[Cn(X)] =∑x∈SX
p(x)`(x).
Le code binaire etendu sur SX , note C+n (X), est une application : f+ : S+
X →{0, 1}+, definie par concatenation
f+(x1x2 · · ·xn) = f(x1)f(x2) · · · f(xn) = x1x2 · · ·xn.
Mr HITTA Amara44
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 2.3.1 Trouvons tous les decodages possibles du mot code 11001 lorsqu’il
est code a l’aide du code C : a = 1, b = 10 et c = 01. Comme le mot code commence
par 11, le debut du decodage ne peut-etre que la lettre a. Si la deuxıeme lettre du
decodage est a il reste 001 qui ne peut-etre decoder, donc cette eventualite est a
eliminer car le decodage est imcomplet. La deuxieme lettre ne peut-etre, alors, que
la lettre b. le reste se decode a c. Le decodage du mot 11001 est unique, il s’agit de
abc. �
Exemple 2.3.2 Trouvons tous les decodages possibles de 10010110101011010 lorsqu’il
est code a l’aide du code C : a = 10, b = 100, c = 10111 et d = 110110. On procede
comme dans l’exemple precedent. Ce mot peut se decoder de deux manieres, a
savoir : bdcaa ou bdada. �
Un code est dit uniquement dechiffrable, ou a decodage unique ou code
non-ambigu, si tout mot code ne peut etre decoder que d’une seule maniere c’est-
a-direl’application f+ : S+X → {0, 1}+ est injective.
Exemple 2.3.3 (Code uniquement non-ambigu) • Le code {c1 = 0, c2 =
1, c3 = 01} est ambigu car le dernier mot peut-etre interprete comme c3 ou
c1c2.
• Le code {c1 = 0, c2 = 1, c3 = 110} n’est pas uniquement dechiffrable car 110
peut s’ecrire de deux maniere, a savoir c2c2c1 et c3.
• Le code {0, 11, 010} est uniquement dechiffrable. �
Un code prefixe est un code pour lequel aucun mot n’est le debut d’un autre mot.
Tout code prefixe est uniquement dechiffrable.
Exemple 2.3.4 (Code prefixe) Le code {0, 11, 110, 111} n’est pas prefixe car 11
est inclu dans 110 et 111. Le code {0, 10, 110, 111} est un code prefixe. �
Tout code prefixe est dit instantane puisqu’il peut-etre decoder sans faire attention
aux lettres de l’alphabet composant chaque mot.
Mr HITTA Amara45
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 2.3.5 Posons SX = {a,b, c,d} tel que PX = {1/2, 1/4, 1/8, 1/8}.
• Soit le code C defini par f(a) = 0, f(b) = 10, f(c) = 110, f(d) = 111. On a
H(X) = L[C] = 1.75 bits. Le mot x = acdbac sera code a x = 0110111100110.
Ce code est un code prefixe donc uniquement dechiffrable.
• Soit le code C defini par f(a) = 0, f(b) = 1, f(c) = 00, f(d) = 11. On a
L[C] = 1.25 bits < H(X). Le mot x = acdbac sera code a x = 000111000 qui
se decode a son tour a abcda. Ce code n’est pas a decodage unique.
• Soit le code C3 defini par f(a) = 0, f(b) = 01, f(c) = 011, f(d) = 111. On a
H(X) = L[C] = 1.75 bits. Le mot x = 134213 se code a x = 0011111010011.
Ce code est uniquement dechiffrable mais n’est pas un code prefixe. En rece-
vant 00, le debut de x peut-etre aa, ab ou ac. En recevant le mot 001111,
l’ambiguite reste entiere puisqu’on peut decoder soit a abd... ou a acd.... �
Construction d’un code prefixe : Une maniere tres subtile consiste a utiliser
un arbre dont chaque branche represente une lettre de l’alphabet de reference. Le
chemin permettant de conduire a l’un des mots ne soit pas inclus dans le chemin
menant a l’autre mot.
Un code est dit complet s’il est instantane et si toutes les feuilles de l’arbre, qui
lui est associee, sont des mots code.
Exemple 2.3.6 (Arbre d’un code prefixe) Les codes C1 = {c1 = 0, c2 = 10, c3 =
11} et C2 = {c1 = 00, c2 = 10, c3 = 01, c4 = 11} sont des codes prefixes. De plus, le
deuxieme code est complet. Leurs arbres se presentent comme suit :
•
•
•c3
c1•
c2•
1??
???0
����
�
1????0
����
•
•
•c4
•
•c3c1• c2•
1OOOOOOOOOOO
0ooooooooooo
0��
���1??
??0��
��� 1??
??
Figure 2.1: Arbre d’un code prefixe
Mr HITTA Amara46
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 2.3.7 Le code {c0 = 0, c1 = 1, c2 = 01} est non instantane. Il es de plus
ambigu, car 01 peut se decoder comme c0c1.
Theoreme 2.3.1 (Inegalite de Kraft) Pour tout code binaire uniquement dechiffrable,
les longueurs `i des mots code verifient :
∑i
2−`i ≤ 1.
Inversement : Etant donne un ensemble de mots de longueurs `i verifiant cette
inegalite, il existe un code prefixe dont les mots codes sont de longueur `i.
Preuve. Elle se fait par recurrence sur la longueur d’un arbre binaire representant
le code instantanee en question :
• On verifie que le theoreme est vrai pour un arbre de longueur 1.
• On suppose, ensuite, qu’il est vrai pour les arbres binaires de longueur 1, 2, · · · , `max
et on montre qu’il l’est pour un arbre de longueur 1 + `max. �
Exemple 2.3.8 Existe-t-il un code binaire instantane dont les mots code ont pour
longueurs : 2, 2, 3, 3, 3, 3, 5, 5 ? D’apres l’inegalite de Kraft-McMillan, ce code existe
si et seulement si∑i
1/2` ≤ 1. Ce qui se traduit, dans ce cas, par
1
4+
1
4+
1
8+
1
8+
1
8+
1
8+
1
32+
1
32= 1.0625 > 1.
Ce code n’existe pas. �
Ainsi, pour obtenir un alphabet optimal il suffit de s’interesser aux codes prefixes.
On remarque, par ailleurs que :
• Comme limk→0
2−k = +∞, cette inegalite implique qu’on ne peut pas prendre
trop de mots code ayant une tres faible longueur.
Mr HITTA Amara47
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Dans le cas non binaire, c’est-a-dire, lorsque l’on a un code sur un corps de
Galois Zq ou q > 2, l’inegalite de Kraft-McMillan s’ecrit
∑i
q−`i ≤ 1.
• L’inegalite de Kraft reste vraie lorsque le nombre de mots est infini.
• Dans l’inegalite de Kraft l’alphabet de la source importe peu, seules les longueurs
`i des mots sont prises en compte.
Theoreme 2.3.2 La longueur moyenne d’un code uniquement dechiffrable C d’une
variable aleatoire X verifie
L[C(X)] ≥ H(X).
Preuve : Posons z′ =∑j
2−`j < 1 (inegalite de Kraft), et soit la probabilite implicite
qi ≡ 2−`i/z alors `i = log(1/qi)− log z. L’inegalite de Gibbs s’ecrit∑i
pi log(1/qi) ≤∑i
pi log(1/pi) ou l’egalite est verifiee si qi = pi. Alors
L[C(X)] =∑i
pi`i =∑i
pi log(1/pi)− log z.
(∑i
pi
)≥
∑i
pi log(1/pi)− log z.
≥∑i
pi log(1/pi) = H(X). �
L’efficacite du code C est definie par
η =LminL[C(X)]
=H(X)
L[C(X)].
Le rodandance du code C(X) est la quantite
ρ = 1− η.
Mr HITTA Amara48
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Le cas d’egalite de l’inegalite de Kraft, L[C] = H(X), est atteinte seulement dans le
cas extreme ou pi = 2`i et les longueurs des mots code sont `i = log(1/pi).
Definition 2.3.3 Un code de source C(X) est dit optimal si H(X) = L[C(X)]
c’est-a-direlorsque les longueurs des mots code sont `i = log(1/pi) :
Le code C(X) est optimal ssi H(X) = L[C(X)] c’est-a-dire `i = log(1/pi).
Exemple 2.3.9 Considerons la variable aleatoire X, prenant ses valeurs sur la
source SX , que l’on code a l’aide du code C(X). Ce code est instantane puisqu’aucun
mot n’est prefixe d’un autre.
SX s1 = a s2 = b s3 = c s4 = d
P(SX) 1/2 1/4 1/8 1/8
c1 c2 c3 c4
0 10 110 111
Table 2.1: Code optimal d’une source aleatoire
L’entropie de la source est
U(SX) = 1.75 bits et L[C(X)] = 1/2+2.(1/4)+6.(1/8) = 1.75 = U(SX) bits.
C’est un code est optimal du point de vue de la longueur moyenne. D’autre part,
l’egalite de Kraft est verifiee car (1/21) + (1/22) + (1/23) + (1/24) = 1. Ce code est
complet donc optimal en considerant le nombre de symboles utilises. Remarquons,
par ailleurs, que `i = log(1/pi) pour i = 1, 2, 3, 4. �
Theoreme 2.3.4 (Shannon : Codage de source sans bruit) Soit X une vari-
able aleatoire, il existe un code binaire prefixe C(X) dont la longueur moyenne verifie
H(X) ≤ L[C(X)] ≤ H(X) + 1.
Preuve : Prenons les longueurs des mots code comme etant les parties entieres des
longueurs d’un code optimal c’est-a-dire`i = [log(1/pi)],∑
i pi = 1. Il existe un code
prefixe C(X) telle que l’inegalite de Kraft-McMillan soit satisfaite. Ainsi
L(C(X)) =∑i
pi [log(1/pi)] ≤∑i
pi(log(1/pi) + 1) ≤ H(X) + 1. �
Mr HITTA Amara49
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Ce theoreme donne la meilleure des performances possibles, en termes de longueur
moyenne des mots code, pour encoder la variable aleatoire X qui prend ses valeurs
dans l’alphabet-source S.
Proposition 2.3.5 Soit C(X) un code complet d’une variable aleatoire X prenant
ses valeurs sur une source S, alors
L[C(X)] = H(X) +DKL[PS||PKraft].
ou PKraft designe la distribution de probabilite sur les valeurs de S definie par
PKraft(si) = 2−`i, `i represente la longueur du mot code ci associe a si ∈ S.
Preuve. Comme le code C est complet, alors∑i
PKraft(si) =∑i
2−`i = 1.
Donc PKraft est une distribution de probabilite sur S. D’autre part,
DKL[PS||PKraft] =∑i
PS(si) logPS(si)
PKraft(si)
=∑i
PS(si) logPS(si)−∑i
PS(si) logPKraft(si)
= −H(X)−∑i
PS(si) log 2−`i
= −H(X) +∑i
PS(si)`i
= −H(X) + L[C]. �
Ainsi, la divergence de Kullback-Leibner, entre la distribution de S et la distribution
PKraft definie par les longueurs des mots code, represente le perte en terme de
longueur moyenne du code par rapport a la valeur optimale de l’entropie H(X).
2.3.1 Codage binaire de Shannon-Fano
Le code de Shanonn-Fano est le premier code utilise pour exploiter la redondance
d’une source. L’algorithme de ce codage suit les etapes suivantes :
Mr HITTA Amara50
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• La classification des differents symboles a coder suivant l’ordre croisant de leur
probabilite les uns en dessus des autres.
• Diviser ses symboles en deux sous-groupes de telle sorte que les probabilites
cumulees de ces deux sous-groupes soient aussi proches que possible l’un de
l’autre.
• On effecte 0 au sous-groupe d’en haut et 1 au sous-groupe d’en bas. Ainsi, les
mots du sous-groupe d’en haut commenceront par 0 et ceux du sous-groupe
d’en bas commenceront par 1.
• On repete les etapes 1 et 2 jusqu’a ce que les derniers sous-groupes ne conti-
ennent qu’un seul element.
Exemple 2.3.10 (Shanonn-Fano) Considerons la source S = {a,b, c,d, e} dont
les frequences d’apparition des symboles sont :
Symboles a b c d e
Probabilites 15/39 7/39 6/39 6/39 5/39
Remarquons que la probabilite cumulee du sous-groupe S1 = {a,b} est presque
S1 Probabilite
a 15/39 0 0
b 7/39 0 1
S2 Probabilite
c 6/39 1 0
d 6/39 1 1 0
e 5/39 1 1 1
Table 2.2: Prob. cumulees des sous-groupes S1 et S2
identique a celle du sous-groupe S2 = {c, d, e}. Le codage de la source S est alors :
a→ 00 b→ 01 c→ 10 d→ 110 e→ 111
Mr HITTA Amara51
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
2.3.2 Codage binaire de Huffman
Son inventeur D. Huffman est parti d’un constat simple : les donnees d’un document
apparaissent selon une frequence irreguliere. Il eut alors l’idee de coder les donnees
qui se repetent souvent avec moins de bits que celles qui apparaissent plus rarement.
L’algorithme de Huffman produit, comme on peut le constater, un code optimal
pour une source-alphabet.
Soit X une variable aleatoire prenant ses valeurs sur une source-alphabet S =
{s1, · · · , sn} telle que P(X = si) = pi, i = 1, · · · , n. Considerons le code binaire
Cn(X) resultant de l’application f : S → {0, 1}+. L’algorithme de codage binaire
de Huffman suit les etapes suivantes :
• La classification des lettres de l’alphabet suivant l’ordre croissant de leur prob-
abilites : en supposant, sans perdre de generalite, que p1 ≥ p2 ≥ · · · ≥ pn−1 ≥pn.
• La combinaison de 2 lettres les moins probables en une seule dont le probabilite
est egale a la somme des probabilites des 2 lettres : Comme les etats X = sn−1
et X = sn sont les moins probables, posons p′n−1 = pn−1 + pn. On reduit ainsi
la source-alphabet S en la nouvelle source-alphabet
S(n−1) = {s1, s2, · · · , sn−2, s(n−1)n−1 }
ou s(n−1)n−1 sera la lettre sn−1 ou sn. Soit X(1) la variable aleatoire prenant ses
valeurs sur S(n−1) telle que
P[X(1) = si] = pi pour i = 1, · · · , n− 2
P[X(1) = s(n−1)n−1 ] = p′n−1 pour i = n− 1.
On definie, ainsi, un encodage de la nouvelle source par
f (n−1) : S(n−1) → {0, 1}+.
• On repete les etapes 1 et 2 jusqu’a ce que la source-alphabet soit reduite a
une source a 2 lettres c’est-a-direS(2) = {x, y}. On defini, enfin, un dernier
encodage par
f (2) : S(2) → {0, 1}+ tel que f (2)(x) = 0 et f (2)(y) = 1.
Mr HITTA Amara52
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Par un processus inverse, dit processus d’eclatement, on remonte l’arbre
obtenue en concatenant un 0 ou un 1 aux deux lettres qui resultent d’une
meme lettre jusqu’a epuisement des lettres de la source initiale S.
Exemple 2.3.11 (Codage de Huffman binaire) Soit une source S = {a, b, c}emettant ses lettres avec des probabilites respectives 0.4, 0.3 et 0.3. On combine
les moins probables en la lettre bc de probablite 0.3 + 0.3 = 0.6. On termine, ainsi,
la premiere etape du processus en codant a a 1 et bc a 0. Le code de Huffman est
obtenu, alors, en concatenant les symboles binaires dans le sens inverse : les lettres
b et c resultent de bc, elles seront codees a 00 et 01. Ce qui donne le processus
d’eclatement suivant :
Etape 1
si pi ←↩
a 0.4 1
b 0.3 00
c 0.3 01
Etape 2
s1i p1
i ←↩
bc 0.6 0
a 0.4 1
Le codage de Huffman de la source S est a→ 0, b→ 00 et c→ 01. �
Exemple 2.3.12 Considerons la source S suivante :
si a b c d e
pi 15/39 7/39 6/39 6/39 5/39
Le codage de Huffman se presente en 4 etapes :
Mr HITTA Amara53
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Etape 1
si pi ←↩
a 15/39 1
b 7/39 000
c 6/39 001
d 5/39 010
e 5/39 011
Etape 2
s1i p1
i ←↩
a 15/39 1
de 10/39 010
b 7/39 001
c 6/39 010
Etape 3
s2i p2
i ←↩
a 15/39 1
bc 13/39 000
de 10/39 001
Etape 4
s3i p3
i ←↩
bcde 23/39 0
a 15/39 1
Le codage de S est : a→ 1, b→ 000, c→ 00, d→ 010 et e→ 011. �
2.3.3 Codages arithmetique et LZW
Lorsque l’on veut transmettre les donnees d’une source-alphabet qui ne change pas,
le codage de Huffman est le plus adapte. Mais, la source la plus appropriee est
celle qui change en s’adaptant aux differentes situations ce qui rend la calcul des
probabilites des donnees accumulees plus complexe. Ceci est rectifie par le codage
arithmetique qui consiste a separer l’operation de codage du calcul probabiliste
d’une telle operation. Le principe consiste a evaluer la probabilite des differents mots
du message. Toutes les lettres sont alors des segments de longueurs proportionnelles
a leurs probabilites dans l’intervalle [0, 1[. Ce codage presente, pour sa part, de
nombreuses similitudes avec la methode de Huffman. Elle s’en distingue toutefois
car elle manipule des nombres reels en lieu et place de bits, ce qui necessite davantage
de ressources machine pour la mettre en œuvre.
Mr HITTA Amara54
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Notons, enfin, l’existence du code LZW c’est-a-dire Lempel, Ziv, Welch dont
le principe est de chercher si le mot d’un fichier a coder est deja memorise dans un
dictionnaire qui n’est pas stocke dans le fichier compresse et d’envoyer simplement
l’adresse de ce mot.
2.4 Compression avec perte d’information
Propose en 1988, ce codage fait appel a la Transformee en Cosinus Discrete, TCD,
qui s’applique sur un domaine spaciale ou les donnees sont definis en fonction de
leurs positions x et y, pour le transformer en un spectre de frequence definissant
l’apparition de chaque pixel dans un bloc de pixels et inversement, ITCD.
La transformation en Cosinus Discrete s’effectue sur une matrice carree d’ordre n de
valeurs de pixels et donne une matrice de meme taille de cœfficients de frequence.
Le temps de calcul requis pour chaque element dans la TCD depend de la taille de
la matrice. Pour ce faire, on decompose la matrice en blocs de matrices carrees de
taille 8× 8 pour que le calcul de la TCD puissent etre effectue en un laps de temps
raisonnable.
En sortie, La valeur du pixel de cordonnees (0, 0) dans chaque matrice d’ordre 8 est
dit cœfficient continu. Les 64 valeurs transormees de chaque matrice de sortie
sont positionnees de telle sorte que le cœfficient continu soit place en haut a gauche
de ce bloc. Ainsi, la TCD concentre la representation de l’image en haut a gauche.
Les cœfficients en bas a droite de cette matrice contiennent moins d’information
utile.
On peut citer, entre autres, les normes de codage suivantes :
2.4.1 JPEG (Joint Photographie Experts Group)
Concue par le groupe ISO (International Standard Organisation ) et le groupe CEI
(Commissiom Electronic International), cette norme est destinee a la compresssion
des images fixes en couleurs et a niveaux de gris en vue de leurs stockage sur des
supports numeriques.
Mr HITTA Amara55
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Supposons que l’image originale est donnee par la matrice A = (akl)0≤k,l≤n−1 et que
l’image transformee est donnee par la matrice B = (bij)0≤i,j≤n−1. Alors,
bij =2
ncicj
n−1∑i=0
n−1∑i=0
cos
[(2k + 1)
2niπ
]cos
[(2l + 1)
2njπ
]akl
avec c0 = 1/√
2 et ci = 1 si i 6= 0. Il existe une matrice orthogonale P = (pij)
c’est-a-direP−1 = P t telle que
B = P−1AP et pij = cj
√2
ncos
[(2i+ 1)jπ
2n
].
On decoupe l’image en blocs de taille 8 × 8 et on applique a ces blocs la transfor-
mation, pour u, v = 0, · · · , 7,
TCD (u, v) =1
4c(u)c(v)
7∑x=0
7∑y=0
f(x, y) cos
(2x+ 1
16uπ
)cos
(2y + 1
16vπ
),
avec c(0) = 1/√
2 et c(u) = 1 si u 6= 0. La TCD possede une inverse de forme iden-
tique. Bien que la reconstitution exacte des donnees originales puisse etre realisee
en theorie par l’inverse de la TCD, il est souvent impossible de le faire avec une
arithmetique a precision finie. Meme si les erreurs de TCD en aval peuvent etre
tolerees, les erreurs liees a la TCD inverse doivent respecter un minimum de precision
si l’on veut eviter une disparite due a la DCT inverse entre les images reconstituees
et les images originales.
L’amplitude TCD (u, v), lorsque u et v sont faibles, est plus importantes que lorsque
u et v sont grands. On peut ainsi coder les valeurs de TCD (u, v) sur moins de bits
lorsque u et v sont grands et ignorer, eventuellement, les composantes de tres faible
amplitude.
Dans le codeur, la transformee est suivie de la quantification des cœfficients, etape a
laquelle la perte des details video est justifiee par le rapport de compression video :
En effet, l’œil humain est plus sensible aux erreurs de reconstitution liees aux
basses frequences spatiales qu’a celles liees aux hautes frequences. Les changements
lineaires lents de l’intensite ou de la couleur (infomation de basse frequence) sont
Mr HITTA Amara56
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
importants pour l’œil. Les changements rapides dans les hautes frequences peu-
vent souvent etre perceptibles, c’est pourquoi on peut les eliminer. Pour chaque
cœfficient dans la matrice TCD, il faut calculer une valeur quantifiee correspon-
dante en divisant chaque cœfficient de la TCD par un parametre de quantification.
C’est le seul moyen par lequel on peut regir le degre de compression et de reduction
correspondante de la fidelite de l’information video compressee.
On applique ensuite un codage de Huffman. Ce sont ces donnees qui seront trans-
mises; le recepteur calcule alors la transformee inverse de la TCD. On obtient,
ainsi, une qualite acceptable pour un debit de 0.5 bit/pixel et une excellente qualite
pour un debit de 2 bits/pixel alors que dans l’image initiale il fallait un debit de 8
bits/pixel. La compression JPEG se deroule suivant les etapes suivantes :
Image originale→ Calcul TCD→ Quantification→ Compression → Image compressee.
2.4.2 MPEG (Moving Picture Experts Group)
Destinee au codage des images animees en vue de leurs stockage sur les supports
numeriques, cette norme a ete propose en 1990. Il s’agit de reduire le debit de
transmission de quelques dizaines de megabits par seconde ‘ des debits plus faibles,
qui peuvent se reduire a 64000 bits/s ou 44000 bits/s en tenant compte de la remar-
que suivante : dans une sequence d’images, deux images successives se ressemblent
beaucoup et on peut, alors, imaginer de ne coder que la difference entre deux images.
On remarque, de plus, que la difference entre une image et celle qui la precede est
une translation. On opere, alors, comme suit :
On decoupe l’image I(x, y) en blocs de 16. Soit x0 et y0 les coordonnees de
l’origine de l’un de ces blocs dans le plan et on cherche dans l’image precedente
Ip le couple (∆x,∆y) qui minimise∑
x,y≥0 |I(x0+x, y0+y)−Ip(x0+x+∆x, y0+
y + ∆y)|. Une fois trouve le deplacement, on calcul D = I(x0 + x, y0 + y) −Ip(x0 + x+ ∆x, y0 + y + ∆y) qu’on code par une transformee en cosinus dans
le codage JPEG. On transmet le vecteur de deplacement (∆x,∆y) ainsi que
la difference D des images codees. Le recepteur a ainsi toutes les informations
pour reconstruire I(x, y).
Mr HITTA Amara57
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Aux cours des dernieres annees, l’interet pour le multimedia a entraine l’investissement
d’efforts considerables de recherche sur le codage vedio dans les universites et l’industrie,
efforts, qui se sont traduits par l’elaboration de plusieurs normes. Ces normes visent
un vaste eventail d’applications aux exigences variees quant au debit binaire, a la
qualite d’image, a la capacite, a la complexite, a la resilience a l’erreur et au delai
ainsi qu’a l’amelioration des rapports de compression, on cite entre autres :
• MPEG-I (1992) specifie une compression du signal video a un debit de 1.5
Mbits/s.
• MPEG-II (1994) est destine a la compression du signal video a des debits de
10 Mbits/s.
• MPEG-III est destine a la television haute definition a des debits de 30 a 40
Mbits/s.
• MPEG-IV est destine au codage d’images animees a tres faibles debits de 10
Mbits/s.
2.5 Exercices et solutions
Exercice 1.
• Verifiez que 0− 19− 860195− 6 et 0− 19− 853256− 3 sont des ISBN valides.
• Dans une communication, ou l’on utilise un code ASCII 8-bit a parite paire,
les mots recus 11100001, 10000101 et 01100100 s’ont-ils des mots code. Si ce
n’est pas le cas, supposons qu’exactement l’un des 8 bits est errone. Quels
seront les symboles correspondants aux huits mots code resultants de ce mot
recu ? Expliquez pourquoi on peut detecter une seule erreur sans la corrigee.
Solution 1.
• On a respectivement pour les deux ISBN :
Mr HITTA Amara58
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
•
1× 0 +2× 1 + 3× 9 + 4× 8 + 5× 6 + 6× 0 + 7× 1 + 8× 9 + 9× 5 + 10× 6 = 275
1× 0 +2× 1 + 3× 9 + 4× 8 + 5× 5 + 6× 3 + 7× 2 + 8× 5 + 9× 6 + 10× 3 = 242.
• Les deux nombres sont congrus a 0 modulo 11.
Exercice 2.
• Quels sont les mots code du code de repetition de longueur 5 ? Calculer
Perreur sachant que la probabilite qu’un bit soit altere est p = 1/4.
• calculer H2(1/8, 1/8, 3/4); H2(1/3, 2/3); H2(1, 0, 0). Par convention, en base
b, on pose p logb p = 0 pour p = 0.
• Trouver une relation entre Hb(p) et Hc(p).
• Montrer que la fonction d’entropie H2(x) = −x log2 x − (1 − x) log2(1 − x),
0 < x < 1, est symetrique par rapport a la droite verticale x = 1/2 c’est-a-dire
H2[(1/2)− x] = H2[(1/2) + x] pour 0 < x < 1/2.
• Calculer la derivee de la fonction d’entropie, en deduire qu’elle atteint sa valeur
maximale en x = 1/2 sur l’intervalle [0, 1]. En deduire que 0 < H2(p) < 1
lorsque 0 < p < 1.
Solution 1.
• Les mots code sont 00000 et 11111. La probabilite d’erreurs Perreur est la
probabilite d’avoir au moins 3 bit-erreurs. Donc
Perreur =
(5
3
)(1
4
)3(3
4
)2
+
(5
4
)(1
4
)4(3
4
)+
(5
5
)(1
4
)5
= 0.414.
•
H2
(1
8,1
8,3
4
)= −1
8log2
18− 1
8log2
18− 3
4log2
34∼ 1.06 bits.
H2
(1
3,2
3
)= −1
3log2
13− 2
3log2
23∼ 0.918 bits.
H2(1, 0, 0) = −1 log2 1− 0− 0 = 0.
Mr HITTA Amara59
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• On a
Hb(p) =
(loge c
loge b
).Hc(p)
• On a
H2
(1
2+ x
)= −
(12
+ x)
log2
(12
+ x)−(1−
(12
+ x))
log2
(1−
(12
+ x))
= −(1−
(12− x))
log2
(1−
(12− x))−(
12− x)
log2
(12− x)
= H2
(12− x)
Ce qui montre que le graphe de H2(x) est symetrique par rapport a la verticale
x = 1/2.
• Comme log2 x = c loge x ou c = 1/ loge 2, on obtient H2(x) = cx loge x −
c(1 − x) loge x. Pour 0 < x < 1, on a H ′2()x = c loge
(1− xx
). D’autre
part H ′2(x) = 0 au point x = 1/2. La fonction H2 atteint son maximum
H2(1/2) = 1. Ainsi, pour 0 < p < 1/2 on a 0 < H2(p) < 1.
Exercice 2.
Soit X une variable aleatoire discrete pouvant prendre n valeurs differentes et soit
Y une variable aleatoire discrete de facon uniforme sur m valeurs distinctes. On ne
fera aucune hypothese particuliere sur X.
• Quelle est l’incertitude maximale possible pour X ? JJustifiez votre reponse.
• Que vaut l’entropie de Y ?
• Dans le cas ou n = m, classez par ordre croissant (c’est-a-dire≤) les grandeurs
suivantes :
H(Y ), 0, H(X), H(X) +H(Y ), H(X, Y ), H(X|Y ),
ou H designe l’entropie d’une variable aleatoire. Justifiez chacune des etapes
de votre classement. Explicitez les cas d’egalite, c-a-d. donnez pour chaque
inegalite les cas ou elle devient une egalite.
• On considere le cas ou n = 3, m = 4 et ou la distribution jointe P(X = xi, Y =
yi) est donnee par
Mr HITTA Amara60
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
P(X, Y ) y1 y2 y3 y4
x1 1/24 1/12 1/6 1/24
x2 1/6 1/8 1/24 1/6
x3 1/24 1/24 1/24 1/24
Verifiez que Y est bien uniformement distribuee. Calculez I(X, Y ). Donnez
le resultat sous la forme I(X, Y ) = 124
(a− b log2 3) ou a et b sont deux entiers
positifs.
Solution 2.
• L’incertitude d’une variable aleatoire, c’est-a-direson entropie, est maximale
lorsque sa distribution est uniforme. Son entropie vaut alors le logarithme du
cardinal de l’ensemble des valeurs possibles pour cette variable aleatoire. Pour
X la valeur maximale de H(X) est donc log(n).
• La variable aleatoire Y est uniformement repartie donc H(Y ) = log(m).
• Le resultat complet est :
0 ≤ H(X|Y ) ≤ H(X) ≤ H(Y ) ≤ H(X, Y ) ≤ H(X) +H(Y )
Les justifications sont les suivantes :
• Une entropie est toujours positive. Il y a egalite si H(X|Y ) = 0 c’est-a-diresi
la connaissance de Y determine X autrement dit si X est une fonction de Y .
• L’entropie conditionnelle est inferieure a l’entropie de la variable conditionnee
c’est-a-direX : la connaissance de Y reduit l’incertitude sur X. Si X et Y
sont independante alors H(X, Y ) = H(X|Y ) = H(X, Y ) +H(X, Y ).
• L’entropie de Y etant maximale, elle est plus grande que celle de X, il y’a
egalite si X est equipartie.
• L’entroipie jointe est inferieure a la somme des entropies. Elle n’est egale a
cette somme que dans le cas d’independance.
Mr HITTA Amara61
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• La variable Y est equipartie
P(Y = y1) = 124
+ 16
+ 124
= 14
P(Y = y2) = 112
+ 18
+ 124
= 14
P(Y = y3) = 16
+ 124
+ 124
= 14
P(Y = y4) = 124
+ 16
+ 124
= 14.
Le plus simple pour calculer I(X, Y ) est d’utiliser I(X, Y ) = H(Y )−H(Y |X)
puisque H(Y ) est connue. En effet, Y est equipartie sur les 4 valeurs, alors
H(Y ) = log2 4 = 2 bit. Pour calculer H(Y |X) le mieux est de passer par la
formule
H(Y |X) =∑x
P(X = x)H(Y |X = x).
On remarque que H(Y |X = x3) = log2 4 == 2 bit puisque Y |x3 est equipartie
sur les 4 valeurs. Pour H(Y |X = x1) et H(Y |X = x2), on a
H(Y |X = x1) = 2.18
log2 8 + 14
log2 4 + 12
log2 2
= 28.3 + 1
4.2 + 1
2= 7
4.
De meme
H(Y |X = x2) = 2.13
log2 3 + 14
log2 4 + 112
(log2 3 + log2 4)
= 23.3 + 9
12log2 3 = 2
3+ 3
4log2 3.
D’ou
H(Y |X) = 13.74 + 1
2
(23
+ 34
log2 3)
+ 16.2
= 3024
+ 924
log2 3
et
I(X, Y ) = 2− 10
8+
3
8log2 3 =
1
24(8− 9 log2 3).
Exercice 3.
On considere le canal binaire a bruit additif, c-a-d. tel que Y = X + Z ou X
est binaire et Z est une variable aleatoire independante de X definie par
P(Z) =
p si X = 0
1− p si X = a ∈ Z∗.
Mr HITTA Amara62
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Calculer la capacite de ce canal en fonction de p dans le cas ou a 6= 1 et
a 6= −1.
• Calculer la capacite du canal pour p = 0.5 dans le cas a = 1 eb t a = −1.
• Dans le cas a = 1 et l’addition binaire (“ou exclusif”), que peut-on dire du
canal ?
• Qu’obtient-on dans le cas d’un canal analogique a seuil, c-a-d. tel que a ∈ R∗
et ou y ≥ 0.5 est toujours decode 1 et y < 0.5 est toujours decode 0 ?
Exercice 4.
• Montrer que la cascade d’un nombre quelconque de canaux binaires symetriques
est encore un canal binaire symetrique.
• Dans le cas particulier ou l’on cascade n fois le meme canal de probabilite de
changement de bits p, quelle relation de recurrence verifie la probabilite Pn
• Soit Qn = 1 − 2Pn. Trouver l’expression de Qn en fonction de p. En deduire
la valeur de Pn en fonction de p et n.
• Que veut la capacite du canal ainsi obtenu, c’est-a-direcanal cascade de n
CBS ? Montrer que cette capacite tend vers 0 pour 0 < p < 1.
Mr HITTA Amara63
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Mr HITTA Amara64
08-Mai 45 Guelma University
CHAPITRE
3
CODES CORRECTEURS LINEAIRES
EN BLOCS
3.1 Codes lineaires binaires
C’est Kiyasu (1953) et Slypian (1950-60) qui ont donne une definition mathematique
plus concise des codes lineaires, en leurs imposant une certaine structure algebrique,
les considerant comme des sous-espaces vectoriels. Cette algebrisation du codage
nous aidera a construire des encodeurs et des decodeurs plus pratiques.
Definition 3.1.1 (Code lineaire) Un code binaire C(2) est dit lineaire s’il est
stable sous l’addition des mots code c’est-a-direx + y ∈ C(2) pour tous x,y ∈ C(2).
Si x est un mot code, le mot somme x + x = 2x = 0 l’est aussi. Ainsi, tout code
binaire lineaire contient le mot 0. En fait, le code C(2) est un Z2-espace vectoriel
65
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
car la multiplication par Z2 stabilise C(2) c’est-a-diresi c ∈ C(2) alors 1.c = c et
0.c = 0.
Exemple 3.1.1 (Codes binaires lineaires) • Designons par Zn2 , n ∈ N∗, l’ensemble
des suites binaires a n termes, c’est-a-dire que Zn2 = {(x1, x2, · · · , xn) : xi ∈
Z2, i = 1, · · · , n}. C’est un Z2-espace vectoriel de dimension n.
• Le code binaire de repetition C(2) = {000, 111} est lineaire.
• Le code binaire C′(2) = {000, 001, 101} n ’est pas lineaire car 001 + 101 = 100
n’est pas un mot code. �
Definition 3.1.2 (Encodeur) Un code binaire lineaire note Ckn(2), 0 ≤ k ≤ n,
est l’espace image d’une application lineaire injective, dite encodeur, E : Zk2 →
Zn2 c’est-a-dire
Ckn(2) = E(Zk2) ⊂ Zn
2 .
Le code binaire lineaire Ckn(2), considere comme un sous-espace vectoriel de Zn2 ,
contient |Ckn(2)| = 2k mots codes :
L’entier n est la longueur du code, k sa dimension et r = n − k sa
redondance.
La description de ce code est facile des que l’on a k mots lineairement independants
c’est-a-direune base.
Exemple 3.1.2 (Code de parite) Le code de parite d’ordre 3, note C23(2), est
l’image de l’encodeur E : Z22 → Z3
2 defini par
E(00) = 000, E(01) = 011, E(10) = 101, E(11) = 110.�
Plus generalement: Le code de parite d’ordre n, note Cn−1n (2), est l’image de
l’encodeur E : Zn−12 → Zn
2 defini par E : x1 . . . xn−1 7→ x1 . . . xn−1pn ou pn =
x1 + x2 + . . .+ xn−1.
Mr HITTA Amara66
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 3.1.3 (Code de Hamming) Le code de Hamming H3(2) = C47(2)
est l’image de l’encodeur E : Z42 → Z7
2 defini par E(x1x2x3x4) = x1x2x3x4c5c6c7 ou
les bits de controle c5, c6 et c7 sont donnes par :c5 = x2 + x3 + x4
c6 = x1 + x3 + x4
c7 = x1 + x2 + x4.
Les mots de ce code sont au nombre de |H3(2)| = 24 = 16, a savoir
0000000 1110000 1001100 1000011
0101010 1001100 0011001 0010110
1111111 0001111 0110011 0111100
1010101 1011010 1100110 1101001.�
L’usage des codes correcteurs lineaires est tres utile pour les raisons suivantes :
• Au lieu d’etablir la liste des 2k mots code, il suffit d’avoir une base generatrice
de k mots.
• La distance minimale du code est facile a calculer.
• Un codage rapide de l’information pour un minimum d’espace de stockage.
• Des methodes nombreuses et pratiques de recherche des erreurs.
Ces principes de bases etant donnees, nous allons decrire dans les sections qui suivent
deux techniques permettant de corriger les erreurs survenues.
3.2 Matrice generatrice
La premiere description consiste a definir un code par une matrice qui lui est as-
sociee :
Mr HITTA Amara67
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Definition 3.2.1 (Matrice generatrice) La matrice generatrice du code lineaire
Ckn(2), notee G, est la matrice de type k × n dont les lignes forment une famille
generatrice du code.
De ce fait, le code est engendre par les mots lignes de la matrice generatrice. La
matrice generatrice represente un tableau de mots independants du code permettant
de trouver tous les autres mots du code par addition ou par soustraction. Chaque
mot x ∈ Zk2, 0 ≤ k ≤ n, sera code et transmis sous la forme xG :
Ckn(2) = {xG : x ∈ Zk2.
Exemple 3.2.1 (Code binaire de repetition) Note C1n(2), il contient deux mots
de longueur n, a savoir(
0 · · · 0)
et(
1 · · · 1)
. Sa matrice generatrice est la
matrice ligne d’ordre n : G =(
1 · · · 1)
. �
Exemple 3.2.2 (Code de parite C23(2)) Il a pour matrice generatrice
G =
(1 0 1
0 1 1
);
elle est de type 2×3. On remarque, par ailleurs, que le mot du code 110 ∈ C23(2) est
la somme des lignes de la matrice G. Plus generalement : Le code Cn−1n (2) admet
pour matrice generatrice, la matrice de type (n− 1)× n :
G =
1 0 · · · 0 1
0 1. . .
... 1...
. . . . . . 0...
0 · · · 0 1 1
. �
Exemple 3.2.3 (Code de Hamming) Le code de Hamming H3(2) = C47(2) a
pour matrice generatrice du type 4× 7 :
G =
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1.
. �
Mr HITTA Amara68
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
D’apres ces exemples, on remarque que la matrice generatrice du code Ckn(2) se
presente sous la forme standard
G =(Ik P
)
ou Ik designe la matrice identite d’ordre k et P une matrice de type k × (n− k).
Definition 3.2.2 (Codes equivalents) Deux codes binaire lineaires en bloc sont
equivalents l’un deux s’obtient a partir de l’autre en effectuant des permutations
fixes sur les colonnes des matrices generatrices.
On montre, par ailleurs, que : Tout code lineaire est equivalent a un code dont la
matrice generatrice se presente sous forme standard en appliquant des permutations
fixes a certaines de ses colonnes ce qui donne un code equivalent.
Exemple 3.2.4 (Code de parite d’ordre 2) Le code C23(2) = {000, 011, 101, 110}
admet deux matrices generatrices, a savoir
G1 =
(0 1 1
1 0 1
)et G2 =
(1 1 0
1 0 1
).
Il est plus interessant d’obtenir la matrice generatrice systematique de ce code
G2 ==
(1 1 0
1 0 1
)−→
(1 1 0
0 1 1
)
−→
(1 0 1
0 1 1
). �
Exemple 3.2.5 (Forme standard) • Code de parite d’ordre n : La ma-
trice generatrice du code de parite Cn−1n (2) s’ecrit sous la forme standard
G =(In−1 P
)
Mr HITTA Amara69
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
ou In−1 est la matrice identite d’ordre n − 1 et P la matrice colonne de type
(n− 1)× 1
In−1 =
1 0 · · · 0 0
0 1. . .
... 0...
. . . . . . 0...
0 · · · 0 0 1
et P =
1
1
1
.
• Code de Hamming H3(2) = C47(2): Sa matrice generatrice s’ecrit sous la
forme standard G =(I4 P
)ou
I4 =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
et P =
1 1
0 1
1 0
1 1
.�
L’avantage d’avoir la matrice generatrice d’un code Ckn(2) sous sa forme standard
G =(Ik P
)facilite le codage des donnees et l’interpretation facile des mots code
envoyes. Soit x un mot code envoye de longueur k, il sera code sous la forme
c = xG =(xIk xP
)=(x xP
).
Seule la deuxieme multiplication est necessaire :
• Les k bits, bits d’information, initialement envoyes sont sauvegardes.
• Les n − k bits restants, determines par la matrice xP , nous fournissent des
informations utiles pour detecter et corriger les erreurs survenues, c’est les bits
de controle.
Exemple 3.2.6 (Matrice standard et parite de controle) Le code lineaire C35(2)
a pour matrice generatrice G =(I3 P
)telle que
I3 =
1 0 0
0 1 0
0 0 1
P =
0 1
1 1
1 1
.
Mr HITTA Amara70
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Le mot x = x1x2x3 sera code sous la forme xG = x1x2x3(x2 +x3)(x1 +x2 +x3). Les
trois premiers bits sont les bits d’information du mot x. Les bits en position 4 et
5 sont determines en fonction des bits d’information : le bit en position 4, a savoir
x2 + x3, nous renseigne en quoi x1 et x2 different ; par contre le bit en position 5, a
savoir x1 + x2 + x3, est la parite de controle de x. �
3.3 Code dual et matrice de controle
La seconde description consiste a definir le code dual et la matrice de controle.
Pour cela, soient x = (x1, . . . , xn) et y = (y1, . . . , yn) deux vecteurs de Zn2 et W un
sous-espace vectoriel de Zn2 .
Definition 3.3.1 (Orthogonalite) Le produit scalaire de x et y est le reel
(x,y) = x1y1 + . . .+ xnyn.
Si (x,y) = 0, les deux vecteurs sont dits orthogonaux. On notera par W⊥ le
sous-espace vectoriel de Zn2 forme par les vecteurs orthogonaux a ceux de W .
Les mots d’un code binaire lineaire sont interpretes comme etant des vecteurs d’un
sous-espace vectoriel de Zn2 .
Definition 3.3.2 (Code dual) Le code dual de Ckn(2) est le sous-espace de Zn2 ,
note [Ckn(2)]⊥, forme par les vecteurs orthogonaux, a ceux de Ckn(2).
Par consequent,
[Ckn(2)]⊥ = {x ∈ Zn2 | (x, c) = 0, ∀c ∈ Ckn(2)}.
Exemple 3.3.1 (Dualite) Soit S = {0100, 0101} ⊂ Z42. Les mots du code lineaire
engendre par S, sont les combinaisons lineaires de ceux de S, a savoir
{0000, 0100, 0101, 0001} = C24(2) ⊂ Z4
2.
Mr HITTA Amara71
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Trouver le code [C24(2)]⊥ revient a chercher les mots x = x1x2x3x4 ortogonaux a
0100 et 0101. L’equation x.0100 = 0 donne x2 = 0 et l’equation x.0101 = 0 donne
x4 = 0. Ainsi,
[C24(2)]⊥ = {x = x10x30 : x1 etx3 ∈ Z2}
= {x = x1.(1000) + x3.(0010).}
est engendre par l’ensemble S ′ = {1000, 0010}. Donc [C24(2)]⊥ = {0000, 1000, 0010, 1010} ⊂
Z42. �
Comme Ckn(2) et [Ckn(2)]⊥ sont des sous-espaces de dimension finies de Zn2 alors
dim Ckn(2) + dim [Ckn(2)]⊥ = n.
D’ou dim [Ckn(2)]⊥ = n− k. Ainsi,
[Ckn(2)]⊥ = Cn−kn (2).
Si [Ckn(2))]⊥ = Ckn(2), on dit que le code Ckn(2) est auto-dual.
Exemple 3.3.2 (Code auto-dual) On a [C23(2)]⊥ = C1
3(2). Le code dual du code
de repetition C23(2) est le code de parite C1
3(2). Par contre le code C36(2) est auto-dual.
�
Definition 3.3.3 (Matrice de controle) La matrice generatrice H du code dual
[Ckn(F)]⊥ est dite matrice de controle du code Ckn(F).
On en deduit,
Ckn(F) = {x ∈ Fn | xH t = 0}
ou H t designe la matrice transposee de H (c’est-a-direobtenue en echangeant les
lignes en colonnes et vice-versa).
Un code peut-etre defini que par sa matrice de controle.
Mr HITTA Amara72
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 3.3.3 (Code ISBN) Les mots de ce code verifient dans le corps de Ga-
lois Z11
a1a2 · · · ax ∈ ISBN ⇐⇒ 1a1 + 2a2 + · · ·+ xax = 0.
⇐⇒ (a1, a2, · · · , ax).(1, 2, 3, 4, 5, 6, 7, 8, 9, x)t = 0.
La matrice de controle du code ISBN est la matrice ligneH = (1, 2, 3, 4, 5, 6, 7, 8, 9, x). �
Le code Ckn(F) est le noyau de l’application lineaire
s : Fn → Fn−k ou s(x) = xH t.
Ainsi, la matrice de controle H est de type (n− k)× k et peut s’ecrire sous la forme
standard
H =(−P t In−k
).
Lemme 3.3.4 Soient G et H les matrices du code Ckn(F) alors GH t = 0.
Preuve : En effet,
GH t =(Ik P
)(−PIn−k
)= −P + P = 0.
Exemple 3.3.4 Le code de parite Cn−1n (2) a pour matrice de controleH =
(1 · · · 1
);
c’est la matrice generatrice du code de repetition C1n(2). Donc
Cn−1n (2) = [C1
n(2)]⊥.
En particulier, le code dual de C23(2) qui est le code de repetition C1
3(2) est forme
par les mots 000 et 111. Sa matrice de controle est la matrice ligne H =(
1 1 1)
.
�
Definition 3.3.5 (Codes systematiques) Les codes dont les matrices s’ecrivent
sous des formes standards sont dits codes systematiques.
Mr HITTA Amara73
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Pour les obtenir, il suffit d’ajouter aux bits d’information des bits de controle.
Il devient ainsi plus aise de manipuler un code sous sa forme systematique. Pour
cela, on introduit la notion d’equivalence suivante :
Definition 3.3.6 (Equivalence) Deux codes lineaires sont dits equivalents si l’un
s’obtient a partir de l’autre en appliquant une permutation fixe a tous les mots de
sorte que les parametres - par exemple la distance minimale - ne soient pas affectes
par cette transformation.
On verifie par ailleurs que tout code lineaire est equivalent a un code systematique.
Exemple 3.3.5 Considerons le code lineaire C36(2) dont les matrices sont
G =
1 0 0 1 0 1
0 1 1 1 0 1
1 1 0 1 1 0
et H =
1 1 0 0 0 1
1 1 0 1 1 0
0 1 1 0 1 0
En substituant simultanement a la troisieme ligne de G et H la somme de la premiere
et de la troisieme puis en effectuant la permutation (135426) aux lignes, on obient
les matrices
G′ =
1 0 0 1 0 1
0 1 0 1 1 1
0 0 1 0 1 1
et H ′ =
1 1 0 1 0 0
0 1 1 0 1 0
1 1 1 0 0 1
.
qui sont les matrices du code systematique equivalent a C36(2). �
3.4 Codes de Hamming
Un code binaire de longueur n = 2r − 1, r ≥ 2, et de dimension n− r est dit code
binaire de Hamming, note
Hr(2) = C2r−r−12r−1 (2),
Mr HITTA Amara74
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
si sa matrice de controle Hr est de type r × (2r − 1) dont les colonnes sont les
representations binaires, dans cet ordre, des entiers
1, 2 , 3 , . . . , 2r − 2, 2r − 1.
Ecrite sous cette forme la matrice de Hamming n’est pas standard :
• Si r = 1, n = 21 − 1 = 1. La matrice de controle du code de Hamming H1(2)
est de type 1× 1, a savoir
H1 :=(
1).
• Si r = 2 alors n = 22 − 1 = 3. Le code de Hamming H2(2) = C13(2), code
binaire de repetition. Sa matrice de controle est de type 2× 3, a savoir
H2 :=
(0 1 1
1 0 1
).
Les colonnes de H2 represente les entiers 1, 2, 22 − 1 = 3 en base 2, a savoir :
01→ 1, 10→ 2 et 11→ 3.
• Si r = 3 alors n = 23 − 1 = 7, le code de Hamming H3(2) = C47(2) a pour
matrice de controle
H3 :=
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
.
Les colonnes de H3 representent, dans cet ordre, les entiers 1, 2, 3, 4, 5, 6, 23 −1 = 7 :
001 → 1, 010→ 2, 011→ 3, 100→ 4,
101 → 5, 110→ 6, 111→ 7.
Mr HITTA Amara75
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Si r = 4 alors n = 24 − 1 = 15, le code de Hamming H4(2) = C1115(2) a pour
matrice de controle
H4 :=
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
.
Les colonnes de H4 represente, dans cet ordre, en base 2, les entiers
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 = 24 − 1.�
Definissons maintenant les codes de Hamming sur un corps fini de galois Zp ou p est
un entier premier.
Pour cela, posons
n =pr − 1
p− 1.
La matrice de controle du code de Hamming, notee Hr, sera de type r × n dont
les colonnes sont les representants dans Zp, dans un certain ordre, des entiers
1, 2, . . . , pr − 2, pr − 1. Le code ainsi obtenu est le code de Hamming de type r
sur le corps fini de Galois Zp :
Hr(p) = Cn−rn (p).
Exemple 3.4.1 (Code de Hamming ternaire) Si p = 3 et r = 3 alors n = 13.
On obtient la matrice de controle du code ternaire de Hamming H3(3) = C1013(3).
Elle est de type 3× 13, a savoir
H =
1 1 1 1 0 0 0 0 0 0 1 0 0
0 0 1 1 0 2 2 2 1 1 0 1 0
1 2 0 1 2 0 1 2 1 2 0 0 1
.
Exemple 3.4.2 (Code de Hamming H2(9)) On a p = 9 et r = 2. Donc n = 10
et l’on verifie que la matrice du code H2(9) est
H =
(0 1 1 1 1 1 1 1 1 1
1 0 1 2 i 1 + i 2 + i 2i 1 + 2i 2 + 2i
).
Mr HITTA Amara76
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
ou i est la racine carree de 2 = −1 dans Z9. �
Le code dual de Hr(p) est dit code simplexe, note
Sr(p) = [Hr(p)]⊥ = Crpr−1(p).
3.5 Codes de Hamming etendu
Il est parfois utile de trouver de nouveaux codes a partir des codes deja connus.
Soit C = Ckn(2) un code lineaire de matrices generatrice et de controle sont respec-
tivement G et H.
Le code C de longuer n + 1 obtenu en ajoutant a chaque mot (x1, . . . , xn) ∈ C, sa
parite cn+1 =∑n
i=1 ci, est dit code etendu de C. Tous les mots du code etendu C
ont ainsi un poids pair. Sa matrice generatrice, qui est de type k × (n+ 1), est
EG =(G C
)ou la colonne C est formee par les parites de controle de chaque ligne de G. La
matrice de controle de C s’obtient par
EH =
(H 0
1 1
)
ou 1 et 0 representent respectivement les matrices colonne et ligne de type (n− 1) :(1 . . . 1
)tet(
0 . . . 0)
. La matrice EH de C est de type (n+ 1)× (n+ 1− k).
Lemme 3.5.1 Sous les hypotheses precedentes, on a EG.(EH)t = 0.
Preuve : En effet, on a GH t = 0. Remarquons que G.1 ajoute les bits 1 dans
chaque ligne de G. Par definition de C, on obtient G.1 + C = 0. Par consequent
EG.(EH)t =(G C
)(H t 1
C 1
)=(GH t G.1 + C
)t= 0.
Mr HITTA Amara77
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 3.5.1 (Extension) Considerons le code C35(2) ou
G =
1 0 0 1 0
0 1 0 0 1
0 0 1 1 1
et H =
(0 0 1 1 0
0 1 1 0 1
).
Le code obtenu par extension de C35(2) a pour matrices generatrice et de controle
EG =
1 0 0 1 0 0
0 1 0 0 1 0
0 0 1 1 1 1
et EH =
1 0 1 1 0 0
0 1 1 0 1 0
1 1 1 1 1 1
.
C’est le code C36(2). �
Un nouveau code defini a partir du code de Hamming Hr(2) est le code etendu de
Hamming, note H3(2). Il est forme par les mots x1x2 · · ·xnxn+1 tels que x1 + x2 +
· · ·+ xn + xn+1 = 0. Sa matrice de controle devient
EHr =
(Hr 0
1 1
),
ou 0 est la matrice colonne formee par des bits 0 de type r × 1, 1 est la matrice
colonne formee par des bits 1 de type 1 × r. Ce code est de longueur n = 2r et de
dimension k = 2r − 1− r,
Hr(2) = C2r−1−r2r (2).
Ce code peut corriger 1 erreur et peut detecter 2 erreurs; il est utilise surtout pour
le decodage incomplet.
Exemple 3.5.2 (Code de hamming etendu H3(2)) Ce code a pour matrice de
controle
EHr =
0 0 0 1 1 1 1 0
0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 1 1
. �
Mr HITTA Amara78
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Pour des raisons pratiques, la parite de controle peut-etre ajoutee au debut de
chaque mot du code de Hamming pour obtenir une autre matrice de controle du
code etendu de Hamming, notee aussi EHr, de la forme
EHr =
(0 Hr
1 1
),
Cette forme sera utile ulterieurement, puisqu’elle peut s’ecrire sous la forme recurrente :
EHm =
(0 1
EHm−1 EHm−1
), EH0 =
(1), EH1 =
(0 1
1 1
)=
(0 1
EH0 EH0
).
3.6 Les Codes de Golay binaires et ternaires
Marcel J. E. Golay s’est interesse a la construction des codes parfaits en generalisant
le code de Hamming H3(2) = C47(2) a des codes de longueurs (pk − 1)/(p − 1) ou
p est un entier premier. Il construit le code binaire G1223(2) corrigeant 3 erreurs a
partir du code de Golay etendu G1324(2) puis le code ternaire G6
11(3) sur le corps Z3.
Il montre ensuite, dans son article lg lg notes on digital coding � publie en 1949,
que le code binaire C7898(2) n’existe pas.
Famille de codes de Golay binaires :
Mr HITTA Amara79
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Definissons tout d’abord le code de Golay etendu G1224(2). Pour cela, considerons la
matrice symetrique de type 12× 12 suivante
B =
1 1 0 1 1 1 0 0 0 1 0 1
1 0 1 1 1 0 0 0 1 0 1 1
0 1 1 1 0 0 0 1 0 1 1 1
1 1 1 0 0 0 1 0 1 1 0 1
1 1 0 0 0 1 0 1 1 0 1 1
1 0 0 0 1 0 1 1 0 1 1 1
0 0 0 1 0 1 1 0 1 1 1 1
0 0 1 0 1 1 0 1 1 1 0 1
0 1 0 1 1 0 1 1 1 0 0 1
1 0 1 1 0 1 1 1 0 0 0 1
0 1 1 0 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 1 0
Pour retenir la matrice B on l’ecrit sous la forme de blocs matriciels
B :=
(B1 1t
1 0
)
ou 1 est la matrice ligne (1 . . . 1) de longueur 11 et B1 la matrice dont la premiere
ligne est 11011100010 ; les lignes suivantes de B1 sont les decalees circulaires suc-
cessifs vers la gauche de cette premiere ligne. Posons
G =(I12 B
)
la matrice de type 12 × 24 ou I12 represente la matrice unite de type 12 × 12. Le
code lineaire dont la matrice generatrice est G est dit code de Golay binaire etendu.
On le note G1224(2). Sa matrice generatrice G a des proprietes interessantes, a savoir:
• Le code de Golay binaire etendu est auto-dual c’est-a-dire
G1224(2) =
[G12
24(2)]⊥.
Mr HITTA Amara80
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Il suffit de remarquer que les lignes de G sont orthogonales entre elles et que
dim G1224(2) = 12 = 24− 12 = dim
[G12
24(2)]⊥.
• La matrice(B I12
)est une autre matrice generatrice de G12
24(2) car(B I12
)=(−Bt I12
)qui est la matrice generatrice de
[G12
24(2)]⊥
.
• Le nombre de bits 1 dans chaque ligne de G est un multiple de 4, a savoir 8
ou 12. On montre, d’une maniere tres precise, que la distance minimale de ce
code est 8.
• Aucun mot code (combinaison lineaire des lignes de G) de G1224(2) ne contient
4 bits ou moins.
Le code de Golay G1223(2) s’obtient du code G12
24(2) en supprimant la derniere colonne
de G. Sa distance minimale est d = 7
Famille des Codes de Golay Ternaires : Le premier code de Golay ternaire est
G612(3). Sa matrice generatrice est G =
(I6
A
)ou
A =
0 1 1 1 1 1
1 0 1 2 2 1
1 1 0 1 2 2
1 2 1 0 1 2
Sa distance minimale est d = 6. Le deuxieme code de Golay ternaire est G6
12(3). Il
se deduit du premier en supprimant de chaque mot code le dernier bit. Ce qui est
equivalent a la suppression de la derniere colonne de la matrice genaratrice G de
G612(3), donc sa longueur est n = 11 et sa dimension ne peut-etre que k = 6.
Interessons-nous maintenant, a titre indicatif, a une famille de codes non-lineaire
qui ont de bonnes capacite de correction.
Mr HITTA Amara81
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
3.7 Codes de Hadamard
Chaque code de Hadamard, note C(Hn), est associe a une matrice carree Hn d’ordre
n. Ce code a un nombre, relativement petit, de mots codes egal a 2n, mais sa
distance minimale est egale a n/2. Le code de Hadamard C(H32) a ete utilise, en
1972, par la sonde spaciale Mariner pour envoyer des images, de couleurs noire et
blanc, de la planete Mars vers la terre. Ce code a 26 = 64 mots code et peut corriger
jusqu’a 7 erreurs.
Mr HITTA Amara82
08-Mai 45 Guelma University
CHAPITRE
4
DECODAGE DES CODES LINEAIRES
Etudions maintenant un mecanisme simple de correction des erreurs appele : deco-
dage par le syndrome.
4.1 Decodage par le syndrome
Pour cela, considerons le code Ckn(F) dont la matrice de controle est H.
Definition 4.1.1 (Syndrome) Le syndrome de x ∈ Fn est le mot (n− k)-tuple
s(x) = x.H t ∈ Fn−k.
L’application lineaire s est dite application syndrome.
Ainsi, les mots codes verifent : y ∈ Ckn(F) si et seuleument si s(y) = 0. En Medecine,
un syndrome est un tableau bien defini de symptomes qui peut s’observer dans
83
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
plusieurs etats pathologiques differents, mais ne permet pas a lui seul de determiner
la nature de la maladie.
Exemple 4.1.1 Considerons le code C59(2) dont la matrice de controle est
H :=
0 0 0 1 1 0 1 1 0
1 1 0 1 1 0 0 0 0
0 1 1 0 1 0 0 0 0
0 0 0 0 1 1 0 1 1
.
Le syndrome du mot recu y1 = 111101000 est s(y1) = (1111)t qui est la colonne 5 de
H, donc y1 /∈ C59(2). Celui de y2 = 010010010 est s(y2) = (0000)t ; donc y2 ∈ C5
9(2).
�
Si le mot x ∈ Ckn(2) est transmis et y le mot recu, l’erreur e survenue lors de cette
transmission verifie
x = y + e.
Si l’on ajoute y aux deux membres de cette egalite, on obtient e = x + y, alors
s(e) = s(x)+s(y) car s est une application lineaire. Comme s(x) = 0 car x ∈ Ckn(2),
alors
s(y) = s(e).
Par consequent :
le syndrome d’un mot recu est determine par celui de l’erreur commise.
Le syndrome ne depend que de l’erreur (maladie) mais pas du mot recu (le patient).
4.1.1 Partition de l’espace
Une partition de l’espace Zn2 s’impose. Pour cela, considerons la relation d’equivalence
suivante
yRz si et seulement si y− z = x ∈ Crn(2).
Mr HITTA Amara84
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Tous les mots z + x, x ∈ Crn(2), ont le meme syndrome que z car s(x) = 0. Ils
forment une classe d’equivalence pour cette relation, notee Cl(y). En particulier :
Le code Ckn(2) est la classe de syndrome 0 ⇐⇒ Ckn(2) = Cl(0).
Definition 4.1.2 (Chef de la classe) Le Chef de la classe Cl(z) est le mot,
note e, dont le poids est le minimum parmi tous les poids des mots de cette classe.
En general, le chef d’une classe est de poids 1.
L’ensemble de ces classes forment le groupe quotient Zn2/R, c’est le groupe des classes
d’equivalence modulo le code Ckn(2).
Exemple 4.1.2 (Suite code C24(2)) Considerons le code de matrice de generatrice
G =
(1 0 1 1
0 1 0 1
)donc la longueur du code est n = 4 et k = 2 car le code contient
4 mots y compris 0000. Ainsi
C = C24(2) = {0000, 1011, 0101, 1110}.
Les classes et leurs chefs de classes sont au nombre 4:
Classes Chef de classes
classe 0000 0000 1011 0101 1110
classe 1000 1000 0011 1101 0110
classe 0100 0100 1111 0001 1010
classe 0010 0010 1001 0111 1100.
Une classe peut avoir deux chefs de classes : les mots 0100 et 0001 ont la meme
classe. �
La probabilite de decoder correctement un mot recu est justement la probabilite pour
que l’erreur soit l’un des chefs des classes. Considerons un canal binaire symetrique
de probabilite p, la probabilite pour que l’erreur soit un mot de poids i est pi(1−p)n−i.
Mr HITTA Amara85
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Si l’on a ai chefs de classes de poids i, la probabilite totale de correction du code C
est
Pcorr(C) =n∑i=0
aipi(1− p)n−i.
La probabilite totale d’erreurs de ce code est
Perr(C) = 1− Pcorr(C).
Exemple 4.1.3 (Suite code C24(2)) Les chefs de classe sont : 0000, 1000, 0100 et
0010. Ainsi, on a a0 = 1, a1 = 3 et a2 = 0. La probabilite de correction du code
C = C24(2) est
Pcorr(C24(2)) = (1− p)4 + 3p(1− p)3 = (1 + 2p)(1− p)3.�
4.1.2 Algorithme de decodage avec Hr(2)
Remarquons que les lignes de la matrice [Hr]t, transposee de la matrice de controle
Hr, sont les representations binaires dans cet ordre des entiers 1, 2, · · · , 2r−1. Ainsi,
si e = (0, · · · , 0, 1, 0 · · · , 0) ou le bit 1 est la j-eme coordonnee, alors s(e ) = e [Hr]t
sera la j-eme ligne de [Hr]t, qui est la representation binaire de j. L’erreur survenu
sur le mot recu sera corrigee en changeant le bit j.
Algorithme de decodage de Hr(2) :
Pour un mot recu y, calculer s(y).
• Si s(y) = 0, alors y est un mot code.
• Sinon, s(y) sera la representation binaire d’un entier j entre 1 et n = 2r − 1.
Le mot y sera corrige en changeant son j-eme bit (0 en 1 ou vice versa).
Exemple 4.1.4 Le code de Hamming H3(2) = C47(2) a pour matrice de controle
H3 =
1 0 1 1 1 0 0
1 1 0 1 0 1 0
1 1 1 0 0 0 1
.
Mr HITTA Amara86
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Utilisons le decodage par le syndrome pour corriger le mot recu y = 1001100 :
• Son syndrome est s(y) = yH t3 = (101)t ; c’est la colonne 3 de H3.
• Le chef de la classe Cl(y) est c = 0010000 qui est de poids minimal et s’obtient
en placant le bit 1 au rang 3 et 0 ailleurs.
• On decode y, en changeant le bit de la position 3, sous la forme x0 = 1011100. �
Remarquons, par ailleurs, que le mot x1 = 0100100 a le meme syndrome que y
mais ne peut lui former un bon decodage. En fait, y differe avec x0 en un seul bit
et avec x1 en 3 bits, ce qui nous fait dire x1 est loin de y que x0. Si plus d’une
erreur affectent un mot code, la procedure de decodage decrite precedemment ne
fonctionne pas.
Exemple 4.1.5 (Detection d’erreurs) Si x = 0111100 est transmis et que y =
0011101 est recu alors le vecteur s(y) = 101 represente la colonne 3 de H3. Si on
change le bit 3 de x, on obtient une erreur supplementaire. On decode a x′ = 0001101
qui est different de x.
La matrice de controle d’un code binaire de Hamming etendu d’ordre r, est
EHr =
(Hr 0
1 1
).
et
Hr(2) = C2r−r−12r (2).
Le decodage avec Hr(2) se fait ainsi :
Algorithme de decodage avec Hr(2) :
• Calculer le syndome s(y) = (s1, · · · , sr, sr+1).
• Si sr+1 = 1, on a une erreur et s1 · · · sr est la representation de la position de
l’erreur ou le mot 00 · · · 0 represente n+ 1 = 2r.
Mr HITTA Amara87
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Si sr+1 = 0, on a un nombre paire d’erreurs a savoir 0 et dans ce cas s1 · · · sr =
0 · · · 0 sinon 2.
Exemple 4.1.6 (Decodage par Hamming etendu H4(2) = C48(2)) La matrice
de controle de ce code est 0 0 0 1 1 1 1 0
0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 1 1
.
• Si y = 11011010 alors s(y) = 1011. L’erreur se trouve a la position 5 et le
decodage se fait a 11010010.
• Si y = 10101111 alors s(y) = 1100, on detecte 2 erreurs. �
Dans le cas general, le code Hr(q) a pour parametres
n =qr − 1
q − 1, k =
qr − 1
q − 1− r.
Exemple 4.1.7 (Matrices de controle de H2(5) et H3(3)) Chaque mot non nul
peut-etre multiplier par un nombre pour que la premiere coordonnee soit egale a 1.
• La matrice de controle de H2(5) est
H =
(0 1 1 1 1 1
1 0 1 2 3 4
)
• La matrice de controle de H3(3) est
H =
0 0 0 0 1 1 1 1 1 1 1 1 1
0 1 1 1 0 0 0 1 1 1 2 2 2
1 0 1 2 0 1 2 0 1 2 0 1 2
. �
Le decodage se fait suivant l’algorithme :
Algorithme de decodage de Hr(q) :
Mr HITTA Amara88
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Les chefs de classe sont λei = (0, · · · , 0, λ, 0, · · · , 0)
• Les syndromes correspondants sont S(λei) = λH ti ou Hi est la colonne i de la
matrice de controle H.
• En choisissant H telle que la premiere coordonnee de chaque colonne Hi soit
1, alors λ sera la premiere coordonnee non nulle de S(λei).
• Pour decoder un mot recu y, il suffit de trouver λ et i tels que S(y) = λH ti et
decoder y a y− λei.
4.1.3 Algorithme de decodage par le syndrome
Considerons un code Ckn(2) dont la matrice de controle est H.
Algorithme de decodage par le Syndrome :
Soit y le mot recu, on procede comme suit :
• Calculer le syndrome s(y) = yH t.
• Si s(y) = 0, prenons e = 0 et y serait un mot du code Ckn(2) ; sinon :
• Trouver le chef de la classe dont le syndrome est s(y). On localise ensuite
l’unique colonne de H qui est egale a s(y), notee par exemple i ; le bit altere
dans le mot transmis est celui qui se trouve a la position i du mot recu y.
Ce qui represente une bonne estimation du mot envoye avec une probabilite
d’erreur maximale.
Remarque : Un code binaire Ckn(2) requiere |Zn2 |/|Ckn(2)| = 2n−k syndromes et 2n−k
chefs de classes. Pour n et k suffisamment grand, la table de decodage devient, dans
ce cas, penible a etablir, ce qui reduit considerablement l’utilite du decodage par le
syndrome.
Mr HITTA Amara89
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 4.1.8 Considerons le code C35(2) := {00000, 10100, 01111, 11011} dont la
matrice de controle est
H =
1 0 0 1 1
0 1 0 0 1
0 0 1 0 1.
Si le mot y=01100 est recu, sa classe est
Cl(y) = {01100, 11000, 00011, 11111}.
Elle a pour syndrome s(y) = yH t =
0
1
1
. C’est la somme de 2 colonnes de H.
L’erreur est detectee mais le decodage est imcomplet puisque le syndrome de y peut
s’ecrire de deux manieres, a savoir
s(y) =
1
0
0
+
1
1
1
= c1 + c5 → Colonnes 1 et 5 de H → e = 10001
=
0
1
0
+
0
0
1
= c2 + c3 → Colonnes 2 et 3 de H → e = 01100.
Le mot y sera decode indifferemment sous forme x1 = y + 10001 = 11101 ou
x2 = y + 01100 = 00000. �
Exemple 4.1.9 (Tableau de decodage de Slepian) Considerons le code lineaire
C24(2) = {0000, 1011, 0101, 1110} dont les matrices sont
G =
(1 0 1 1
0 1 0 1
)et H =
(1 0 1 0
1 1 0 1
).
Les chefs des classes dont le poids est minimal, parmi les mots des classes, ne peuvent
etre que : c0 = 0000, c1 = 1000, c2 = 0100, c3 = 0010 et c4 = 0001. En remarquant,
au passage, que Cl(c4) = Cl(c2), le nombre de classes est 22 = 4. Leurs syndromes
sont respectivement
s(c0) =
(0
0
), s(c1) =
(1
1
), s(c2) =
(0
1
), s(c3) =
(1
0
).
Mr HITTA Amara90
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
On obtient le tableau de Slepian suivant
Classes Chefs Syndromes
Cl(c0) = C24(2) 0000 1011 0101 1110 00
Cl(c1) 1000 0011 1101 0110 11
Cl(c2) 0100 1111 0001 1010 01
Cl(c3) 0010 1001 0111 1100 10
Pour decoder un mot recu, il suffit de reperer la colonne du tableau dans laquelle
il se trouve. Le resultat de decodage sera le mot situe en haut de cette colonne.
Supposons que le mot recu est y = 1111 ; son syndrome s(y ) = 01 represente
deuxieme la colonne de H. Le chef de la classe Cl(y) est c2 = 0100. Par consequent,
on decode y a x1 = y + c2 = 1011 ∈ C. Le chef de la Cl(y) peut-etre le mot c4 =
0001. Dans ce cas, le mot y = 1111 se decode a x2 = 1111 + 0001 = 1110 ∈ C24(2).
Ce decodage n’est pas unique donc imcomplet. �
4.2 Decodage a distance minimale
Pour detecter une ou plusieurs erreurs survenues dans un mot recu, on introduit la
notion de proximite (distance) entre les mots d’un code ; une fois l’erreur detectee,
on pourra choisir le mot du code le plus proche de c c’est-a-direa distance minimale
du mot recu.
Definition 4.2.1 (Poids et distance de Hamming) Soient x = x1 . . . xn et y =
y1 . . . yn deux mots de Zn2 .
• Le poids de Hamming d’un mot x, note w(x), est le nombre de bits 1 qu’il
contient.
• La distance de Hamming, notee d(x,y), entre deux mots x et y ∈ Zn2 est le
nombre d’indices i pour lesquels xi 6= yi.
Mr HITTA Amara91
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
En particulier : Le poids d’un mot x est egal a sa distance avec le mot 0 c’est-
a-direw(x) = d(x,0). C’est-a-dire que le poids d’un mot est le nombre de bits 1 qui
le composent.
Proposition 4.2.2 La distance de Hamming est une distance metrique qui verifie
• d(x,y) ≥ 0. L’egalite est verifiee si x = y.
• d(x,y) = d(x,y) pour tous x,y ∈ Zn2 .
• d(x,y) = d(x, z) + d(z,y) pour tous x,y, z ∈ Zn2 .
Preuve : L’inegalite triangulaire provient du fait que changer x en z revient a
changer x en y puis y en z. �
Muni de cette distance discrete, l’espace Zn2 est un espace metrique.
Exemple 4.2.1 (Poids et distance) Soient x = 1010111 et y = 111000 deux
mots de Z72. Alors w(x) = 5 et w(y) = 3 et d(x,y) = 3. �
Soient x, y ∈ Zn2 . Comme le mot x + y a le bit 1 lorsque x et y different et 0 sinon,
alors
d(x,y) = w(x + y).
La distance entre deux mots est egale au poids de leurs somme.
Exemple 4.2.2 Soient x = 1010111 et y = 1111010 ∈ Z72 alors d(x,y) = 4.
Comme x + y = 0101101, le nombre de 1 est 4 = w(x + y). �
Lemme 4.2.3 La distance de Hamming est invariante par translation.
Preuve : Soient x, y et c ∈ Zn2 . En effet,
d(x + c,y + c) = w(x + y + 2c).
Le lemme resulte du fait que 2c = 0. �
Nous allons montrer que le decodage par la vraissemblance maximale et le decodage
a distance minimale sont identiques.
Mr HITTA Amara92
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Theoreme 4.2.4 Pour un canal binaire symetrique de probabilite 0 < p < 1/2, les
deux principes de decodage avec un code de distance minimale d sont identiques.
Preuve : Supposons que x le decodage possible du mot recu y. La probabilite
P(y|x) est pd(y,x)(1 − p)n−d(y,x) puisque x et y different en d(y,x) bits. Puisque
p < 1/2 et p/(1− p) < 1, supposons que z et un mot tel que d(z,y) > d(y,x) alors
P(y|x) ≥ P(y|x).
(p
1− p
)d(z,y)−d(x,y)
= pd(z,y)(1− p)n−d(z,y)
= P(y|z).
La probabilite P(y|x) est une fonction decroissante de la distance d(y,x). Ainsi, la
probabilite, pour que y se decode en x, soit grande revient a chercher le mot x le
plus tres proche de y. �
Le decodage de y consiste a trouver le mot code r tel que le mot y + r ait le poids
le plus petit possible.
Puisque (Zn2 , d) est un espace metrique discret, on peut definir la notion de voisinage
d’un mot de l’espace Zn2 .
Definition 4.2.5 (Boule de Hamming) La boule de Hamming de centre x et de
rayon t est le sous-ensemble ferme de Zn2
B(t; x) = {y ∈ Zn2 | d(x,y) ≤ t}.
Il y a :
• C1n mots distants a x de 1,
• C2n mots distants a x de 2,
• ......
• Ctn mots distants a x de t.
Mr HITTA Amara93
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Ainsi :
Proposition 4.2.6 Le nombre de mots contenus dans la boule B(t; x) est
V2(n, t) = |B(t; x)| = C0n + C1
n + . . .+ Ctn.
y compris le centre.
Exemple 4.2.3 (Interpretation geometrique dans l’espace Z32) • Boule B(1; 000)
: La boule B(1; 000), de centre 000 et de rayon 1, contient V(3, 1) = C30 +C3
1 =
4 mots. Elle est formee par les sommets situes sur les axes, y compris le centre
000
B(1; 000) = {100, 000, 010, 001}.
• Boule B(2; 000) : La boule de centre 000 et de rayon 2, contient les sommets
sauf 111, car d(000, 111) = 3. En fait, elle contient V2(3, 2) = C03 +C1
3 +C23 = 7
mots, a savoir
B(2; 000) = {100, 000, 100, 001, 011, 101, 110}.
• Boule B(1; 100) : La boule, de centre en 100 et de rayon 1, est
B(1; 100) = {100, 000, 110, 101}.
Elle contient V2(3, 1) = C03 + C1
3 = 4 mots.
• Boule B(3; 000) : La boule, de centre en 000 et de rayon 3, est formee par les
8 sommets du cube d’arret 1. Elle contient V2(3, 3) = C03 +C1
3 +C23 +C3
3 = 8
mots. �
Exemple 4.2.4 Les 2n mots du code Zn2 , ont pour images les sommets d’un cube
d’arete 1. La distance de Hamming entre deux sommets du cube est egale au nombre
de cotes qui les joignent. �
Mr HITTA Amara94
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
La capacite de correction d’un code est determinee par la distance minimale entre
les mots distincts de ce code. Pour cela, on definit la distance d’un code C(2), par
d = d(C(2)) = minx,y∈C(2)
{d(x,y) | x 6= y}.
Theoreme 4.2.7 La distance d’un code lineaire est donnee par
d = d(C(2)) = min{w(x), x ∈ C(2)∗}.
Preuve : Posons w(C(2)) = min{w(x), x ∈ C(2)∗}. Il existe deux mots x et
y ∈ C(2) tels que
d(C(2)) = d(x,y) = w(x + y) ≥ w(C(2))
car x + y ∈ C(2). D’autre part, pour un certain x ∈ C(2), on a w(x) = d(x, 0) ≥d(C(2)) car 0 ∈ C(2). �
Le principe de decodage a distance minimale consiste a associer au mot recu y ∈ Zn2
le mot code c ∈ C(2) le plus proche de y de telle sorte que y et c different en un
nombre de bits le plus petit possible.
Exemple 4.2.5 (Decodage par la distance minimale) Considerons le code lineaire
C(2) = {0000, 1010, 0111}. Comme la distance de 0000 a 1010 est 2 et celle de 0111
aux mots 1010 et 0000 est 3, la distance du code C(2) sera 2. Le decodage du mot
recu y = 1001 sera le plus proche, c’est-a-dire le mot dont le distance a y est 2,
parmi ceux du code C(2). On s’apercoit que d(0000,y) = d(1010,y) = 2 ; le mot
1001 peut etre decode comme 0000 ou 1010. �
Definition 4.2.8 (Code de type [n,k,d) ] Un code binaire lineaire de longueur
n, de dimension k et de distance d est dit code de type [n, k, d]; on le notera Ck[n,d](2).
Le theoreme suivant determine la capacite de correction et de detection d’un code
donne.
Mr HITTA Amara95
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Theoreme 4.2.9 Un code lineaire Ck[n,d](2) a la capacite de
• detecter jusqu’a t erreurs si d ≥ t+ 1
• corriger jusqu’a t erreurs si d ≥ 2t+ 1.
Preuve :
• Soit d ≥ t + 1. Supposons qu’un mot code x est transmis et qu’au plus t
erreurs sont survenues. Le mot recu demeure un mot code et les erreurs seront
detectees.
• Soit d ≥ 2t + 1. Supposons que le mot code x est recu, apres tranmission,
sous la forme y ou t erreurs ou plus sont survenues, alors d(x,y) ≤ t. Soit
x′ ∈ Ck[n,d])(2) tel que x′ 6= x alors d(x′,y) ≥ t ; car si d(x′,y) ≤ t, on aura
d(x,x′) ≤ d(x,y) + d(y,x′) ≤ 2t. Ce qui contredit l’hypothese. �
Ainsi :
• Il n’existe aucun mot y a une distance au plus t de deux mots differents d’un
code t-correcteur.
• Toutes les boules centrees en des mots distincts du code et de rayon t sont
disjointes.
• Si le mot recu comporte moins de t erreurs, il demeure dans la boule centree
sur le mot initialement emis.
Les raisons pour lesquelles la distance minimale d’un code represente l’un des parametres
importants sont decrites dans le corollaire suivant :
Corollaire 4.2.10 Le code lineaire binaire Ck[n,d](2) est utilise pour
• • detecter jusqu’a d− 1 erreurs.
Mr HITTA Amara96
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Figure 4.1: Schema general d’un systeme de communication
• • corriger jusqu’a t = [(d − 1)/2] erreurs et pas plus. Le nombre t, partie
entiere de (d − 1)/2, est dit capacite de correction du code. Le code
Ck[n,d](2) est dit t-correcteur.
Preuve : On a les equivalences suivantes
d ≥ s+ 1 ⇐⇒ s ≤ d− 1 et d ≥ 2t+ 1⇐⇒ t ≤ d− 1
2. �
Lemme 4.2.11 Un code lineaire Ck[n,d](2) verifie d ≥ s+ 1 si et seulement si toutes
les s colonnes de sa matrice de controle H sont lineairement independantes.
Preuve : Supposons que s colonnes de la matrice H sont lineairement dependantes,
alors xH t = 0 et w(x) ≤ s pour x ∈ Ck[n,d](2), donc d ≤ s, contradiction. Si s colonnes
de H sont lineairement independantes, il n’existe aucun mot x ∈ Ck[n,d](2) de poids
wh(x) ≤ s. Par consequent d ≥ s+ 1. �
Ce lemme est utile pour trouver la distance minimale d’un code. Il etablit une
relation fondamentale entre la distance minimale d’un code lineaire et l’independance
lineaire des colonnes de la matrice de controle.
Mr HITTA Amara97
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 4.2.6 (Code de Hamming 1-correcteur) Le rang de la matrice de
controle Hr du code de Hamming Hr(2), r ≥ 2, est 2r − r − 1 par definition.
Comme chaque deux colonnes de Hr sont lineairement independantes puisqu’elles
sont les representations binaires des entiers differents alors d ≥ 2 + 1 = 3 d’apres
le lemme precedent. Si Hr contient deux colonnes, elle contient aussi leurs somme,
donc d = 3. Les codes de Hamming corrigent t =[
3−12
]= 1 erreur et peuvent
detecter jusqu’a d − 1 = 2 erreurs. Le Code de Hamming etendu aura, ainsi, pour
distance minimale 4 et pour longueur 2r. Sa dimension est 2r−r. Il est 1-correcteur
et peut detecter 3 erreurs. Pour r ≥ 2
Hr(2) = C2r−r−1[2r , 3] et Hr(2) = C2r−r
[2r , 4].�
4.3 Codes raccourcis, codes demultiplies
Soit C′ l’ensemble des mots du code lineaire systematique Ckn(2) sur Z2 dont les s
premiers composantes sont nulles, s < k + 1.
Proposition 4.3.1 (Code raccourci) L’ensemble C′′ forme par les mots de C′
dont on elimine les s premieres composantes est un code de dimension n − s et
de longueur k − s, appele code raccourci du code Ckn(2) :
C′′ = Ck−sn−s(2) code racourci de Ckn(2).
4.4 Codes de Reed Muller
En 1954, I.S. Reed et D.E. Muller ont defini une classe de codes binaires lineaires non
cycliques de longueur 2m, m ∈ N∗. Ces codes ont un algorithme de decodage tres
simple qui utilise la transformee de Hadamard. Soient m et r deux entier tels que
0 ≤ r ≤ m, le r-eme code de Reed-Muller, note RM[r,m], a pour parametres :
n = 2m, k = 1 + Cm1 + . . .+ Cm
r et d = 2m−r.
Mr HITTA Amara98
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
On demontrera dans la suite ces affirmations dans le cas ou r = 1.
Les premiers code de Reed-Muller ont une relation directe avec les codes de Ham-
ming. Soit m la redondance du code de Hamming, le code de Reed-Muller
d’ordre 1 est le code dual du code de Hamming etendu
RM[1,m] = [Hm(p)]⊥ = Cm+12m (2).
La matrice generatrice du code RM[1,m] sera la matrice de controle EHm du code
Hm(p). Pour :
• m = 1, RM[1,1] = Z22
• m = 2, RM[1,2] = C34(2) : c’est le code de parite d’ordre 4.
• m = 3, RM[1,3] = C48(2) : c’est le code de Hamming etendu auto-dual.
• m = 5, on obtient le code RM[1,5] = C632(2) utilise pour les transmissions
des photos a partir Mariner 9. Sa matrice generatrice se construit comm
suit : Formons une matrice G0 de type 5 × 31 dont les colonnes sont les
representations binaires des entiers de 1 jusqu’a 31. Ce qui donne
G0 =
1 0 1 · · · 0 1
0 1 1 · · · 1 1
0 0 0 · · · 1 1
0 0 0 · · · 1 1
0 0 0 · · · 1 1
La matrice G sera de type 6× 32 :
G =
0
0
G0...
0
1 1 1 · · · 1
Reste a determiner la distance minimale du code de Reed-Muller d’ordre 1.
Mr HITTA Amara99
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Theoreme 4.4.1 Pour chaque m, la distance minimale de RM[1,m] est 2m−1.
Preuve : D’apres la matrice generatrice EHm, le code RM[1,m] est de longueur
2m et de dimension m + 1. Pour la distance, la recurrence est verifiee pour m = 1
et m = 2. Supposons que :
• C1 = RM[1,m-1] est de distance d1 = 2m−2. Sa matrice generatrice est
G1 = EHm−1.
• C2 le code de repetition de longueur 2m−1 et de distance minimale d2 =
2m−1. Sa matrice generatrice est la matrice ligne de type 1 × 2m−1, G2 =(1 1 · · · 1
).
La matrice generatrice de RM[1,m] s’ecrit alors
EHm =
(0 G2
G1 G1
).
Pour la matrice ligne(0 G2
)qui est un mot code forme par 2m−1 bits 0 et 2m−1
bits 1, son poids est 2m−1 = d2. Le code engendre par les lignes de la sous-matrice(G1 G1
)aura pour distance minimale 2.2m−2 = 2d1. D’ou
dmin(RM[1,m]) = min(2d1, d2) = min(2.2m−2, 2m−1) = 2m−1. �
Theoreme 4.4.2 Le code d’ordre de Reed-Muller RM[1,m] est forme par un seul
mot de poids 0 qui est le mot 0, d’un mot de poids 2m qui estle mot 1 et 2m+1 − 2
mots de poids 2m−1.
Preuve : La derniere ligne de la matrice generatrice EHm est 1. Donc, 0 et 1
sont les seuls mots de poids respectivement 0 et 2m. Comme la distance minimale
de RM[1,m] est 2m−1, il n’existe aucun mot code c de poids entre 0 et 2m−1 et il
n’existe aucun mot code 1+ c de poids entre 0 et 2m−1. Donc, il n’y a aucun mot
code de poids entre 2m−1 et 2m. Ainsi tous les mots code autre que 0 et 1 ont pour
poids 2m−1. �
Mr HITTA Amara100
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Corollaire 4.4.3 Le code dual du code de Hamming binaire de redondance m est
forme par un seul mot de poids 0 et 2m − 1 mots de poids 2m−1.
Preuve : Pour passer de RM[1,m] vers le code de Hamming dual, on prend tous
les mots code commencant par 0 et on elimine leurs positions. Le mot code 1 aura
pour poids 2m−1. Donc, les mots code non nuls de poids 2m−1 seront au nombre
2m+1 − 1. �
Ces codes sont dits codes equidistants, dans la mesure ou les mots codes distincts
sont a distance fixe, 2m−1, l’un de l’autre.
4.4.1 Decodage des Codes de Reed Muller
L’outil fondamental de decodage des codes de Reed-Muller est la transformee de
Hadamard. En evoquant la structure de groupe commutatif G = (Zn2 ,+), n ∈ N∗,
cette transformee n’est autre que la transformee de Fourrier sur ce groupe.
Soit x ∈ Zn2 . Un caractere du groupe additif G est l’application, dite de Walsh,
χx : Zn2 7→ C tel que χx(y) = (−1)<x,y>.
ou < x,y > est le produit scalaire ordinaire entre les mots x et y ∈ G.
La transformation de Hadamard d’une fonction a variable complexe f et son inverse
sont definies par
f(y) =∑
x
f(x)(−1)<x,y>
f(x) =1
2n
∑x
f(y)(−1)<x,y>.
Considerons l’espace {+1,−1} et la transformation suivante
Ψ : Z2 = {0, 1} → {+1,−1} telle que Ψ(0) = +1 et Ψ(1) = −1.
Soit x ∈ Zn2 , son image par Ψ sera notee x∗ = Ψ(x) ∈ {+1,−1}n. Cela consiste
a remplacer, respectivement, les bits 0 et 1 dans x par les nombres reels +1 et −1
pour obtenir le mot x∗.
Mr HITTA Amara101
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Lemme 4.4.4 Si x et y sont deux mots de l’espace Zn2 , alors
x∗.y∗ = n− d(x,y).
ou d est la distance de Hamming. Si x,y ∈ Z2h2 et d(x,y) = h alors x∗.y∗ = 0.
Preuve : . Le produit scalaire de x∗ et y∗ est egal au nombre n moins la nombre
de places ou ils different a savoir d(x,y)+d(y,x) = 2d(x,y). Si n = 2h et d(x,y) =
h = n/2 alors x∗.y∗ = 0. �
Posons RM(1,m)± le code obtenu en remplacant chaque mot code x de RM(1,m)
par x∗. Les mots code de RM(1,m)± sont alors x∗1,x∗2, · · · ,x∗2m+1 .
Lemme 4.4.5 Si x∗ ∈ RM(1,m)± alors −x∗ ∈ RM(1,m)±. De plus, on a
x∗i .x∗j =
2m si x∗i = x∗j
−2m si x∗i = −x∗j
0 si x∗i 6= ±x∗j .
Preuve : Puisque 1 ∈ RM(1,m) alors 1 + x ∈ RM(1,m) et l’on a (1 + x)∗ =
−x∗ ∈ RM(1,m)±. Le reste se deduit du lemme precedent puisque n = 2m. �
4.5 Codes de Reed-Solomon
Soit p un nombre premier et posons q = pm ou m est un entier naturel.
Une autre classe de codes tres connue en theorie du codage est celle des codes de
Reed-Solomon sur un corps fini de Galois ; Ils ont de bons parametres. On les definis
de deux manieres :
• Evaluation des polynomes sur un corps de Galois Zq. En general, on prend
p = 2.
• Codes cycliques : Choisissons un polynome g(x) ∈ Zq[x] de degre n − k,
n et k deux entiers tels que k < n. Le message est considere comme les
Mr HITTA Amara102
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
cœfficients d’un certain polynome M(x) tel que d0M(x) < k ; Il sera code
comme les cœfficients du polynome g(x)M(x). Si g(x) divise le polynome
xn−1, on obtient une famille de codes dits cycliques. En optant pour d’autres
restrictions on obtient les codes BCH, qui contiennent comme sous-famille les
codes de Reed-Solomon.
C’est la premiere approche que nous allons aborder dans ce qui suit.
Soient a1, . . . , an des elements distincts du corps de Galois Zq. Pour k ∈ N, con-
siderons l’espace vectoriel des polynomes de degre inferieur ou egal a k − 1 :
Lk = {f ∈ Zq[x] : d0(f) ≤ k − 1}.
Il est evident que dim(Lk) = k, puisqu’il admet pour base canonique {1, x, x2, · · · , xk−1}.
Definissons l’application evaluation, notee ev : Lk → Znq par ev (f) := [f(a1), . . . , f(an)].
Si k < n, elle est injective. Le code de Reed-Solomon est le sous-espace vecto-
riel de Znq defini par
RS(2) = { ev (f) : f ∈ L{k :k<n}}.
Il est clair que la dimension de ce code est k.
Pour trouver sa distance minimale, considerons un mot code ev(f) dont le poids est
egal a la distance d = d(RS(q)). Alors, f s’annule sur (n−d) elements de l’ensemble
{a1, . . . , an}. Par consequent, n− d ≤ d0(f) ≤ k− 1. Il s’en suit que d ≥ n− k+ 1.
Cette inegalite est en realite une egalite car il existe des polynomes non nuls de degre
k − 1 qui ont k − 1 racines distinctes, a savoir h(x) =∏k−1
i=1 (x− ai) qui correspond
au mot code ev (h) de poids (n− k+ 1), ce qui donne d ≤ n− k+ 1 . Donc, le code
RS(q) est de type [n, k, n− k + 1]. Ainsi,
RS(q) = Ckn,n−k+1(q).�
Mr HITTA Amara103
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Comme ev (xi) = (ai1, ai2, · · · , ain), pour tout 0 ≤ i ≤ k − 1, la matrice generatrice
de Reed-Solomon, ainsi defini, sera
GRS(q) =
1 1 · · · 1
a1 a2 · · · an...
......
...
ak−11 ak−2
2 · · · ak−1n
.
Enfin, Il existe un algorithme de decodage rapide, pour ces codes, utilisant l’algorithme
d’Euclide dans l’anneau Z2[x]
4.6 Codes BCH et leurs algorithmes de decodage
Construisons, maintenant, une autre famille de codes dits Codes BCH : Bose,
Ray-Chaudhuri et Hocquenghem.
Posons GF (q) = {a1, a2, · · · , aq} et
H =
1 1 · · · 1
a1 a2 · · · an
a21 a2
2 · · · a2n
...... · · · ...
ad−21 ad−2
2 · · · ad−2n
Soit C un code sur GF (q) de matrice de controle H, d − 1 ≤ n ≤ q. Le code C a
pour redondance d− 1. Sa dimension est n− (d− 1) = n− d+ 1. Chaque ensemble
de d−1 colonnes de H forme une matrice de Vandermonde de determinant non nul.
Ainsi, les d − 1 colonnes sont lineairement independants. La distance minimale de
C est d, sa dimension est k = n− d+ 1. �
4.6.1 Decodage des codes BCH par l’exemple
Ces codes ont un algorithme de decodage tres subtiles et tres puissants mais difficile
a expliquer. Abordons le tout d’abord sur un exemple simple.
Mr HITTA Amara104
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 4.6.1 (Code BCH sur GF(11)) Soit C un code, sur le corps de Galois
Z11, defini par la matrice de controle
H =
1 1 1 1 · · · 9 X
1 2 3 4 · · · 9 X
12 22 32 42 · · · 92 X2
13 23 33 43 · · · 93 X3
=
1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 X
1 4 9 5 3 3 5 9 4 1
1 8 5 9 4 7 2 6 3 X
.
Ce code a pour longueur 10 et de redondance 4. Sa dimension est alors 6 et sa
distance minimale est 5. Sa capacite de correction est [(5 − 1)/2] = 2-correcteur.
Soit aei + bej les erreurs doubles a corriger par ce code. Si (s1, s2, s3, s4) sont les
syndomes, la correction des erreurs revient a determiner a, b, i et j. Les erreurs se
trouvent en positions i et j. Les colonnes de H concernees par le calcul du syndromes
S(aei + bej) sont(
1 i i2 i3)t
et(
1 j j2 j3)t
. Donc
S(aei + bej) = (a+ b, ai+ bj, ai2 + bj2, ai3 + bj3)
= (s1, s2, s3, s4).
Ce qui donne en eliminant a de ces equations :
b(j − i) = s2 − is1 [1]
b(j − i)j = s 3 − is2 [2]
b(j − i)j2 = s4 − is3 [3].
En comparant le carre de l’equation [3] avec le produit des equations [1] et [2], on
obtient (s3 − is2)2 = (s2 − is1)(s4 − is3). Ce qui represente une equation du second
degre de la forme Pi2 +Qi+R = 0 de racine i et j. Plusieurs cas se presentent :
• S(y) = 0, aucune erreur n’est survenue et y se decode a lui-meme.
• S(y) 6= 0 mais l’equation du second degre est nulle alors P = Q = R = 0 et
s2
s1
=s3
s2
=s4
s3
.
Dans ce cas, il existe une seule erreur : i = s2/s1 et a = s1.
Mr HITTA Amara105
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• S(y) 6= 0 mais l’equation du second degre Pi2+Qi+R = 0 admet deux racines
distinctes dans Z11. Ces racines seront i et j et on obtient a et b en resolvant
a+ b = s1 et ai+ bj = s2.
• L’equation Pi2+Qi+R = 0, n’admet aucune racine ou admet une seule double
dans Z11. Dans ce cas, le vecteur erreur ne peut-etre celui correspondant a
cette racine double, et l’on au moins le merite d’avoir detecter au moins 3
erreurs.
Exemple 4.6.2 (Decodage BCH) Etant donne le syndrome (s1, s2, s3, s4), on
calcule l’erreur survenue lors de la transmission :
• Si le syndrome est (1, 2, 3, 7), l’equation sera i2 + i+ 6 = 0 qui n’admet pas de
solutions dans Z11.
• Si le syndrome est (2, 1, 6, 3), les cœfficients de l’equation du second degre
seront nuls et i = 1/2 et a = 2. Ce qui donne l’erreur e = 0000020000.
• Si le syndrome est (1, 2, 9, 7), on obtient 9i2 + 7 = 0 c’est-a-dire i2 − 9 = 0 et
i = 3 et j = −3 = 8. D’autre part, a + b = 1 et 3a + 8b = 2. Ce qui donne
5b = X, d’ou b = 2 et a = −1 = X. L’erreur sera alors e = 00X0000200. �
4.6.2 Decodage general d’un code BCH
Supposons que l’on a un code t-correcteur de distance d = 2t + 1 et de matrice
de controle a 2t lignes, le syndome sera un vecteur de la forme (s1, s2, · · · , s2t).
L’idee consiste a determiner les localisations xi des coordonnees de l’erreur et leurs
amplitudes ai telle que l’erreur soit∑t
i=1 aiexi. Ce qui revient a determiner les
amplitudes ai et les localisations xi en fonction des si dans le systeme
a1 + a2 + · · ·+ at = s1
a1x1 + a2x2 + · · ·+ atxt = s2
......
......
...
a1x2t−11 + a2x
2t−12 + · · ·+ atx
2t−1t = s2t.
Mr HITTA Amara106
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Multiplions chaque equation i du systeme par αi−1 ou α est une indeterminee. En
ajoutons les 2 cotes du systeme et egalisant, l’on obtient que les 2t premier termes
de s1 + s2α + s3α2 + · · ·+ s2tα
2t−1 sont les 2t premiers termes de
a1
1− x1α+
a2
1− x2α+ · · ·+ at
1− xtα=A1 + A2α + A3α
2 + · · ·+ Atαt−1
1 +B1α +B2α2 + · · ·+Btαt.
Les cœfficientsAi etBi sont a determiner. En reduisant au meme denominateur com-
mun, on obtient l’identite entre deux series dont les cœfficients sont egaux jusqu’au
terme en α2t−2, a savoir
(s1 + s2α + s3α2 + · · ·+ s2tα
2t−1 + · · · )× (1+ B1 α +B2α2 + · · ·+Btα
t)
= A1 + A2α + A3α2 + · · ·+ Atα
t−1.
Ce qui donne t equations lineaires en B1, B2, · · · , Bt. On factorise ensuite ces termes
pour determiner les localisations x1, · · · , xt. Finalement, en egalisant les cœfficients
des termes 1, α, · · · , αt−1, pour calculer les Ai. On obtient
A1 = s1
A2 = s2 + s1B1
A3 = s3 + s2B1 + s1B2
...
At = st + st−1B1 + · · ·+ s1Bt−1.
Ce qui donne
A1 + A2α + A3α2 + · · ·+ Atα
t−1
1 +B1α +B2α2 + · · ·+Btαt= s1 + s2α + s3α
2 + · · ·+ s2tα2t−1 + · · ·
=a1
1− x1α+
a2
1− x2α+ · · ·+ at
1− xtα.
Comme les termes Ai et Bi sont connus, les valeurs de ai et xi en decoule simplement
en decomposant l’expression a gauche en des fractions simples.
Exemple 4.6.3 (Decodage d’un code BCH sur Z11) Considerons le code dont
les paramtres sont n = 10, k = 4, r = 6, q = 11 et d = 7 et de matrice de controle
Mr HITTA Amara107
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
est
H =
1 1 1 1 · · · 9 X
1 2 3 4 · · · 9 X
12 22 32 42 · · · 92 X2
13 23 33 43 · · · 93 X3
14 24 34 44 · · · 94 X4
15 25 35 45 · · · 95 X5
=
1 1 1 1 1 1 1 1 1 1
1 2 3 4 5 6 7 8 9 X
1 4 9 5 3 3 5 9 4 1
1 8 5 9 4 7 2 6 3 X
1 5 4 3 9 9 3 4 5 1
1 X 1 1 1 X X X 1 X
Supposons que le syndrome d’un mot recu y est s(y) = (, 8, 4, 5, 3, 2) alors on a a
resoudre le systeme
2B3 + 8B2 + 4B1 + 5 = 0
8B3 + 4B2 + 5B1 + 3 = 0
4B3 + 5B2 + 3B1 + 2 = 2.
Ce qui donne B1 = 5, B2 = X et B3 = 8. D’autre part, A1 = 2, A2 = 8 + 2B1 = 7 et
A3 = 4 + 8B1 + 2B2 = 9. Le denominateur est 1 + 5α+Xα2 + 8α3 qui se decompose
comme (1 − 3α)(1 − 5α)(1 − 9α). Les positions des erreurs sont alors 3, 5 et 9.
Finalement, on obtient la factorisation en fractions simples
2 + 7α + 9α2
(1− 3α)(1− 5α)(1− 9α)=
4
1− 3α+
2
1− 5α+
7
1− 9α.
L’erreur est alors e = 0040200070.
• Si s(y) = (5, 6, 0, 3, 7, 5), on a les equations 5B3 +6B2 +3 = 0, 6B3 +3B1 +7 = 0 et
3B2+7B1+5 = 0. En eliminant B3, on obtient 6B2+3B1+X = 2(3B2+7B1+5) = 0.
En choisissant B3 = A3 = 0, on a B2 = 5, B1 = 5. On calcule ensuite A1 = S1 = 5
et A2 = s2 + s1B1 = 9. D’autre part,
5 + 9α(1− α)(1− 5α) =2
1− α+
3
1− 5α.
Ce qui donne l’erreur e = 2000300000. �
Algorithme de decodage des codes BCH :
• Calculer le syndrome s(y) = (s1, s2, · · · , s2t) du mot recu y.
Mr HITTA Amara108
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Calculer le rang r, qui est le nombre d’erreur, de la matrices1 s2 s3 · · · st
s2 s3 s4 · · · st+2
... . . ....
st st+1 st+2 · · · s2t−1
• Resoudre, ensuite, le systeme a r equations en B1, · · · , Br :
st+1−rBr + st+2−rBr−1 + · · ·+ stB1 + st+1 = 0
st+2−rBr + st+3−rBr−1 + · · ·+ st+1B1 + st+2 = 0...
stBr + st+1Br−1 + · · ·+ st+r−1B1 + st+r = 0.
• Calculer A1, · · · , Ar suivant les equations
A1 = s1
A2 s2 + s1B1
...
Ar = sr + sr−1B1 + · · ·+ s1Br−1.
• Factoriser le polynome
1 +B1α + · · ·+Brαr = (1− x1α)(1− x2α) · · · (1− xrα),
ou x1, · · · , xr sont les positions des r erreurs. Sinon, conclure qu’il existe plus
de t erreurs.
• Decomposer la fraction rationnelle suivante en fractions simples
A1 + A2α + · · ·+ Arαr−1
(1− x1α)(1− x2α) · · · (1− xrα)=
a1
1− x1α+
a2
1− x2α+ · · ·+ ar
1− xrα,
pour obtenir les amplitudes ai des erreurs en positions xi.
• Decoder y a y−r∑i=1
aiexi.
Mr HITTA Amara109
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Mr HITTA Amara110
08-Mai 45 Guelma University
CHAPITRE
5
BORNES ASYMPTOTIQUES D’UN
CODE
5.1 Bornes d’un code
Posons A2(n, d) la valeur maximale possible |Ck[n,d](2)| = 2k, 1 ≤ k ≤ n, pour n et d
donnes.
Exemple 5.1.1 On a
• Les seuls mots de longueur n, a distance 1 l’un de l’autre, sont les mots de
longueur n qui ont un seul bit 1 et le reste c’est des bits 0 ; ils sont au nombre
n et forment une base de l’espace Zn2 . Donc A2(n, 1) = |Zn
2 | = n.
111
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
• Les seuls mots de longueur n, a distance n l’un de l’autre, sont les mots :
0 · · · 0 et 1 · · · 1 du code de repetition de longueur n. Donc, A2(n, n) = 2 =
|C1n(2)| = 2. �
Soit x = x1x2 · · ·xn un mot du code C(2) = Ck[n,d](2). Deux cas se presentent :
• Si w(x) est paire, la parite de controle de ce mot est 0. On obtient un mot de
longueur n+ 1 de la forme x = x1x2 · · ·xn0 .
• Si w(x) est impaire, la parite de controle de ce mot est 1. On obtient un mot
de de longueur n+ 1 de la forme x = x1x2 · · ·xn1.
Les poids des mots du code ainsi construit C(2) sont pairs. Les distances entre ses
mots le sont aussi car d(x, y) = w(x+ y).
Theoreme 5.1.1 Si d est impaire, alors C(2) = Ck[n+1,d+1](2).
Preuve : La distance minimale du code C(2) est paire entre d et d+ 1. �
Inversement : Supposons que l’on a un code binaire de type [n+ 1, k, d+ 1] ou d est
impaire. Choisissons deux mots de ce code qui sont a une distance d+1. Supprimons
les bits ou ils different ainsi que les bits, dans les memes positions, des autres mots
de ce code. On obtient ainsi, un code binaire de type [n, k, d].
Corollaire 5.1.2 On a A2(n, d) = A2(n+ 1, d+ 1) si d est impair.
Definition 5.1.3 (Code optimal) Un code binaire Ck[n,d](2) est dit optimal si
A2(n, d) = |Ck[n,d](2)|.
Exemple 5.1.2 (Codes optimaux) Soit le code C4[5,3] = {00000, 01101, 10110, 11011}.
La construction precedente nous fournit le code C4[6,4] = {000000, 011010, 101100, 110110}.
Comme A2(5, 3) = 4, d’apres la corollaire, on a A2(6, 6) = 4. Ces deux codes sont
des codes optimaux. �
Mr HITTA Amara112
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Le probleme principal, pour obtenir un bon code Ck[n,d](2) est d’optimiser ses trois
parametres de facon que :
• la longueur n soit assez petite pour que les transmissions soient rapides.
• la dimension k soit assez grande pour transmettre une variete de message.
• la distance d soit assez grande pour corriger plusieurs erreurs.
Notre but est donc de trouver les codes Ck[n,d](2) tels que :
• La distance relative δ[Ck[n,d](2)] =d
nsoit assez grande.
• Le taux d’information R[Ck[n,d](2)] =k
nsoit assez grand.
Ces deux conditions sont assez opposees. Mais, on peut d’ores et deja signaler que
l’on a l’ inegalite suivante :
Theoreme 5.1.4 (Inegalite du singleton)) Les parametres du Ck[n,d](2) verifient
k ≤ n− d+ 1
ou plus precisement
A2(n, d) ≤ 2n−d+1.
Preuve : Les mots d’un code existent avec au moins un bit d’information non
nul et (n − k) bits de controle. Un tel mot ne peut avoir un poids plus grand que
1 + (n− k). Par consequent, le poids du code ne peut depasser 1 + (n− k). �
Definition 5.1.5 (Code MDS) Le code Ck[n,d](2) est dit MDS (Maximum Dis-
tance Separable) lorsque l’egalite du singleton est atteinte, c’est-a-dire
k = n− d+ 1.
Mr HITTA Amara113
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 5.1.3 (Codes MDS) Un code MDS est de la forme Cn−d+1[n,d] (2). Les
codes suivants : C1[n,n](2), Cn−1
[n,2](2) et Cn[n,1](2) sont MDS.
La determination de tous les codes MDS est un probleme non resolu.
Corollaire 5.1.6 Un code MDS est t-correcteur s’il admet 2t symboles de controle.
Preuve : Pour corriger 2t erreurs, il faut que d = 2t+ 1. Comme le code est MDS,
alors k = n− d+ 1 = n− 2t et n− k = 2t qui est le nombre de bits de controle. �
Remarque. Pour un code Ck(n,d)(2), l’on souhaite que le taux de transmission kn
et
la distance relative dn
soient aussi grand que possible. Mais l’inegalite du singleton
nous donnek
n+d
n≤ 1 +
1
n.
Ce qui montre que l’on ne peut pas augmenter les deux taux ensembles.
Definition 5.1.7 (Codes de Justesen) Une classe de�bons codes� ou�codes
de Justesen� est une famille Cki
[ni,di](2) tels que
limi→∞
(dini
)> 0, lim
i→∞
(kini
)> 0 et lim
i→∞ni =∞.
Les seuls bons codes connus actuellement sont ceux de Justesen et ceux de Katsman,
Tasfasman et Vladut. Ces derniers contiennent les codes geometriques de V. Goppa.
Theoreme 5.1.8 (Borne asymtotique de Hamming) Soit un code binaire t-
correcteur Ck[n,d](2) c’est-a-dired = 2t+ 1, alors
1 + C1n + C2
n + . . . Ctn ≤ 2n−k
ou plus precisement :
A2(n, t) ≤2n
V2(n, t).
Mr HITTA Amara114
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Preuve : Pour trouver tous les mots a une distance t d’un point fixe x, on lui
ajoute simplement tous les mots de poids t ; ils sont au nombre Ctn. Comme les
spheres centrees en des mots de C sont disjointes deux a deux, en se donnant
x ∈ C de longueur n, il existe Ckn mots code qui different avec x en k positions. Par
consesquent, la boule Bt(x) contient V2(n, t) = 1 + C1n + . . . + Ct
n mots. Comme il
y a |Ck(n,d)(2)| = 2k mots du code, il y aurait autant de boules centrees en des mots
de Ck(n,d)(2). Leurs reunion est un sous-ensemble de Zn2 . �
Remarque : Cette borne n’est pas toujours la meilleure. Si t ≤ 14n c’est raisonnable
comme borne. Si t est large, les spheres seront assez grandes.
Exemple 5.1.4 Considerons le code Ck(6,3)(2). Sa distance minimale est 3 = 2t+ 1,
c’est-a-diret = 1. D’apres la borne de Hamming, on a
2k = |Ck(6,3)(2)| ≤ 26
C60 + C6
1
=64
7.
Mais |Ck(6,3)(2)| est une puissance de 2, donc |Ck(6,3)(2)| ≤ 8 et alors 2k ≤ 8, c’est-a-
direk ≤ 3. �
Definition 5.1.9 (Codes parfaits) Un code t-correcteur est dit parfait lorsque la
borne de Hamming est atteinte.
Dans ce cas, L’espace Zn2 tout entier est la reunion disjointe de boules de Hamming
de rayon t centrees sur des mots codes :
Ck[n,d](2) code t-correcteur parfait ⇐⇒ Zn2 =
⋃c∈Ck
[n,d](2)
Bt(c).
Cette situation est ideale puisque un code t-correcteur parfait, peut corrige jusqu’a
t erreurs et ne peut corriger t + 1 erreurs par le decodage de la vraissemblance
maximale.
Exemple 5.1.5 (Code trivial) Si t = 0 alors C0n = 1 = 20 et |C(2)| = 2n. C’est
le code trivial Zn2 . �
Mr HITTA Amara115
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 5.1.6 (Code parfaits) • Tout code ayant exactement un seul mot
est parfait.
• Les codes de repetition C1[n,n](2) d’ordre n = 2t+1 sont parfaits. Ils contiennent
les mots 0 . . . 0 et 1 . . . 1. L’espace Zn2 sera la reunion disjointes des boules
Bt(0 . . . 0) = {x ∈ Zn2 | w(x) < t} et Bt(1 . . . 1) = {x ∈ Zn
2 | w(x) ≥ t+1}.�
Les codes parfaits sont rares et ceux qui existent sont performants. En 1963, Van
Lint et Tietavairen, ont montre le resultat important suivant : Si un code parfait
de longueur n et de distance d = 2t+ 1, alors
• t = 3 et (n, d) = (23, 7), c’est les parametres du code de Golay, G12(23,7)(2).
• (n, d) = (2r − 1, 3) c’est les parametres des codes de Hamming Hr(2).
Remarque. Dans le cas non binaire, un code Ck(n,d)(p) est parfait sur le corps fini
Zp si
1 + C1n(p− 1) + C2
n(p− 1)2 + . . .+ Ctn(p− 1)t = pn−k.
Exemple 5.1.7 (Compression des donnees) Les codes de Hamming Hr(2) =
C2r−1−r(2r−1,3) sont des codes 1-correcteurs parfaits. En effet, puisque t = 1, alors
2n
Cn0 + Cn
1
=2n
1 + n=
22r−1
2r= 22r−1−r = |Hr(2)|.
La borne de Hamming est atteinte. Par consequent, les spheres de rayon 1 centree
sur les mots code forment une partition de Zn2 c’est-a-dire
Zn2 =
⋃c∈Hr(2)
B1(c).
Les codes de Hamming sont utilises pour la compression des donnees en se perme-
ttant une petite distorsion de l’information. Soit G la matrice generatrice du code
de Hamming Hr(2) = C2r−1−r(2r−1,3) de longueur n = 2r − 1. Chaque mot x ∈ Zn
2 est a
Mr HITTA Amara116
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
une distance 1 d’un seul mot code c ∈ Hr(2). On stock le mot x sous la forme d’un
mot m de longueur k = n − r = 2r − 1 − r qui est l’unique solution de c = mG.
Pour la decompression, le message stocke m est code comme c = mG, qui differe
du mot initial x dans au plus une position. �
Exemple 5.1.8 (Codes de Golay 3-correcteurs parfaits) Les codes de Golay
ont ete decouvert par Golay lui-meme en 1949.
• Considerons le code binaire de Golay G = C12[23,7](2). Il verifie la borne de
Hamming car t = 3, n = 23. Comme k = 12 alors |G | = 212. Ainsi,
212(C230 + C23
1 + C232 + C23
3 ) = 223.
Le code de Golay G3(2) = C12(23,7)(2) derive du code de Golay G = C12
(23,8)(2)
en ajoutant des parites de controle (c’est-a-direextension). Son groupe de
symetrie joue un role important dans la theorie des groupes finis ; c’est le
groupe de Mathieu M24 d’ordre 244823040. Il est considere comme le plus
important des 26 groupes simples sporadiques. L’ATLAS de Conway & Co.
(1980) donne la plupart des construction de ces groupes.
• Le code de Golay ternaire, construit sur le corps Z3, G = C6(11,5)(3) est parfait.
Car t = 2, n = 11, k = 6 et 1 + 22 + 5× 11× 4 = 35.
Dans leur traite de reference sur le codage, MacWilliams et Sloane (1977), con-
siderent que les codes de Golay binaires sont probablement les plus importants pour
des raisons pratiques et theoriques.
Une autre borne, cette fois-ci inferieure, dite de Gilbert-Vershamov merite d’etre
signalee. Sa satisfaction garantie l’existence de code.
Theoreme 5.1.10 Si l’on a l’inegalite
1 + Cn−11 + . . .+ Cn−1
d−2 < 2n−k c’est-a-dire V2(n− 1, d− 2) ≥ 2n
A2(n, d),
il existe un code lineaire Ck(n,d)(2).
Mr HITTA Amara117
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Preuve : On va construire, par recurrence, une matrice H de type (n−k)×n telle
que au moins d − 1 colonnes ne soient pas lineairement independantes. D’apres le
lemme [ ], ceci demontre le theoreme. Les premieres colonnes de H peuvent etre
des vecteurs non nuls de longueurs (n − k). Supposons que nous avons choisi une
sous-matrice Hi de type (n − k) × i de H dont le nombre de colonnes est i telles
que d−1 colonnes d’entre elles ne soient lineairement independants. Il y a au moins
Ni = C1i + . . .+Cd−2
i mots qui sont combinaison lineaire distincts d’au moins (d−2)
colonnes de Hi. Si Ni ≤ 2n−k − 1, on peut ajouter une autre colonne differente de
ces combinaisons lineaires, tout en se gardant que les (d− 1) colonnes de la matrice
Hi+1 de type (n−k)× (i+ 1) soient lineairement independantes. On peut raisonner
de cette maniere jusqu’a ce que 1 + Cn−11 + . . .+ Cn−1
d−2 < 2n−k. �
Exemple 5.1.9 (Existence de code) Considerons le code lineaire de type [n, k, d] =
[9, 2, 5] . D’apres la borne de Gilbert-Varshamov, on a
V(8, 3) = 1 + C81 + C8
2 + C83 = 93 < 2n−k = 27 = 128.
Ce code existe. �
Fixons un reel δ, 0 < δ < 1, et posons
α(δ) := lim supn→∞
[1
nlog2[A2(n, δn)]
].
L’etude des nombres A2(n, d) est considere comme un probleme central en theorie
des codes combinatoires. D’ou l’importance du nombre α(δ). Une estimation de
α(δ) est dite borne asymptotique.
Dans le theoreme 1.22, posons p = λn ou 0 ≤ λ ≤ 1
2, on obtient l’expression de
l’entropie binaire
H2(λ) = limn→∞
1
nlog2[V2(n, λn)].
Mr HITTA Amara118
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
On utilise cette expression pour reecrire les resultats precedents en terme des bornes
asymptotiques
α(δ) ≤
1−H2
(1
2δ
)−→ Borne asymptotique de Hamming
1− δ −→ Borne asymptotique du Singleton.
La meilleure des bornes superieures de α(δ) jusqu’a present est celle de McEliece,
Rodemich, Rumsey et Welch :
α(δ) ≤ min {1 + g(u2)− g(u2 + 2δu+ 2δ) : 0 ≤ u ≤ 1− 2δ}
ou
g(x) = H2
(1−√
1− x2
).
Enfin, la borne asymptotique inferieure de Gilbert-Vershamov
α(δ) ≥ 1−H2(δ), 0 ≤ δ ≤ 1
2.
En recapitulant, on obtient le schema suivant :
Ces dernieres annees, on a vu une proliferation de construction de codes geometriques
encodes et decodes en temps polynomiaux en fonction de leurs longueurs. Leurs per-
formances depassent de loin la borne inferieure de Varshamow-Gilbert. Recemment
et en utilisant les courbes algebriques sur les corps de Galois (p ≥ 49), ont demontre
l’existence de bornes meilleures que celles de Varshamow-Gilbert. Ces codes ont de
plus grands taux d’information avec les memes longueurs et les memes distances
minimales. D’autre part, Calderbank, Hammons, Kummer, Sole et Sloane (1995)
ont montre que les meilleurs codes sont les codes lineaires sur Z4 qui n’est pas un
corps.
Mr HITTA Amara119
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
keepaspectratio
Mr HITTA Amara120
08-Mai 45 Guelma University
CHAPITRE
6
PARAMETRES ASYMPTOTIQUES
DES CODES
6.1 Existence de codes et parametres asymptotiques
Soit canal binaire symetrique de probabilite p ∈]0, 12[.
Un mot du code Ckn,d(2) contient en moyenne np bits d’ou l’idee de considerer la
boule de Hamming B(0;np) de centre 0 et de rayon np. Supposons qu’une erreur
e ∈ B(0;np) soit commise lors d’une transmission. Si cette erreur est la seule de
son syndrome, on peut la corriger en suivant la vraissemblance maximale. Si, en
revanche, plusieurs erreurs correspondent a un meme syndrome, l’incertitude ne peut
etre levee.
On pose alors
ECkn(2) = {e ∈ B(0;np) : s−1(s(e)) 6= {e}}
121
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
ou s est l’application syndrome.
Definition 6.1.1 (Probabilite d’erreurs) Le rapport
eCkn(2) :=
|ECkn(2)|
|B(0;np)|
s’appelle la probabilite d’erreurs du code C(2). Les parametres asymptotiques
de Ckn(2) sont la distance relative et le taux de transmission
δCkn(2) =
d
net RCk
n(2) =k
n.
En presence de perturbations et grace a un decodage approprie, il est possible
d’assurer un debit d’information aussi proche que l’on desire de la capacite du canal
de transmission C(p) avec une probabilite d’erreurs arbitrairement petite, mais qu’en
revanche cette probabilite ne peut etre inferieure a une valeur finie si le debit est
superieur a la capacite du canal.
La demonstration suivante du theoreme de Shannon est longue et sort du cadre de
ce livre.
Theoreme 6.1.2 (Shannon) Soit ε > 0. Fixons p ∈]0, 12[. Il existe un code
lineaire C(2) dont le taux de transmission est tel que RC(2) ≥ C(p)− ε et qui verifie
la contrainte de performance sur la probabilite eC(2) < ε.
Une variante au theoreme de Shannon est le resultat suivant
Theoreme 6.1.3 Soit ε > 0. Fixons p ∈]0, 12[. Il existe un code lineaire C(2) dont
le taux de transmission et la distance relative verifient
RC(2) ≥ β(δC(2))− ε et δC(2) ≥ p.
Mr HITTA Amara122
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Interpretation :
Pour p ∈]0, 12[, il existe un code C(2) avec δC(2) ' p et RC(2) ' C(p).�
Le nombre β(δC(2) est dit la borne inferieure de Varshamov-Gilbert du code
C(2).
6.2 Poids enumerateur et probabilite d’erreurs
Il est parfois utile de connaitre le nombre de mots d’un code dont le poids est
prealablement donne ainsi que la probabilite d’erreurs commises lors d’un decodage
par la vraissemblance maximale. Pour cela, on introduit la notion de poids enumerateur
d’un code.
Soit C(2) un code binaire lineaire.
Definition 6.2.1 (Le poids enumerateur) Le poids enumerateur d’un code bi-
naire lineaire C(2) est le polynome
PC(2)(z) =∑
iwizi
ou wi represente le nombre de mots du code C(2) de poids i.
Exemple 6.2.1 Considerons le code C36(2) de matrice generatrice
G =
1 0 0 0 1 1
0 1 0 1 0 1
0 0 1 1 1 0
.
Ce code contient 4 mots de poids 3 (w3 =) et 3 mots de poids 4 (w4 = 3) (il
suffit de considerer les lignes et leurs combinaisons lineaires possibles). Son poids
enumerateur est le polynome
PC36(2)(z) = 1 + 4z3 + 3z4.�
Mr HITTA Amara123
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Exemple 6.2.2 (code binaire de repetition d’ordre n) Ce code a un seul mot
de poids n (wn = 1). Son poids enumerateur est alors
PC1n(2)(z) = zn.�
Exemple 6.2.3 (Code de parite) Considerons le C23(2) = {000, 011, 101, 110}.
Comme C23(2) a 3 mots de poids 2 (w2 = 3), alors
PC23(2)(z) = 1 + 3z2.�
Son code dual est le code de repetition C13(2) = {000, 111} qui a un mot de poids 3,
alors
PC23(2)(z) = 1 + z3.�
En 1963, F. J. MacWilliams a montre que
Proposition 6.2.2 (Formule F.J. Mac Williams) Le poids enumerateur PC(2)
d’un code binaire C(2) et celui de son code dual, note PC⊥(2), sont lies par la formule
PC⊥(2)(z) =1
|C(2)|(1 + z)n PC(2)
(1− z1 + z
)=
1
|C(2)|
n∑i=0
pi(1− z)i(1 + z)n−i.
Exemple 6.2.4 Le code C35(2) admet 23 = 8 mots codes. Son code dual est le code
[C35]⊥(2) = C2
5(2) qui a 22 = 4 mots codes. La matrice generatrice de C25(2) est la
matrice de controle de C35(2) :
H =
(1 1 0 0 0
1 0 1 1 1
).
Les 4 mots du code C25(2) sont :
00000, 11000, 10111 et 01111.
Mr HITTA Amara124
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Comme le poids enumerateur de C25(2) est PC2
5(2)(z) = 1 + z2 + 2z4 il s’en suit le
poids enumerateur de C35(2), d’apres la formule de Mac-Williams :
PC35(2)(z) =
1
4(1 + z)5 PC2
5(2)
(1− z1 + z
)=
1
4
[(1 + z)5 + (1− z)3(1− z)2 + 2(1 + z)(1− z)4
]= 1 + 3z2 + 3z3 + z5.
Donc le code C35(2) contient 1 mot de poids 0, 3 mots de poids 2, 3 mots de poids 3
et un mot de poids 5. Ce qui fait en tout 8 mots. �
Exemple 6.2.5 (Poids enumerateur du code simplexe) Le poids des mots non
nuls du code simplexe iaa Sr est 2r−1 et sa capacite de correction est
t =
[2r−1 − 1
2
]= 2r−2 − 1.
Son poids enumerateur est
Pc Sr(z) = 1 + (2r − 1)z2r−1
.�
Exemple 6.2.6 (Poids enumerateur du code de Hamming) Par la formule de
Mac-Williams, le poids enumerateur du code de Hamming Hr(2) est
PHr(2)(z) =
1
2r
{(1 + z)n + n(1− z)2r−1
(1 + z)n−2r−1}
=1
n+ 1(1 + z)n +
n
n+ 1(1 + z)
n−12 (1− z)
n+12 .
En particulier, le poids enumerateur du code de Hamming H3(2) est
PH3(2)(z) = 1 + 7z3 + 7z4 + z7.�
Pour evaluer les performances d’un systeme de transmission, il est indispensable de
savoir calculer la probabilite d’erreur i Pre lors d’un decodage quelconque. Le poids
enumerateur P(z) d’un code C(2) est tres utile pour etudier la probabilite Pre(c) de
l’erreur survenue lorsqu’on utilise un decodage par la vraissemblance maximale.
Mr HITTA Amara125
08-Mai 45 Guelma University
Compression des images et codes correcteurs Sci. Res. Center in Welding & Testing
Par lineairite, supposons que 0 est le mot transmis. Soit c un mot qui n’est pas dans
C(2) de poids w. Posons Pre(c) la probabilite pour que le mot recu soit plus voisin
a c que de 0 :
Pre(c) =∑i≥[w
2 ]
Ciwp
i(1− p)w−i.
La probabilite Pre pour un decodage incorrect verifie
Pre ≤∑
c∈[C(2)]⊥
Pre(c).
Il s’en suit que ∑i≥[w
2]
Ciwp
i(1− p)w−i ≤ pw/2(1− p)w/2∑i≥[w
2]
Ciw.
≤ pw/2(1− p)w/22w
=(
2√p(1− p)
)w.
Par consequent
Pre ≤∑w>0
aw
([2√p(1− p)
]w)= PC(2)(2
√p(1− p))− 1
ou aw est le nombre de mots du code C(2) de poids w.
Ainsi, on vient de montrer le resultat suivant :
Theoreme 6.2.3 Soit C(2) un code binaire de polynome enumerateur PC(2)(z) utilise
sur un CBS de probabilite p. La probabilite Pre pour decoder incorrectement un mot
par l’algorithme de decodage par la vraissemblance maximale verifie
Pre ≤ PC(2)(γ)− 1
ou γ = 2√p(1− p) est un parametre qui ne depend que des caracteristiques du canal
de transmission.
Exemple 6.2.7 Le code de repetition d’ordre 5, C15(2) = {00000, 11111} a pour
poids enumerateur
PC15(2)(z) = 1 + z5.
Mr HITTA Amara126
08-Mai 45 Guelma University