FR 2853976 A1 20041022 FR 0304766 A 20030416 La présente invention concerne les systèmes de communication dans lesquels, afin d'améliorer la fidélité de la transmission, les données à transmettre sont soumises à un codage de canal. Elle concerne plus particulièrement, d'une part, des procédés de codage, et d'autre part des 5 procédés de décodage ainsi que les dispositifs et appareils destinés à mettre en oeuvre ces procédés. On rappelle que le codage dit " de canal " consiste, quand on forme les " mots de code " envoyés au récepteur, à introduire une certaine redondance dans les données à transmettre. Plus précisément, on transmet, au 10 moyen de chaque mot de code, l'information initialement contenue dans un nombre prédéterminé k de symboles prélevés dans un " alphabet " de taille finie q; on calcule à partir de ces k symboles d'information un nombre n de symboles appartenant à cet alphabet, de manière à former des mots de code (v vn-). L'ensemble des mots de code obtenus quand chaque symbole d'information prend une valeur quelconque dans l'alphabet, constitue une sorte de dictionnaire appelé " code " de " dimension " k et de " longueur " n. Lorsque la taille q de l'alphabet est une puissance d'un nombre premier, on peut donner à cet alphabet une structure de corps, dit " corps de 20 Galois ", noté Fq, dont les éléments non-nuis peuvent être commodément identifiés comme étant chacun égal à yi-1 pour une valeur correspondante de i, o i = l,...,q-1, et o y est un élément de Fq choisi parmi les éléments dits " primitifs " de ce corps. Dans le cas o l'alphabet est un corps de Galois, certains codes peuvent, de façon commode, être associés à une matrice H de 25 dimension (n-k)xn définie sur Fq, dite " matrice de parité ": un mot v de longueur n donné est un mot de code si, et seulement si, il vérifie la relation: H v = 0 (o l'exposant T indique la transposition); on dit alors que le code est " orthogonal " à cette matrice H. Ces codes, que l'on appelle " codes linéaires ", seront les seuls codes considérés plus bas. Au niveau du récepteur, le procédé de décodage associé exploite alors judicieusement cette redondance pour détecter d'éventuelles erreurs de transmission et si possible les corriger. Il y a erreur de transmission si la différence e entre un mot reçu r et le mot de code v correspondant envoyé par l'émetteur, est non-nulle. Plus précisément, le décodage se fait en deux étapes principales. La première étape consiste à associer au mot reçu un " mot de code associé ". Pour ce faire, le décodeur calcule d'abord le vecteur de " syndromes T T d'erreurs " H r = H e. Si les syndromes sont tous nuls, on supposera qu'il n'y a pas eu d'erreur de transmission, et le " mot de code associé " sera alors simplement pris égal au mot reçu. Si ce n'est pas le cas, on en déduit que 10 certains symboles dans le mot reçu sont erronés, et l'on met alors en oeuvre un algorithme de correction destiné à estimer la valeur de l'erreur e; l'algorithme va ainsi fournir une valeur estimée ê de manière à ce que (r - ê) soit un mot de code, qui constituera alors le " mot de code associé ". La seconde étape consiste simplement à inverser le procédé de 15 codage. Dans la situation idéale o toutes les erreurs de transmission ont été corrigées, on retrouve ainsi les symboles d'information initiaux. Un algorithme de correction d'erreurs a pour tâche d'associer au mot reçu le mot de code situé à la distance de Hamming la plus courte de ce mot reçu, la " distance de Hamming " étant, par définition, le nombre 20 d'emplacements o deux mots de même longueur possèdent un symbole différent. On appelle " distance minimale " dd'un code la plus petite distance de Hamming entre deux mots différents de ce code. C'est un paramètre important du code. Plus précisément, il est en principe possible de trouver la position des erreurs éventuelles dans un mot reçu, et de fournir le symbole de 25 remplacement correct (c'est-à-dire, identique à celui envoyé par l'émetteur) pour chacune de ces positions, chaque fois que le nombre de positions erronées est au plus égal à INT[(d- 1)/2] (o " INT " désigne la partie entière) pour un code de distance minimale d (pour certaines configurations d'erreurs, on peut même parfois faire mieux). Dans tous les cas toutefois, il ne s'agit que 30 d'une possibilité de principe, car il est souvent difficile de mettre au point un algorithme de décodage atteignant cette performance. On notera également que, lorsque l'algorithme choisi parvient à proposer une correction pour le mot reçu, cette correction est d'autant plus fiable (du moins, pour la plupart des canaux de transmission) qu'elle concerne un plus petit nombre de positions. La capacité d'un algorithme de correction d'erreurs à pouvoir 5 proposer une correction d'un mot reçu est fidèlement représentée par la formule: 2e A, o e est le nombre de symboles erronés dans le mot reçu, et A est un entier strictement positif que nous appellerons le " pouvoir de résolution " de 10 l'algorithme. Si la valeur de (2s) est inférieure ou égale au pouvoir de résolution, l'algorithme de correction sera capable de corriger le mot reçu. Si la valeur de (28) est supérieure au pouvoir de résolution, l'algorithme pourra: - soit échouer purement et simplement dans sa tentative de correction, - soit être capable de proposer une correction du mot reçu; dans ce 15 cas, si l'on accepte cette correction, on s'expose au risque qu'elle soit erronée, c'est-à-dire que le mot de code proposé ne soit pas, en fait, le mot envoyé, ce risque étant évidemment d'autant plus prononcé que (2e) est grand par rapport à A. Compte tenu des considérations ci-dessus concernant la distance 20 minimale d du code, on dira que l'algorithme considéré est " maximal " si A=d- 1, et " sub-maximal " si A Parmi les codes connus, on peut citer les " codes de Reed25 Solomon ", qui sont réputés pour leur efficacité (pour une définition des codes de Reed-Solomon, on pourra se référer à l'ouvrage de R.E. Blahut intitulé " Theory and practice of error-controi codes ", Addison-Wesley, Reading, Mass.,1983). Ces codes sont définis sur Fq, et leur distance minimale d est égale à (n - k + 1). Pour leur décodage, on utilise habituellement un algorithme 30 dit de " Berlekamp-Massey " pour la détection des positions erronées dans un mot reçu, et un algorithme dit de " Forney " pour la correction des symboles erronés correspondants (ces algorithmes sont décrits dans l'ouvrage mentionné ci-dessus). Dans les supports d'information modernes, par exemple dans les disques durs d'ordinateurs, les CD (" compacts discs ") ou encore les DVD 5 (" digital video discs "), on cherche à accroître la densité d'information. Quand un tel support est affecté par un défaut physique tel qu'une éraflure, un nombre important de symboles d'information peuvent être rendus illisibles. On peut toutefois remédier à ce problème en utilisant un code de très grande longueur. Or les codes de Reed-Solomon présentent la particularité que la longueur n 10 des mots de code est nécessairement inférieure ou égale à la taille q de l'alphabet des symboles. En fait, quand on cherche, pour q fixé, à maximiser la longueur du code de Reed-Solomon, on pourra préférer prendre une longueur n égale à (q-1) plutôt qu'égale à q: en effet, ainsi qu'il est expliqué dans l'ouvrage de R.E. Blahut cité ci-dessus, il est plus simple de décoder un code 15 de Reed-Solomon de longueur (q-1) défini sur Fq qu'un code de longueur q (toujours défini sur Fq), de sorte que cette légère perte de longueur est compensée par un gain en facilité de décodage; dans ce cas, la matrice de parité H(t), o t = n - k, du code de Reed-Solomon est une matrice à t lignes et à (q-1) colonnes, qui peut être définie en prenant H(t)u= yi(î 1) (1' i t, 20 1 dj Par conséquent, si l'on souhaite disposer d'un code de ReedSolomon ayant des mots de code de grande longueur, on doit envisager de grandes valeurs de q, ce qui conduit à des mises en oeuvre coûteuses au niveau des calculs et de la mémorisation. De plus, de grandes valeurs de q sont 25 parfois inadaptées à l'application technique envisagée. C'est pourquoi l'on a cherché à construire des codes offrant de manière naturelle une plus grande longueur de mots que les codes de Reed-Solomon. On a notamment proposé récemment des codes dits " codes de géométrie algébrique " ou " codes de Goppa géométriques " (voir par exemple 30 " Algebraic Geometric Codes ", par J.H. van Lint, dans " Coding Theory and Design Theory" 1ère partie, IMA Volumes Math. Appl., volume 21, SpringerVerlag, Berlin, 1990). Ces codes, eux aussi définis sur un corps de Galois Fq, sont construits à partir d'une équation algébrique à deux inconnues X et Y. Les solutions de cette équation algébrique peuvent être considérées comme les coordonnées (x,y) de points d'une " courbe algébrique ". Pour définir une matrice de parité, on constitue d'abord un ensemble ordonné, appelé 5 " ensemble de localisation " (" locating set " en anglais), à partir de n tels points dont toutes les coordonnées sont finies; puis chaque ligne de la matrice de parité est obtenue en évaluant une fonction bien choisie de X et Y en chaque élément de cet ensemble de localisation. On obtient ainsi un code de géométrie algébrique de longueur n. Un paramètre important d'une telle courbe est son " genre " g. Dans le cas particulier o la courbe est une simple droite (le genre g est alors nul), le code de géométrie algébrique se réduit à un code de Reed-Solomon. Dans certains cas, les codes de géométrie algébrique permettent d'atteindre une longueur égale à (q + 2g q), qui peut être très élevée; par exemple, avec une 15 taille d'alphabet égale à 256 et un genre égal à 120, on obtient des mots de code de longueur 4096. On notera par ailleurs que les codes de géométrie algébrique possèdent une distance minimale d supérieure ou égale à (n-k+l -g). Comme tous les codes, les codes de géométrie algébrique peuvent 20 être " raccourcis ". On dit qu'un code donné est une version " raccourcie " du code C s'il ne comprend que les mots de C dont, pour un nombre R de positions prédéterminées, les composantes sont toutes nulles: ces positions étant connues du récepteur, on peut se dispenser de les transmettre, de sorte que le code raccourci est de longueur (n-R). En particulier, il est courant de 25 raccourcir un code de géométrie algébrique en supprimant de l'ensemble de localisation, le cas échéant, un point, ou plusieurs points, dont la coordonnée x est nulle. Les codes de géométrie algébrique sont avantageux quant à leur distance minimale et, comme on l'a dit, quant à la longueur des mots de code, 30 mais ils présentent l'inconvénient de requérir des algorithmes de décodage assez complexes, et donc assez coûteux en termes d'équipements (logiciel et/ou matériel) et de temps de traitement. Cette complexité est en fait plus ou moins grande selon l'algorithme considéré, une plus grande complexité étant en principe le prix à payer pour accroître la capacité de correction d'erreurs du décodeur (voir par exemple l'article de Tom H0holdt et Ruud Pellikaan intitulé " On the Decoding of AlgebraicGeometric Codes ", IEEE Trans. Inform. Theory, vol. 41 n 6, pages 1589 à 1614, novembre 1995). L'invention a pour but, inter alia, de proposer un code permettant de corriger un nombre relativement élevé d'erreurs de transmission de manière économique. L'invention concerne ainsi, selon un premier aspect, un procédé de 10 codage de symboles d'information selon un code défini sur un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, et de longueur n = p(q-1), o p un entier supérieur à 1, ledit procédé étant remarquable en ce qu'il comprend les étapes suivantes a) on choisit un p-uple d'entiers (t1,... ,tp) tels que 15 q-1 >t1 >t2> ... > tp > 0, et un p-uple de matrices carrées diagonales (Y1,...,Yp) de dimension (q-1) sur Fq telles que, pour tout i (1 Corrélativement, I'invention concerne, selon le même premier aspect, un procédé de décodage de données reçues résultant de la transmission de symboles codés de la manière décrite succinctement ci-dessus, ledit procédé étant remarquable en ce qu'il comprend les étapes suivantes: e) on calcule, à partir du mot reçu r = [rL r2... rp] , o chaque mot rl (I = 1, .,p) est de longueur (q-1), au moins une des composantes s1 (o / = 1,.. .,p) de longueur (q-1), du " mot post-reçu " 10 s=[ s1 s2...s p], d'après: si = ri + r2 + ... + rp s2 = rlY1 + r2Y2 + + rpYp, s3 = rlY2l + r2Y2 + + r Y2p, sp = rYP1 + r2Yp1+ .. + rpYP1 et f) on calcule au moins une des composantes ûl (o / = 1,...,p), de longueur (q-1), du " mot post- associé " û =[ul2... ûp], en corrigeant le mot s1 15 de même Id'après le vecteur de syndromes d'erreurs H(t') slT Ainsi, la correction d'erreurs de transmission dans les mots codés selon l'invention est essentiellement ramenée à la correction d'erreurs dans p mots codés selon Reed-Solomon. La correction d'erreurs pour chacune de ces p composantes est relativement simple et rapide en vertu des qualités des 20 algorithmes connus adaptés aux codes de Reed-Solomon, et ce d'autant plus que l'on corrige des mots de longueur (q-1) définis sur Fq, comme expliqué cidessus...DTD: Selon des caractéristiques particulières, on considère une équation algébrique en X et Y telle que, pour toute valeur yi-' (i = 1,...,q-1) prise par X, ladite équation algébrique possède p solutions distinctes notées y/ (y31) (o / = 1,...,p), et l'élément diagonal en position (i,) de chacune desdites matrices Y, est pris égal à y/(i-1). Dans ce cas, le code selon l'invention est un code de géométrie algébrique, orthogonal à la matrice de parité: H(t) H(11) ... H(t H(t2)Y 1 H(t2)Y2 'H(t2)y H = H(t3)Y2 H(t3)y22y 1 H ('3 2... Ht)2 H(tp)yp-l H(tP)YP 1 H(tp)yPI Ce choix particulier offre plusieurs avantages supplémentaires. Trois 10 d'entre eux méritent particulièrement d'être mentionnés. En premier lieu, on bénéficie de la grande distance minimale garantie par les codes de géométrie algébrique. En second lieu, on connaît, pour ces codes, des algorithmes de corrections d'erreurs, tels que l'algorithme de Feng-Rao, aptes à tirer le meilleur 15 parti possible de cette grande distance minimale (bien que la distance minimale du code selon l'invention ne soit pas toujours exactement connue, on considérera que l'algorithme de Feng-Rao est, en pratique, " maximal " au sens défini ci-dessus). Ainsi, corrélativement, I'invention concerne un procédé de décodage de données reçues résultant de la transmission de symboles 20 codés selon le mode de réalisation particulier décrit succinctement ci-dessus, ledit procédé étant remarquable en ce qu'il comprend les étapes suivantes: e') on applique à chaque mot reçu r un algorithme de correction d'erreurs maximal, de manière à obtenir une estimation 2 = [a m2...p e, o chaque mot va (/ = 1,...,p) est de longueur (q-1), du mot transmis v correspondant, et f') on calcule au moins une des composantes û, (o / = 1,...,p), de longueur (q-1), du " mot post-associé " =[l212...'p], d'après 1 = + V2 + + Vp 2 = ViY1 + v2Y2 + .. + iPYp, 2+ 2 P p p ûp = UP1 + 2Y 2 + - + Vp p En troisième lieu, on notera que l'homme du métier choisit 5 habituellement tel codage/décodage plutôt qu'un autre, en fonction, notamment, du cahier des charges (coût, fiabilité) de l'application envisagée. Mais ce choix s'avère être difficile dans le cas o cette application concerne un canal dans lequel le niveau de bruit varie de façon importante dans le temps; de même, un fabricant de dispositifs de codage et de décodage a du mal à fixer les 10 caractéristiques de son produit s'il ne sait pas, au stade de la fabrication, si ce produit sera mis en oeuvre ultérieurement dans des canaux de bruit élevé ou faible. En effet, on se trouve devant le dilemme suivant: si le procédé de décodage comporte un algorithme de correction d'erreurs performant, celui-ci s'avèrera être trop coûteux si, une fois la transmission commencée, on constate 15 que le taux d'erreurs de transmission est nettement plus faible que prévu; si en revanche le procédé de décodage comporte un algorithme de correction d'erreurs économique, mais moyennement performant, la transmission souffrira d'un taux excessif d'erreurs non corrigées si, une fois la transmission commencée, on constate que le taux d'erreurs de transmission est nettement 20 plus élevé que prévu. Le mode de réalisation de l'invention succinctement décrit ci-dessus résout ce problème en permettant de corriger les mots reçus, au choix, soit en mettant en oeuvre un algorithme maximal, soit en mettant en oeuvre l'algorithme sub-maximal, décrit succinctement ci-dessus, faisant appel à p algorithmes 25 adaptés aux codes de Reed-Solomon (on dira que l'on applique au mot reçu courant, respectivement, soit un " procédé de décodage maximal ", soit un " procédé de décodage sub-maximal "). Cet avantage du code de géométrie algébrique selon l'invention pourra éventuellement, d'ailleurs, s'étendre au code selon l'invention dans sa forme la plus générale, telle que décrite succinctement ci-dessus, s'il s'avère qu'il existe un algorithme de correction d'erreurs maximal adapté à ce code. On peut, en pratique, faire usage de cet avantage de diverses manières. Ainsi, selon des caractéristiques particulières, le procédé de décodage pourra comprendre une étape préliminaire consistant à choisir, pour le mot reçu courant, entre les étapes du procédé de décodage " submaximal ", et les étapes du procédé de décodage " maximal ", tels que 10 décrites succinctement ci-dessus, en fonction de critères prédéterminés, par exemple une estimation du bruit du canal. Selon d'autres caractéristiques particulières, le procédé de décodage pourra, pour tout mot reçu, mettre d'abord en oeuvre les étapes du " procédé sub-maximal ", et, au cas o ce procédé n'aboutit pas, déclarer qu'une erreur 15 non corrigible a été détectée, et/ou mettre ensuite en oeuvre les étapes du " procédé maximal ". En effet, comme mentionné ci-dessus, un algorithme de correction d'erreurs peut s'avérer être incapable de proposer un mot corrigé quand le nombre d'erreurs est trop élevé eu égard à son pouvoir de résolution. Quel que soit le procédé de décodage, tel que décrit succinctement 20 cidessus, utilisé, on pourra ensuite obtenir des symboles d'information estimés en ôtant d'au moins une composante û, (I = 1,...,p) les symboles situés aux positions identiques aux positions de la composante ul de même / du mot précodé u correspondant, dans lesquelles des symboles de redondance ont été placés à l'étape c) du codage selon l'invention. On obtient ainsi une estimation 25 des symboles d'information contenus dans le mot a, correspondant. On notera à cet égard que l'invention offre, commodément, la possibilité de ne décoder que les symboles d'information contenus dans certains des mots formant le bloc a, ce qui peut être économiquement avantageux pour certaines applications. C'est par exemple le cas lorsque 30 l'information à transmettre représente des images codées à la source selon une série d'approximations de résolutions différentes. Ainsi, dans le procédé de codage à la source appelé " décomposition en sous-bandes ", on divise chaque image à transmettre en plusieurs blocs de données (appelés " sousbandes ") hiérarchisés, et cela de façon itérative; par exemple, à la première itération, on crée quatre sous-bandes: la première contient les fréquences 5 basses de l'image, la deuxième les hautes fréquences horizontales, la troisième les hautes fréquences verticales et la quatrième les hautes fréquences diagonales, chaque sous-bande contenant quatre fois moins de données (pixels) que l'image originale; à la deuxième itération, la sous-bande basses fréquences est elle-même décomposée en quatre nouveaux blocs contenant 10 les basses fréquences, les hautes fréquences horizontales, les hautes fréquences verticales et les fréquences diagonales relatives à cette sousbande; on poursuit ainsi le processus de décomposition un certain nombre de fois selon les besoins. Au cours du codage de canal selon l'invention, on peut alors faire correspondre le mot a, aux fréquences d'image les plus basses (qui 15 contribuent le plus à l'intelligibilité de l'image, et nécessitent donc la plus grande protection vis-à-vis des erreurs de transmission), le mot a2 aux fréquences plus élevées, le mot a3 aux fréquences encore plus élevées, et ainsi de suite; on pourra alors, selon la qualité de service requise par le système de communication ou par le destinataire des images, ne calculer que la 20 composante ûl du mot post-associé, ou ne calculer que les composantes û1 et û2, ou ne calculer que les composantes ûl, û2 et û3, et ainsi de suite, avant d'en extraire les symboles d'information estimés correspondants. On trouve un autre exemple d'application dans le codage d'images à la source selon la méthode dite " par ondelettes ", telle que définie par la norme JPEG-2000. L'invention concerne également, selon le même premier aspect, un procédé de communication de symboles d'information comprenant les étapes suivantes: 1) on code lesdits symboles d'information conformément à l'un des procédés de codage succinctement décrits ci-dessus, de façon à former des 30 mots de code v = (v vn-î ), 2) on permute les symboles de chaque mot de code v de façon à former un mot à transmettre (O q- V2(q-1) .V(p-)(q-) V vqV2q-1 v.,v ) ±V), 3) on transmet ledit mot v *, 4) on reçoit un mot entrelacé r* = (rOrq -lr2(q-1) r(P-1)(q-),rl,rq,v2q-1. .r(P-1)(q-1)+l r"-1) correspondant au mot v*, 5) on permute les symboles du mot entrelacé r* de façon à former un mot reçu r =(r ,r, ... ,rn l), et 6) on décode le mot reçu r conformément à l'un des procédés de décodage succinctement décrits ci-dessus, adapté audit procédé de codage. Outre les avantages des procédés de codage et de décodage correspondants, ce procédé de communication offre, de par la combinaison d'un entrelacement et d'un désentrelacement inverse de cet entrelacement, une 15 limitation de la propagation d'erreurs en cas de rafale d'erreurs (en anglais, " error burst ") durant la transmission des symboles codés (on rappelle qu'une rafale est une série d'erreurs de fréquence élevée par rapport à la fréquence d'erreurs moyenne sur le canal considéré; on observe de telles rafales aussi bien sur certaines transmissions hertziennes que sur certains enregistrements 20 sur disque dur). En effet, une rafale d'erreurs affectant bp symboles de v* en cours de transmission affectera au plus (b+l) symboles dans chacun des mots u_ (o i = 1,...,p), alors que sans entrelacement, chacun de ces mots uz subirait bp erreurs de transmission. Selon un deuxième aspect, I'invention concerne divers dispositifs. L'invention concerne ainsi, premièrement, un dispositif de codage de symboles d'information selon un code défini sur un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, et de longueur n = p(q-1), o p un entier supérieur à 1, ledit dispositif étant remarquable en ce que, un p-uple d'entiers (t1,...,tp) tels que 30 q-1 > t >t2> ... > tp> 0, et un p-uple de matrices carrées diagonales (Y,...,Yp) de dimension (q-1) sur Fq telles que, pour tout i (1 Selon des caractéristiques particulières, ce dispositif est en outre apte à assigner la valeur y/ (i-1) à l'élément diagonal en position (ii) de chacune desdites matrices Y,, o, pour une équation algébrique en X et Y 20 prédéterminée, ladite équation algébrique possède p solutions distinctes notées y,( Lorsque le code utilisé est un code de géométrie algébrique selon l'invention, ce dispositif pourra comprendre en outre une unité de sélection 10 capable de déterminer, en fonction de critères prédéterminés, si l'on doit appliquer au mot reçu r courant un " procédé de décodage sub-maximal " et/ou un " procédé de décodage maximal " tels que décrits succinctement cidessus. Les avantages de ces dispositifs sont essentiellement les mêmes 15 que ceux des procédés de codage et de décodage correspondants décrits succinctement ci-dessus. L'invention vise également: - un appareil de transmission de données d'information comprenant un dispositif de codage tel que décrit succinctement ci-dessus, ainsi qu'un 20 modulateur pour moduler les données résultant du codage desdites données d'information, - un appareil de réception de données comprenant un démodulateur pour démoduler les données reçues, ainsi qu'un dispositif de décodage tel que décrit succinctement ci-dessus, - un appareil de transmission de données d'information comprenant un dispositif de codage tel que décrit succinctement ci-dessus, un entrelaceur apte à permuter les symboles de chaque mot de code v = (v'Vil, ...,vni) de façon à former un mot à transmettre = (vvq1,v2(q-1),..,v(P 1)(q-1) y,q, .2q-1.(p-v)(q-P)+l Vn-) 30 et un modulateur pour moduler les symboles dudit mot à transmettre v*, -un appareil de réception de données comprenant un démodulateur pour démoduler les données reçues de façon à former des mots reçus entrelacés *-(r q I 2(q-) r(-l)(?l) r ré 2qlr(,p-1)(q-l)+l n-1l o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, p un entier supérieur à 1, et n = p(q-1), un désentrelaceur pour permuter les symboles de chaque mot reçu entrelacé r * de façon à former un mot reçu r = (ro,rl, ...,rn-1), et un dispositif de décodage tel que décrit succinctement cidessus, - un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de codage et/ou de décodage et/ou de communication succinctement exposés ci-dessus, - un moyen de stockage de données partiellement ou totalement 15 amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de codage et/ou de décodage et/ou de communication succinctement exposés ci-dessus, et - un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données 20 programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre l'un des procédés de codage et/ou de décodage et/ou de communication succinctement exposés ci-dessus. Les avantages offerts par ces appareils de transmission, ces appareils de réception, ces moyens de stockage de données et ce programme 25 d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés de codage, de décodage et de communication selon l'invention. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui 30 l'accompagnent, dans lesquels: - la figure 1 est un schéma synoptique d'un système de transmission d'informations selon un mode de réalisation de l'invention, - la figure 2 représente un appareil d'enregistrement de données d'information comprenant un codeur selon l'invention, et - la figure 3 représente un appareil de reproduction de données d'information comprenant un décodeur selon l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations mettant en oeuvre un procédé de communication selon un mode de réalisation de l'invention. Ce système a pour fonction de transmettre des informations de nature quelconque à partir d'une source 100 vers un destinataire ou utilisateur 109. En premier lieu, la source 100 met ces informations sous la forme de symboles appartenant à un certain alphabet (par exemple des octets de bits dans le cas o la taille q de l'alphabet vaut 256), et transmet ces symboles à 15 une unité de stockage 101, qui accumule les symboles de façon à former des ensembles contenant chacun k symboles. Ensuite, chacun de ces ensembles est transmis par l'unité de stockage 101 à une unité de codage 102 qui construit un mot v orthogonal à la matrice de parité H. On va à présent illustrer les procédés de codage et de décodage selon 20 l'invention à l'aide d'un exemple numérique. On notera que cet exemple ne constitue pas nécessairement un choix de paramètres préférentiel pour le codage ou le décodage. Il n'est fourni ici que pour permettre à l'homme du métier de comprendre plus facilement le fonctionnement de l'invention. Considérons donc un code de géométrie algébrique de longueur 1020 25 et de dimension 916 défini, de manière classique, comme suit. L'alphabet des symboles est constitué par les 28 éléments du corps de Galois F256 (c'est-à-dire par des octets de symboles binaires) (ce corps peut être construit à l'aide du polynôme (X8 + X +)X + X2 + 1) défini sur F2). On considère alors la courbe algébrique de genre g = 24 constituée par 30 l'ensemble des solutions dans F256 de l'équation à deux inconnues y4 + y= X17. Pour toute valeur prise par X dans F256, les p = 4 solutions de l'équation correspondante en Y sont elles aussi dans F256. Ces solutions (X,Y) définissent les " points de la courbe " associée à cette équation sur F256. Cette courbe comprend donc 1024 points de coordonnées finies (ainsi qu'un point à l'infini P.). 5 De cet ensemble, on supprime les quatre solutions de l'équation pour lesquelles X = 0, afin de construire des codes " raccourcis ". L'ensemble des points Pj (o j = 1,...,1020) restants va donc constituer l'ensemble de localisation, chaque point Pj servant à identifier lej-ème élément de tout mot de code. Ensuite, on considère l'espace vectoriel L(mP.) de polynômes en X et 10 Y à coefficients dans F256 dont les seuls pôles sont situés en P., et sont d'ordre inférieur ou égal à m, o m est un entier strictement positif (il s'agit donc d'un code de géométrie algébrique dit " à un point "). Cet espace vectoriel, qui est de dimension supérieure ou égale à (m-g+1) (égale si m > 2g-2), possède une base constituée par les monômes (XrY), o rest un entier positif ou nul, s est un entier 15 compris entre 0 et 3, et: 17s + 4r On définit classiquement une matrice de parité H' de la manière suivante: l'élément en ligne i et colonne j de cette matrice est égal au i-ème monôme de ladite base (avec 1 .,1020) de la courbe algébrique. Prenons par exemple: m = 127; on obtient 20 alors n-k =104,etdonck =916...DTD: En fait, il nous sera plus commode de définir le code au moyen d'une matrice H un peu différente de H' et qui s'écrit: H(32) H(32) H(32) H(32) H(28)Y I H(28)Y 2 H(28)Y 3 H(28)y4 H = H(24)y2 H(24)Y22 H(24) 2 H(24)Y2 ' (1) H(20)y3 H(20)y3 H(20)Y33 H(20)y34 o -Y 2 3 254 H(t) 2 74 6. .. H(t)6 723 (2) l L 72t 73t 255-t et chaque matrice Y, est définie comme étant la matrice carrée diagonale de dimension 255 dont l'élément de position (i,l) est égal à y, (fi 1) Le code orthogonal à la matrice H' est différent du code orthogonal à la matrice H, mais il lui est équivalent en ce sens que chaque mot du premier code est 5 identique à un unique mot du second code multiplié par une matrice diagonale Z, de taille 1020 x 1020, telle que Z,, = y On va décrire à présent la façon dont, selon ce mode de réalisation de l'invention, l'unité de codage 102 construit un mot v orthogonal à la matrice de parité H ci-dessus. L'unité de codage 102 forme d'abord des blocs d'information a de longueur k = 916 en puisant des symboles successifs dans l'unité de stockage 101, ces blocs a étant structurés en quatre mots selon a= [l a2 a3 a4], o le mot a, est de longueur 223, le mot a2 est de longueur 227, le mot a3 est 15 de longueur 231, et le mot a4 est de longueur 235. On forme alors un " mot pré-codé " Y = [y 1 Y 2 Y 3 Y 4] de la façon suivante: on obtient le mot -I de longueur 255 en complétant a, avec des symboles de redondance de façon à ce que: H(32) U T =0 (3a) et le mot u-2 de longueur 255 en complétant a2 avec des symboles de redondance de façon à ce que: H(8) Y-2 = (3b) et le mot u3 de longueur 255 en complétant a3 avec des symboles de 25 redondance de façon à ce que: H (24) Y3T =0, (3c) et enfin le mot U4 de longueur 255 en complétant a4 avec des symboles de redondance de façon à ce que: H(20) *4 T ==0. (3d) Considérons alors les mots v_ =[VylVY2 v3 v4] , o les mots v, v2, v3, et v4 sont tous quatre de longueur 255 et obéissent au système d'équations suivant: vI + V2 + V3 + v4 = Ul, _VlY 1+ v2Y 2 + v3Y3 + 4Y4 = U2 1V lY21 + V222 + V323 + 424 = u3, (4) Vi 3 y3 + y3 y3 lY1 + V2Y32 + v3Y33 + v4Y3 4= u4. On peut vérifier facilement que ces mots v sont orthogonaux à la matrice H de l'équation (1): il s'agit donc bien de mots de code associés à H. Les matrices Y, étant régulières, le système d'équations (4) possède toujours une solution unique, qui est donnée par: VlIK1 = u1Y2Y3Y4 + u2(Y2Y3 +Y3Y4 +Y4Y2)+u3(Y2 + Y3 + Y4)+u4,(5a) V2K2 =- 1UY1Y3Y4 + U2(Y1Y3 + Y3Y4 + Y4Y1)+ u3(Y1 + Y3 + Y4) +U4 (5b) v3K3 = UI1YY2Y4 + u2(Y1Y2 + Y2Y4 + Y4YI) + u-3 (Y1 + Y2 + Y4) +u4,(5c) v4K4 =uIY1Y2Y3 + u2(Y1Y2 +Y2Y3 + Y3Y1)+u3(Y1 + Y2 +Y3)+u4,(5d) o 1 5 K1 =Y2Y3Y4 +YI(Y2Y3+Y3Y4 + Y4Y2)+ Y (Y2 +Y3 +Y4)+Y, (6) et K2, K3 et K4 sont obtenus par permutation circulaire des indices des matrices Y,. Dans ce mode de réalisation de l'invention, I'unité de codage 102 transmet ensuite les mots v à un entrelaceur 20, qui fournit un " mot 20 entrelacé " v*, de longueur 1020, en permutant les symboles du mot v = (v ,v, ...v 9) de la manière suivante: V*= (V0,V255 V510,V765 V1,V256 V511 V766.. V,1019) Ainsi, une rafale d'erreurs affectant 4b symboles de v * en cours de 25 transmission affectera au plus (b+1) symboles dans chacun des mots ul, u2, U3, et U4 (c'est-à-dire (4b+4) erreurs en tout), comme on le voit d'après le système d'équations (4), alors qu'en l'absence de l'entrelaceur 20, chacun de ces mots subirait 4b erreurs de transmission (c'est-à-dire 16b erreurs en tout). L'entrelaceur 20 transmet ensuite les mots entrelacés v* à un 5 modulateur 103. Ce modulateur 103 associe un symbole de modulation à chaque nombre prédéterminé de symboles binaires (" bits "). Puis ces symboles de modulation sont transmis à un enregistreur (ou à un émetteur) 104, qui insère les symboles dans un canal de transmission. Ce canal peut être par exemple un stockage sur un support adapté tel qu'un DVD ou un disque 10 magnétique ou encore une bande magnétique. Il peut correspondre également à une émission filaire ou non-filaire comme c'est le cas d'un lien radio. Le message transmis, après avoir été affecté par un " bruit de transmission " dont l'effet est de modifier ou d'effacer, aléatoirement, certaines des données transmises, parvient à un lecteur (ou à un récepteur) 105. Le lecteur (ou récepteur) 105 transmet alors ces symboles élémentaires au démodulateur 106, qui les transforme en symboles de l'alphabet Fq. Dans ce mode de réalisation (o les mots de code v sont entrelacés avant transmission), ces symboles reçus sont groupés en " mots reçus entrelacés " r *, de longueur 1020, qui sont soumis à un désentrelaceur 20 30 chargé de transformer chaque mot r * en un " mot reçu " (sous-entendu désentrelacé) r, en inversant la permutation opérée par l'entrelaceur 20. Ce mot r est ensuite traité par une unité 107, qui met en oeuvre un algorithme de correction d'erreurs destiné à fournir un " mot postassocié " -[ k1 _ 2 3 41 X o les mots ûl, û2, û3 et 4 sont tous de longueur 255, qui est une estimation du mot pré-codé u. Selon un mode de réalisation de l'invention, l'unité 107 est adaptée à mettre en oeuvre au moins deux algorithmes, à savoir: - un algorithme maximal tel que l'algorithme dit " de Feng-Rao ", et 30 - un algorithme sub-maximal, tel que celui décrit ci-dessous. Dans ce mode de réalisation, une unité de sélection 40 détermine lequel des deux algorithmes doit être utilisé pour le mot reçu en cours de traitement, en fonction de divers paramètres prédéterminés, qui incluent notamment une évaluation (directe ou indirecte) du bruit du canal. Si l'unité de sélection 40 détermine que le bruit de transmission courant n'est pas trop élevé, elle commande à l'unité de correction d'erreurs 107 de mettre en oeuvre un algorithme sub-maximal (donc moins performant, mais plus économique qu'un algorithme maximal), qui, dans le mode de réalisation considéré ici,.opère de la manière suivante. L'unité de correction d'erreurs 107 calcule d'abord, en partant du mot reçu r, un " mot post-reçu " =[ s_12 S3 54] 1 o les mots SI, s2, s3 et s4 sont tous de longueur 255, que l'on peut interpréter comme étant la version " bruitée " du mot pré- codé u. Ce mot s est 15 donc obtenu (voir le système d'équations (4)) d'après: -S = r-1+ + r2 + 3 + r4, s3 = rl2 2 2 + 2 (7a-d) s = rlYl + r2Y2 + r3Y + r4Y4. -s3 y + r_:y 4 5s4 =lY1 + E2Y32 + r3Y33 4 Pour obtenir le mot post-associé û, on applique alors indépendamment à chacune de ses quatre composantes un algorithme quelconque apte à corriger les erreurs affectant des mots codés au moyen d'un 20 code de Reed-Solomon. Ainsi, l'on obtient (voir les équations (3a-d)): -l en corrigeant le mot s1 d'après le vecteur de syndromes d'erreurs H(32) ._SlT û2 en corrigeant le mot s2 d'après le vecteur de syndromes d'erreurs H(28) . 52T 3 en corrigeant le mot s3 d'après le vecteur de syndromes d'erreurs H(24) _s3T et û4 en corrigeant le mot s4 d'après le vecteur de syndromes d'erreurs H/(20). _S4T Cette quadruple correction d'erreurs est relativement simple et rapide en vertu des qualités des algorithmes connus adaptés aux codes de Reed5 Solomon, et ce d'autant plus que l'on corrige des mots de longueur 255 définis sur F256. Comme expliqué ci-dessus, cette plus grande simplicité est la contrepartie d'une réduction du pouvoir de résolution; plus précisément, compte tenu de la dimension des matrices de parité respectives, on ne pourra corriger ainsi, au mieux, que 16 erreurs dans s1, 14 erreurs dans s2, 12 erreurs 10 dans s3, et 10 erreurs dans s4. Si en revanche le bruit dans le canal est élevé, c'est-à-dire si le taux moyen d'erreurs de transmission dépasse un seuil prédéterminé (l'unité de sélection 40 pourra par exemple déterminer cela en mesurant le nombre d'erreurs corrigées sur un nombre prédéterminé de mots reçus précédents, ou 15 bien en constatant que la tentative de correction, décrite cidessus, au moyen de l'algorithme sub-maximal n'a pas abouti), I'unité de sélection 40 commande à l'unité de correction d'erreurs 107 de mettre en oeuvre l'algorithme maximal. Plus précisément, l'application de cet algorithme à r fournit un mot de code associé à r, c'est-à-dire une estimation 20 v = [ 12 v3 4] o les mots -9, y2, y3, et v4 sont tous de longueur 255, du mot de code v transmis. On obtient alors le mot post-associé d'après les équations: - = v i + 2 + v3 + 4 a2 f= _9I + 2Y2 + v_3Y3 + _4Y4 25 2 + 2 2 2 2 û3 = v2 ±v2Y2 3+ v33 4+ 44(8a-d) 4 = Vl31 + 232 + 3Y33 + v4Y34 Dans l'exemple numérique considéré ici, l'algorithme de Feng-Rao peut corriger jusqu'à 40 erreurs dans le mot reçu r de longueur 1020. Il fait donc nettement mieux que l'algorithme sous-maximal, et on fera appel à lui si la qualité de service le requiert, mais en sachant que cet algorithme maximal est complexe, et donc coûteux, ne serait-ce qu'en durée de traitement. On notera que le taux de codage k1n de ce code de géométrie 5 algébrique est égal à 916/1020 = 0.898. Un code de Reed-Solomon défini sur F256, de longueur 255 et possédant le même taux de codage aurait une dimension égale à 229, de sorte qu'il faudrait coder les 916 symboles d'information sur quatre mots appartenant à ce code de Reed-Solomon; la distance minimale de ce code étant égale à 27, on pourra corriger au maximum 10 un nombre d'erreurs égal à 13 dans chacun -de ces quatre mots; on pourra ainsi corriger 52 erreurs en tout, mais seulement dans les cas favorables (0,3 % des cas) o les erreurs sont réparties en nombre égal sur ces quatre mots. Cela est à comparer avec les performances du code selon l'invention qui est capable, comme on l'a dit, de corriger tous les mots contenant au plus 40 15 erreurs quand on utilise l'algorithme maximal; quand on utilise l'algorithme submaximal, le code selon l'invention est capable d'obtenir correctement ûl si le mot reçu r comporte au plus 16 erreurs, et d'obtenir correctement û 2 si ce mot reçu comporte au plus 14 erreurs, et d'obtenir correctement si ce mot reçu comporte au plus 12 erreurs, et enfin d'obtenir correctement û 4 si ce mot reçu 20 comporte au plus 10 erreurs. On dit que l'on a affaire ici à un " système de protection inégale contre les erreurs " de transmission (en anglais, " unequal errorprotection " ou UEP). Une fois la correction terminée, l'unité 107 transmet le mot postassocié û! à une unité de suppression de la redondance 108, qui en extrait 25 k = 916 symboles d'information estimés, en ôtant les symboles de redondance aux positions du mot o l'unité 102 a placé des symboles de redondance au cours du codage. Enfin, ces symboles d'information sont fournis à leur destinataire 109. On peut considérer que les unités 40, 107 et 108 forment 30 conjointement un " décodeur " 10. On notera que dans le mode de réalisation décrit ci-dessus, le décodeur 10 fournit une estimation de la totalité des k symboles d'information initialement stockés dans le bloc a. Mais comme expliqué en introduction, l'invention offre également la possibilité de ne décoder que les symboles 5 d'information contenus dans certaines des (quatre, dans cet exemple) composantes du mot post-associé ô: de tels modes de réalisation peuvent être économiquement avantageux pour certaines applications, telles que la transmission d'images codées à la source. Le schéma synoptique de la figure 2 représente, de façon très 10 schématique, un appareil d'enregistrement de données d'information 48 incorporant le codeur 102. Cet appareil 48 comprend un clavier 911, un écran 909, une source d'informations externe 100, un modulateur 103 et un enregistreur de données modulées 104, conjointement reliés à des ports d'entrée/sortie 903 d'un 15 dispositif de codage 102 qui est réalisé ici sous la forme d'une unité logique. Le dispositif de codage 102 comporte, reliés entre eux par un bus d'adresses et de données 902: - une unité centrale de traitement 900, une mémoire vive RAM 904, - une mémoire morte 905, et - lesdits ports d'entrée/sortie 903. Chacun des éléments illustrés en figure 2 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments 25 connus ne sont donc pas décrits ici. On observe, cependant, que: - la source d'informations 100 pourrait être, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait par exemple fournir des séquences de signaux représentatifs de parole, de 30 messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, et - l'enregistreur 104 est adapté à enregistrer des données modulées sur un support tel qu'un disque magnétique. La mémoire vive 904 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, 5 dans la description, les mêmes noms que les données dont ils conservent les valeurs. On observera, au passage, que le mot " registre " désigne, à travers la présente description, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier) au sein d'une mémoire vive ou d'une mémoire 10 morte. La mémoire vive 904 comporte notamment les registres suivants - un registre " symbolesinformation " dans lequel sont conservés les symboles d'information appartenant à Fq, - un registre " mots-précodés ", dans lequel sont conservés les mots 15 u, et - un registre " motscode ", dans lequel sont conservés les mots de code v avant qu'ils ne soient soumis au modulateur 103. La mémoire morte 905 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils 20 conservent: - le programme de fonctionnement de l'unité centrale de traitement 900, dans un registre " programme ", - la longueur des mots de code enregistrés, dans un registre " longueurmots ", - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre " q ", - le nombre de symboles d'information servant à construire un mot de code, dans un registre " k ", et - la matrice de parité du code, dans un registre " H ". Le schéma synoptique de la figure 3 représente, de façon très schématique, un appareil de reproduction de données d'information 70 incorporant le décodeur 10. Cet appareil 70 comprend un clavier 711, un écran 709, un destinataire d'informations externe 109, un lecteur de données modulées 105 et un démodulateur 106, conjointement reliés à des ports d'entrée/sortie 703 du décodeur 10 qui est réalisé ici sous la forme d'une unité logique. Le décodeur 10 comporte, reliés entre eux par un bus d'adresses et de données 702: - une unité centrale de traitement 700, - une mémoire vive (RAM) 704, - une mémoire morte (ROM) 705, et - lesdits ports d'entrée/sortie 703. Chacun des éléments illustrés en figure 3 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - le destinataire d'informations 109 pourrait être, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait être adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou 20 ATM, sous forme de séquences de données binaires, et - le lecteur 105 est adapté à lire des données modulées enregistrées sur un support tel qu'un disque magnétique. La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, 25 dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment les registres suivants: - un registre " motsreçus ", dans lesquels sont conservés les mots reçus r, - un registre " motsassociés ", dans lequel sont conservés, le cas 30 échéant, les mots v résultant de la correction de r par l'algorithme maximal, - un registre " mots postreçus ", dans lequel sont conservés, le cas échéant, les mots s obtenus à partir de r au moyen des équations (7a-d), - un registre " mots postassociés ", dans lequel sont conservés les mots û résultant de la mise en oeuvre soit de l'algorithme maximal, soit des algorithmes sub-maximaux, et - un registre " symbolesinformation ", dans lequel sont conservés les symboles résultant de la suppression de la redondance. La mémoire morte 705 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: le programme de fonctionnement de l'unité centrale de traitement 700, 10 dans un registre " programme ", - la longueur des blocs de données transmises, dans un registre " longueurblocs ", - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre " q ", - le nombre de symboles d'information servant à construire un mot de code, dans un registre " k ", et - la matrice de parité du code, dans un registre " H ". On notera que, dans certaines applications, il sera commode d'utiliser le même dispositif informatique (fonctionnant en mode multi-tâches) 20 pour l'échange, c'est-à-dire à la fois l'émission et la réception, de signaux selon l'invention; dans ce cas, les unités 10 et 102 seront physiquement identiques. On a décrit ci-dessus à titre d'exemple une application de l'invention au stockage de masse des données, mais il est clair que les procédés selon l'invention peuvent tout aussi bien être mis en oeuvre au sein d'un réseau de 25 télécommunications, auquel cas l'unité 105 par exemple pourrait être un récepteur adapté à mettre en oeuvre un protocole de transmission de données par paquets sur un canal hertzien. REVENDICATIONS 1. Procédé de codage de symboles d'information selon un code 5 défini sur un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, et de longueur n = p(q-1), o p un entier supérieur à 1, caractérisé en ce qu'il comprend les étapes suivantes: a) on choisit un p-uple d'entiers (t1,...,tp) tels que q-1 >t1 >t2> ... > tp > 0, et un p-uple de matrices carrées diagonales (Y1,...,Yp) de dimension (q-1) sur Fq telles que, pour tout i (1 3. Procédé de codage selon la revendication 1 ou la revendication 2, caractérisé en ce que chaque mot a, (o I = 1,...,p) représente une approximation de résolution respective d'une image codée à la source. 4. Procédé de décodage de données reçues résultant de la 10 transmission de symboles codés selon la revendication 1, caractérisé en ce qu'il comprend les étapes suivantes: e) on calcule, à partir du mot reçu r = [rl r2.. rp] , o chaque mot rl (I = 1,...,p) est de longueur (q-1), au moins une des 15 composantes s1 (o / = 1,...,p) de longueur (q-1), du " mot post-reçu " s = [s1 s2... Sp], d'après: SiX = rl + r2 + + rp _S2 = rlY1 + r2Y2 + ... + rpYp, s3 = rlYY21 + r _2Y2 + + rpY2p, s rYP- + rYp- + + r yp-l Sp - rl 2 2p p et f) on calcule au moins une des composantes ûl (o = 1,...,p), de 20 longueur (q-1), du " mot post- associé " = [ûlû2...ûp], en corrigeant le mot si de même / d'après le vecteur de syndromes d'erreurs H(tl) Às T. 5. Procédé de décodage de données reçues résultant de la transmission de symboles codés selon la revendication 2, caractérisé en ce qu'il comprend les étapes suivantes: e') on applique à chaque mot reçu r un algorithme de correction d'erreurs maximal, de manière à obtenir une estimation V = [-l -2 '" Pp], o chaque mot _l (I = 1,...,p) est de longueur (q-1), du mot transmis v correspondant, et f') on calcule au moins une des composantes û, (o / = l,...,p), de longueur (q-1), du " mot post-associé " û = [ûl 22... p], d'après: Li = - Y + 2 + ' + Vp' 2 = V1Y1 + v2Y2 + .. + VpYp, 3 = vlY21 + 2Y2 + + pY2p, 1 22+ ûp= uyP- + 2y P- + - + yp-1 -p 1 -2 2-PpP 6. Procédé de décodage de données reçues résultant de la transmission de symboles codés selon la revendication 2, caractérisé en ce qu'il comprend une étape préliminaire consistant à choisir, pour le mot reçu 10 courant, entre les étapes du procédé selon la revendication 4, et les étapes du procédé selon la revendication 5, en fonction de critères prédéterminés. 7. Procédé de décodage de données reçues résultant de la transmission de symboles codés selon la revendication 2, caractérisé en ce que, pour tout mot reçu, on met d'abord en oeuvre un algorithme de correction 15 d'erreurs selon la revendication 4,. et en ce que, au cas o cet algorithme n'aboutit pas, on déclare qu'une erreur non corrigible a été détectée. 8. Procédé de décodage de données reçues résultant de la transmission de symboles codés selon la revendication 2, caractérisé en ce que, pour tout mot reçu, on met d'abord en oeuvre un algorithme de correction 20 d'erreurs selon la revendication 4, et en ce que, au cas o cet algorithme n'aboutit pas, on met ensuite en oeuvre un algorithme de correction d'erreurs selon la revendication 5. 9. Procédé de décodage selon l'une quelconque des revendications 4 à 8, caractérisé en ce qu'il comprend en outre l'étape consistant à obtenir des 25 symboles d'information estimés en ôtant d'au moins une composante û_ (I = 1,...,p) les symboles situés aux positions identiques aux positions de la composante ul de même / du mot pré-codé u correspondant, dans lesquelles des symboles de redondance ont été placés à l'étape c) du procédé selon la revendication 1. 10. Procédé de communication de symboles d'information comprenant les étapes suivantes: 1) on code lesdits symboles d'information conformément à un procédé de codage selon la revendication 1, de façon à former des mots de code v=vl,. ,n-1) _ = (V 'Vil...vnIV) 2) on permute les symboles de chaque mot de code v de façon à former un mot à transmettre _v* = (vOvq-lv2(q-l) . Iv(p-1)(q-1),vlvqv2q-1 v(p-1)(q-1)+l vn-l) 3) on transmet ledit mot v*, 4) on reçoit un mot entrelacé r* = (rOrq-l,r2(q-1),... r(P-1)(q-1),rlrq, v2q-1 r(p-1)(q-1)+l...,rn-1) correspondant au mot v *, 5) on permute les symboles du mot entrelacé r* de façon à former un mot reçu r = (rO,rl,...,rn I), et 6) on décode le mot reçu r conformément à un procédé de décodage selon la revendication 4 ou la revendication 5. 11. Dispositif de codage (102) de symboles d'information selon un 20 code défini sur un corps de Galois Fq, o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, et de longueur n = p(q-1), o p un entier supérieur à 1, caractérisé en ce que, un p-uple d'entiers (t1,.. .,tp) tels que q-1 >tl >t2> ... > tp>0, et un p-uple de matrices carrées diagonales (Y1,...,Yp) de dimension (q-1) sur 25 Fq telles que, pour tout i (1 12. Dispositif de codage selon la revendication 11, caractérisé en ce qu'il est en outre apte à assigner la valeur y, (yi-1) à l'élément diagonal en position (i,) de chacune desdites matrices Y,, o, pour une équation algébrique 15 en X et Y prédéterminée, ladite équation algébrique possède p solutions distinctes notées y (y'-1) (o / = 1, .... ,p) pour toute valeur ri-1 (i = 1,...,q-1) prise parX. 13. Dispositif de décodage (10) de mots reçus r résultant de la transmission de mots v codés selon la revendication 1, caractérisé en ce qu'il 20 comprend: - une unité de correction d'erreurs (107) apte à appliquer à chaque mot reçu r un algorithme de correction d'erreurs, de manière à fournir au moins une composante û (o / = 1,...,p) d'un " mot post-associé " û, et - une unité de suppression de la redondance (108) apte à ôter de ladite 25 composante û, les symboles situés aux positions identiques aux positions de la composante u, de même / du mot pré-codé u correspondant, dans lesquelles des symboles de redondance ont été placés lors du codage. 14. Dispositif de décodage de mots reçus r résultant de la transmission de mots v codés selon la revendication 2, caractérisé en ce qu'il comprend: une unité de sélection (40) capable de déterminer, en fonction de critères prédéterminés, si l'on doit appliquer au mot reçu r courant les étapes du procédé selon la revendication 4, et/ou les étapes du procédé selon la revendication 5, - une unité de correction d'erreurs (107) apte à appliquer à chaque mot reçu r un algorithme de correction d'erreurs, de manière à fournir au moins une composante û1 (o I = 1,... p) d'un " mot post-associé " û, et - une unité de suppression de la redondance (108) apte à ôter de ladite composante û1 les symboles situés aux positions identiques aux positions de la 15 composante ul de même I du mot pré-codé u correspondant dans lesquelles des symboles de redondance ont été placés lors du codage. 15. Appareil (48) de transmission de données d'information, caractérisé en ce qu'il comprend un dispositif de codage selon la revendication 11 ou la revendication 12, ainsi qu'un modulateur (103) pour moduler les 20 données résultant du codage desdites données d'information. 16. Appareil (70) de réception de données, caractérisé en ce qu'il comprend un démodulateur (106) pour démoduler les données reçues, ainsi qu'un dispositif de décodage selon la revendication 13 ou la revendication 14. 17. Appareil de transmission (48) de données d'information, 25 caractérisé en ce qu'il comprend un dispositif de codage selon la revendication 11 ou la revendication 12, un entrelaceur (20) apte à permuter les symboles de chaque mot de code v = (v'Vil, ...,nV) de façon à former un mot à transmettre V* = (vo,vq,v2(q-1),...,V(P-1)(q-1),V1,Vq, V2q-l... v(P1>(qI) Vn-1) et un modulateur (103) pour moduler les symboles dudit mot à transmettre v*. 18. Appareil (70) de réception de données, caractérisé en ce qu'il comprend un démodulateur (106) pour démoduler les données reçues de façon à former des mots reçus entrelacés (rO rq- r 2(q-l) r(P-l)(q-l) l q 2q-1 r(P-)(q-')+l rnl o q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, p un entier supérieur à 1, et n = p(q-1), un désentrelaceur (30) pour permuter les symboles de chaque mot reçu entrelacé r * de façon à former un mot reçu r =(ro,rl, ...,rn-l), et un dispositif de décodage selon la revendication 13 ou la revendication 14. 19. Moyen de stockage de données inamovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage selon l'une quelconque des revendications 1 à 3, et/ou d'un procédé de décodage selon l'une quelconque des revendications 4 à 9, et/ou d'un procédé de communication selon la 15 revendication 10. 20. Moyen de stockage de données partiellement ou totalement amovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage selon l'une quelconque des revendications 1 à 3, et/ou d'un procédé de 20 décodage selon l'une quelconque des revendications 4 à 9, et/ou d'un procédé de communication selon la revendication 10. 21. Programme d'ordinateur, caractérisé en ce qu'il contient des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit 25 dispositif de traitement de données met en oeuvre un procédé de codage selon l'une quelconque des revendications 1 à 3, et/ou d'un procédé de décodage selon l'une quelconque des revendications 4 à 9, et/ou d'un procédé de communication selon la revendication 10.