81
Information et Codage Chaps. 1–5 Olivier RIOUL TELECOM ParisTech [email protected] Chaps. 6–7 Benoît GELLER ENSTA ParisTech [email protected]

Information et Codage

  • Upload
    buinhan

  • View
    244

  • Download
    3

Embed Size (px)

Citation preview

Information et Codage

Chaps. 1–5Olivier RIOUL

TELECOM [email protected]

Chaps. 6–7Benoît GELLER

ENSTA [email protected]

2

Avant-propos

Ce cours vise tout d’abord à établir solidement les bases de codage de sourcesur les outils de la théorie de l’information, de manière à ce que les connais-sances acquises puissent être étendues rapidement aux problématiques plusrécentes. Puis, on aborde une caractérisation des outils essentiels de la compres-sion de source : quantification scalaire et vectorielle, codage à longueur variable,codage par transformée, allocation de débit.

De nombreux exercices sont proposés en appendice de ce document, regrou-pés par chapitre.

Bonne lecture !

Mots clés

Théorie de l’information, Théorèmes de Shannon, Codage entropique à lon-gueur variable, Quantification scalaire et vectorielle, Algorithme de Lloyd-Max,Gain de codage par transformée, Transformée de Karhunen-Loève, Allocationoptimale de débits binaires, Compression d’images.

3

4

Bibliographie

[1] Olivier Rioul, Théorie de l’information et du codage, Hermes Sciences-Lavoisier, 2007.

[2] Robert Mc Eliece, The Theory of Information and Coding, Addison Wesley,1977.

[3] Thomas Cover, Joy Thomas, Elements of Information Theory, J. Wiley & sons,1991.

[4] Nicolas Moreau, Techniques de Compression des Signaux, Masson CNET-ENST, 1994.

[5] Allan Gersho, Robert Gray, Vector Quantization and Signal Compression,Kluwer Academic, 1992.

5

6 BIBLIOGRAPHIE

Chapitre 1

Outils de la théorie de l’information

1.1 Description d’un système de codage de source.

On considère une source d’information qu’on suppose constituée d’unesuite d’échantillons ou de symboles x. La source peut être codée symbole parsymbole (codage scalaire) ou par bloc de n symboles x = (x1, . . . , xn) (codagevectoriel en dimension n). Le cas scalaire correspond à n = 1.

Le codeur de source associe à chaque entrée x une étiquette ou index i misesous forme binaire ; les index peuvent prendre un nombre fini M de valeurspossibles, chaque index est donc représenté en moyenne sur log2 M bits etreprésente la source x sous forme codée.

Cet index est ensuite transmis (pour des applications de transmission numé-rique) ou stocké (pour des applications de stockage numérique).

Le décodeur de source récupère chaque index i au niveau du destinataire etfournit un bloc y de n symboles correspondant, dans le domaine source. Ce yreprésente la source reconstruite pour le destinataire.

Il y a deux paramètres fondamentaux dans un système de codage de source :

1. Le taux de codage (coding rate) R est le nombre moyen de bits codés parsymbole de source :

R = log2 M

n

Ce taux s’exprime donc en bits par symbole ; il est lié au débit binaireen bits/sec (voir exercice). La compression de source est d’autant plusimportante que R est petit.

2. Le critère de distorsion D sert à mesurer (de manière objective) la qua-lité ou la fiabilité de la reconstruction. Typiquement (pour des échan-tillons d’un signal, par exemple) on choisit un critère d’erreur quadratique

7

8 CHAPITRE 1. OUTILS DE LA THÉORIE DE L’INFORMATION

moyenne (mean square error m.s.e.) par symbole de source :

D = 1

nE (‖X −Y ‖2)

où E désigne l’espérance de sorte à disposer d’un critère moyen sur l’en-semble de tous les blocs de source. Le système est de qualité d’autant plusgrande que D est petit.

Le but du concepteur d’un système de codage de source est de réaliser laplus grande compression (R petit) tout en garantissant une bonne fiabilité (Dpetit). Il y a donc un compromis à trouver entre R et D . Le compromis optimalthéorique va être fourni par la théorie de l’information de Shannon.

1.2 Rappels sur les variables aléatoires.

Le destinataire ne connait pas à l’avance l’information-source émise ; pourlui, les symboles de source x apparaissent aléatoires. On modélise donc unesource par un modèle probabiliste : un échantillon ou bloc X de source est unevariable aléatoire (v.a.) qui suit une distribution de probabilité p(x).

Dans le cas d’un source discrète (ou numérique), chaque symbole x peutprendre un nombre fini de valeurs et p(x) est la probabilité que X = x.

Dans le cas d’une source continue, chaque échantillon x appartient à uncontinuum de valeurs (réelles ou complexes), et p(x) est une densité de proba-bilité.

Dans tous les cas on adopte une notation unifiée ; p(x) est telle que p(x)>

0 et∑∫

xp(x) = 1. Le calcul d’une probabilité quelconque se fait à l’aide de la

formule :

P r ob{X ∈ A} =∑∫x∈A

p(x).

1.3 Traitement et probabilités conditionnelles.

En théorie de l’information chaque traitement (codage, décodage, canal detransmission, etc.) est aussi modélisé de façon probabiliste ; ce modèle permetde décrire aussi bien des traitements déterministes qu’aléatoires.

Un traitement T d’entrée X et de sortie Y est décrit par les probabilités detransition p(y |x). Ici p(y |x) est une probabilité conditionnelle de y sachant x,définie par :

p(y |x) = p(x, y)

p(x).

1.4. SUITE DE TRAITEMENTS ET CHAÎNE DE MARKOV. 9

C’est une distribution de probabilité en y pour toute valeur fixée de x.La sortie du traitement Y est donnée en fonction de l’entrée X par la formule :

p(y) =∑∫x

p(x)p(y |x).

On rappelle que les v.a. X et Y sont dits indépendantes si p(y |x) = p(y), c’està dire si p(x, y) = p(x)p(y). Le traitement X → Y est alors «opaque».

1.4 Suite de traitements et chaîne de Markov.

Dans un système de codage apparaît une suite de traitements point à point.Si on considère par exemple une suite de deux traitements : X → Y → Z , lestrois v.a. X ,Y , Z vérifient nécessairement une condition de chaîne de Markovqui exprime que Z ne dépend des autres v.a. que par l’intermédiaire de Y (dontil est issu par traitement). Ceci s’écrit :

p(z|x, y) = p(z|y).

On généralise immédiatement cette condition de chaîne de Markov au cas deplusieurs (> 2) traitements.

1.5 Divergence D(p, q).

On se donne une v.a. X de distribution de probabilité p(x), et une autre dis-tribution de probabilité q(x) définie pour les mêmes valeurs de x. La divergencede Kullback-Leibler ou entropie relative de q(x) par rapport à p(x) est donnéepar la formule :

D(p, q) =∑∫x

p(x) log2p(x)

q(x)= E log2

p(X )

q(X )

Cette divergence s’exprime en unités binaires (bits) à cause du choix de la base2 du logarithme.

Le résultat fondamental suivant est à la base de la plupart des résultatsimportants en théorie de l’information :

D(p, q)> 0

avec égalité (D(p, q) = 0) si et seulement si p(x) = q(x) p.p.On peut écrire ce résultat sous la forme suivante (inégalité de Gibbs) :∑∫

xp(x) log2

1

p(x)6

∑∫x

p(x) log21

q(x)

avec égalité si et seulement si p(x) = q(x) p.p.

10 CHAPITRE 1. OUTILS DE LA THÉORIE DE L’INFORMATION

1.6 Information mutuelle I (X ,Y ).

L’information mutuelle I (X ,Y ) peut se définir comme une mesure de dépen-dance entre X et Y , c’est à dire comme la divergence de la loi q(x, y) = p(x)p(y)(que suivraient X ,Y si elles étaient indépendantes) par rapport à p(x, y) :

I (X ,Y ) =∑∫x,y

p(x, y) log2p(x, y)

p(x)p(y)

D’après le résultat fondamental des divergences, I (X ,Y )> 0 et I (X ,Y ) = 0 si etseulement si X et Y sont indépendantes.

On peut réécrire I (X ,Y ) sous la forme :

I (X ,Y ) = E log2p(Y |X )

p(Y )

qui est la divergence moyenne entre les distributions de probabilité de Y sachantx et ne sachant pas x. Ainsi I (X ,Y ) (en bits) s’interprète comme la quantitéd’information moyenne qu’apporte une réalisation de X sur la connaissance deY . Cette information est «mutuelle» car I (X ,Y ) = I (Y , X ).

1.7 Information mutuelle et entropie.

En développant l’expression de I (X ,Y ) on obtient la formule :

I (X ,Y ) = H(Y )−H(Y |X )

H(Y ) =∑∫y

p(y) log21

p(y)

est appelée entropie de la v.a. Y , et où :

H(Y |X ) = E y H(Y |X = x) =∑∫x

p(x)∑∫

yp(y |x) log2

1

p(y |x)

est appelée entropie conditionnelle de Y sachant X . Cette dernière entropieest une moyenne non seulement sur y , mais aussi sur le «conditionnement» x.

Dans le cas d’une v.a. discrète Y (pouvant prendre un nombre fini M devaleurs), l’entropie

H(Y ) =∑y

p(y) log21

p(y)

est une quantité > 0, qui s’annule si et seulement si Y est «déterministe» Y = y0

p.p. L’entropie maximale log2 M est atteinte lorsque Y est une v.a. uniforme

1.7. INFORMATION MUTUELLE ET ENTROPIE. 11

(symboles y équiprobables). On peut ainsi interpréter H(Y ) comme une me-sure d’aléa de Y , ou comme une mesure d’incertitude moyenne sur Y (avantréalisation Y = y).

L’entropie conditionnelle H(Y |X ) mesure donc l’incertitude moyenne sur Yqui reste sachant X . La différence des deux incertitudes H (Y )−H (Y |X ) = I (X ,Y )est bien l’information moyenne qu’apporte X sur Y .

Dans le cas d’une v.a. continue Y , l’entropie

H(Y ) =∫

yp(y) log2

1

p(y)d y

n’est plus nécessairement > 0 ; on ne peut plus l’interpréter comme une me-sure d’incertitude. Dans ce cas H (Y ) est qualifiée d’entropie différentielle (voirchapitre 2).

12 CHAPITRE 1. OUTILS DE LA THÉORIE DE L’INFORMATION

Chapitre 2

Théorie de l’information appliquéeau codage

2.1 Théorème du traitement de données.

Le théorème du traitement de données dit que «tout traitement fait perdrede l’information» (en tout cas ne peut pas en faire gagner). Formellement, onconsidère une succession de traitements :

· · ·→ X →···→I →···→J →···→ Y →On a alors :

I (X ,Y )6 I (I ,J )

Autrement dit l’information mutuelle entre deux v.a. «proches» dans une chaînede traitements est plus grande que ou égale à celle entre v.a. plus éloignées.

2.2 Fonction taux-distorsion (codage avec pertes).Théorème de Shannon.

Si on applique le théorème du traitement de données au système de codagede source présenté à la leçon 1, on obtient :

I (X ,Y )6 I (I ,I ) = H(I )

puisqu’on a supposé I =J (transmission ou stockage sans erreur).Pour obtenir la plus forte inégalité possible on maximise H(I ) (maximum

= log2 M) et on minimise I (X ,Y ). On obtient, en se ramenant à des bits parsymbole source :

min1

nI (X ,Y )6

log2 M

n= R

13

14 CHAPITRE 2. THÉORIE DE L’INFORMATION APPLIQUÉE AU CODAGE

Le minimum d’information mutuelle s’effectue sur n et sur le choix de p(y |x),puisque p(x) est fixé pour une source donnée ; il s’effectue aussi sous la contraintede fiabilité donnée par un certain niveau de distorsion D. On obtient donc ladéfinition suivante :

R(D) = infn

minp(y |x)

{1

nI (X ,Y ) | 1

nE (‖X −Y ‖2)6D}

qu’on appelle fonction taux-distorsion R(D) de Shannon.Ainsi le théorème du traitement de données implique l’inégalité

R >R(D)

qui indique que R(D) est une borne inférieure sur le taux de codage : il est impos-sible de comprimer les données en deçà de R(D) pour un niveau de distorsionD donné.

Le théorème de Shannon (1959) pour le codage de source avec pertes montreque R(D) est la meilleure borne possible, dans le sens où on peut toujours trou-ver un système de codage (fusse-t-il très complexe, pour n assez grand) quipermette de s’approcher d’aussi près qu’on veut de la borne R(D).

2.3 Entropie d’une source (codage sans pertes).

Un système de codage de source est dit sans pertes si Y = X , c’est à dire sion peut reconstruire parfaitement la source au destinataire (avec D = 0).

Dans ce cas, la borne de Shannon R(D = 0) est égale à l’entropie de la sourcedéfinie par :

H = infn

1

nH(X )

Cette entropie est naturellement une borne inférieure sur le taux de codage :R >H . On ne peut pas comprimer des données (sans pertes) en deçà de l’en-tropie.

Le théorème de Shannon (1948) pour le codage de source sans pertes (casparticulier D = 0) dit qu’on peut s’approcher de l’entropie H d’aussi près qu’onveut (voir chapitre 3).

2.4 Cas d’une source sans mémoire.

Une source est dite sans mémoire si les symboles ou échantillons de sourcesont indépendants et identiquement distribués (iid), c’est à dire :

p(x) = p(x1)p(x2) · · ·p(xn).

2.5. CAS D’UNE SOURCE GAUSSIENNE. 15

Dans la conception d’un système de codage de source on peut souvent se rame-ner à ce cas simple (voir leçon 5).

Pour une source sans mémoire, l’expression de R(D) se simplifie car elledevient indépendante de la valeur de n :

R(D) = minp(y |x)

{I (X ,Y ) | E ((X −Y )2)6D}

En codage sans pertes il vient H = H(X ), l’entropie de la v.a. X .

2.5 Cas d’une source gaussienne.

En codage avec pertes d’une source gaussienne sans mémoire de distributionde probabilité :

p(x) = 1p2πσ2

e− (x−µ)2

2σ2

on peut calculer explicitement R(D). On trouve :

R(D) ={

12 log2

σ2

D D 6σ2,

0 D >σ2.

où σ2

D est le rapport signal à bruit.Ceci correspond à une borne optimale de Shannon qu’on peut exprimer

sous la forme d’une fonction distorsion/taux :

D(R) =σ22−2R .

On obtient une courbe théorique de performances optimales où le rapportsignal à bruit (en dB) croît linéairement en R, avec une pente de 6 dB/bit.

16 CHAPITRE 2. THÉORIE DE L’INFORMATION APPLIQUÉE AU CODAGE

Chapitre 3

Codage entropique à longueurvariable

3.1 Description d’un système de codage à longueurvariable.

On se donne une source discrète (données, fichier, . . . ) dont chaque symbolex prend une parmi M valeurs possibles {x1, x2, . . . , xM }.

Une distribution de probabilité p(x) caractérise les statistiques de cettesource, on la suppose connue (ou estimée) sous la forme {p1, p2, . . . , pM }, où pi

est la probabilité d’occurrence du symbole xi .

Le codeur code chaque symbole de source xi par un mot de code ci . Le codeest l’ensemble des mots de codes {c1, . . . ,cM }.

Un code à longueur variable (VLC : Variable-Length Code) est tel que lesdifférents mots de code n’ont pas nécessairement la même longueur, en bits. Onnote li la longueur en bits du mot de code ci . La distribution des longueurs ducode est donc {l1, l2, . . . , lM }.

Le décodeur reconstruit les symboles de source à partir de la séquencebinaire des mots de codes. Le taux de codage (coding rate) R est le nombremoyen de bits codés par symbole de source, c’est à dire

R =M∑

i=1pi li .

Un code est donc d’autant plus efficace en compression que R est petit.

17

18 CHAPITRE 3. CODAGE ENTROPIQUE À LONGUEUR VARIABLE

3.2 Codes uniquement décodables et instantanés. Condi-tion du préfixe.

Le but du codage de source sans pertes est de comprimer ces données defaçon telle que l’on puisse reconstruire parfaitement (sans pertes, sans erreur)la source au destinaire.

Pour cela, il faut que le décodage ait lieu sans ambiguïté, c’est à dire qu’uneséquence codée donnée doit être interprétable de façon unique comme unesuccession (concaténation) de mots de codes déterminés. Un code permettantun tel décodage (sans ambiguïté) est qualifié d’uniquement décodable (u.d.).

Certains codes u.d. nécessitent une implantation complexe du décodeur, quidoit lire la séquence codée binaire suffisamment loin à l’avance pour décoderun symbole de source.

D’autres codes u.d., par contre, sont très simples à décoder ; on les appellecodes instantanés, car le décodeur n’a besoin de lire que les li premiers bitsd’une séquence codée pour pouvoir l’interpréter «instantanément» et de ma-nière unique comme étant le mot de code ci , représentant le symbole xi .

Une code instantané est caractérisé par la condition du préfixe : Aucun motde code n’est le préfixe d’un autre mot de code (c’est à dire aucun ci ne débuteun c j , j 6= i ).

3.3 Inégalité de Kraft-McMillan.

Pour trouver le meilleur code pour une source donnée, il faut minimiser letaux R sous la contrainte que le code soit u.d.

Afin de réaliser cette optimisation, on caractérise d’abord le fait qu’un codesoit u.d. sur la distribution des longueurs :

1. Tout code u.d. vérifie l’inégalité de Kraft-McMillan :

M∑i=1

2−li 6 1

2. Réciproquement, si l’inégalité de Kraft-McMillan est vérifiée, alors il existeun code u.d., et même instantané, qui admette {l1, l2, . . . , lM } comme dis-tribution de longueurs.

Il en résulte qu’on peut limiter la recherche du meilleur code à l’ensembledes codes instantanés. Il y a un algorithme simple qui fournit un code instan-tané {c1, . . . ,cM } à partir d’une distribution de longueurs {l1, l2, . . . , lM } vérifiantl’inégalité de Kraft-McMillan.

3.4. OPTIMISATION. CODES DE FANO-SHANNON ET DE HUFFMAN. 19

3.4 Optimisation. Codes de Fano-Shannon et de Huff-man.

D’après le paragraphe précédant, pour trouver le meilleur code pour unesource donnée, il faut minimiser le taux R sous la contrainte de l’inégalité deKraft-McMillan :

min{R =∑i

pi li |∑

i2−li 6 1}

Si on applique brutalement la méthode du Lagrangien on trouve que R estminimisé lorsque li = log2

1pi

, auquel cas le taux minimal est l’entropie de lasource :

H = H(U ) =M∑

i=1pi log2

1

pi

Cependant ce résultat ne donne pas, en général, des longueurs li entières !Une façon d’obtenir des longueurs entières est de prendre 1

li = dlog21

pie

On obtient la famille des codes de Fano-Shannon, qui vérifient bien l’inégalitéde Kraft-McMillan, et pour lesquels on trouve

H 6R 6 H +1.

Cependant ces codes ne sont pas toujours optimaux.La résolution complète du problème de recherche du meilleur code est don-

née par algorithme itératif sur M appelé algorithme de Huffman. On obtientalors un code de Huffman dont le taux R est minimal pour une source donnée(par les pi ).

3.5 Théorème de Shannon.

D’après ci-dessus le taux de codage du meilleur code vérifie l’inégalité H 6R 6 H +1. Comme le montre l’exemple d’une source binaire (M = 2) d’entropiefaible, on ne peut pas en général améliorer l’inégalité R 6 H +1 en codant lasource symbole par symbole.

En pratique on utilise alors des techniques de codage par plage (RLC : Run-Length Coding) pour améliorer les performances.

1. dxe désigne le plus petit entier > x.

20 CHAPITRE 3. CODAGE ENTROPIQUE À LONGUEUR VARIABLE

Une autre possibilité est de coder la source par blocs de n symboles. Onobtient alors pour R en bits/symbole l’encadrement :

H 6R 6 H + 1

n,

où H est l’entropie d’ordre n de la source. En faisant n → ∞, on obtient lethéorème de Shannon pour le codage de source sans pertes, qui affirme qu’onpeut s’approcher de l’entropie de la source d’aussi près qu’on veut.

3.6 Autres systèmes de codage sans pertes.

D’autres systèmes de codage de source sans pertes ont été proposés pourprendre en compte les dépendances temporelles (d’un symbole à l’autre) de lasource (source avec mémoire) ; Ces sytèmes de codage permettent de coder unesource quelconque sans connaitre a priori ses statistiques (codage «universel»),mais sont plus complexes à mettre en oeuvre. Les plus connus sont les systèmesde codage de Lempel-Ziv et de Codage arithmétique.

Chapitre 4

Quantification scalaire

4.1 Description d’un système de quantification sca-laire.

On se donne une source continue X modélisée par des échantillons aléa-toires de densité de probabilité p(x). Le quantificateur Q code chaque échan-tillon x par une étiquette binaire ou index i pouvant prendre M valeurs. Ledéquantificateur «Q−1» reconstruit les échantillons y à partir des index binaires.

Le taux de quantification R est toujours le nombre moyen de bits codés paréchantillon, c’est à dire

R = log2 M .

On considérera ici (comme dans la plupart des applications) une distorsionquadratique ou erreur quadratique moyenne (e.q.m.) :

D = E {(X −Y )2} =∫

p(x)(x − y)2 d x

Afin d’optimiser le système de quantification, on cherche à minimiser D pourun taux R donné.

Concevoir un quantificateur revient à partionner l’ensemble des valeurspossibles de X en M cellules ou régions de quantification notées R1,R2, . . . ,RM ,de sorte que x est quantifié sur l’index i si et seulement si x ∈ Ri .

Concevoir un déquantificateur revient à se donner M représentants notésy1, y2, . . . , yM , un par cellule, se sorte que i est déquantifié sur y = yi . L’ensemblede ces représentants s’appelle le dictionnaire (codebook).

Optimiser le système revient donc à choisir des cellules Ri et des représen-

21

22 CHAPITRE 4. QUANTIFICATION SCALAIRE

tants yi optimaux tels que la distorsion D soit minimale :

D =M∑

i=1

∫Ri

p(x)(x − yi )2 d x.

Insistons sur le fait qu’ici la quantification est scalaire, c’est à dire qu’onquantifie échantillon par échantillon. On ne peut donc pas exploiter la mémoirede la source.

4.2 Conditions du plus proche voisin et du centroïde

En pratique il est trop difficile de minimiser D directement. On procèdedonc par optimisation séparée : en fonction des cellules d’une part, et desreprésentants d’autre part.

4.2.1 Condition du plus proche voisin

Ici on cherche à optimiser D sur le choix des cellules R1,R2, . . . ,RM pour undictionnaire y1, y2, . . . , yM donné. Autrement dit, on optimise le quantificateurpour un déquantificateur donné.

Pour cela, il suffit de remarquer que l’erreur quadratique (x−y)2 est minimalelorsque y est le représentant le plus proche de x. Cette condition, appelée condi-tion du plus proche voisin, revient à choisir les cellules optimales suivantes(appelées cellules de Voronoï) :

Ri = {x tel que |x − yi |6 |x − y j | pour tout j }

Autrement dit, les Ri sont des intervalles du type (xi−1, xi ) dont les frontières xi

sont les milieux entre deux représentants successifs :

xi = yi + yi+1

2.

4.2.2 Condition du centroïde

Ici on cherche à optimiser D sur le choix du dictionnaire y1, y2, . . . , yM pourdes cellules R1,R2, . . . ,RM données. Autrement dit, on optimise le déquantifica-teur pour un quantificateur donné.

Pour cela, il suffit de minimiser la contribution de yi à la distorsion totale Dpour tout i :

min∫

Ri

p(x)(x − yi )2 d x

4.3. ALGORITHME DE LLOYD-MAX 23

En annulant la dérivée de cette fonction quadratique on trouve la condition ducentroïde :

yi =∫

Rixp(x)d x∫

Rip(x)d x

qui exprime que yi est le «centroïde» (barycentre) de Ri selon la distribution deprobabilité de la source.

4.3 Algorithme de Lloyd-Max

L’algorithme de Lloyd-Max (1960) consiste à itérer les deux conditions précé-dentes qui ne sont que des conditions nécessaires d’optimalité, afin d’obtenirune solution vérifiant simultanément les deux conditions.

On initialise l’algorithme par un choix arbitraire des centroïdes (par exemple).On applique ensuite la condition du plus proche voisin qui détermine les cellules,puis on recalcule les centroïdes par la condition du centroïde, et on recommencejusqu’à convergence.

1. Cette convergence arrive-t-elle toujours ? Oui, car la distortion globaleD ne peut que diminuer à chaque étape de l’algorithme ; elle convergedonc vers une valeur limite. En pratique, à la convergence, la solution restestationnaire et vérifie donc simultanément les deux conditions du plusproche voisin et du centroïde.

2. Obtient toujours un minimum global ? Non, car on peut trouver des contre-exemples avec minima locaux (cf. exercice). Cependant, on peut montrerque si la fonction

log p(x)

est concave, alors la solution obtenue après convergence est effectivementl’optimum global. C’est le cas, par exemple, pour une source gaussienneou uniforme.

4.4 Performances en haute résolution

Le système de quantification est dit en «haute résolution» si les cellules dequantification sont assez petites pour qu’on puisse les considérer infinitésimalespour le calcul des performances. Cela suppose un taux de codage R élevé.

Sous cette condition, la distorsion quadratique s’écrit :

D ≈∑i

∫ yi+qi /2

yi−qi /2pi (x − yi )2 d x = 1

12

∑i

pi q3i

24 CHAPITRE 4. QUANTIFICATION SCALAIRE

où qi est la longueur («pas» de quantification) de la cellule Ri et où pi est la valeur≈ constante de p(x) dans Ri . En réapproximant le résultat par une intégrale ilvient :

D = E(q(X )2

12

)où q(x) est la pas de quantification variable (= qi pour x ∈ Ri ).

Noter que si la quantification est uniforme (pas constant qi = q) on obtientla formule (classique) :

D = q2

12

On introduisant la fonctionλ(x) = 1M q(x) qui représente la densité des cellules

de quantification (cf. exercice), et en notant que M = 2R , on obtient la formulede Bennett :

D = 1

12

[∫p(x)

λ(x)2d x

]2−2R

où λ(x)> 0 et∫λ(x)d x = 1.

La formule de Bennett donne les performances d’une quantification scalairenon uniforme quelconque, caractérisée par sa densité λ(x). En optimisant cettedensité par rapport à la source on obtient (cf. exercice) :

D = 1

12

(∫p(x)1/3 d x

)3

2−2R .

On montre en exercice que, pour une source gaussienne de variance σ2, on a :

D = πp

3

2σ22−2R .

à comparer avec la limite de Shannon D =σ22−2R . La caractéristique de rapportsignal à bruit (en décibels), fonction du taux de quantification en bits, laisse

apparaître une différence de 10log10πp

32 = 4.35 dB en dessous de la limite de

Shannon. On est encore loin de l’optimal !

4.5 Performances en présence d’un codeur entropique

Une façon d’améliorer le système est de faire suivre la quantification parun codage entropique (sans pertes, cf. leçon précédente). La distorsion D =1

12 E q(X )2 est alors inchangée mais le taux a diminué ; on peut l’évaluer comme

4.5. PERFORMANCES EN PRÉSENCE D’UN CODEUR ENTROPIQUE 25

l’entropie de l’index de distribution de probabilité p(i ) = pi qi avec les notationsprécédentes. On obtient

R =∑i

pi qi log21

pi qi

que l’on peut réapproximer comme une intégrale ; il vient :

R = H(X )+E log21

q(X )

où H (X ) est l’entropie différentielle de la source. En utilisant l’inégalité de Jensen(concavité du logarithme, cf. exercice du chapitre 1) sur q(X ), on obtient unedistorsion minimale :

D = 1

1222H(X )2−2R

qui est atteinte dans le cas d’égalité de l’inégalité de Jensen, c’est à dire quandq(x) est constant = q .

Autrement dit, lorsqu’elle est suivi d’un codage entropique, la quantificationscalaire optimale est uniforme.

Dans le cas d’une source gaussienne il vient

D = 2πe

12σ22−2R .

On est plus qu’à 10log102πe12 = 1.53 dB en dessous de la limite de Shannon. Le

codage entropique a apporté un gain important, en tout cas en haute résolution,c’est à dire pour un fort rapport signal à bruit.

26 CHAPITRE 4. QUANTIFICATION SCALAIRE

Chapitre 5

Codage par transformée

5.1 Description d’un système de codage par trans-formée.

On se donne une source continue X modélisée par des échantillons aléa-toires de densité de probabilité p(x) et de variance σ2

X . On ne suppose pas ici lasource sans mémoire.

Le codage par transformée consiste à envoyer un vecteur

X = (X1, . . . , Xn)

de n échantillons de cette source dans une transformée (inversible) T. On ob-tient ainsi un vecteur U = T(X ) dans le domaine transformé.

Chaque échantillon Ui en sortie de la transformée est ensuite quantifié parun quantificateur Qi sur Mi niveaux de quantification. Pour chacune de cessources, on a ainsi un taux de quantification de Ri = log2 Mi bits par échantillon.

Le déquantificateur «Q−1» reconstruit les échantillons Vi ; la transforméeinverse T−1 est finalement appliqué au vecteur V pour fournir la source recons-truite Y = T−1(V ).

Le taux de quantification global R est toujours le nombre moyen de bitscodés par échantillon de source X , c’est à dire

R = 1

n

∑i

Ri

Insistons sur le fait qu’ici la quantification est scalaire, mais porte sur des coef-ficients transformés d’un vecteur de source. Bien que l’on quantifie les coeffi-cients transformés échantillon par échantillon, on peut quand même exploiterla mémoire de la source.

27

28 CHAPITRE 5. CODAGE PAR TRANSFORMÉE

On considérera ici (comme dans la plupart des applications) une distorsionquadratique pour les quantificateurs Qi :

Di = E {(Ui −Vi )2}.

Pour chacune des sources Ui à quantifier, on supposera qu’il existe une formuledu type "formule de Bennett" établie dans la leçon précédente, qui donne ladistorsion Di due à la quantification Qi :

Di = ciσ2Ui 2−2Ri

Dans cette expression, la constante ci dépend du type de source Ui et du type dequantificateur Qi . Il n’y a pas de raison que les constantes soient toutes égales,sauf par exemple dans le cas d’une quantification scalaire optimale d’une source

gaussienne où on a vu que ci = πp

32 .

5.2 Codage par transformée orthogonale.

Pour simplifier l’exposé on choisit une transformée orthogonale, c’est à direune transformée linéaire T, représentée à l’aide d’une matrice carrée T de taillen ×n, qui préserve la norme quadratique :

‖T ·X ‖ = ‖X ‖pour des vecteurs colonne X . Autrement dit, la transformée T est telle que

T T t = T t T = I .

et la transformée inverse est T −1 = T t .Pour une transformée orthogonale, on peut aisément obtenir la distortion

globale du système :

D = 1

nE {‖X −Y ‖2}

= 1

nE {‖T tU −T t V ‖2}

= 1

nE {‖U −V ‖2}

= 1

n

∑i

Di .

Noter que, avec un calcul analogue, la conservation de la norme peut se voir surles variances :

σ2X = 1

n

∑iσ2

Ui.

5.3. POURQUOI UNE TRANSFORMÉE ? 29

5.3 Pourquoi une transformée ?

On va effectuer une comparaison d’un codeur classique (quantification sanstransformée) et d’un codeur par transformée, avec les mêmes quantificateurs,de sorte les différentes distorsions Di obtenues après transformée sont égalesentre elles, et donc à la distorsion totale :

Di = D.

De même, la distortion D0 introduite par le quantificateur scalaire habituel (sanstransformée) sur la source X est D0 = D = Di . Ainsi la distortion globale n’a paschangé malgré l’introduction de la transformée. Le codage étant un compromisentre taux R et distortion D , il faut donc regarder ce qui se passe sur R.

Dans le système de codage par transformée, on a R = 1n

∑i Ri où Di =

ciσ2Ui 2−2Ri , d’où en supposant les ci = c constants :

R = 1

2log2

c n√∏

i σ2Ui

D

Pour le système classique sans transformée, on a pour le quantificateur lamême formule de Bennett qui relie distorsion globale D0 = D et taux R0 :D0 = cσ2

X 2−2R0 , c’est à dire :

R0 = 1

2log2

cσ2X

D

Sachant que σ2X = 1

n

∑i σ

2Ui

, on obtient un gain sur les taux de

1

2log2 GTC bits

GT C =1n

∑i σ

2Ui

n√∏

i σ2Ui

est le gain de codage par transformée (Transform Coding Gain). Ce gain decodage est toujours > 1 (voir exercice) : Une transformée orthogonale apportetoujours un gain !

5.4 Répartition optimale des taux après transformée

Dans un système de codage par transformée, quelle est la répartition op-timale des taux Ri qui, pour un taux global R = 1

n

∑i Ri donné, minimise la

distorsion globale D = 1n

∑i Di ?

30 CHAPITRE 5. CODAGE PAR TRANSFORMÉE

C’est un problème de minimisation sous contrainte qui se résout par laméthode du multiplicateur de Lagrange : en tenant compte de la formule deBennett, le Lagrangien est :

L = 1n

∑i

cσ2Ui 2−2Ri −λ

∑i

Ri .

En dérivant le lagrangien par rapport aux variables Ri on obtient

Di = Constante

ce qui correspond précisément à la situation du paragraphe précédent. On adonc une distorsion minimale :

Dmin = c n

√∏iσ2

Ui2−2R

et le gain de codage par transformée GTC défini ci-dessus donne le gain endistorsion dû à la transformée :

D0

Dmin=GTC .

pour un taux de codage R donné.Rappelons que pour obtenir l’expression de GT C , on a utilisé des formules

de Bennett valables en haute résolution. Le gain GTC n’est donc valable qu’enfort débit.

De plus, les constantes ci dans les formules de Bennett sont supposées touteségales. Ceci correspondrait à une situation où la source est gaussienne et oùtous les quantificateurs utilisés sont optimisés.

5.5 Transformée optimale

Sous les mêmes hypothèses qu’énoncées ci-dessus, on peut trouver la trans-formée orthogonale qui maximise le gain de codage GTC (voir exercice). Cettetransformée est la transformée de Karhunen-Loève et est obtenue comme unematrice dont les colonnes sont les vecteurs propres de la matrice d’autocova-riance de la source.

En pratique, on utilise des approximations de la transformée de Karhunen-Loève qui sont indépendantes de la source et qui se comportent de la mêmemanière pour des signaux très corrélés. C’est le cas de la transformée en cosinusdiscrète (DCT : Discrete Cosine Transform) utilisée en compression d’images.

B. GELLER Générali tés sur les codes correcteurs

1

6. GENERALITES SUR LES CODES CORRECTEURS

6.1 PRINCIPE DE L’ENCODAGE (AU NIVEAU D'UN EMETTEUR)

Source Canal Destinataire

Information perturbations

Pour être retrouvée par le destinataire, une information perturbée doit être répétée

d'une manière ou d'une autre à l’émission.

Récepteur

Lecteur

0

1

Emetteur TV

Musique d'un CD

B. GELLER Générali tés sur les codes correcteurs

2

6.1.1. UN EXEMPLE SIMPLE

Le codage le plus simple est la répétition triple de chaque information à l 'entrée d'un

Canal Binaire Symétrique (CBS).

i)CBS

0 1-p

0

p

p

1 1-p 1

p: probabilité de transition du Canal BS.

Emis(t)

1V 0 1 1 0 1

0V t

Reçu(t)

1V seuil de décision

½

0 t

Décidé(t)

1V

0V 0 0 1 1 0 0

t

Cette probabilité représente le taux d’erreur (probabilité que le signal reçu soit différent du

signal émis) et elle est d’autant plus forte que le bruit est important .

B. GELLER Générali tés sur les codes correcteurs

3

ii)Codeur par répétition triple

Source 0 1 0 Codeur 0 0 0 1 1 1 0 0 0 Canal 0 0 1 1 1 1 0 0 0 Décodeur Destinataire

Le codeur répète trois fois chaque information source :

0 000

1 111

iii) Stratégies de décodage

6.1.2 DEFINITIONS

i)Rôle du codage canal :

Améliorer la fiabilité au prix du traitement d'une redondance qui n'apporte aucune

information réelle.

ii)Rôle du codeur :

Introduire une redondance suivant une certaine loi univoque £ .

Dans le cas du codage bloc, on transforme un bloc de k informations source en n symboles

à transmettre au canal (n>k).

Remarque :

Les symboles sont à choisir dans un alphab et Asou rce .

Exemple :

Asou rce = ℤ/2ℤ ;{0,1}où toutes les opérations + et x se font modulo 2 :

+ 0 1 x 0 1

0 0 1 0 0 0

1 1 0 1 0 1

B. GELLER Générali tés sur les codes correcteurs

4

Exemples :

•Codage par répétition k=1, n=3

£ ℤ/2ℤ(ℤ/2ℤ)3

b (b,b,b)

• Codage de parité : transforme k bits en n=k+1 bits où le dernier bit est somme des

précédent bits d’information (modulo 2). En particulier pour k=7, n=8 et on a :

(ℤ/2ℤ)7 (ℤ/2ℤ)

8

£ (b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7) (b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8)

avec b8= 7

i

1

bi

2 bit de parité.

iii)Trois définitions pour un code en bloc

iii1) Codage sous forme systématique

(Asou rce

)k (A

sou rce)

n a

1=c

1

£ avec a2=c

2

(a1 , . . . , ak) (c1 , . . .ck , . .cn) :

ak=ck

iii2) Redondance = n

kn ; Rendement = 1

n

k - Redondance

i ii3) Im (£) est un sous-ensemble de (A sou rce)n à [Card (A sou rce)]

k éléments parmi les

[Card (A sou rce)] n

n-uplets possibles.

iii4)Exemple :

(ℤ/2ℤ)2 (ℤ/2ℤ)

3

£

(b1 ,b2) (b2 ,b1 ,b1)

avec £

(0 0) (0 0 0)

(0 1) (1 0 0)

(1 0) (0 1 1) 4 mots possibles parmi 8 dans (ℤ/2ℤ)3

(1 1) (1 1 1)

B. GELLER Générali tés sur les codes correcteurs

5

6.2 STRATEGIE DE DECODAGE

6.2.1 RÔLE DU DECODEUR (AU NIVEAU DU RECEPTEUR)

1°) Il vérifie que la loi de codage £ est remplie. Si cette loi n'est pas vérifiée, une

erreur est détectée pour le n -uplet reçu.

Exemple: £ bit de parité

Mot reçu r =(10101) parité non respectée erreur de transmission

2°) a) Soit le décodeur cherche à corriger lui -même les erreurs en choisissant le mot

codé le plus vraisemblablement émis (i.e. celui qui ressemble le plus au mot reçu)

FEC = Forward Error Correction

b) Soit il demande la reémission de ce qui est détecté comme faux

ARQ = Automatic Repeat reQuest.

6.2.2 FEC/ARQ ?

* FEC est choisi lorsqu’on a une application du type "canal unidirectionnel"

(Exemple: CD, fusée...)

FEC/ARQ + -

* Rapide * Décodeur complexe(cher)

* Trafic plus fluide * La probabilité de commettre une erreur

est généralement plus élevée

*ARQ

- ARQ avec attente d'acquittement : l 'émetteur attend systé matiquement l 'accusé de

réception (positif ACK ou négatif NAK) de chaque mot qu'il émet avant d'émettre le

suivant. Ceci entraîne une perte de temps.

- ARQ continu : le récepteur acquitte quand il le peut les séries de mots émis. Une

gestion de buffers à l 'émission et en réception doit être prise en compte. (Cette gestion est

particulièrement lourde pour un protocole ARQ continu "sélectif").

Les réseaux informatiques fonctionnent généralement en ARQ.

B. GELLER Générali tés sur les codes correcteurs

6

6.2.3 LIMITATION DU DECODEUR

Il n'y a pas de décodeur parfait : on n'est jamais sûr de ne pas commettre d'erreur. On peut

néanmoins atteindre une certaine fiabilité, mesurée par un taux moyen d’erreur défini par le

cahier des charges, en choisissant des mots codés de longueur suffisamment élevée.

Exemple:

Répétition triple

Si le récepteur reçoit (0 0 0 1 1 1) il va décider que l’information source était 0 1

probabilité (erreur

/bit) = p3 = 10

-6

Si on veut être plus fiable, il faut augmenter la redondance et la longueur du mot codé ;

par exemple si on répète huit fois :

1 (1111 1111) 0 (00000000) probabilité (erreur

/bit) = p8 = 10

-1 6

£ £

Les performances ne peuvent s’améliorer qu’au prix d’un temps de traitement et d’une

complexité plus élevés ; ceci constitue un premier compromis.

6.3 CARACTERISATION DE LA REDONDANCE NECESSAIRE

6.3.1 UNE QUALIFICATION POSSIBLE DE LA REDONDANCE NECESSAIRE :

DISTANCE DE HAMMING

Définitions:

1/ Un décodeur est dit complet au sens d’un Maxim um de Vraisemblance (MV) si, étant

donnée une distance définie pour les n -uplets, pour tout mot reçu r, le décodeur choisit le

mot de code cmin tel que d(r, cmin) = min {d(r, c)}, c étant un mot quelconque du code.

2/ Soient x = (x1 . . . . .xn)

y = (y1 . . . . .yn)

d(x,y) = card Ax y avec Ax y = { i / x i yi } ( nombre de symboles différents)

Il s’agit bien d’une distance au sens mathématique .

(cf justification en petites classes)

B. GELLER Générali tés sur les codes correcteurs

7

Exemple: A sou rce=Alphabet, C ={(ALPHA) ; (TANGO)}. Que vaut d ?

Théorème Fondamental :

Soit C l 'ensemble des mots d'un code. Soit d min la plus petite distance entre deux mots

quelconques du code.

- Ce code peut détecter dmin - 1 transitions du canal.

- Ce code peut corriger e =Int

2

1dmin transitions.

Exemples:

1/ C={(000);(111)} ; d’après le théorème ci dessus, C détecte 2 erreurs et corrige 1 erreur.

Par exemple, dans la configuration : 0 000 110 ,

codeur canal

C permet de détecter au plus deux transitions, mai s ne permet pas de les corriger.

2/ A = {0,1,2,3,4} C = {(00) ; (12) ; (23) ; (34) ; (41)}. Quelles sont les capacités de

détection et de correction de ce code ?

0 1 2 3 4

0

1

2

3

4

En général, les décodeurs sont incomplets au sens du maximum de vraisemblance ; en

d’autres termes, ils sont capables de trouver cmin tel que d(r,cmin) = min {d(r,c)}, si et

seulement si r est dans une sphère suffisamment proche d’un mot de code : d(r,c i)<B, où

souvent B=e.

Définition:

Codes équivalents :

Ce sont des codes qui ont même distribution de distances entre mots.

Des codes équivalents ont même di stance minimale et capacité de détection/correction.

B. GELLER Générali tés sur les codes correcteurs

8

Exemple:

(0000) (0000)

(0011) (1010)

C 0= (1100) C ´0= (0101)

(1111) (1111)

Propriété:

Soit un CBS, de probabilité de transition arbitrairement faible (p<<1). Soit un codeur à

l 'entrée du canal, de capacité de correction e et d e longueur n fixés. On suppose que le

décodeur en sortie se limite à corriger toutes les combinaisons de e ou moins transitions.

La probabilité pour qu'un mot non codé de n symboles soit erroné, est proportionnelle à p.

La probabilité pour qu'un mot codé de n symboles soit erroné, est proportionnelle à

pe+1

<<p, ce qui est donc meilleur pour p suffisamment faible.

Une redondance quantifiée , comme nous allons le voir, par le théorème de Shannon et

construite de manière à obtenir une certaine distance minimal e entre mots codés permet

donc de garantir une plus faible probabilité d’erreur pour un rapport Signal à Bruit

suffisant (p<<1).

Démonstration :

- Mot non codé

proba (n bits justes) = (1-p)n

proba (au moins 1 erreur parmi n)=1-(1-p)nnp (si p <<1)

- Mot codé

p (se trompe) =

n

1ekC

n

k p

k (1-p)

n -k (p<<1)

pe+1

CQFD.

Limitation sur la distance minimale :

- Le calcul de dmin d'un code est très lourd en général.

- Certains codes qui ont des mots éloignés entre eux, sauf une exception où deux mots du

code sont très proches, peuvent avoir de faibles probabilités d'erreurs en moyenne bien

que dmin reste faible. Ceci est en particulier vrai pour les canaux à faibles RSB

(Rapports Signal à Brui t) i .e. pour p non négligeable devant 1 .

B. GELLER Générali tés sur les codes correcteurs

9

6.3.2 UNE QUANTIFICATION DE LA REDONDANCE NECESSAIRE :

LE THEOREME DE SHANNON DU CODAGE

Définition : On appelle capacité d’un canal d’entrée X et de sortie Y, l’information

mutuelle maximum entre l’entrée et la sortie du canal :

( )

max I(X,Y)p x

C où I(X,Y)=H(X) –H(X|Y) et p(x) est la d.d.p. de X.

Dans le cas d’un canal, l’information mutuelle entre l’entrée et la sor tie représente donc la

quantité d’information de la source à l’entrée , diminuée par l’incertitude due au canal.

En particulier, lorsque le canal est parfait X=Y et donc H(X|Y) = H(X|X) = 0 car il n’y a

aucune incertitude sur X lorsqu’on connaît X. Au co ntraire, si le canal est tellement

mauvais que sa sortie Y ne dépend pas de son entrée X, l’observation de la sortie n’ap porte

aucune connaissance : H(X|Y) = H(X) et C = H(X)-H(X) = 0. Entre ces deux cas extrêmes,

l’information mutuelle est d’autant meilleure que le canal distord peu et a donc une

capacité à véhiculer de l’information.

La capacité n’ est qu’un cas particulier d’information mutuelle du canal considéré , où l’on

répartit au mieux les informations de la source placée à l’entrée du canal (« max par

rapport à p(x) »), afin que l’information soit la plus importante possible. Souvent, pour des

canaux dont les transitions sont symétriques par rapport aux symboles d’entrée (comme le

CBS), on trouve que la capacité est l’information mutuelle obtenue d ans le cas

d’équirépartition des symboles à l ’entrée ( i .e. p(x i)=1/Card(ASou rce) ).

Exemple de référence : Le Canal Binaire Symétrique

0 1-p

0

p

X Y

p

1 1-p 1

I(X,Y) = H(X) – H(X|Y) = H(Y) – H(Y|X). Montrons que H(Y|X) est indépendant de p(x) si

bien que maximiser I(X,Y) pour trouver la capacité du CBS reviendra à maximiser H(Y).

B. GELLER Générali tés sur les codes correcteurs

10

2

x y

H(Y|X) = p(x)H(Y|X=x) où H(Y|X=x) = - p(Y|X=x)log (p(Y|X=x))

Lorsque X=0, H(Y|X=0) = - p(Y=0|X=0) log2(p(Y=0|X=0)) - p(Y=1|X=0) log2(p(Y=1|X=0))

= -(1-p) log2(1-p) - p log2(p) = H(p),

où H(p) désigne l’expression analytique de l’entropie binaire associée à la probabilité p.

De même lorsque X=1, H(Y|X=1) = -p log2(p) - (1-p) log2(1-p) = H(p).

Donc x x x

H(Y|X) = p(x)H(Y|X=x) = p(x)H(p) = H(p) p(x) = H(p) est bien indépendant de p(x) et

ne dépend que de la probabilité de transition du canal p.

Par conséquent maximiser par rapport à p(x), l’information mutuelle :

I(X,Y) = H(Y) –H(Y|X)= H(Y) – H(p) revient à maximiser H(Y).

L’entropie de Y est maximum et vaut 1 lorsque Y=0 et Y=1 sont équiprobables :

P(Y=0) = p(X=0) (1-p) + p(X=1) p = 0.5

P(Y=1) = p(X=1) p + p(X=0) (1-p) = 0.5

Donc CC B S = 1-H(p),

est obtenue pour p(X=0) = p(X=1) = 0.5 = p(Y=0) = p(Y=1) : la solution du problème est

bien symétrique.

CC B S

B. GELLER Générali tés sur les codes correcteurs

11

Théorème de Shannon : Pour une longueur de code n suffisamment longue, une

transmission avec une probabilité d’erreur arbitrairement faible est possible si le rendement

du code est inférieur à la capacité du canal.

Démonstration pour le CBS :

La probabilité de transition du canal vaut :p=d/n où d est le nombre de transitions parmi n

symboles émis (où n tend vers l’ infini).

En d’autres termes, lorsque n tend vers l’infini, le mot reçu se trouve sur une sphère à une

distance de Hamming d=np du mot de code émis, ce qui donne n

d

n!C =

d!(n-d)! possibilités.

Une condition suffisante pour qu’il n’y ait pas d’erreurs est que l’ensemble des sphères

soit disjointes entre elles et que le volume de leur empilement soit inférieur au volume de

l’espace possible : n k n n-k

d

n!2 >2 C 2 >

d!(n-d)!

En prenant le log à base 2 de l’inégalité précédente et en utilisant l’approximation pour

les grands nombres log2(N!)= Nlog2(N)-N issue de la formule de Sterling (cf annexe), on

obtient donc :

n-k > (n.log2(n)-n)-((n-d).log2(n-d)-(n-d))-(d.log2(d)-d)

= n.log2(n)-(n-d).log2(n-d)-d.log2(d)

En remplaçant d=np, et en divisant de part et d’autre par n, on obtient alors :

1-k/n > log2(n)-(1-p)log2(n-np)-plog2(np)

soit finalement,

k/n <1- log2(n)+(1-p)log2(n-np)+plog2(np)

=1+(1-p)log2(1-p)+plog2p=1- H(p)=CC B S CQFD.

B. GELLER Générali tés sur les codes correcteurs

12

Exemple d’application :

Source Codeur Canal Destinataire

{0,1} (k,n) 0 0

p(0)=p(1)=½ p

1 1

On a : k T sou rce = n Tcan a l où k : nombre de symboles à l 'entrée du codeur

n : longueur des blocs en sortie du codeur

et le théorème de Shannon s’écrit :

k

n > C

où C: capacité canal

Si p=10-2

, C=0,919. Dans ce cas, si par exemple, k=1000 alo rs il faut que n 1089. Il

faudra rajouter 89 symboles (au moins) aux 1000 informations binaires suivant une certaine

loi de codage si l’on veut transmettre avec probabilité d’erreur fixée arbitrairement faible.

En d’autres termes, le codeur introduit dan s la liaison pour la rendre plus fiable, peut être

vu comme une source secondaire directement branchée au canal, dont l’information

moyenne délivrée par symbole émis est k/n (la redondance n’apporte aucune information).

Le théorème du codage de Shannon revient alors à dire que l’entropie de la source branchée

à l’entrée du canal doit être inférieure à la capacité du canal.

Deux Remarques:

1/ Supposons que le cahier des charges définit comme arbitrairement petite, une probabilité

d'erreur p(erreur)=10-5

. Si p=10-2

, un décodage par vote majoritaire de la répétition

n=(2m + 1) fois de chaque bit, donne après décodage une probabilité d'erreur :

2m+1

m+1p(erreur)=C p

m+1 (1-p)

m < 10

-5 pour m=2 et n=5.

Dans ce cas, l’entropie H=1/5 bit par symbole canal : H<< 0,919 ; la redondance du codage

par répétition pour obtenir une probabilité d’erreur arbitrairement petite est trop élevée.

2/ Le théorème de Shannon sur le codage (« Deuxième théorème de Shannon ») permet de

donner une quantification de la redondance nécessaire, valable pour une longueur n

arbitrairement large . Malheureusement, ce théorème n’est pas constructif et ne permet pas

de construire en pratique des codes correcteurs.

B. GELLER Générali tés sur les codes correcteurs

13

Capacité et théorème de Shannon ne sont pas des notions limitées aux canaux discrets mais

s’étendent à tous les canaux , en particulier, ceux à entrée et sortie continues.

Exemple : Le canal à bruit additif blanc Gaussien (BABG, AWGN)

Un canal AWGN signifie qu’entre la sortie Y e t l’entrée du canal X , on a la relation :

Y = X + B,

où le bruit B 2(0, )N , et où les échantillons de bruit b sont indépendants (bruit blanc) ; la

puissance de sortie est donc égale à la somme de celle fixée de l’entrée et de celle du b ruit.

L’information mutuelle s’écrit :

I(X,Y) = H(X) – H(X|Y) = H(Y) – H(Y|X).

Comme pour le CBS, montrons que H(Y|X) est indépendant de p(x) si bien que maximiser

I(X,Y) pour trouver la capacité du canal AWGN reviendra à maximiser H(Y). Pour obtenir

H(Y|X), on peut détailler les calculs (cf annexe) ou on peut tirer parti de certaines

propriétés de H ; l’entrée informative du canal X et le bruit B sont indépendants donc :

H(Y|X) = H(X|X) + H(B|X) = H(B|X) = H(B) = 2

2

1log 2πeσ

2 (car B 2(0, )N ).

H(Y|X) est bien indépendant de p(x) et donc maximiser par rapport à p(x), l’information

mutuelle I(X,Y) = H(Y) –H(Y|X)= H(Y) – H(p) revient à maximiser H(Y). (Notons au

passage que H(Y|X) vaut exactement l’expression de l’entropie diff érentielle du bruit

Gaussien B : l’incertitude vaut exactement celle rajoutée par le bruit indépendant de la

source). Or l’entropie différentielle Y est maximum lorsque Y est une variable aléatoire

Gaussienne. Comme Y=X+B, ceci a lieu lorsque X est également une variable Gaussienne

2(m , )X XN car Y suit alors la distribution 2 2(m , )X XN comme somme de deux variables

Gaussiennes indépendantes .

Par conséquent H(Y) = 2 2

2

1log 2πe( +σ )

2X et :

C = H(Y)-H(Y|X) = 2

2 2

1log 1+

2

X

(en bits par symbole réel émis).

On trouve souvent une expression alternative à cette expression pour les signaux réels à

bande passante limitée. En notant S= 2

X la puissance du signal émis, B= 2 la puissance du

bruit AWGN et en supposant que le canal avec une bande passante de W H ertz permet de

transmettre 2W symboles par seconde, la capacité en bit/s s’exprime par la relation :

B. GELLER Générali tés sur les codes correcteurs

14

C = 2W log 1+S

B

Cette relation es t très souvent utilisée en télécoms pour connaître le débit que l’on peut

espérer transmettre.

Par exemple, pour un canal téléphonique de bande passante 4 kHz et de rapport signal sur

bruit 40 dB,

C = 4000 log2( 10001) = 53 kbit/s.

Pour augmenter le débi t il faut soit augmenter la bande passante, soit beaucoup augmenter

la puissance du signal émis (…ce qui rend la ressource spectrale d’autant plus chère). C’est ce

qui est fait dans l’ADSL où on a étendu la transmission à 256 canaux parallèles de 4 kHz.

Notons enfin que le plus souvent une expression analytique simple de la capacité d’un

canal est difficile à obtenir et qu’il faut alors recourir à des méthodes numériques.

SYNTHESE :

Du fait de la distorsion du canal, il faut rajouter de la redondance aux messages émis pour

les fiabiliser. Le codage résultant doit alors avoir un rendement inférieur à la capacité du

canal. On a donné l’exemple de deux codes simples :

- Code de parité

(n,k=n-1,dmin=2)

Excellent rendement R= n

1n

00000000 d=2

00000011

capacité de détection 1, de correction 0...

- Code de répétition (n, k=1,d min=n=nombre de répétition)

Rendement très mauvais, mais très bonne capacité de correction.

Entre ces caractéristiques extrêmes, il existe des familles de code permettant de faire un

meilleur compromis redondance / capacité de correction et d’approcher la capacité d’un

canal. Ce sont les codes linéaires qui seront étudiés dans le(s) chapitre(s) suivant(s).

B. GELLER Générali tés sur les codes correcteurs

15

ANNEXES :

A1 - Formule de Sterling Première démonstration :

La distribution de Poisson, entièrement caractérisé e par un paramètre (qui est égal à sa

moyenne et à sa variance) s’écrit :

P(N)= N

expN!

Pour N suffisamment large, cette distribution tend vers la Gaussienne de même moyenne et

variance (cf. figure pour =15).

On peut alors écrire N 2λ 1 (N-λ)

exp-λ exp-N! 2λ2πλ

pour N proche de la moyenne . En

particulier pour N= , on obtient : NN 1

exp-NN! 2πN

, soit la formule de Sterling : N! N exp-N 2πNN .

Finalement, toujours pour N large, en prenant le logarithme de la formule de Sterling, on

obtient :

log2(N!)= Nlog2(N)-N+0.5log2(2N) Nlog2(N)-N.

(On pourrait même dans l’expression précédente négliger le terme en -N devant Nlog2(N)

sans aucune incidence sur la démonstration du deuxième théorème de Shannon .)

Deuxième démonstration :

La croissance de la fonction ln() entraine l’encadrement suivant des intégrales sur un

intervalle de longueur 1 :

1

1)ln()ln()ln(

k

k

k

kdttkdtt ;

donc en sommant sur tous les intervalles de 1 à N :

1

21)ln()!ln()ln(

NN

dttNdtt ;

en intégrant on obtient :

Nln(N)-N+1< ln(N!)< (N+1)ln(N+1)-(N+1)-(2ln2-2),

soit en faisant tendre N vers l’infini : ln(N!) Nlog2(N)-N

B. GELLER Générali tés sur les codes correcteurs

16

A2 - Calcul de H(Y|X) pour le canal AWGN

H(Y|X)= dxdyxpxypxypdxdyyxpxyp )()()(log),()(log 22

dxdyxp )(2σ

xyexp

σ2π

1

xyexp

σ2π

1log

2

2

2

2

2

=

dxdyxpe

)(2σ

xyexp

σ2π

1

)(logxy

σ2π

1log

2

2

2

2

2

2

(car log2(t)=ln(t)/ln(2)=ln(t)log2(e))

=

dxdyxpe

dxdyxp )(2σ

xyexp

σ2π2σ

)(logxy)(

xyexp

σ2π

1

σ2π

1log

2

2

2

2

2

2

2

2

Le premier terme de cette somme s’écrit :

dxdyxp )(

xyexp

σ2π

1

σ2π

1log

2

2

2

=

dydxxp

2

2

22σ

xyexp

σ2π

1)(

σ2π

1log

=

dxxp )(

σ2π

1log 2

2

)σ2(log 2

2 e,

tandis que le second terme se simplifie avec b = y-x :

dxdyxp

e)(

xyexp

σ2π2σ

)(logxy2

2

2

2

2

=

dxxpdbe

)(2σ

bexp

σ2π2σ

)(logb2

2

2

2

2

=

dbe

2

2

2

2

2

bexp

σ2π2σ

)(logb=

2

)(log 2 e

car par définition même de la variance, 2 2σ = b p(b) db .

Donc H(Y|X)= 2

)σ2(log 2

2 +

2

)(log 2 e=

2

)σ2(log 2

2 e .

H(Y|X) est donc bien indépendant de p(x).

B. GELLER Générali tés sur les codes correcteurs

17

A3 - Entropie différentielle des v.a. continues par rapport à la Gaussienne

L’entropie différentielle de la Gaussienne se calcule directement à partir de sa défi nition :

H(XG)=

dx

μxexp

σ2π

1g(x)logg(x)dxg(x)log

2

X

2

X

X

22

g(x)dxμx

)(logg(x)dx

σ2π

1log

2

X2

X

2

X

2

e(car log2(t)=ln(t)/ln(2)=ln(t)log2(e))

=

X

2σ2π

1log +

2

X

2

)(log e 2

Xσ = 2

)σ2(log 2

X2 e

Si on considère à présent une v.a . X prenant ses valeurs x avec une densité de probabilité

p(x) de moyenne Xμ et de variance 2

Xσ identique à la Gaussienne précédente , le calcul de

2- p(x) log g(x)dx mène directement , en remplaçant g(x) par son expression analytique, au

même résultat :

).(e2πlog

2

1dx

μxexp

σ2π

1p(x)logg(x)dxp(x)log 2

X22

X

2

X

X

22

.

Or si l’on définit :

)()( XHXf

dx

xg

xpxpdxxgxpdxxpxpdxxgxp

)(

)(log)()(log)()(log)()(log)( 2222 ,

de l’inégalité de Jensen :

2 2 2 2log log log log 1 0

p x g xp x dx p x dx g x dx

g x p x

.

Par conséquent :

2f X =H X + p x log g x dx 0 .

et )(H)2(log2

1)(log)()(H 2

22 GX XedxxgxpX .

Par conséquent, à puissance 2

Xσ fixée, l’entropie différentielle de la Gaussienne est

supérieure aux autres distributions , l’égalité ne se produisant que pour X=X G.

B. GELLER Les codes blocs l inéaires 1

7. LES CODES BLOCS LINEAIRES

Nous allons voir que les codes blocs linéaires sont simplement des codes blocs de taille

fixe n (kn) dont la loi de codage £ est constituée d'équations linéaires.

La redondance linéaire résultante es t comprise entre celle du codage par répétition et celle

du codage par parité et elle est choisie afin d’approcher au mieux la capacité du canal.

7.1 CODAGE

Soit A un alphabet qui est un corps ; par exemple, souvent, A= ℤ/2ℤ.

Soit r un n-uplet r= (r1, . . . ,r

n) A

n; on peut aussi écrire : r =

n

1i

ii er avec ei=(0..0100..0) où

la coordonnée qui vaut 1 est en ii ème

position ; on retrouve que An est un espace vectoriel

de dimension n.

Définition:

Un code linéaire C est un sous-espace vectoriel (s.e.v) de An engendré par k vecteurs

indépendants (générateurs) g1…gk .

c C {ai}Ak / c =

k

1iii ga

C = Vect (g1 , . . . ,gk)

7.1.1 RAPPELS SUR DES PROPRIETES ELEMENTAIRES DES ESPACES VECTORIELS

i) 0 C : 0=

k

1ii

g0 Vect (gi)

ii) Si (c1 , c2) C 2

, , A2, alors c1+ c2 C

(en effet c1=

k

1i

c i 1g1 , c2 =

k

1i

c i 2g i c1+ c

2=

k

1i

(c i 1+ c i 2)g i Vect (g i) )

i) Si Card A=q, C est un sous-ensemble à qk éléments de A

n, qui lui en compte q

n.

En effet, soit c un mot quelconque du code : c=

k

1i

ai gi ou les coordonnées a i peuvent

prendre q valeurs possibles. Etant donné qu'il y a k coordonnées distinctes, il y a bien qk

choix possibles pour les mots du corps.

B. GELLER Les codes blocs l inéaires 2

k

i=1

7.1.2 MATRICE GENERATRICE

Définition :

Une matrice k x n dont les lignes sont formées par une famille de vecteurs générateurs

gi du code, est nommée matrice génératrice du code.

Notation :

g j = (g j 1 . . .g j n)

g1 1 . . . g1 n g1

G = g2 1 . . . g2 n = g2

… … …

gk 1 gk n gk

Remarque :

Une matrice génératrice, tout comme une base d'un sous espace vectoriel n'est

généralement pas unique.

Propriétés :

Tout mot du code s'écrit sous la forme

c = a G

1 xn 1 xk k xn

Démonstration:

Soit c= a i g i C

c = (

k

i 1

a i g i 1 ,

k

i 1

a i g i 2 , . . .

k

i 1

a i g i n)

= a G où a = (a1 . . .ak) CQFD.

B. GELLER Les codes blocs l inéaires 3

Conséquence :

Un codeur peut être vu comme un automate effectuant une multiplication matricielle

(a1 . . .ak) (c1 . . .cn)

c=a G

k symboles n symboles

Exercice :

Quelle est la capacité de correction d'un code à coefficients binaires dont une matrice

génératrice est :

100101

G = 011101

110110

k= 3

B. GELLER Les codes blocs l inéaires 4

7.2 POIDS D'UN CODE LINEAIRE

Définition:

Etant donné un n-uplet r, le poids de r est le nombre de coordonnées non nulles.

w {(111000)}=3

Propriétés :

Pour un code linéaire dmin=min{w(c), c C / (0) } =wmin . Ceci permet de calculer

beaucoup plus rapidement la distance minimale d'un code. (cf. exemple précédent).

Démonstration:

Soient c1 , c2 deux mots distincts de C .

d(c1 ,c2) = Nombre de coordonnées distinctes entre c1 et c2

= w (c1 - c2) : toute distance est un poids d’un mot du code (c1-c2 C car le code

est linéaire)

Réciproquement, w(c)=d(c,0) : tout poids est une distance.

L'ensemble des poids d'un code est donc confondu avec l 'ensemble des distances entre mots

du code. Ces deux ensembles d'entier s admettent le même plus petit élément: w min = dmin .

On peut aussi remarquer que pour tout élément c du code, la distribution des distances

entre c et les autres mots du code D(c),est la même indépendamment de c :

D(c)={d(c,c i), c i C }={w(c-c i),c i C }= { w (c j),c j C } CQFD.

7.3 DETECTION D'ERREUR PAR MATRICE DE CONTROLE

7.3.1 TROIS RAPPELS

i) Produit scalaire : x . y = (x1 . . .xn).(y1 . . .yn)

= x1y1 + x2y2 + .. + xnyn

(souvent + et x modulo 2)

ii) Orthogonalité: xy x.y = 0

iii) L'ensemble C constitué par l 'ensemble des vecteurs orthogonaux à un s.e.v. de

dimension k est un s.e.v. de dimension n-k.

B. GELLER Les codes blocs l inéaires 5

7.3.2 MATRICE DE CONTROLE

Définition :

Soit C un code linéaire, C est un s.e.v. de dimension n-k.

C'est donc un code engendré par n -k vecteurs notés h1 . . .hn -k .

Une matrice génératrice de C formée par n-k lignes hi est appelée matrice de contrôle de

C :

h1

H = n-k

hn -k

n

Propriété utile 1 :

c C ssi c tH = 0

1n nn-k 1 n-k

ou, en transposant le tout :

H tc = 0 n-k

0

1

Démonstration:

Soit c C : ctH = c (th1 . . . thn -k) = ([cth1] , [c th2] , . . ,[c thn -k] )

= (c.h1 ,c.h2 , . .) = 0 car [cthi] =

n

j 1

c j h i j = c.hi = 0 (car hi est dans C )

Réciproquement :c tH = 0

i {1,.. . ,n-k } c . hi = 0 ou les hi sont générateurs de C :

c est donc orthogonal à tout vecteur de l’orthogonal de C .

c (C ) = C CQFD

Pratique :

Lorsqu’on reçoit un n -uplet r, on fabrique au niveau du récepteur, le syndrome

s = r tH

1n-k 1n nn-k

Si ce syndrome est non nul, on a détecté une erreur de transmission.

B. GELLER Les codes blocs l inéaires 6

r = (r1 . . .rn) s 0n -k erreur détectée

r tH = 0

n -k mot reçu est un mot codé (pas forcément émis)

Un détecteur d'erreur peut -être vu comme un automate câblé qui effectue au niveau du

récepteur une multiplication matricielle.

Propriété utile 2:

Il existe un mot du code de poids w ssi il existe une combinaison linéaire de w

colonnes de H qui soit elle-même nulle.

Démonstration :

Soit c = ( c1 . .cn) un n-uplet

c a pour poids w Card {ci 0} = w.

Or c C

H tc =t0n - k

h1 1 . . . .h1 n c1

h2 1 . . . h2 n = 0

. . . . . . …

hn -k1 hn -k n cn

c1h1 1 +c2h1 2+... +cnh1 n = 0 h1 1 h1 2 h1 n 0

c1h2 1 +c2h2 2+... +cnh2 n = 0 c1 + c2 +...+ cn =

c1hn -k1+ … +cnhn -k n = 0 hn -k1 hn -k 2 hn -k n 0

Donc c du code a pour poids w ssi il y a w coordonnés ci qui sont non nulles et qu’il existe

une combinaison linéaire de w colonnes de H qui est elle même nulle. CQFD.

Conséquence :

Si H est une matrice telle que toute combinaison linéaire de w -1 ou moins colonnes est non

nulle et qu'une combinaison l inéaire de w colonnes est nulle alors :

dmin = w

B. GELLER Les codes blocs l inéaires 7

Le problème de calcul de la distance de Hamming ( et donc de la capacité de correction) est

par conséquent simplifié dans le cas d’un code linéaire par rapport à un code quelconque.

Exemple :

Code Hamming d'ordre D: c'est un code dont une matrice de contrôle est formée par

tous les D-uplets non nuls distincts.

Par exemple, pour D = 3

0001111

H = 0110011 n-k = D

1010101

n = 2D

-1

col3 = col1+col2 wmin = 3

Un code de Hamming corrige 1 erreur

n-k = D k=n-D = 2D

-1-D

Rendement = 112

D12

n

kD

D

D

Le calcul d'une matrice de contrôle revient à la recherche d'une base orthogonale à un

s.e.v.. Ce problème est fastidieux mais il est résolu sans problème par ordinateur. En fait,

ce calcul est inutile et le paragraphe suivant va permettre d'obtenir directement H à partir

de G.

7.4 CODE LINEAIRE SOUS FORME SYSTEMATIQUE

7.4.1 RAPPELS

i) Deux codes sont équivalents s’ils ont même d istribution de distances entre eux.

Exemple:

C 0={ (0000), (0011), (1100), (1111) } C 1={ (0000), (1010), (0101), (1111) }

Une permutation de coordonnées permet d'obtenir des codes équivalents.

Exemple:

Colonnes 4 et 1 de l 'exemple précédent.

B. GELLER Les codes blocs l inéaires 8

Par conséquent, deux matrices génératrices dont les colonnes sont permutées les unes des

autres donnent naissance à deux codes équivalents ( ayant même distribution de poids et

donc de distance minimale).

ii) Codage sous forme systématique

Ak A

n c1=a1

£ avec :

(a1 , . . . ,ak) (c1 , . . . ,cn) ck=ak

Propriété :

Pour un codage sous forme systématique :

G = Id k Pk ,n -k k

k n-k

Démonstration:

En effet c = ( a1 . .ak ,c1 , . .cn -k) = (a1 . . .ak) ( Idk | Pk n -k ) CQFD.

Propriété :

Tout code est équivalent à un code mis sous forme systématique.

Démonstration:

On transforme G en utilisant la méthode du pivot de Gauss. CQFD.

Exemples

i)

1001

G = 0101 du bit de parité

0011

(a1 ,a2 ,a3)(a1 ,a2 ,a3 ,a4 ,=a1+a2+a3 2 )

ii) Trouver une matrice sous forme systématique, équivalente à la matrice suivante :

100101

G = 011101

110110

B. GELLER Les codes blocs l inéaires 9

Conséquence :

Il suffit donc d'étudier les codes mis sous forme systématique.

Exemple :

Trouver un code linéaire qui puisse corriger une erreur avec le moins de redondance

possible pour encoder ( +, , ,- ), où on suppose que les 4 opérations sont équiprobables.

Source Codage source

+ - + 00 k=2

01 Codeur

10

- 11

B. GELLER Les codes blocs l inéaires 10

7.4.2 DEUX CONSEQUENCES DU CODAGE SOUS FORME SYSTEMATIQUE

i) Si on connaît la matrice génératrice d'un codage sous forme systématique

G = ( Idk | P k ,n -k), on connaît automatiquement une matrice d e contrôle :

H = ( tPk ,n -k | -Idn -k )

= ( tPk ,n -k | Idn -k ) dans le cas où l’alphabet est binaire (+= -).

Démonstration :

c = aG = a( Idk | Pk ,n -k) = (a,p)où p contient les n-k symboles de contrôle: p=a Pk ,n -k .

Pk ,n -k

Or 0 = p + p = a Pk ,n -k + p = (a,p) Idn -k = c tH. CQFD.

On peut aussi vérifier cette propriété en effectuant les produits scalaires entre tout

vecteur ligne de G et tout vecteur ligne de H et voir que ces vecteurs sont orthogonaux.

CQFD.

Exemple:

G = B = 100 101 H = 101 100

010 011 011 010

001 110 110 001

Id3 P3 ,3

Un vecteur reçu r = (100000) est-il entaché d'erreur?

101

011

110

s = rtH = (100000) 100 = (101)0 . L’erreur est détectée.

010

001

B. GELLER Les codes blocs l inéaires 11

i i) Il est strictement équivalent de caractériser un code par sa matrice génératrice ou par sa

matrice de contrôle : elles décrivent les mêmes n -k équations linéaires ( à n variables )

définissant l’hyperplan de dimension k, qu’est un code correcteur bloc.

Démonstration :

1 0 p1 1 … p1 j … p1 n -k

G = … p i j … k

0 1 pk1 … pk j … pkn -k

k n-k

p1 1 . . . pk1 -1

: : 0

H = p1 j pk j 0

: :

p1 n -k . . .pkn -k -1

Le codage s'écrit : c = ( a1 . . . ak ) G

= ( a1 . . . ak c1 . . . cn -k )

avec c j = i

k

1

a i p i j j = 1 .. . n-k (C)

Le décodage s'écrit ctH = 0n -k

p1 1 . . . p1 j . . . p1 n -k

. . . p i j . . .

pk1 . . . pk j . . . pkn -k

(a1 . . .ak c1 . . .cn -k) -1 0 0 = 0n -k

0 -1 0 0

. . . . . .

0 0 -1

a ip i j-c j=0 où j=1 …n-k (D)

On retrouve donc dans (D) les mêmes (n -k) équations (C)du codage. CQFD.

Nous avons décrit comment des erreurs pouvaient être détectées. Nous allons maintenant

voir comment un décodeur peut les corriger.

B. GELLER Les codes blocs l inéaires 12

7.5 CORRECTION DES ERREURS

7.5.1 TABLEAU DE DECHIFFREMENT

Avant de corriger d'éventuelles erreurs, il faut déjà les avoir dét ectées et le récepteur

comme précédemment doit calculer le syndrome s = rtH, où r est le n-uplet reçu et H est la

matrice de contrôle du code C(n,k) (On choisit pour simplifier l 'alphabet A = ℤ/2ℤ mais le

procédé de correction qui va être décrit s 'étend directement à to ut alphabet de cardinal q en

remplaçant le nombre 2 par q)

Un n-uplet binaire reçu r peut prendre 2n valeurs distinctes. On range les 2

n mots possibles

dans un tableau dit de déchiffrement, que nous allons apprendre à construire afin

d’effectuer ensuite la correction des mots reçus.

Chaque ligne du tableau va être constituée par les vecteurs ayant même syndrome.

Soit l1 un n-uplet quelconque ; montrons qu’il existe 2k vecteurs ayant même syndrome que

l1 de la forme u i=(l1+c i) où c i est un mot quelconque du code ( éventuellement nul) :

u i tH =(c i+l1)

tH = c i

tH+l1

tH=l1

tH=s1 , pour l i 2

k

On peut donc remplir la première ligne du tableau :

l1 l1+c1 l1+c2 . . . . l1+c2k

- 1 | s1

Soit l2 un n-uplet qui n'est pas un des 2k n-uplets précédents (2n-2

k possibilités). De même

les 2k mots de la forme l2+c i ont même syndrome que l2 et constituent la deuxième ligne du

tableau de déchiffrement :

l1 l1+c1 l1+c2 . . . l1+c2k

- 1 s1

l2 l2+c1 l2+c2 . . . l2+c2k

- 1 s2

Ainsi de proche en proche, on peut construire un tableau à 2n/2

k=2

n -k lignes où le n-uplet

sur la i ième ligne et j ième colonne vaut l i+c j .Les 2n vecteurs de ce tableau sont tous les

n-uplets distincts (en effet s’il existait deux entiers i < j tels que c i+l i=c j+l j alors l j-l i=c j-c i

; mais le code étant linéaire c j-c i est un mot du code noté ck :l j-l i=ck ou l j=l i+ck : ceci

B. GELLER Les codes blocs l inéaires 13

signifierait que l 'on a pris un leader qui est déjà sur une ligne précédente ce qui est

contraire à la construction du tableau).

Les éléments li s 'appellent les leaders. On choisit souvent comme leaders les éléments de

poids le plus faible possible et pour un code linéaire de capacité de correction

e=Int.[(dmin-1)/2], tout n-uplet de poids inférieur ou égal à e peut être pris comme leader.

Exemple :

A = ℤ/2ℤ k=2 n=5

11100

H = 10010 G = 10110

01001 01101 Card C = 2k=4 mots : 0000000

0101101

1010110

1111011

Leaders Syndromes C (00000) (10110) (01101) (11011) (0,0,0) (10000) (00110) (11101) (01011) (1,1,0) (01000) (11110) (00101) (10011) (1,0,1) (00100) (10010) (01001) (11111) (1,0,0) (00010) (10100) (01111) (11001) (0,1,0) (00001) (10111) (01100) (11010) (0,0,1) (11000) (01110) (10101) (00011) (0,1,1) (10001) (00111) (11100) (01010) (1,1,1)

B. GELLER Les codes blocs l inéaires 14

7.5.2 IMPLANTATION MATERIELLE DE LA CORRECTION

i)Matériel nécessaire :

- Un automate câblé pour effectuer la multiplication matricielle du syndrome ( r 1 . . .rn )tH.

- Une mémoire de taille 2n -k

mots. Chaque mot est composé de deux parties : un syndrome

( taille (n-k)), un leader de classe correspondant (taille n).(Pour l’implantation, le

syndrôme peut être l’adresse où est mis en mémoire le leader correspondant.)

i i)Procédure de décodage :

1) Pour le dernier n-uplet reçu, calculer le syndrome r tH.

2) Identifier le syndrome dans le tableau de déchiffrement (physiquement dans la mémoire)

et sélectionner le leader de classe correspondant l.

3) Décider que cémis = r-l.

A la lumière des exemples précédents, on voit que les leaders du tableau de déchiffrement

l j peuvent s 'identifier avec les erreurs que l 'on veut corriger selon la capacité de correction

du code (code 1-correcteur dans notre exemple ) : r-l j =(c i+erreur)-l j = c i erreur = l j

La complexité du décodage par syndrome ramène la complexité exponentielle à un ordre de

grandeur 2n -k

par rapport à

2k du décodeur du maximum de vraisemblance. Ceci n’est

intéressant que si n-k<k soit R=k/n>1/2.

iii) Limitations d'un tel décodage:

C'est la réalisation matérielle.

En effet, on a vu que des codes pour assurer une certaine fiabilité devaient avoir une taille

suffisamment grande. Par exemple pour un code à symbole dans ℤ/2ℤ (n=100,k=70) sont

des valeurs raisonnables.

-Calculer le syndrome revient à calculer n -k équations linéaires à n cordonnées soit30x100

additions et multiplications si k=70 et n=100.

-Taille mémoire : 21 0 0 -7 0

=23 0

mots101 0 : gigantesque.

B. GELLER Les codes blocs l inéaires 15

SYNTHESE :

Nous avons appris à générer la redondance par une matrice génératrice G, détecter les

erreurs reçues par une matrice de redondance H décrivant les mêmes n -k équations

linéaires, et enfin corriger les erreurs par tableau de déchiffremen t. Mis à part le cas des

codes de petites tailles (simples), la réalisation pratique de tels décodeurs est trop

complexe.

C'est la raison pour laquelle les élèves - ingénieurs suivant le cours IN202 de Réseaux

étudieront, une classe spéciale de codes linéaires, dont la structure algébrique est beaucoup

plus subtile, mais dont la réalisation du décodeur est rendue simple.

B. GELLER Les codes blocs l inéaires 16

64

Annexe A

Exercices pour le chapitre 1 :Outils de la théorie de l’information

A.1 Débit d’un modem téléphonique.

Sur le réseau NUMERIS le signal de parole est échantilloné à 8 kHz (largeurde bande maximale < 4 kHz par le théorème d’échantillonnage de Nyquist).Chaque échantillon du signal de parole est ensuite quantifié sur 256 niveauxd’amplitude. Calculer le taux de codage R et le débit binaire correspondant enkb/s.

A.2 Variable gaussienne.

Calculer la moyenne et la variance de la v.a. X de distribution de probabilité :

p(x) = 1p2πσ2

e− (x−µ)2

2σ2

où µ et σ2 > 0 sont des paramètres. Commenter.

A.3 Formule de Bayes. Traitement réciproque

Montrer la formule de Bayes :

p(x|y) = p(y |x)p(x)∑∫x

p(y |x)p(x).

Commenter cette formule en considérant le «traitement réciproque» d’entrée Yet de sortie X .

65

A.4 Chaînes de Markov.

1. En s’aidant de la formule p(x, y) = p(x)p(y |x), montrer la même formuleconditionnée par z :

p(x, y |z) = p(x|z)p(y |x, z)

2. En déduire que X → Y → Z forme une chaîne de Markov si et seulementsi X et Z sont indépendants sachant y , i.e. :

p(x, z|y) = p(x|y)p(z|y)

3. Montrer que si X → Y → Z est une chaîne de Markov, alors la chaîne«réciproque» Z → Y → X l’est aussi.

A.5 Positivité de la divergence.

1. Montrer que la fonction logarithme est strictement concave.

2. En déduire l’inégalité de Jensen :

E log2 f (X )6 log2 E f (X )

avec égalité si et seulement si la fonction f est constante p.p.

3. En considérant −D(p, q) démontrer le résultat fondamental du coursconcernant la positivité de la divergence.

4. (Facultatif) Retrouver ce résultat avec l’inégalité loge x 6 x −1.

A.6 Propriétés de l’entropie.

On considère l’entropie H(X ) d’une v.a. discrète X (pouvant prendre unnombre fini M de valeurs).

1. Montrer que H (X ) est une «auto-information» H (X ) = I (X , X ). Interpréterce résultat.

2. Montrer que H(X )> 0 et déterminer le cas d’égalité.

3. En s’aidant du résultat fondamental sur les divergences (inégalité deGibbs), montrer que H(X )6 log2 M et déterminer le cas d’égalité.

66

A.7 La connaissance réduit l’incertitude.

Montrer et interpréter (dans le cas de v.a. discrète) l’inégalité suivante :

H(Y |X )6 H(Y ).

La connaissance réduit-elle toujours l’incertitude ?

A.8 Entropie différentielle et entropie absolue.

(Facultatif).On considère une v.a. continue X que l’on quantifie uniformément avec un

pas de quantification q pour obtenir une v.a. discrète [X ].En approximant l’intégrale H(X ) = ∫

x p(x) log21

p(x) par une somme de Rie-mann, établir que

H(X ) ≈ H([X ])− log2(1/q)

Interpréter ce résultat lorsque q → 0 et expliquer le terme «entropie différen-tielle».

67

68

Annexe B

Exercices pour le chapitre 2 :Application de la théorie del’information au codage

B.1 Démontration du théorème du traitement de don-nées.

1. A l’aide des deux formules p(x, y) = p(x)p(y |x) et p(x, y |z) = p(x|z)p(y |x, z)(voir exo leçon 1), démontrer la formule :

I ((X ,Y ); Z ) = I (X , Z )+ I (Y , Z |X )

2. On considère dorénavant une chaîne de Markov X → Y → Z . DévelopperI ((X ,Y ); Z ) de deux manières différentes et en déduire le théorème dutraitement de données dans un cas particulier : I (Y , Z )> I (X , Z ).

3. Sachant que Z → Y → X est également une chaîne de Markov (voir exoleçon 1), montrer que I (X ,Y )> I (X , Z ).

4. En déduire l’énoncé général du théorème du traitement de données.

B.2 Fonction taux-distorsion : Cas extrêmes.

On considère la fonction taux-distorsion R(D) pour une source sans mé-moire.

1. Cas D = 0 (codage sans pertes). Etablir la borne de Shannon R(D = 0) dansce cas. Commenter

2. Cas R = 0 (pas de transmission). Etablir D à la borne de Shannon R(D) = 0dans ce cas. Comenter.

69

B.3 Entropie d’une source gaussienne.

1. Calculer l’entropie différentielle H(X ) lorsque X est une v.a. gaussienne.Commenter.

2. Montrer que l’entropie d’une v.a. X de variance σ2 est maximale lorsqueX est gaussienne.

B.4 Fonction taux-distorsion : Cas gaussien.

On considère une source gaussienne sans mémoire de moyenne nulle et devariance σ2.

1. Montrer que R(D) = H(X )−max H(X |Y ).

2. Trouver le maximum de l’entropie conditionnelle sachant que H(X |Y ) =H (X −Y |Y )6 H (X −Y ). Justifier que ce maximum peut être effectivementatteint.

3. En déduire l’expression cherchée de R(D).

70

Annexe C

Exercices pour le chapitre 3 :Codage entropique à longueurvariable

C.1 Condition du préfixe.

1. Justifier qu’un code vérifiant la condition du préfixe est décodable demanière instantanée.

2. Réciproquement, montrer qu’un code instantané vérifie la condition dupréfixe.

3. En utilisant les résultats du cours sur l’inégalité de Kraft-McMillan, mon-trer que tout code u.d. peut être remplacé par un code instantané (à pré-fixe) de même distribution de longueurs et donc de même taux. Commen-ter.

C.2 Démonstration de l’inégalité de Kraft-McMillan.

1. Montrer que pour un code u.d., toute séquence de l bits peut se dé-composer d’au plus une façon comme concaténation de mots de codesci1 ci2 · · ·cik où li1 + li2 +·· ·+ lik = l .

2. En déduire que le nombre total Nl (k) de concaténations possibles de kmots de codes donnant une séquence codée de longueur totale l bitsvérifie l’inégalité : Nl (k)6 2l .

3. Montrer par ailleurs que

(M∑

i=1x li )k =∑

lNl (k)x l

71

4. Conclure en faisant x = 1/2 et k →∞.

C.3 Construction d’un code instantané.

On se donne une distribution de longueurs l1 6 l2 6 . . . 6 lM vérifiant l’in-égalité de Kraft-McMillan. A chaque mot de code ci (à trouver) on associe lenombre c̄i = 0,ci ∈ [0,1[ dont les décimales de l’écriture en base 2 est formée desbits de ci . On note Ii l’intervalle Ii = [c̄i ; c̄i +2−li [.

Par exemple, ci = 010 donne c̄i = 0,010 = 14 . et Ii = [0,010;0,011[= [ 1

4 ; 38 [ est

l’ensemble des nombres de [0;1[ dont les décimales en base 2 commencent parci .

1. Montrer que ci détermine Ii , et réciproquement.

2. Montrer que le code est instantané si et seulement si les Ii sont des inter-valles disjoints.

3. Interpréter l’inégalité de Kraft-McMillan sur les Ii est en déduire un algo-rithme de construction du code.

4. Préciser cet algorithme sur des exemples pour l1 6 l2 6 . . .6 lM , en com-mençant par c̄1 = 0.0. . .0, et en posant c̄i+1 = extrémité droite de Ii àchaque étape.

5. Que se passe-t-il si les li ne vérifient pas l’inégalité de Kraft-McMillan ?Donner un exemple.

C.4 Algorithme de Huffman. Préliminaires

On considère un code VLC optimal pour une source de distribution deprobabilité p1 > p2 > · · ·> pM .

1. Montrer que nécessairement l1 6 l2 6 · · ·6 lM (raisonner par l’absurde ensupposant pi > p j et li > l j ). Commenter.

2. Montrer que nécessairement l’inégalité de Kraft McMillan est une égalité(raisonner par l’absurde en supposant

∑i 2−li < 1, et montrer qu’alors on

peut remplacer lM par lM −1).

3. Déduire du raisonnement de la question précédente que lM−1 = lM , etqu’on peut toujours se ramener au cas où les deux mots de codes cM−1 etcM ne diffèrent que par le dernier bit.

72

C.5 Algorithme de Huffman.

On considère une source M-aire de distribution de probabilité p1 > p2 >· · ·> pM . La réduction de Huffman consiste à considérer la source (M −1)-aire,dite «réduite», de distribution de probabilité p1, p2, · · · , pM−2, p ′

M−1 = pM−1+pM

(on «combine» les deux symboles les moins probables).On note {c1, . . . ,cM−1,cM } le code optimal cherché (à l’ordre M). D’après ci-

dessus, cM−1 et cM ne diffèrent que par le dernier bit ; on peut écrire cM−1 =[c ′M−10] et cM = [c ′M−11]

1. En comparant les taux de codage de la source initiale et de la source réduiteaprès réduction de Huffman, montrer que le code

{c1, . . . ,cM−2,c ′M−1}

est optimal pour la source réduite.

2. Donner un moyen de contruire le code optimal {c1, . . . ,cM−1,cM } à partirde {c1, . . . ,cM−2,c ′M−1}.

3. Par réductions de Huffman successives jusqu’au cas M = 2 (où le code {0,1}est optimal), obtenir un algorithme de construction du code {c1, . . . ,cM−1,cM }.

N.B. : Il faut réordonner à chaque étape les probabilités après chaqueréduction de Huffman.

73

74

Annexe D

Exercices pour le chapitre 4 :Quantification scalaire.

D.1 Caractéristique Débit-Distorsion en haute réso-lution

On effectue une quantification scalaire uniforme haute résolution d’unesource quelconque de variance σ2 et de densité de probabilité à support bornédans [−A, A].

1. Calculer la distorsion en fonction du taux de quantification. On écrira lerésultat en fonction du facteur γ= A

σ.

2. Expliquer le terme «6 dB par bit» pour qualifier la caractéristique dé-bit/distorsion.

D.2 Minima locaux de l’algorithme de Lloyd-Max.

On considère un signal aléatoire X de densité de probabilité :

p(x) =

1 pour 16 x 6 1.5

2 pour −1.256 x 6−1

0 sinon.

Il est quantifié scalairement sur 3 niveaux. On considère les deux solutionssuivantes caractérisées par la position des centroïdes :

{−1− 3

16,−1− 1

16,1.25} et {−1− 1

8,1+ 1

8,1+ 3

8}

75

1. Donner, pour chacune de ces solutions, les cellules de quantificationoptimales.

2. Vérifier que ces deux situations vérifient les conditions de convergence(point stationnaire) de l’algorithme de Lloyd-Max.

3. Calculer la contribution à la distorsion quadratique d’une cellule du type[−q, q] correspondant à une amplitude A de la densité de probabilité.

4. En déduire les valeurs des distorsions totales dans les deux cas considérés.Quelle est la solution la meilleure ?

5. Qu’en déduire sur l’algorithme de Lloyd-Max ? La fonction log p(x) est-elleconcave ?

D.3 Densité des cellules de quantification

Justifier que λ(x) = 1M q(x) représente la «densité» des cellules en évaluant

l’intégrale∫

I λ(x)d x prise sur un intervalle I .

D.4 Optimisation de la formule de Bennett

1. Dans la formule de Bennett, quelle est la densité des cellules λ(x) = 1M q(x)

qui minimise la distorsion ? Indication : Ecrire le lagrangien correspon-dant.

2. Calculer la distorsion minimale correspondante.

3. Appliquer ces résultats à la source gaussienne.

D.5 Réalisation de la quantification scalaire non uni-forme par non-linéarités.

On réalise une quantification scalaire non uniforme d’une source U de lamanière suivante : On transforme d’abord la source X = f (U ) à l’aide d’une fonc-tion non lineaire f . On applique ensuite une quantification scalaire uniforme àX qui fournit Y , et on applique enfin la non-linéarité inverse V = f −1(Y ).

1. Faire un dessin.

2. Sous les hypothèses de haute résolution, déterminer la densité des cellulesλ(u) = 1

M q(u) en fonction de la non-linéarité f .

3. En déduire la non-linéarité optimale qui rend la distorsion quadratiqueminimale, en fonction de la densité de probabilité de la source p(u). Indi-cation : Utiliser l’exercice précédent.

76

D.6 Quantification vectorielle

En quantification vectorielle en dimension n, on attribue à chaque vecteur desource X = (X1, X2, . . . , Xn) une étiquette binaire correspondant à un centroïdeY en dimension n.

1. Reprendre, dans le cas vectoriel, les conditions du plus proche voisin etdu centroïde vues en cours.

2. En déduire l’algorithme de Lloyd-Max dans ce cas.

3. Montrer que l’algorithme de Lloyd-Max peut converger vers un minimumlocal, même si log p(x) est concave. On considérera pour cela une sourceuniforme X dans l’intervalle [−1,1] quantifiée en dimension 2 sur 1 bitpar échantillon (c’est à dire 4 centroïdes en 2 dimensions) et les deuxsituations suivantes :

centroïdes y = (±1

2,±1

2)

et

centroïdes y = (±1

4,0) et (±3

4,0).

77

78

Annexe E

Exercices pour le chapitre 5 :Codage par transformée

E.1 Gain de Codage

1. Donner l’inégalité de concavité du logarithme.

2. En déduire que le gain de codage par transformée est toujours > 1. Quelest le cas d’égalité ?

3. Donner un exemple de source pour laquelle le gain de codage est tou-jours = 1.

E.2 Inégalité de Hadamard

Soit X un vecteur aléatoire, de composantes Xi de variance σ2i . On définit la

matrice d’autocovariance :R = E (X ·X t ).

1. Donner les coefficients ri , j de la matrice R.

2. Quelle est la forme particulière de R pour des composantes Xi décorré-lées ?

3. Les composantes réduites sont X ′i = Xi

σi. Donner la matrice d’autocova-

riance R ′ des X ′i en fonction de R.

4. En déduire detR en fonction de detR ′ et des σ2i .

5. Montrer que detR ′ 6 1 (raisonner sur les valeurs propres de R ′).

6. En déduire l’inégalité de Hadamard :

detR 6∏

iσ2

i

79

7. Quel est le cas d’égalité ?

E.3 Transformée de Karhunen-Loève

1. En considérant le gain de codage, montrer que la transformée optimaleest celle qui minimise le produit des variances en sortie de la transformée.

2. A l’aide de l’inégalité de Hadamard, montrer que la transformée optimaleest celle qui décorrèle la sortie.

3. Comment obtenir la transformée optimale à partir de RX X

= E(X X t ) ?

Cette transformée s’appelle la transformée de Karhunen-Loève.

4. Expliciter le gain de codage optimal.

5. Pour quel type de source le codage par transformée s’avère-t-il inutile ?Est-il pour autant nuisible ?

E.4 Codage par transformée pour n = 2

bits codés

U2

U1

-

-

C2

C1

-

-

Q2

Q1

-

-

Tsource X

-

On considère un schéma de codage de source par transformée orthogonaledont la partie «codage» est représentée dans la figure. Chaque bloc de sourceX = ( X1

X2

)est transformée en deux échantillons

(U1U2

)=U avant d’être quantifié etcodé. On a donc :

U = T ·X

où T est la matrice de la transformée orthogonale (TTt = I).Les quantificateurs sont scalaires uniformes et les codeurs entropiques sont

des codeurs de Huffmann. Pour chaque branche i (i = 1,2), la distorsion quadra-tique moyenne dûe au quantificateur Qi est notée Di et le taux binaire moyenaprès codage de Huffmann Ci est noté Ri .

On modélise les signaux en sortie de transformée par des sources lapla-ciennes de variances σ2

1 et σ22. On admet la relation :

Di = cσ2i 2−2Ri pour i = 1,2

80

où c est une constante.

1. Justifier, d’après le cours, que les distorsion quadratique moyenne globaleD et taux global R sont donnés par :

D = D1 +D2

2et R = R1 +R2

2

2. Justifier (sans calcul), d’après le cours, qu’après optimisation des taux R1

et R2 la distorsion minimisée est donné par la formule :

D∗ = cσ1σ22−2R

La matrice d’autocorrélation du signal d’entrée X est donnée par :

R = E(X X t ) =σ2X ·

(1 ρ

ρ 1

)où ρ est un coefficient de corrélation (−1 < ρ < 1).

3. Calculer la matrice d’autocorrélation de U en fonction de R et T.

4. En déduire la matrice d’autocorrélation de U lorsque

T =β ·(1 11 −1

)(On déterminera d’abord la valeur de β pour que T soit orthogonale).

5. Justifier que la transformée optimale est celle donnée à la question précé-dente. Sous quel nom est-elle connue ?

6. Donner l’expression de la distorsion D∗ pour cette transformée en fonc-tion de c, σ2

x , ρ et R.

7. Qu’observe-t-on si ρ augmente ? Commenter.

81