Brevet FR2865083A1 — publié le 20050715

La présente invention concerne les systèmes de communication ou d'enregistrement de données dans lesquels, afin d'améliorer la fidélité de la transmission ou du stockage, on soumet les données à un codage de canal. Elle concerne plus particulièrement un procédé de décodage, ainsi que les dispositifs et appareils destinés à mettre en oeuvre ce procédé. On rappelle que le codage de canal dit en blocs consiste, quand on forme les mots de code envoyés à un récepteur ou enregistrés sur un support de données, à introduire une certaine redondance dans les données. Plus précisément, on transmet, au 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 > k de symboles appartenant à cet alphabet, qui constituent les composantes des mots de code: v = (vl,v2, ...,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 Galois , noté Fq, dont les éléments non-nuls peuvent être commodément identifiés comme étant chacun égal à y pour une valeur correspondante de i, où i =1,...,q -1, et où y est une racine (q l)eme primitive de l'unité dans Fq. En particulier, certains codes, appelés codes linéaires , sont tels que toute combinaison linéaire de mots de code (avec les coefficients pris dans l'alphabet) est encore un mot de code. Ces codes peuvent, de façon commode, être associés à une matrice H de dimension (n k)x n, 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. vT = 0 (où l'exposant T indique la transposition) ; on dit alors que le code est orthogonal à cette matrice H. 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. II 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 d'erreurs s = H É rT = H É eT. 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 le mot reçu est erroné, 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é. Habituellement, cette première étape est décomposée en deux sous-étapes: d'abord, on identifie dans le mot reçu quelles sont les composantes dont la valeur est erronée, puis on calcule la valeur corrigée de ces composantes. La seconde étape consiste simplement à inverser le procédé de codage. Dans la situation idéale où toutes les erreurs de transmission ont été corrigées, on retrouve ainsi les symboles d'information initiaux. On notera que dans le cadre de la présente invention, on parlera souvent, pour faire court, de décodage pour désigner uniquement la première de ces étapes, étant entendu que l'homme du métier est capable sans difficulté de mettre en oeuvre la seconde étape. 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 d'emplacements où deux mots de même longueur possèdent un symbole différent. On appelle distance minimale d d'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 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 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. Parmi les codes connus, on peut citer les codes dits de Reed- Solomon , qui sont réputés pour leur efficacité. Ce sont des codes linéaires dont la distance minimale d est égale à (n - k + 1). La matrice de parité H du code de Reed-Solomon de dimension k et de longueur n (où n est nécessairement égal à (q -1) ou à un diviseur de (q -1)) est une matrice à (n - k) lignes et à n colonnes, qui a la structure d'une matrice de Vandermonde. Cette matrice de parité H peut être définie par exemple en prenant HIC = a(i+i)> (0 i 5 n - k -1, 0 j Dans les supports d'information modernes, par exemple dans les disques durs d'ordinateurs, les CD ( compact discs ) ou encore les DVD ( 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, comme indiqué ci-dessus, la longueur n des mots dans les codes de Reed- Solomon est inférieure à la taille q de l'alphabet des symboles. Par conséquent, si l'on souhaite disposer d'un code de Reed-Solomon 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 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 Algebraic Geometric Codes , par J.H. van Lint, dans Coding Theory and Design Theory , 1 ère partie, IMA Volumes Math. Appt., volume 21, Springer-Verlag, Berlin, 1990). Ces codes sont construits à partir d'un ensemble de n couples (x, y) de symboles appartenant à un corps de Galois Fq choisi; cet ensemble de couples est appelé ensemble de localisation ( locating set en anglais). De manière générale, il existe une équation algébrique à deux inconnues X et Y telle que les couples (x, y) de cet ensemble de localisation soient tous des solutions de cette équation algébrique. Les valeurs de x et de y de ces couples peuvent être considérées comme les coordonnées de points Pi (où j =1,...,n) formant une courbe algébrique . 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. Pour q et g donnés, certaines courbes algébriques, dites maximales , permettent d'atteindre une longueur égale à (q + 2g J), qui peut être très élevée; par exemple, avec une taille d'alphabet égale à 256 et un genre égal à 120, on obtient des mots de code de longueur 4096. On définit classiquement une matrice de parité pour un code de géométrie algébrique dit à un point de la manière suivante. A tout monôme h = X SY' , où s et t sont des entiers positifs ou nuls, on associe un poids (voir détails plus bas). Si, pour un entier p 0, il existe au moins un monôme dont le poids est p, on dit que p est un poids réalisable . Soient pl Les codes de géométrie algébrique sont avantageux quant à leur distance minimale d, qui est au moins égale à (n-k +1-g), et, comme on l'a dit, quant à la longueur des mots de code, 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 Hrholdt et Ruud Pellikaan intitulé On the Decoding of Algebraic-Geometric Codes , IEEE Trans. Inform. Theory, vol. 41 n 6, pages 1589 à 1614, novembre 1995). De manière générale, plus la courbe algébrique utilisée est de genre g élevé et plus les mots de code sont de grande longueur, mais aussi plus le décodage est complexe. On connaît, par exemple, un algorithme de décodage pour codes de géométrie algébrique d'après l'article de A.N. Skorobogatov et S.G. Vlâdut intitulé On the Decoding of Algebraic-Geometric Codes , IEEE Trans. Inform. Theory, vol. 36 n 5, pages 1051 à 1060, novembre 1990). Un autre exemple d'algorithme est divulgué dans l'article de M. Sakata et al. intitulé Generalized Berlekamp-Massey Decoding of AlgebraicGeometric Codes up to Half the Feng-Rao Bound (IEEE Trans. Inform. Theory, vol. 41, pages 1762 à 1768, novembre 1995). Cet algorithme peut être vu comme une généralisation de l'algorithme de Berlekamp-Massey aux codes de géométrie algébrique définis sur une courbe de genre non-nul. Un autre exemple encore est divulgué dans l'article de M. O'Sullivan intitulé A Generalization of the Berlekamp-Massey-Sakata Algorithm (preprint 2001). Or les auteurs de la présente invention ont découvert que l'on pouvait concilier les propriétés, a priori contradictoires, de genre g élevé et de décodage peu complexe, dans le cas où la courbe algébrique est d'un type particulier appartenant à la classe générale des produits fibrés , et que l'on va définir à présent. Soit un certain nombre où ,u est un entier supérieur à 1, d'équations algébriques sur Fq, où q=22'' et p est un entier strictement positif, ayant toutes, pour i = 0, u 1, la même forme générale Ye+Y =/3,f(X) (1.i) gouvernant les inconnues X et Y. , et où : É e = 2'0, où est un entier strictement positif, f (X) est un polynôme de degré impair en X, É les /3; sont des éléments de Fq, , où q'= 2p, qui sont linéairement indépendants sur F2, et É 2u9 On pose ensuite p-1 Z=12;Y, (2) t=o où les coefficients 2; appartiennent à Fq, et sont tous non-nuls. Enfin, on élimine les Y entre les équations (1.0 et l'équation (2), et on choisit les coefficients 2. de telle sorte que cette élimination aboutisse à une équation de la forme g(Z) = (3f (X) , (3) où A' appartient à Fq,. Dans le cadre de la présente invention, l'équation (3) sera appelée produit fibré des équations (1. i), et ces dernières seront appelées équations composantes du produit fibré (3). On peut montrer que dans l'équation (3), g(Z) est un polynôme en Z de degré 2'1'1' dont les coefficients sont nuls pour les puissances de Z qui ne sont pas égales à une puissance de e = 2'0; il en résulte en particulier que l'équation (3) est du type C(a,b) , défini plus bas, et que le code de géométrie algébrique défini sur cette équation est un code à un point . L'invention concerne donc, selon un premier aspect, un procédé de décodage d'un code de géométrie algébrique à un point défini sur une courbe algébrique représentée par une équation en X et Z de degré 2/19 en Z, où çP est un entier strictement positif et p un entier supérieur à 1, obtenue en prenant le produit fibré de p équations algébriques composantes, chacune desdites équations composantes gouvernant l'inconnue X et une inconnue Y, où i = 0,...,p -1, et étant de degré 2'0 en Yi. Ce procédé est remarquable en ce qu'il comprend le décodage de 2(11-1 codes amassés , tous définis sur une même courbe algébrique représentée par l'une desdites équations 15 composantes. Comme expliqué en détail ci-dessous, le procédé selon l'invention repose sur la subdivision de l'ensemble de localisation du code en sousensembles que nous appellerons amas . Par définition, un amas est associé à une valeur de x donnée parmi les solutions de l'équation (3) et à une valeur de yo donnée parmi les solutions de l'équation (1.0), les autres coordonnées yi, y2, ..., y/j_i pouvant prendre chacune toutes les valeurs qui sont solutions des équations (1.i) où i 0 (on peut naturellement échanger le rôle de Yo avec celui de n'importe quelle inconnue Yi, où i 0). Chaque amas selon l'invention comprend donc au plus 2('-' points de l'ensemble de localisation. Grâce à l'invention, on remplace le décodage de mots reçus résultant de la transmission de mots de grande longueur, codés conformément à un code de genre élevé défini sur une courbe algébrique représentée par un produit fibré, au décodage moins complexe de codes amassés définis sur une courbe algébrique représentée par une équation de degré plus faible que le degré du produit fibré, et donc généralement de genre plus faible également. Ces codes amassés étant définis sur la même courbe algébrique, ils sont tous de même longueur, qui est, comme on le verra dans les exemples présentés ci-dessous, souvent nettement moindre que la longueur du code défini sur la courbe algébrique représentée par le produit fibré. On verra ci-dessous, à l'aide d'un exemple de réalisation, que le procédé de décodage selon l'invention permet de corriger quelquefois plus, et quelquefois moins d'erreurs de transmission que les procédés classiques tels que celui de O'Sullivan, selon la façon dont les erreurs sont produites par le canal: à ce titre, le procédé selon l'invention est avantageux lorsque le canal produit des erreurs en rafale ( burst-type errors en anglais) plutôt que des erreurs d'occurrence aléatoire. Selon des caractéristiques particulières, un mot r ayant été reçu, le procédé de décodage comprend les étapes suivantes: -pours=0, ...,2(1-1 1: É on calcule le mot reçu amassé rs dont chaque composante rs (x, yo) est une combinaison linéaire des composantes de r indexées par le couple (x, yo) , et est effacée Si au moins une de ces composantes est considérée comme douteuse par le récepteur, et on calcule le vecteur de syndromes d'erreurs 6,. = H( rs.T, où la matrice H( est la matrice de parité d'un code amassé, - on essaye de calculer un mot vo en corrigeant le mot r0 d'après le vecteur de syndromes d'erreurs 6o au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements , - pour s = 1, ...,2('- 1: É au cas où la tentative de correction précédente a abouti, on efface , pour tout couple (x, yo) tel que vo (x, yo) ro (x, yo) , les symboles ri (x, yo) pour Z = s,...,2('ti-1)(P -1, et É on essaye de calculer un mot vs en corrigeant le mot rs d'après le vecteur de syndromes d'erreurs 6s au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements , et - au cas où les 2(i-1 tentatives de correction ci-dessus ont abouti, on 5 calcule, pour chaque amas de composantes de r indexées par un couple (x,yo), les valeurs estimées des composantes du mot émis correspondant indexées par ce couple (x,yo), en résolvant un système de 2(l-' équations linéaires à l'aide des symboles vs(x,yo), où s = -1. Grâce à ces dispositions, on peut optimiser la capacité de correction d'erreurs du procédé de décodage selon l'invention, en tenant compte des effacements , c'est-à-dire en tirant parti de l'information selon laquelle la valeur de telle ou telle composante du mot à corriger est incertaine. Selon un second aspect, l'invention concerne divers dispositifs. Elle concerne ainsi, premièrement, un dispositif de correction d'erreurs pour le décodage d'un code de géométrie algébrique à un point défini sur une courbe algébrique représentée par une équation en X et Z de degré en Z, où ço est un entier strictement positif et,u un entier supérieur à 1, obtenue en prenant le produit fibré de,u équations algébriques composantes, chacune desdites équations composantes gouvernant l'inconnue X et une inconnue Yi, où i = 0, u -1, et étant de degré 2'' en Y. Ce dispositif est remarquable en ce qu'il comprend des moyens pour décoder 2(/-')9' codes amassés , tous définis sur une même courbe algébrique représentée par l'une desdites équations composantes. Selon des caractéristiques particulières, le dispositif de correction 25 d'erreurs comprend des moyens pour, un mot r ayant été reçu: - calculer, pour s = 0, ...,2('-I -1, le mot reçu amassé rs dont chaque composante rs(x,yo) est une combinaison linéaire des composantes de r indexées par le couple (x,yo) et est effacée si au moins une de ces composantes est considérée comme douteuse par le récepteur, et calculer le vecteur de syndromes d'erreurs 6t. = H(')r s.T, où la matrice H(S) est la matrice de parité d'un code amassé, - essayer de calculer un mot vo en corrigeant le mot r0 d'après le vecteur de syndromes d'erreurs 6o au moyen d'un algorithme de correction 5 d'erreurs apte à tenir compte des effacements, - au cas où, pour s = 1, ...,2(/1-1 2(/-' -1, la tentative de correction précédente a abouti, effacer, pour tout couple (x,yo) tel que vo(x,yo) ro(x,yo), les symboles ri(x,yo) pour 1 =-1, et essayer de calculer un mot j 2s corrigeant le mot rs d'après le vecteur de syndromes d'erreurs 6s au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, et - au cas où les 2(1-1 tentatives de correction ci-dessus ont abouti, calculer, pour chaque amas de composantes de r indexées par un couple (x,yo), les valeurs estimées des composantes du mot émis correspondant 15 indexées par ce couple (x,yo), en résolvant un système de 2 1 équations linéaires à l'aide des symboles vs(x,yo), où s = 0,..., 2('1-1 -1. Les avantages de ces dispositifs de correction d'erreurs sont essentiellement les mêmes que ceux des procédés corrélatifs décrits succinctement ci-dessus. L'invention concerne aussi, deuxièmement, un décodeur comprenant: - au moins un dispositif de correction d'erreurs tel que décrit succinctement ci-dessus, et - au moins une unité de suppression de la redondance. L'invention vise également: - un appareil de réception de signaux numériques codés comprenant un décodeur tel que décrit succinctement ci-dessus, ainsi que des moyens pour démoduler lesdits signaux numériques codés, - un système informatique comprenant un décodeur tel que décrit succinctement ci-dessus, et comprenant en outre au moins un disque dur, et au moins un moyen de lecture de ce disque dur, - 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 succinctement exposés ci-dessus, - un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés 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 programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre l'un des procédés succinctement exposés ci-dessus. Les avantages offerts par ce décodeur, cet appareil de réception, ce système informatique, ces moyens de stockage de données et ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés 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 l'accompagnent, dans lesquels: - la figure 1 est un schéma synoptique d'un système de transmission d'informations utilisant un décodeur selon l'invention, et - la figure 2 représente un appareil de réception de signaux numériques incorporant un décodeur selon l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations utilisant un codage et décodage de canal selon 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), et transmet ces symboles à 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 à un codeur 102 qui y incorpore de la redondance, de manière à construire un mot de longueur n appartenant au code choisi. Les mots de code ainsi formés sont ensuite transmis à un modulateur 103, qui associe à chaque symbole du mot de code un symbole de modulation (par exemple, une amplitude complexe). Ensuite, ces symboles de modulation sont transmis à un émetteur ou à un enregistreur 104, qui insère les symboles dans un canal de transmission. Ce canal peut être constitué par exemple d'une émission filaire ou non-filaire telle qu'un signal radio, ou par un stockage sur un support adapté tel qu'un DVD ou une bande magnétique. Cette transmission parvient à un récepteur ou à un lecteur 105, après avoir été affectée par un bruit de transmission dont l'effet est de modifier ou d'effacer, aléatoirement, certains des symboles de modulation. Le récepteur ou lecteur 105 transmet alors ces symboles au démodulateur 106, qui les transforme en symboles de l'alphabet mentionné précédemment. Les n symboles résultant de la transmission d'un même mot de code sont ensuite groupés en un mot reçu dans une unité de correction d'erreurs 107, qui met en oeuvre un procédé de décodage selon l'invention, de manière à fournir un mot de code associé . Puis ce mot de code associé est transmis à une unité de suppression de redondance 108, qui en extrait k symboles d'information en mettant en oeuvre un algorithme de décodage inverse de celui mis en oeuvre par le codeur 102. Enfin, ces symboles d'information sont fournis à leur destinataire 109. On peut considérer que les unités 107 et 108 forment conjointement un décodeur 10. On va à présent illustrer le procédé de correction d'erreurs selon 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. II n'est fourni ici que pour permettre à l'homme du métier de comprendre plus facilement le fonctionnement du procédé selon l'invention. 2865083 13 Considérons donc un code de géométrie algébrique de dimension 2953 et de longueur 3264 défini comme suit. L'alphabet des symboles est constitué par les 210 éléments du corps de Galois F1024. On considère la courbe algébrique de genre g = 35 constituée par l'ensemble des solutions (X = x,Z = z) de l'équation à deux inconnues Z8 +fi17Z4 +,e5Z2 +13102+11X11 =0 (99) sur F1024, où /3 = a33 est un élément de F32, et a est un élément de F1024 vérifiant 10+a3 a +1=0. Ces solutions (x, z) de l'équation (99), qui sont au nombre de 3264 (soit (q + 2g/), cette courbe algébrique est donc maximale ), constituent les points finis de la courbe (la courbe contient également un point à l'infini noté P.) et vont constituer l'ensemble de localisation. Chaque point Pi de l'ensemble de localisation sert à identifier la j ème composante de tout mot de code. Le nombre de tels points étant ici égal à 3264, la longueur n du code est donc elle aussi égale à 3264. On notera que l'équation algébrique (99) est de la forme générale: Xb+CZa+ CtXZ =0, où c 0 et les eu sont des éléments de Fq, a et b sont des entiers strictement positifs et premiers entre eux, et où la somme ne porte que sur les entiers i et j qui satisfont ai+bj De plus, on peut vérifier que l'équation algébrique (99) est le produit fibré des équations algébriques suivantes: Y0 +Yo+X11=O, (100) 1712+Y1+fX11 =0, et (101) Y2 +Y2 +,62X 11 = 0, (102) qui sont, elles aussi, de type C(a,b) (plus précisément, ce sont des équations dites hyperelliptiques car elles sont quadratiques en Yp, Y, et Y2). Ce 2865083 14 produit fibré s'obtient en éliminant les inconnues Yo, Y, et Yz entre les trois équations (100-102) et l'équation suivante: Z = Yo + /2oYi +,87Y2. (103) Cet exemple entre donc bien dans le cadre de l'invention, avec, en l'occurrence: p = 5, =1 et,u = 3. Il existe 672 valeurs x de X dans F1024 pour lesquelles il existe deux valeurs de yo de Yo dans F1024 telles que le couple (X = x,Yo = yo) satisfasse l'équation (100) (pour les 352 autres valeurs x de X dans F1024, il n'existe aucune valeur yo de Yo dans F1024 telle que le couple (X = x,Y0 = yo) satisfasse l'équation (100)). De même, il existe 672 valeurs x de X dans F1024 pour lesquelles il existe deux valeurs y, de Y dans F1024 telles que le couple (X = x,Y = y,) satisfasse l'équation (101) (pour les 352 autres valeurs x de X dans F1024, il n'existe aucune valeur yl de Y dans F1024 telle que le couple (X = x, Y = y1) satisfasse l'équation (101)). De même, il existe 672 valeurs x de X dans F1024 pour lesquelles il existe deux valeurs de y2 de Y2 dans F1024 telles que le couple (X = x,Y2 =Y2) satisfasse l'équation (102) (pour les 352 autres valeurs x de X dans F1024, il n'existe aucune valeur de y2 de Y2 dans F1024 telle que le couple (X = x,Y2 = y2) satisfasse l'équation (102)). L'intersection de ces trois ensembles de valeurs de x comprend 408 éléments, sur la base desquels on obtient un nombre total de multiplets (x,yo,yl'Y2) égal à : 408 x 2 x 2 x 2 = 3264, qui est bien égal au nombre de solutions (x,z) de l'équation (99). Pour une équation algébrique du type C(a,b), on considère habituellement les monômes h. = Z(X u où l'exposant t de Z est strictement inférieur à a, et l'on définit le poids d'un tel monôme par p(t,u) = bt +au. Ensuite, on considère l'espace vectoriel L(m P) des polynômes en X et Z à coefficients dans F1024 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 (l'image de cet espace de polynômes sur les points finis d'une courbe C(a, b) est donc un code de géométrie algébrique dit code à 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 h. = Zt X u, où t est un entier compris entre 0 et a, u est un entier positif ou nul, p(t, u) Prenons par exemple: m = 345; on obtient alors, en tenant compte de g = 35, un ensemble de monômes h,. , où i =1,...,311, puisque: m g+1=345 35+ 1=311. Enfin, la matrice de parité H du code est définie de la manière suivante: l'élément en ligne i et colonne j de cette matrice est égal à la valeur prise par le monôme hi pour les coordonnées du point Pi de la courbe algébrique. Ainsi, n k = 311, et donc k = 2953. Les monômes hi peuvent être classés dans des sous-ensembles de monômes M, = {ZÉXU 1 05u On vérifie que le nombre de lignes de la matrice de parité H est bien égal à : 44+42+41+40+38+37+35+34 = 311. On va maintenant présenter une nouvelle formulation de l'appartenance au code, qui est équivalente à la relation d'orthogonalité H. vT = 0 et qui facilitera ensuite la compréhension du procédé de décodage selon l'invention. Cette nouvelle formulation repose sur la subdivision de l'ensemble de localisation du code en sous-ensembles que nous appellerons amas . Par définition, un amas est associé à une valeur x de X et à une valeur yo de disons Y0. Dans le présent exemple, comme la coordonnée Y1 peut prendre les valeurs hl ou Y12, et la coordonnée Y2 peut prendre les_ valeurs Y21 ou Y22, les 3264 points de l'ensemble de localisation forment 816 amas comprenant chacun 4 points. Les composantes de tout mot de code v seront alors notées v(yo,Yu,y2i,Z(Yo,yl1,y2j,x)), où i, j =1,2, de manière à faire apparaître cette structure en amas, et on dira que les composantes, indexées de la sorte, qui possèdent la même valeur de x et de yo forment un amas de composantes du mot de code. On définit ensuite, pour chaque amas, 4 symboles amassés vs(x,y0) _ Z(y0,yli,Y2j,x) s v(y0,y1i,y2;,z(y0,hi,y2j,x)) i=1,2 J=1,2 pour s = 0,1, 2,3. Ces symboles amassés constituent alors, pour chaque valeur de s, les composantes d'un mot amassé vs de longueur 816. On va montrer à présent que la condition H. vT = 0 d'appartenance au code est équivalente aux 4 conditions H(s) . vsT =0 (où s = 0,1,2,3), où chaque matrice H( est la matrice de parité d'un code de longueur n'= 816 et de dimension k's défini sur la courbe algébrique représentée par l'équation hyperelliptique (100), qui est de genre g'= 5. Compte tenu des exposants de X et de Yo dans l'équation (100), la matrice de parité d'un tel code peut être construite sur la base des monômes YoXu de poids p'(t, u)=11t+2u. Plus précisément, on va montrer que: - pour H(0) , l'espace des polynômes est L(m'o P.) avec m'o = 86; il est donc de dimension k'0 = n' m'0+g' 1= 734; - pour H(1) , l'espace des polynômes est L(m', P.) avec = 83; il est donc de dimension k', = n' m',+g' 1 = 737; - pour H(2), l'espace des polynômes est L(m'2 P.) avec m'2 = 80; il est donc de dimension k'2 = n' m' 2+g' 1 = 740; et - pour H(3) , l'espace des polynômes est L(m'3 P.) avec m'3 = 78; il est donc de dimension k'3 = n' m'3 +g' 1 = 742. On notera que, quelle que soit la formulation choisie pour le codage, on doit conserver la dimension totale du code puisque cette dimension reflète le nombre de degrés de liberté disponibles pour ce codage. On vérifie que c'est bien le cas avec les valeurs ci-dessus: k'o+k'1+k'2+k'3 =734+737+740+742 = 2953 =k. Les codes algébriques ainsi obtenus seront appelés des codes amassés associés au code défini sur la courbe algébrique représentée par l'équation (99). Pour construire cette équivalence, on fait appel à une généralisation (connue dans le cadre général de la théorie des codes de géométrie algébrique) de la notion de poids aux polynômes à deux variables X et Z comprenant au moins deux monômes: on calcule d'abord le poids p(t,u)=bt+ au de chaque monôme ZXZ de ce polynôme, et l'on vérifie si le poids le plus grand ainsi calculé est attaché à un monôme unique; si c'est le cas, on attribue alors au polynôme un poids égal à ce poids maximal, sinon on utilise les équations algébriques disponibles pour se ramener à ce cas. Ainsi: p(,02 +Yo} = p(YY) = 2p(Yo) . Or, d'après l'équation (100) : p(Y02 +Yo)= p(X1i)=11.p(X)=88 compte tenu de p(X) = a = 8. On en déduit que: p(Yo) = 44, qui est par ailleurs égal à p(Z4) = 4. p(Z) = 44, compte tenu de p(Z) = b =11. On utilise ce résultat p(Z4) = p(Yo) comme justification pour remplacer Z4 par Yo dans les sous-ensembles de monômes M4, M5, M6, et M7, ce qui donne: M'4= {YoX" 0uS37}, M'5= {ZY0X" 1 05u536}, M'6= {Z2YoXu 1 0 Ensuite, on définit la matrice de parité H' construite sur la base des monômes contenus dans les sous-ensembles Mo, MI, M2, M3, M'4, M'5, M'6, et M'7. Dans le cadre général de la théorie des codes de géométrie algébrique, on peut montrer que les matrices H et H' définissent le même code, c'est-à-dire que l'équation H É vT = 0 est équivalente à l'équation H'.vT = 0. Puis on définit une matrice H'o à partir de H' en supprimant les lignes correspondant aux monômes appartenant à MI, M2, M3, M'5, M'6, et M'7; de même, on définit une matrice à partir de H' en supprimant les lignes correspondant aux monômes appartenant à Mo, M2, M3, M'4, M'6, et M', ; on définit une matrice de parité H'2 à partir de H' en supprimant les lignes correspondant aux monômes appartenant à Mo, MI, M3, M'4, M'5, et M'7; et enfin on définit une matrice de parité H'3 à partir de H' en supprimant les lignes correspondant aux monômes appartenant à Mo, MI, M2, M'4, M'5 et M'6. II résulte de ces manipulations qu'un mot v obéit à H'ÉvT = 0 (c'est à dire, appartient au code défini sur la courbe algébrique représentée par l'équation (99)) si, et seulement si, il obéit aux 4 équations H'o.vT =0, H', vT =0, H'2ÉvT =0 et H'3ÉvT =0 à la fois. Enfin, on constate que, au sein de H'o, chaque colonne se retrouve à l'identique 4 fois, puisque les monômes de Mo et M'4 sont indépendants de YI et Y2. On définit alors une matrice H( ) , de dimension (44+38) x 816, obtenue à partir de H'0 en ne conservant qu'un seul exemplaire pour chaque groupe de 4 colonnes identiques, de sorte que, manifestement, H,0 - .vT = H(0) . v0T où v a été défini ci-dessus; de même, on obtient H', ,. ET = H(') É v,T où vl a été défini ci-dessus, et où la matrice H(I) , de dimension (42+37) x 816, est obtenue à partir de H', en supprimant le facteur Z dans les monômes, et en ne conservant qu'un seul exemplaire pour chaque groupe de 4 colonnes identiques; on obtient H'2_ _ vT = H(Z) vzT où y2 a été défini ci-dessus, et où la matrice H(2), de dimension (41+ 35) x 816, est obtenue à partir de H'2 en supprimant le facteur Z2 dans les monômes et en ne conservant qu'un seul exemplaire pour chaque groupe de 4 colonnes identiques; et l'on obtient H,3_ vT = H(3) T où v3 a été défini ci-dessus, et où la matrice H(3) , de dimension (40+34) x 816, est obtenue à partir de H'3 en supprimant le facteur Z3 dans les monômes et en ne conservant qu'un seul exemplaire pour chaque groupe de 4 colonnes identiques. Grâce à cette reformulation, l'invention permet de remplacer le décodage de mots reçus résultant de la transmission de mots de grande longueur, codés conformément à un code de genre élevé défini sur une courbe algébrique représentée par un produit fibré, au décodage moins complexe de codes amassés définis sur une courbe algébrique de degré plus faible. De plus, dans le cas particulier que l'on vient de décrire en détail, les codes amassés associés aux matrices de parité H( ) , H(l) , H(2) et H(3) sont des codes hyperelliptiques, qui sont connus pour être particulièrement simples à décoder (cf. l'article de A.N. Skorobogatov et S.G. Vlàdut cité plus haut). Selon un mode de réalisation de l'invention, on corrige un mot reçu r de longueur n = 3264 en tenant compte des effacements. Les composantes de tout mot reçu r seront notées r(yo,yli,Y2j,z(Y0,Y1i,Y2j,x)), où i, j =1,2, et on dira que les composantes, indexées de la sorte, qui possèdent la même valeur de x et de yo forment un amas de composantes du mot reçu . Tout d'abord, pour s = 0,1,2,3: - on calcule le mot reçu amassé r3, de longueur 816, dont chaque composante s r (x, Y0) = 2(3)0 DYli,Y2,,x) r(YODYli'Y21,z(YOYUDY2j, i=1,2 j=1,2 est effacée si au moins un des 4 symboles r(yo,Y1i,Y2j,z(Yo,Y1i,Y2j, x)) est considéré comme douteux par le récepteur, et - on calcule le vecteur de syndromes d'erreurs o- = H(_s)rtT, où les matrices H(S) sont celles qui ont été définies ci-dessus. Ensuite, on essaye de calculer un mot vo en corrigeant le mot ro d'après le vecteur de syndromes d'erreurs 6o au moyen d'un algorithme classique de correction d'erreurs pour codes de géométrie algébrique, apte à tenir compte des effacements (cf. l'article de Tom Hoholdt et Ruud Pellikaan cité plus haut). Si cet algorithme n'a pas été capable de fournir un mot corrigé, on en conclut que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger ce mot reçu la suite des opérations (par exemple, remplacement du mot par un mot prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche l'algorithme de correction est capable de proposer un mot vo, on efface, pour tout couple (x, yo) tel que vo (x, yo) ro (x, yo) , les symboles r1(x, yo) pour 1=1,2,3. )) Ensuite, on essaye de calculer un mot vl en corrigeant le mot r1 d'après le vecteur de syndromes d'erreurs 61 au moyen d'un algorithme classique de correction d'erreurs pour codes de géométrie algébrique, apte à tenir compte des effacements. Si cet algorithme n'a pas été capable de fournir un mot corrigé, on en conclut que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger ce mot reçu; la suite des opérations (par exemple, remplacement du mot par un mot prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche l'algorithme de correction est capable de proposer un mot 1'31, on efface, pour tout couple (x,yo) tel que vi (x, yo) r1(x, yo) , les symboles r i (x, yo) pour l = 2,3. Ensuite, on essaye de calculer un mot v2 en corrigeant le mot r2 15 d'après le vecteur de syndromes d'erreurs 62 au moyen d'un algorithme classique de correction d'erreurs pour codes de géométrie algébrique, apte à tenir compte des effacements. Si cet algorithme n'a pas été capable de fournir un mot corrigé, on en conclut que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger ce mot reçu; la suite des opérations (par exemple, remplacement du mot par un mot prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche l'algorithme de correction est capable de proposer un mot v2, on efface, pour tout couple (x, yo) tel que v2 (x, yo) r2 (x, yo) , les symboles r3 (x, yo) . Ensuite, on essaye de calculer un mot v3 en corrigeant le mot r3 d'après le vecteur de syndromes d'erreurs O 3 au moyen d'un algorithme classique de correction d'erreurs pour codes de géométrie algébrique, apte à 30 tenir compte des effacements. Si cet algorithme n'a pas été capable de fournir un mot corrigé, on en conclut que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger ce mot reçu; la suite des opérations (par exemple, remplacement du mot par un mot prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche l'algorithme de correction est capable de proposer un mot v3, on calcule, pour chaque couple (x,yo) , les symboles v(Yo,Y11,Y2,z(y0, Y11,y2,x)) où i, j =1,2, qui sont respectivement les estimations des symboles émis correspondant aux symboles reçus r(y0,Y11,Y2i,z(Y0,y11,Y2i, x)), en résolvant le système de 4 équations linéaires à 4 inconnues suivant: vs(x,Yo) = 1 [z(Yo,Yi,,y2f,x)]s v(yo>Y11,Y2j,z(Y0,Y1, ,Y2,x , (200) i=1,2 J=],2 où s = 0,1,2,3. On notera que, du fait de l'équation (2), les 4 symboles z(yo,y1,y2;,x)) à x et yo fixés sont distincts deux à deux; il en résulte que le déterminant du système (200) est un déterminant de Vandermonde, ce qui garantit que ce système possède une, et une seule, solution. Le mot v, dont les composantes sont les symboles v(yo,y11,y21,z(Yo,Y11,Y21,x)) ainsi obtenus, constitue le mot de code associé au mot reçu r. On pourra optionnellement ajouter au procédé une étape supplémentaire consistant à vérifier que ce mot v vérifie l'équation H É vT = 0, ce qui permettra de détecter une éventuelle correction erronée. On va présenter maintenant quelques observations concernant la capacité de correction d'erreurs de l'algorithme de décodage selon l'invention, en s'appuyant sur l'exemple que l'on vient d'étudier. La distance minimale garantie pour le code associé à H( ) est: do = n' k' o +1 g' = 78. On peut donc, en corrigeant le mot r0, corriger au plus INT[(do -1)/2] = 38 amas. En supposant que l'on parvient, pour le mot reçu considéré, à exécuter toutes les étapes suivantes du procédé de décodage, on peut corriger 38 composantes de r ayant subi une erreur de transmission si chaque composante erronée de r0 ne contient qu'une seule composante erronée de r, mais on peut corriger jusqu'à 152 composantes erronées der (puisque chaque amas contient 4 composantes) s'il se trouve que ces composantes erronées appartiennent à un nombre d'amas inférieur ou égal à 38. Ceci est à comparer aux algorithmes de correction classiques, tels que ceux mentionnés plus haut, qui sont aptes à corriger INT[(277 -1)/2] = 138 symboles, puisque la distance minimale garantie pour le code associé à la matrice H est égale à n-k+1-g=311+1-35=277. Le procédé de décodage selon l'invention est donc bien adapté pour les applications concernant des canaux de transmission dans lesquels les erreurs tendent à se produire en rafales: ce procédé est en effet plus simple à mettre en oeuvre que les algorithmes classiques, tout en étant essentiellement aussi efficace sur ce type de canal. Pour tirer parti de cet avantage dans le cas où l'on a affaire à de tels canaux, on transmettra donc de préférence les composantes des mots de code appartenant à un même amas l'une à la suite de l'autre. De plus, on va montrer que l'algorithme tenant compte des effacements décrit ci-dessus permet dans des cas favorables de corriger de manière fiable un nombre d'amas plus grand que 38. On rappelle tout d'abord que, pour un algorithme apte à prendre en compte les effacements, la quantité naturelle à considérer est le nombre (20+r), où r désigne le nombre d'effacements dans le mot à corriger, et 8 le nombre de symboles dans ce mot qui ont été modifiés par l'algorithme (et dont il ne savait pas à l'avance qu'ils devaient être corrigés, c'est-àdire qui ne se trouvaient pas à des positions effacées ; ce nombre 8 ne coïncide pas nécessairement avec le nombre réel de symboles erronés, c'est-à-dire, différents de ceux transmis, car il peut se produire occasionnellement que l'algorithme propose un mot corrigé qui, bien qu'appartenant au code, n'est néanmoins pas le mot transmis). Pour les algorithmes les plus performants, leur capacité à pouvoir proposer une correction d'un mot reçu de manière fiable dans tous les cas (c'est-àdire quel que soit ce mot reçu), est représentée par la formule: 20+z Dans l'algorithme décrit ci-dessus, on tient compte des couples (x,yo) identifiant les composantes de ro qui ont été corrigées, pour effacer les composantes correspondantes de r1. Pour corriger r1, l'algorithme associé à Ho) devra donc prendre en compte, au plus, r, =38 effacements. Mais cet algorithme aura également, de manière générale, à corriger 61 symboles r1(x,yo) correspondant à des couples (x,yo) pour lesquels, accidentellement, ro(x,yo) a une valeur correcte (ce qui fait qu'un tel amas n'a pas été détecté par l'algorithme associé à H( ) comme comprenant des erreurs), bien qu'au moins deux des symboles r(yo, y,,, y2;,z(yo,y1, , y2; ,x)) soient erronés (un tel cas est très peu fréquent, et plus précisément de l'ordre de 1/q dans l'hypothèse où le canal produit des erreurs aléatoirement). Comme par ailleurs la distance minimale garantie pour le code associé à H(1 vaut d1 =n'-k'1+1-g'=75, on voit que, dans la plupart des cas, la condition 26, +r1 5 d1 -1 sera vérifiée, et l'on pourra donc corriger r, de manière fiable. Un raisonnement analogue s'applique naturellement ensuite aux décodages de r2 et de r3. En fin de compte, on pourra ainsi corriger les symboles du mot reçu qui appartiennent à des amas non détectés par l'algorithme associé à H( ), en plus des symboles du mot reçu appartenant aux (38 au maximum) amas détectés à cette étape. Dans le cas le plus général visé par la présente invention (voir cidessus les équations (1.i), (2) et (3)), ço peut être égal, mais aussi supérieur à 1. La méthode de construction des codes amassés illustrée dans l'exemple cidessus se généralise aisément comme suit. On construit d'abord les 2'10 sous-ensembles Mr de monômes ZtX u comme cidessus, puis l'on remplace chaque monôme ZeX" par le monôme Yof ZSXu, où les entiers f et s vérifient t = f É 2(P-') +s, et sont obtenus en tant que quotient et reste: en effet, les monômes ZtXI et Yof ZSXu ont le même poids en vertu des équations (1.0) et (3). Pour la valeur maximale de t, à savoir (219 -1), le quotient f vaut (2 -1), et le reste s vaut (2(P- 9 -1). Le nombre de mots amassés vs nécessaires pour absorber toutes les puissances successives ZS est donc égal à 2c 1 . Au décodage, on construit à partir du mot reçu r et l'on corrige les mots reçus amassés rs, dont chacun est considéré comme provenant d'un mot de code défini sur une courbe algébrique représentée par l'équation (1.0) (on notera que dans les sous-ensembles de monômes que l'on vient de construire, le dernier contient les monômes Yoe-Xu après l'élimination de la puissance de Z). A titre d'exemple supplémentaire, considérons la courbe représentée par l'équation Z16+Z+X17 =0 (299) sur F256. Elle est de genre g =120, et peut être obtenue en effectuant le produit fibré-des,u = 2 équations algébriques suivantes: Y0 +Yo +X17 = 0, et (300) Y14+Y1+8X17=0, (301) où /3 = a17, et a est un élément de F256 vérifiant S432 a +a +a +a +1=0. Ce produit fibré s'obtient en éliminant les inconnues Yo et Y1 entre les deux équations (300-301) et l'équation suivante: Z=,64Yo + . (302) Comme, en l'occurrence, q' =2, on peut définir ici les codes amassés, au nombre de 4, sur la courbe algébrique associée à l'équation (300). La courbe définie par l'équation (299) possède 4096 points sur F256, elle est donc avantageusement maximale, comme l'est la courbe définie par l'équation (99). Toutefois, le procédé selon l'invention s'applique tout aussi bien à des produits fibrés qui ne sont pas des courbes algébriques maximales. On notera que, dans l'exemple décrit en détail ci-dessus, les amas sont tous de taille identique, c'est-à-dire comprennent tous le même nombre de points de l'ensemble de localisation (à savoir, 4). Ce n'est pas le cas en général, mais l'invention s'applique tout aussi bien dans le cas où les amas sont de taille variable. Pour terminer le calcul des symboles estimés, on résout un système de 29(i-1) équations, analogue au système (200), pour chaque amas; lorsqu'un amas est de taille strictement inférieure à 2ç ('-1) , ce système est surdéterminé, ce qui permet avantageusement de détecter des erreurs d'estimations sur les symboles amassés vs(x,yo) de cet amas. On voit ainsi que, quand on met en oeuvre le procédé de décodage selon l'invention, la correction des symboles appartenant à de petits amas peut être rendue plus fiable que celle des symboles appartenant à de grands amas; en conséquence, ce procédé de décodage offre la possibilité de protection inégale contre les erreurs, qui est souhaitable dans certaines applications comme il est bien connu de l'homme du métier. Le schéma synoptique de la figure 2 représente un appareil de réception de signaux numériques 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 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 30 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 2 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de stockage de masse 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 ATM, sous forme de séquences de données binaires, - le lecteur 105 est adapté à lire des données enregistrées sur un support tel qu'un disque magnétique ou magnéto-optique. 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, 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: des registres mots reçus , dans lesquels sont conservés les mots reçus, - un registre symboles estimés , dans lequel sont conservés les symboles issus d'un mot reçu en cours de correction, - un registre mots associés , dans lequel sont conservés les symboles des mots de code associés , et - un registre symboles information , 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, dans un registre programme , - la longueur de chaque mot de code dans un registre n , - le nombre de symboles d'information dans chaque mot de code, dans un registre k , et - la matrice de parité du code, dans un registre H . 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 télécommunications, auquel cas l'unité 105 pourrait par exemple ê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 décodage d'un code de géométrie algébrique à un point défini sur une courbe algébrique représentée par une équation en X et Z de degré 211'9 en Z, où çp est un entier strictement positif et,u un entier supérieur à 1, obtenue en prenant le produit fibré de,u équations algébriques composantes, chacune desdites équations composantes gouvernant l'inconnue X et une inconnue Yi, où i = 0, u -1, et étant de degré r en Yi, caractérisé en ce qu'il comprend le décodage de 2c-' codes amassés , tous définis sur une même courbe algébrique représentée par l'une desdites équations composantes. 2. Procédé de décodage selon la revendication 1, caractérisé en ce que, un mot r ayant été reçu, il comprend les étapes suivantes: - pour s = 0, ...,2('u-l 2('-' -1: on calcule le mot reçu amassé rs dont chaque composante rs (x, yo) est une combinaison linéaire des composantes de r indexées par le couple (x, yo) , et est effacée si au moins une de ces composantes est considérée comme douteuse par le récepteur, et É on calcule le vecteur de syndromes d'erreurs o-S = H(.r)rsT, où la matrice H(s) est la matrice de parité d'un code amassé, - on essaye de calculer un mot Go en corrigeant le mot ro d'après le vecteur de syndromes d'erreurs 6o au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, - pour s = 1, ..., 2(11 I -1: au cas où la tentative de correction précédente a abouti, on efface, pour tout couple (x, yp) tel que vo (x, y p) ro (x, yo), les symboles ri (x, yo) pour l = s,...,2@-' -1, et É on essaye de calculer un mot vs en corrigeant le mot rs d'après le vecteur de syndromes d'erreurs 6S au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, et - au cas où les 2( -1 tentatives de correction ci-dessus ont abouti, on 5 calcule, pour chaque amas de composantes de r indexées par un couple (x,yo), les valeurs estimées des composantes du mot émis correspondant indexées par ce couple (x,yo), en résolvant un système de 2( ' équations linéaires à l'aide des symboles vs(x,yo), où s = 0,..., 2("-' - 1. 3. Dispositif (107) de correction d'erreurs pour le décodage d'un code 10 de géométrie algébrique à un point défini sur une courbe algébrique représentée par une équation en X et Z de degré 210 en Z, où est un entier strictement positif et,u un entier supérieur à 1, obtenue en prenant le produit fibré de,u équations algébriques composantes, chacune desdites équations composantes gouvernant l'inconnue X et une inconnue Yt, où i = 0, u -1, et étant de degré r en Yi, caractérisé en ce qu'il comprend des moyens pour décoder 2(P- codes amassés , tous définis sur une même courbe algébrique représentée par l'une desdites équations composantes. 4. Dispositif de correction d'erreurs selon la revendication 3, caractérisé en ce qu'il comprend des moyens pour, un mot r ayant été reçu: - calculer, pour s = 0, ..., 2t/--' -1, le mot reçu amassé rs dont chaque composante rs(x,yo) est une combinaison linéaire des composantes de r indexées par le couple (x, yo) et est effacée si au moins une de ces composantes est considérée comme douteuse par le récepteur, et calculer le vecteur de syndromes d'erreurs o-,5. = H(s)rt.T, où la matrice H( est la matrice de parité d'un code amassé, - essayer de calculer un mot vo en corrigeant le mot ro d'après le vecteur de syndromes d'erreurs Go au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, - au cas où, pour s = 1, ..., 2('-1)y' -1, la tentative de correction précédente a abouti, effacer, pour tout couple (x,yo) tel que vo (x, yo) ro (x, yo) , les symboles ri (x, yo) pour l = s,...,2("-00 -1, et essayer de calculer un mot vs en corrigeant le mot rs d'après le vecteur de syndromes d'erreurs 6s au moyen d'un algorithme de correction d'erreurs apte à tenir compte des effacements, et - au cas où les 2(1-1 tentatives de correction ci-dessus ont abouti, calculer, pour chaque amas de composantes de r indexées par un couple (x,yo), les valeurs estimées des composantes du mot émis correspondant indexées par ce couple (x,yo), en résolvant un système de 2(1-1 équations linéaires à l'aide des symboles 3 (x,yo), où s = 0,..., 2(1-' - 1. 5. Décodeur (10), caractérisé en ce qu'il comprend: - au moins un dispositif de correction d'erreurs selon la revendication 3 ou la revendication 4, et - au moins une unité de suppression de la redondance (108). 6. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 5, et en ce qu'il comporte des moyens (106) pour démoduler lesdits signaux numériques codés. 7. Système informatique (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 5, et en ce qu'il comprend en outre: - au moins un disque dur, et - au moins un moyen de lecture (105) de ce disque dur. 8. 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é selon la revendication 1 ou la revendication 2. 9. 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é selon la revendication 1 ou la revendication 2. 10. 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 dispositif de traitement de données met en oeuvre un procédé selon la 5 revendication 1 ou la revendication 2.