Brevet FR2880218A1 — publié le 20060630

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 à transmettre à un récepteur (ou à enregistrer sur un support de données) des mots de code qui sont formés en introduisant une certaine redondance dans les données à transmettre. 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, dits symboles d'information , 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. Notamment, lorsque la taille q de l'alphabet est prise égale à une puissance d'un nombre premier, on peut donner à cet alphabet une structure de corps ( field en anglais), dit corps de Galois ( Galois field en anglais), noté Fq. Par exemple, pour q =2, Fq est un alphabet binaire, et pour q = 28 = 256, Fq est un alphabet d'octets ( bytes en anglais). On appelle distance de Hamming entre deux mots de même longueur le nombre d'indices pour lesquels la composante du premier mot est différente de la composante du deuxième mot. Pour un code donné, on appelle distance minimale d la plus petite distance de Hamming entre deux mots différents quelconques appartenant au code; c'est un paramètre important du code. 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)xn, 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. Il y a erreur de transmission si la différence e entre un mot reçu r et le mot de code v correspondant envoye par l'émetteur, est non-nulle. On dit que les erreurs de transmission sont causées par le bruit du canal . Pour détecter d'éventuelles erreurs de transmission et si possible les corriger, on met en uvre au niveau du récepteur un procédé de décodage qui exploite judicieusement la redondance mentionnée ci-dessus. 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 de longueur (n k) (dans le cadre de la présente invention, on ne fait pas de différence entre le terme mot et le terme vecteur ). 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 procède alors à des calculs destinés à estimer la valeur de l'erreur e; autrement dit, ces calculs fournissent une valeur estimée ê de l'erreur telle que le mot (r ê) soit un mot de code, qui constituera alors le mot de code associé v. Habituellement, cette première étape du décodage est décomposée en deux sous-étapes distinctes: une première sous-étape, dite de localisation d'erreurs , au cours de laquelle on détermine quelles sont les composantes du mot reçu dont la valeur est erronée, et une seconde sous-étape, dite de correction d'erreurs , au cours de laquelle on calcule une estimation de l'erreur de transmission affectant ces composantes. La seconde étape consiste simplement à inverser le procédé de codage. Si le mot reçu était correct ou si l'on est parvenu, lors de la première étape, à y corriger toutes les erreurs de transmission, cette seconde étape permet évidemment de retrouver les k symboles d'information initiaux (avant codage) correspondant à ce mot reçu. 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. On assigne habituellement comme but au décodage d'associer au mot reçu le mot de code situé à la distance de Hamming la plus courte de ce mot reçu. Raisonnablement, on va essayer d'identifier 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. Toutefois, il n'est pas toujours aisé 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 inférieur ou égal à (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 Hu= a i(J-1) (1 i n -k, 1 j .,v71) au moyen de l'élément a('-1) de Fq; c'est pourquoi un ensemble tel que (1,a,a2,...,an-1) est appelé ensemble de localisation ( locating set en anglais) du code de Reed-Solomon...DTD: 2880218 4 Comme tous les codes, les codes de Reed-Solomon peuvent être modifiés etlou raccourcis . On dit qu'un code donné Cmod est une version modifiée du code C s'il existe une matrice diagonale carrée non-singulière A telle que chaque mot de Cmod est égal à vÉA avec v dans C. 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). Comme mentionné ci-dessus, l'étape d'un procédé de décodage au cours de laquelle on calcule un mot de code associé au mot reçu se décompose habituellement en deux sous-étapes: la première sous-étape, dite de localisation d'erreurs , consiste à identifier dans le mot reçu les éventuelles composantes dont la valeur est erronée, et la seconde sous-étape consiste à calculer ensuite la valeur corrigée de ces composantes erronées. Pour le décodage des codes de Reed-Solomon, on utilise habituellement, en ce qui concerne la localisation d'erreurs, l'algorithme dit de Berlekamp-Massey que l'on va décrire sommairement: on construit d'abord une matrice S, appelée matrice des syndromes , dont chaque élément est une certaine composante du vecteur de syndromes d'erreurs s = H É rT = H É eT; on cherche ensuite un vecteur A tel que A. S=0, puis l'on forme un polynôme de localisation d'erreurs A(Z) dont les coefficients sont des composantes du vecteur A; les inverses des racines de ce polynôme A(Z) sont alors, parmi les éléments coi (où i =1,..., n) de l'ensemble de localisation, ceux qui étiquettent les composantes erronées du mot reçu r. En ce qui concerne la correction d'erreurs, on utilise habituellement l'algorithme dit de Forney , que l'on va décrire sommairement. On construit le polynôme de calcul d'erreurs S2(Z) = A(Z) S(Z) modulo Zn-k, où n-k-1 S(Z) _ Esili i=o et les si sont les composantes du vecteur de syndromes d'erreurs s; les erreurs sont alors données, pour i =1,...,n, par: 0 si A(wz') 0 et = S2(w-l) si A(wz-i) = 0 P1A'(wi l) où A'(Z) désigne la dérivée de A(Z) , et pi est égal à 1 pour un code de Reed-Solomon standard et à l'élément diagonal en position (i,i) de la matrice P pour un code modifié (voir ci-dessus). Pour plus de détails sur les codes de Reed-Solomon, et en particulier les algorithmes de Berlekamp-Massey et de Forney, on pourra se référer par exemple à l'ouvrage de R.E. Blahut intitulé Theory and practice of errorcontrol codes , Addison-Wesley, Reading, Mass.,1983. 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 sans nécessiter pour autant un alphabet de plus grande taille. On a notamment proposé 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 , 1MA Volumes Math. Appl., vol. 21, pages 137 à 162, Springer- Verlag, Berlin, 1990). Ces codes sont construits à partir d'un ensemble de n couples (x,y) distincts de symboles appartenant à un corps de Galois Fq choisi; cet ensemble de couples constitue l'ensemble de localisation du code de géométrie algébrique. 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 Pfl (où f3 =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 f), 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. Parmi tous les codes de géométrie algébrique, on considère habituellement ceux qui sont définis sur une courbe algébrique représentée par une équation F(X,Y) = 0, avec: F(X,Y) = Xb +cYa +EcuYJXt, où c 0 et les c 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 A tout monôme de la forme Y'X, où i et j sont des entiers positifs ou nuls, on associe classiquement un poids , qui est égal par définition à (ai + bj). On peut montrer que les monômes ha = Y' X de poids pa 2g-2). Pour tout code de type C(a,b) , on définit classiquement une matrice de parité Hde la manière suivante: l'élément en ligne a et colonne fi de la matrice de parité est égal au monôme ha évalué au point PA, (où, rappelons-le, =1,...,n) de la courbe algébrique. Chaque point Pfl sert alors à identifier la fl eme composante de tout mot de code. Un code ayant une telle matrice de parité est appelé code à un point car sa matrice de parité est obtenue en 15 évaluant (en les n points Pfl) des fonctions (les monômes ha) qui n'ont de pôles qu'en un seul point, à savoir le point à l'infini. Les mots de code c sont donc tels que H. cT = 0 et on peut de ce fait notamment désigner une composante d'un mot de code ç (et également d'un mot reçu) en se référant au point Pfl correspondant dans l'ensemble de localisation (en général lui-même exprimé par ses coordonnées x, y). On peut dire qu'on "étiquette" ainsi les composantes du mot au moyen des points de l'ensemble de localisation. 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 Hoholdt 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. Il est parfois utile de raccourcir un code de géométrie algébrique. En particulier, il est assez fréquent de supprimer de l'ensemble de localisation, un point, ou plusieurs points, dont la coordonnée x est nulle. On connaît divers algorithmes de localisation d'erreurs pour codes de géométrie algébrique (définis sur une courbe de genre non-nul). Un tel algorithme, appelé algorithme de base , a été proposé par A.N. Skorobogatov et S.G. Vlâdut dans l'article intitulé On the Decoding of Algebraic-Geometric Codes , IEEE Trans. lnform. Theory, vol. 36 n 5, pages 1051 à 1060, novembre 1990). Cet algorithme fait appel à une matrice, dite matrice des syndromes S, de dimension (n k)x(n k), dont chaque coefficient Sil, où j est inférieur ou égal à une valeur frontière w(i) , est égal à une combinaison linéaire judicieusement choisie des éléments s,, (v =1,2,...,n k) du syndrome s, les coefficients Su au-delà de la frontière restant indéterminés. L'algorithme de base permet, à partir de la matrice des syndromes S, de construire un polynôme de localisation d'erreurs A(x, y) , dont les zéros comprennent tous les couples (x, y) étiquetant des positions du mot reçu pour lesquelles la composante en cette position a souffert d'une erreur de transmission. Skorobogatov et Vlâdut ont également proposé, dans le même article cité ci-dessus, une version modifiée de l'algorithme de base , qui permet généralement de corriger un plus grand nombre d'erreurs que l'algorithme de base . On connaît également des algorithmes qui fonctionnent suivant un principe itératif: chaque nouvelle itération d'un tel algorithme fait appel à une composante supplémentaire du vecteur de syndromes d'erreurs s = H É rT. Un exemple d'un tel algorithme de décodage itératif est divulgué dans l'article de M. Sakata et al. intitulé Generalized Berlekamp- Massey Decoding of Algebraic-Geometric Codes up to Hait' the Feng-Rao Bound (IEEE Trans. lnform. 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 d'algorithme de décodage itératif pour codes de géométrie algébrique est divulgué dans l'article de M.E. O'Sullivan intitulé Decoding of Codes Defined by a Single Point on a Curve (IEEE Trans. Inform. Theory, vol. 41, pages 1709 à 1719). Pour tout mot reçu r donné, on peut déterminer des polynômes de localisation d'erreurs dont les zéros comprennent tous les couples (x, y) étiquetant les composantes erronées de ce mot reçu. L'ensemble des polynômes de localisation d'erreurs possède la structure d'un idéal appelé idéal de Grôbner (associé aux erreurs de transmission affectant ce mot). On peut engendrer l'idéal de Grôbner au moyen d'un ensemble fini de f polynômes, où f s a, qui constitue une base de Grôbner de l'idéal. Comme les couples (x, y) étiquetant les composantes erronées d'un mot reçu vérifient évidemment tous l'équation F(X,Y) =0 de la courbe algébrique, le polynôme F(X,Y) fait partie de l'idéal de Grôbner, et l'on peut par conséquent réduire modulo F(X,Y) les f polynômes G,(X,Y) de toute base de Grôbner donnée; il en résulte qu'il existe toujours une base de Grôbner dont tous les éléments ont un degré en Y inférieur à a. 25 On peut obtenir une base de Grôbner ç = {Gq,(X,Y) 1 ço =1,...f} à partir d'une matrice S*, de dimension n X n, obtenue en étendant la matrice S (autrement dit, les éléments de S et ceux de S* sont identiques pour j En effet, lorsque le nombre d'erreurs dans le mot reçu est inférieur ou égal à (n-k-g)i2, il faut en général, pour pouvoir localiser ces erreurs, connaître plus d'éléments de la matrice des syndromes que les éléments que nous qualifierons de connus du fait qu'ils sont égaux à des composantes du vecteur de syndromes d'erreurs s = H É rT ou à de simples combinaisons linéaires de ces composantes (voir l'exemple numérique décrit ci-dessous). II est heureusement possible de calculer ces éléments de valeur inconnue par un procédé comprenant un certain nombre de décisions majoritaires , par exemple l'algorithme dit de Feng-Rao (voir l'article de G.-L. Feng et T.R.N. Rao intitulé Decoding Algebraic-Geometric Codes up to the Designed Minimum Distance , IEEE Trans. lnform. Theory, vol. 39, n 1, janvier 1993). Cet algorithme a essentiellement pour but d'étendre la matrice S au moyen d'étapes de calcul jouant le rôle d'itérations successives. II faut un nombre d'itérations égal à un certain nombre g', où g' est au plus égal à 2g, pour parvenir au stade où, comme expliqué ci-dessus, il devient possible de calculer une base de Grôbner à partir de la matrice des syndromes étendue S* ainsi obtenue. A ce stade, il est également possible de calculer des éléments inconnus supplémentaires de la matrice S* à partir des éléments obtenus précédemment, soit au moyen de nouvelles itérations d'un algorithme à décisions majoritaires , soit plus commodément au moyen d'un certain nombre de relations, dites de récurrence , utilisant des polynômes de rétroaction choisis dans la base de Grôbner. On pourra se référer à ce propos à l'article de Sakata et al. cité ci-dessus. Dans le cadre de la présente invention, on dira que les éléments de 25 la matrice des syndromes S* ( connus ou inconnus ) sont des syndromes d'erreurs étendus . On connaît par ailleurs divers algorithmes pour codes de géométrie algébrique permettant de calculer la valeur corrigée des composantes erronées du mot reçu; autrement dit, ces algorithmes sont aptes à fournir une valeur estimée ê de l'erreur de transmission e subie par le mot de code transmis. Le calcul des erreurs pour les codes de géométrie algébrique est a priori plus compliqué que pour les codes de Reed-Solomon. En effet: - la sous-étape de localisation d'erreurs ne produit pas seulement un polynôme de localisation d'erreurs (tel que A(Z) ci-dessus), mais plusieurs polynômes, qui forment une base de Grôbner de l'idéal des polynômes de localisation d'erreurs; - ces polynômes de localisation d'erreurs sont des polynômes à deux variables au lieu d'une; et - ces polynômes de localisation d'erreurs ont des dérivées partielles par rapport à ces deux variables, de sorte que les algorithmes de correction classiques (tels que l'algorithme de Forney mentionné ci-dessus), qui font intervenir une dérivée unique, ne sont plus applicables. On connaît divers algorithmes de calcul des valeurs des erreurs pour codes de géométrie algébrique. L'article Algebraic Geometry Codes , de Tom Hrholdt, Jacobus Van Lint et Ruud Pelikaan (Chapitre 10 de Handbook of Coding Theory , North Holland, 1998) construit le produit de certaines puissances des polynômes de la base de Grôbner. II effectue ensuite une combinaison linéaire de ces produits, affectés de coefficients adéquats. Il démontre enfin que la valeur du polynôme ainsi obtenu, prise au point (x, y) de l'ensemble de localisation est, au signe près, la valeur de l'erreur pour la composante du mot reçu étiquetée par ce point (x, y). L'article A Generalized Forney Formula for Algebraic Geometric Codes , de Douglas A. Leonard (IEEE Trans. lnform. Theory, vol. 42, n 4, pages 1263 à 1268, juillet 1996) calcule les valeurs des erreurs en évaluant un polynôme à deux variables en les points dont les coordonnées sont les zéros communs des polynômes de localisation d'erreurs. L'article A Key Equation and the Computation of Error Values for Codes from Order Domains de John B. Little (publié sur Internet le 7 avril 2003) calcule les valeurs des erreurs en évaluant deux polynômes à une variable en les mêmes points que précédemment. Ces trois algorithmes sont complexes à mettre en oeuvre. La demande de brevet EP-1 434 132 au nom de CANON décrit un procédé de décodage applicable notamment aux codes, décrits ci-dessus, de géométrie algébrique à un point définis sur une courbe algébrique de type C(a,b) . Ce procédé de décodage effectue à la fois la localisation et la correction d'erreurs. Nous allons à présent le décrire de manière assez détaillée. Ce procédé de décodage repose sur la subdivision de l'ensemble de localisation du code en sous-ensembles appelés agrégats . Par définition, un agrégat regroupe les couples (x,y) de l'ensemble de localisation partageant la même valeur de x, lorsque l'on prend: a Soit m le poids maximal des monômes définissant les lignes de la matrice de parité (voir ci-dessus). Selon la demande EP-1 434 132, on classe ces monômes dans des ensembles de monômes Mi ={Y"XIOSiS(m-bj)/a} pour 0 On vérifie facilement que la condition d'appartenance au code de géométrie algébrique (à savoir H É vT =0) est équivalente à l'ensemble de 10 (jmax +1) équations: Ht(j) ÉvjT =0, où la fonction t(j) est donnée ci- dessus et, par définition, 1 1 1 XI X2 É " t 1 t 1 t 1 xi x2 xk Or cette matrice Ht est une matrice de Vandermonde définie sur 15 Fq; par conséquent, si l'on considère, pour chaque valeur de j, que Ht(j) est une matrice de parité définissant un ensemble de mots de code vj, cet ensemble constitue un code de Reed-Solomon. On dit alors que l'on a décomposé le code de géométrie algébrique considéré en un certain nombre de codes de Reed-Solomon composants . L'intérêt de cette formulation est que l'on dispose, pour les codes de Reed-Solomon, d'algorithmes de décodage très simples, et très performants au moins pour certains types de canaux. Par exemple, un mot r ayant été reçu, on calcule d'abord, pour j = 0,..., Jmax, les mots reçus agrégés dans lesquels, pour x = x1,...,x, les symboles reçus agrégés ri(x) sont donnés par t(x) (x)= {yp(x)J r(x,yp(x)) p=1 Puis on utilise l'algorithme de Berlekamp-Massey pour la localisation 5 des symboles ri(x) erronés de chaque mot ri. Sauf (le cas échéant) compensation accidentelle dans l'équation (1) pour une certaine valeur de j, les symboles reçus agrégés ri(x) associés à un agrégat erroné (voir définition ci-dessus) seront, manifestement, eux aussi erronés. On met ensuite en oeuvre l'algorithme de Forney pour la correction 10 de ces symboles erronés, d'après le vecteur de syndromes d'erreurs s = Ht(i) É r jT. Enfin, on calcule les symboles v(x, yp (x)) du mot de code associé à partir des symboles corrigés P1(x) en utilisant le système d'équations.1.(x) rJ (x) = E [yp (x)]' x, yp (x)) p=1 où j prend un nombre de valeurs différentes (le nombre d'équations) au moins égal à ), (x) (le nombre d'inconnues). Ce procédé de décodage requiert donc que (jmax +1) soit au moins égal à 2max' où 2max est le plus grand parmi les cardinaux d'agrégat,1.(x) . On admettra dans ce qui suit que la même condition est satisfaite. Par rapport aux algorithmes de correction d'erreurs connus applicables de manière générale aux codes de géométrie algébrique considérés, le gain en complexité résultant de la mise en oeuvre du procédé selon la demande EP-1 434 132 est significatif, et ce, malgré la nécessité de mettre en oeuvre un algorithme de correction d'erreurs pour code de Reed- Solomon (par exemple l'algorithme de Forney) /lmax fois, et de résoudre pour chaque agrégat erroné étiqueté par une valeur x de X un système d'équations (2) ; on notera à cet égard que le nombre d'équations dans chacun de ces systèmes est au plus égal à a (l'exposant de Y dans l'équation représentant la (1) (2) courbe algébrique), puisque la taille de tout agrégat (c'est à dire le nombre de solutions, pour x fixé, de l'équation représentant la courbe algébrique) est au plus égale à a. On notera par ailleurs que le système d'équations (2) est un système de Vandermonde non singulier: il possède donc toujours une, et une seule, solution; de plus, comme il est bien connu de l'homme du métier, la résolution de ce type de système d'équations linéaires est, avantageusement, particulièrement simple. On peut noter par ailleurs que les méthodes connues de calcul des valeurs des erreurs font appel aux syndromes Ci (i) = (Y'X e), 0 s i, 0 Comme mentionné ci-dessus, le procédé décrit dans le document EP-1 434 132 est conçu pour être mis en oeuvre une fois que les agrégats erronés d'un mot reçu ont été localisés. Or le recours à une étape préliminaire de localisation présente les deux inconvénients suivants: - la mise en oeuvre du procédé est compliquée par le fait qu'elle doit comprendre des paramètres ajustables pendant le décodage individuel de chaque mot reçu, en fonction de la position des (éventuels) agrégats erronés détectés lors de la localisation, et - l'étape de localisation en elle-même implique un coût de fonctionnement. L'invention propose un procédé de décodage d'un code de 30 géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0 de degré b en X et de degré a en Y sur Fq, caractérisé en ce qu'il comprend les étapes suivantes: - calcul de syndromes d'erreurs étendus 6i (i) associés à un mot reçu r; détermination des valeurs d'erreurs sur chaque composante r(x, yp (x)) du mot reçu r, à partir des syndromes d'erreurs étendus calculés. Puisqu'on détermine la valeur d'erreur pour chaque composante, il n'est pas nécessaire d'avoir recours à l'étape de localisation des erreurs. Par exemple, lorsque la courbe algébrique est partitionnée en agrégats, l'étape de détermination des valeurs d'erreurs sur chaque composante à partir des syndromes d'erreurs étendus comporte les étapes suivantes pour chaque agrégat: - calcul, à partir des syndromes d'erreurs étendus, de valeurs d'erreurs composées représentant chacune une combinaison linéaire des erreurs sur les composantes de l'agrégat; - détermination que les erreurs sur les composantes de l'agrégat sont nulles si toutes lesdites valeurs d'erreurs composées sont nulles; - calcul des erreurs sur les composantes de l'agrégat si une au moins desdites valeurs d'erreur composées n'est pas nulle. En effet, les auteurs de la présente invention ont réalisé qu'il est possible de considérer que les erreurs estimées ê(x, yp (x)) sur chaque composante représentent une erreur nulle lorsque la composante 20 correspondante r(x,yp(x)) est correcte; ainsi, en utilisant un nombre d'équations au moins égal à la taille de l'agrégat, on peut obtenir toutes les valeurs des estimations d'erreurs ê(x, yp (x)) , que celles-ci soient nulles ou non. Les inventeurs se sont donc demandé quel serait, en pratique, le coût associé à la décision de traiter, a priori, tous les agrégats comme étant potentiellement erronés, décision permettant ne pas avoir à distinguer entre les agrégats contenant des erreurs et ceux qui n'en contiennent pas. Dans ce cas, on calculerait, comme on le fait habituellement, la base de Grôbner des polynômes localisateurs, mais on ne prendrait pas la peine de rechercher explicitement quels sont les points de la courbe qui sont des zéros communs de ces localisateurs. Ils ont alors réalisé que ce coût était en fait assez minime, et ce d'autant plus que, dans certaines conditions, l'utilité de cette étape de localisation est particulièrement médiocre: il s'agit des conditions où tous, ou presque tous, les agrégats sont erronés, par exemple lorsque le canal considéré est suffisamment bruyant par rapport à la taille de l'agrégat, puisque la probabilité qu'un agrégat donné, étiqueté par une valeur x de X, comprenne au moins une composante erronée est d'autant plus grande que le cardinal).(x) de cet agrégat est grand. Le calcul des syndromes d'erreurs étendus 6i(i) est en pratique effectué pour j = 0,..., jo -1, où jo est au moins égal à la valeur maximale /lmax des cardinaux,.(x) des agrégats du code. On obtient ainsi suffisamment d'équations pour permettre le calcul éventuel des erreurs dans chaque agrégat. D'un point de vue pratique, il est intéressant de supprimer de l'ensemble de localisation du code de géométrie algébrique les paires (x, y) pour lesquelles x est nul. Sous cette restriction, la détermination des valeurs d'erreurs comprend par exemple les étapes suivantes: - calcul de ri = 6i.V -1 pour] = 0, ... , a 1, où V-1 est la matrice de dimensions (q 1) x (q 1) dont l'élément en position (i, j), 1 j Selon une autre forme de réalisation, la détermination des valeurs d'erreurs peut comprendre les étapes suivantes: - mise en oeuvre, pour j= 0,...,2max -1, au moyen du polynôme de syndromes d'erreurs q 2 S(Z)=> cri(i)Z1, i=o d'un algorithme de correction d'erreurs adapté aux codes de Reed-Solomon, de manière à calculer l'erreur Ej(x) sur chaque composante étiquetée par l'élément x de Fq d'un mot de code de Reed-Solomon défini sur Fg, et - calcul des estimations ê(x, y p (x)) des erreurs respectives sur les composantes r(x, yp (x)) de r en résolvant le système d'équations du type Z(x) EE(x) _ E [yp(x)]' ê(x,yp(x)) p=1 où l'on choisit des équations associées à des valeurs consécutives de j en nombre au moins égal au nombre de composantes 2(x) de l'agrégat considéré. Le calcul des estimations ê(x, yp (x)) peut alors n'être effectué que pour les valeurs de x telles qu'il existe au moins une valeur de j pour laquelle E.(x) est non-nulle. On limite ainsi le calcul des estimations à certains agrégats et on considère que les valeurs d'erreur sur les composantes des autres agrégats sont nulles. Selon une caractéristique possible de mise en oeuvre, s'il existe au moins une valeur de x= ah associée à un agrégat erroné de cardinal 21, (x) Grâce à ces dispositions, on pourra détecter une éventuelle correction erronée au cas où ladite au moins une équation s'avère ne pas être vérifiée avec les valeurs de e(x, yp (x)) obtenues précédemment. Selon un second aspect, l'invention concerne un dispositif de correction d'erreurs pour code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X, Y) = 0 de degré b en X et de degré a en Y sur Fq, caractérisé en ce qu'il comprend: - des moyens de calcul de syndromes d'erreurs étendus 6i(i) associés à un mot reçu r; - des moyens de détermination des valeurs d'erreurs sur chaque composante r(x, yp(x)) du mot reçu E, à partir des syndromes d'erreurs étendus calculés. Lorsque la courbe algébrique étant partitionnée en agrégats, les moyens de détermination des valeurs d'erreurs sur chaque composante à partir 15 des syndromes d'erreurs étendus peuvent comprendre: - des moyens de calcul, pour chaque agrégat et à partir des syndromes d'erreurs étendus, de valeurs d'erreurs composées r j(h), Ej(x) représentant chacune une combinaison linéaire des erreurs sur les composantes de l'agrégat; - des moyens de détermination que les erreurs sur les composantes d'un agrégat sont nulles si toutes lesdites valeurs d'erreurs composées relatives à cet agrégat sont nulles; - des moyens de calcul des erreurs sur les composantes d'un agrégat si une au moins desdites valeurs d'erreur composées relatives à cet agrégat n'est pas nulle. Un tel dispositif peut également présenter des caractéristiques correspondantes à celles déjà présentées pour le procédé de décodage et les avantages correspondants qui en découlent. L'invention vise également: - 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, - un appareil de réception de signaux numériques codés comprenant un décodeur tel que décrit succinctement ci-dessus, et comprenant 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 ainsi qu'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 de décodage 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 de décodage 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 de décodage 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 de correction d'erreurs 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 mettant en oeuvre un procédé selon l'invention, - la figure 2 représente un appareil de réception de signaux numériques incorporant un décodeur selon l'invention, et - la figure 3 représente un élément de circuit utilisable dans un mode de réalisation de l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations mettant en oeuvre un procédé 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 traduit ces informations en une suite de symboles appartenant à un certain corps de Galois Fq (par exemple des octets de bits pour q = 28), 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. Ensuite, 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 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 parvient à un lecteur (ou un récepteur) 105, après avoir été affecté par un bruit de transmission dont l'effet est de modifier ou d'effacer certains des symboles de modulation. Le lecteur (ou récepteur) 105 transmet alors ces symboles au démodulateur 106, qui les transforme en symboles de Fq. 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 codage 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. Il n'est fourni ici que pour permettre à l'homme du métier de comprendre plus facilement le fonctionnement du procédé selon l'invention. On désignera par Q le code de géométrie algébrique à un point , de dimension 22 et de longueur 60, défini de la manière suivante. L'alphabet des symboles est constitué par le corps de Galois F16. Comme le cardinal de ce corps est une puissance de 2 (16 = 24), le signe + est équivalent au signe devant tout coefficient d'un polynôme à coefficients sur ce 15 corps. On considère la courbe algébrique de genre g = 6 constituée par l'ensemble des solutions (X = x,Y = y) de l'équation à deux inconnues Y4 +Y+XS = 0 (4) sur F16. On constate qu'en donnant à x une valeur x quelconque dans F16, il existe à chaque fois 4 valeurs yp(x) (p =1,2,3,4) dans F16 telles que le couple (x, y p (x)) soit solution de l'équation (4) ; ces solutions de l'équation (4) sont les coordonnées des points finis de la courbe (la courbe contient également un point à l'infini noté Po.). On choisit de constituer l'ensemble de localisation au moyen de toutes ces solutions sauf celles où x = 0; l'ensemble de localisation a donc un cardinal égal à 60, et il peut être subdivisé en 15 agrégats qui ont chacun un cardinal.%(x) égal à 4. De manière générale, on note. Zmax la valeur maximale parmi les cardinaux 1(x) des agrégats, ici 2max = 4. On rappelle que chaque point P. de l'ensemble de localisation sert à identifier le j-ème élément de tout mot de code; le nombre de tels points étant ici égal à 60, la longueur n du code 30 est donc elle aussi égale à 60. Ensuite, on considère l'espace vectoriel L(m Pco) de polynômes en X et y à coefficients dans F16 dont les seuls pôles sont situés en Pte, et sont d'ordre inférieur ou égal à m, où :0 2g-2), possède une base constituée par les monômes hi = YX u, où t est un entier compris entre 0 et 3, u est un entier positif ou nul, 4u + 5t m, et i =1,..., n - k. Cette quantité p(hi) = 4u + 5t est habituellement appelée le poids du monôme hi. Prenons par exemple: m = 43; on obtient alors un ensemble de monômes hi où i = 1, . . ., 38, puisque m -g + 1 = 43 - 6 + 1 = 38. Les monômes hi peuvent être classés dans des sous-ensembles ordonnés de monômes Mt = {YtXu 1 0 u (43-5t)14} , où : 0 t 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 au point Pi de la courbe algébrique. La redondance (n -k) du code Q étant égale à 38, sa dimension vaut k = 60 - 38 = 22. La distance minimale d de ce code est au moins égale à n - k + 25 1-g = 33. Supposons que le mot reçu soit le mot r de poids 16, donné par le tableau suivant où a est un élément primitif de F16 vérifiant a4+a +1 = 0, x et y sont les coordonnées du point concerné dans l'ensemble de localisation, et r(x,y) la composante associée à (i.e. étiquetée par) ce point. Aux points (x, y) de la courbe non repris dans le tableau, le symbole reçu r (x, y) vaut O. x y r(x,y) a a13 a12 a 2 3 a 3 a a1 a3 a a 5 a4 a2 a 7 a7 a13 1 a7 a7 a9 a8 a9 a9 a11 a2 $ 14 a a 1 a8 a3 2 9 5 a a a a9 a8 a11 a9 a2 a11 a11 a12 a5 a11 a11 a5 14 14 10 a a a On fait alors appel aux syndromes d'erreurs étendus o1(i)=(Y'Xi e) , ou e est l'erreur de transmission affectant le mot reçu r, et Y'X représente le mot dont les composantes sont égales à la valeur prise par le monôme Yi Xi en les points de l'ensemble de localisation (la notation (ç1Iç2) représente le produit scalaire de deux mots c, et ç2 quelconques de longueur n). On notera en passant que, du fait que aq-1 = 1 pour tout élément non nul a de Fq, les syndromes d'erreurs étendus 6i(i) sont périodiques en i, avec une période égale à (q -1) . Dans l'exemple explicité ici, étant donné le mot reçu.12, on peut calculer les 38 syndromes correspondant aux 38 lignes de la matrice de parité H. Soit ai (i) le syndrome correspondant au monôme Y' X X. On obtient directement ces syndromes pour les valeurs non négatives de i et de j qui vérifient 0 Pour 0 On remarque que la correction d'erreur est réalisée sur tous les agrégats, sans chercher à déterminer au préalable si l'agrégat concerné est ou non un agrégat erroné par exemple au moyen d'un algorithme de localisation d'erreur. Dans l'exemple ci-dessus, on utilise la matrice V, de dimensions 15 x 15, dont l'élément en position (i, j), 1 On notera que le calcul de z1 à partir de a-; peut être avantageusement réalisé à partir de registres à décalage. Chaque colonne de V -1 est en effet une suite de puissances consécutives d'un même élément de Fq. Pour tout h fixé, le calcul de la composante z; (h) de z1 est donc aisément réalisé par le circuit de la figure 3, où l'élément D représente un élément à retard. Avantageusement, pour tout j, les q 1 composantes r1 (h) de z1 peuvent alors être calculées en parallèle par des circuits du type de la figure 3. Soit alors T, la matrice 4 x 15 dont les quatre lignes sont les quatre 15-uplets z;. La connaissance de cette matrice T est équivalente à celle des 60 valeurs de E; (ah) car en notant z;( h) l'élément en position (j, 14-h) de T, on a: ri( h) = E.i (ah). Ceci conduit à un calcul simple des erreurs ê (ah, yp (ah)) de la façon suivante. Désignons par th, h = 0, . . ., 14, la (h + 1) ème colonne de cette matrice T, et pour tout tel h, construisons la matrice de Vandermonde Vh, de type 4 x 4 basée sur les quatre éléments yp (ah), p = 1, ... ,4. Voici donc le modèle de ces matrices V,, : - 1 1 1 1 y1(ah) y2(ah) y3(ah) y4(ah) [y,(ah)]2 Ly2(ah)]2 [y3(ah)]2 [y4(ah)]2 J y1 (a h)r [y2 (a h)}3 [y3 (a h)r [y4 (ah)i' Le vecteur colonne e (ah) - [e(ah, Y1(ah) ), e(ah, y2(ah) ), e(ah, Y2(ah) ), e(ah, Y3(ah) )f (où l'accent circonflexe A indique qu'il s'agit d'erreurs estimées et où T indique la transposition) est alors simplement donné par ê (ah) = Vh-1 t h. De façon préférentielle, on peut décider de ne pas effectuer matériellement le calcul des erreurs dans l'agrégat indicé par ah lorsque les erreurs transformées Ei (ah) sont toutes nulles. Dans ce cas en effet, on est sûr d'avance que les erreurs dans l'agrégat ah seront également nulles. En résumé, on calcule les quatre lignes z; de la matrice T en multipliant les quatre vecteurs des syndromes a- ; (complétés par les composantes de syndromes dites inconnues ) par V -1 et on détermine les erreurs dans l'agrégat indicé par ah en multipliant la colonne correspondante de T par l'inverse de la matrice de Vandermonde basée sur les quatre valeurs yp (ah), p = 1, . . . ,4, de Y telles que (ah, yp (ah)) soit un point sur F16 de la courbe Y4+Y+X5= O. On remarque que cette détermination des erreurs ê (ah, yp (ah)) est réalisée directement sans avoir préalablement et explicitement localisé les agrégats contenant au moins une erreur. Le passage à un cas plus général ne présente pas de difficultés. On peut toujours calculer a vecteurs o- ; de longueur q 1 et les composantes transformées E; (x) des erreurs sont les composantes du vecteur a-; V_1 où V est la matrice de Vandermonde basée sur les éléments non nuls de Fq. Si pour x donné, tous les E (x) sont nuls, on considère naturellement que les composantes du mot reçu r dans l'agrégat d'indice x sont correctes. Au contraire, s'il existe à x fixé, au moins une composante E; (x) qui est non nulle, on considère que l'agrégat d'indice x est erroné et on cherche à déterminer les erreurs affectant chaque composante r (x, yp (x)) du mot reçu dans cet agrégat. Dans ce but, on calcule pour chaque telle valeur de x, les estimations ê (x, yp (x)) des erreurs respectives sur les composantes r (x, yp (x)) du mot reçu en résolvant le système d'équation 2(x) E. (x) _ [y (x)Pê(x, y (x)) P=1 où l'on a choisi des équations associées à des valeurs consécutives de j et en nombre au moins égal au nombre 2(x) de composantes de l'agrégat indicé par x. Ce système contient un système de Vandermonde non singulier de petite taille dont le vecteur solution formé par les composantes de l'erreur dans l'agrégat indicé par x=ah pour a primitif dans Fq est donné par: e(ah,Y1(ah)) e(ah,y2(ah)) e(a h' yz(ah) (a h))_ YI (ah)-1 (ah) Y2(ah)-' (ah) zo,h rlh - -T(ah)-1,h 1 ' h Y2(ah) (a) ZO,h rl,h =,9 rÀ(ah)-],h - Retournant à l'exemple décrit ici en détail, on peut remarquer que, à x non nul dans F16 fixé, les quatre solutions de l'équation Y4+Y+ x 5=o en Y sont de quatre types différents: [a a2 a4 a$] pourx= 1, a3, a6, a9, a12, [a6 a7 a9 a 13] pour x = a, a4, a7, a10, a 13 [a3a11 a12 a14] pourx= a2, a5, as, a11, a14. Par exemple, la matrice de Vandermonde 9 construite sur [a 6a' a' a 13] (utilisable pour les agrégats correspondant à x = 13 a) est: 1 1 1 1 a6 a7 a9 a'3 a 12 a'4 a 3 a'' a3 a6 a12 a9 et son inverse 0' est: a, a4, a7, a1 aga a'2 a6 a 13 a '4 a 7 a" a3 a9 a' a1' a13 En multipliant cette matrice inverse par la deuxième colonne de la matrice 'r correspondant à x = a, on obtient le vecteur [0 0 0 C 12] T; En multipliant cette matrice inverse par la cinquième colonne de la matrice 'r correspondant à x = a', on obtient le vecteur [0 0 0 1] T; En multipliant cette matrice inverse par la huitième colonne de la matrice Z correspondant à x = a', on obtient le vecteur [0 a 9 a 9 0] T; En multipliant cette matrice inverse par la onzième colonne de la matrice 'r correspondant à x = a 10, on obtient le vecteur [0 0 0 0] T; En multipliant cette matrice inverse par la quatorzième colonne de la matrice 'r correspondant à x = a 13, on obtient le vecteur [0 0 0 0] T. Dans l'agrégat indicé par x = a, il y a donc une seule erreur non nulle. Elle correspond à y = a 8 et cette erreur vaut a 12; dans l'agrégat indicé par x = a4, il y a donc une seule erreur non nulle. Elle 15 correspond à y = a 8 et cette erreur vaut 1; dans l'agrégat indicé par x = a', il y a donc deux erreurs non nulles correspondant à y = a 2 et à y = a 4 et ces erreurs valent toutes deux a 9; dans l'agrégat indicé par x = a 1 , toutes les erreurs sont nulles; dans l'agrégat indicé par x = a 13, toutes les erreurs sont nulles. Lorsqu'on retranche ces valeurs estimées d'erreur des composantes correspondantes du mot reçu, on obtient partout le symbole nul. On peut effectuer des calculs semblables pour les deux autres classesd'agrégats correspondant respectivement à x = 1, a 3, a 6, a 9, a 12 et à x = a2, a 5, a 8, a 11 a 14 Dans tous les cas, en retranchant les valeurs estimées d'erreur des composantes correspondantes du mot reçu, on obtient partout le symbole nul. Le mot décodé est donc le mot nul. Dans le cas général, les agrégats n'ont pas nécessairement tous la même taille. C'est le cas si le code, bien que construit sur une courbe de type C (a, b) maximale, c'est-à-dire ayant aq points sur Fq, est raccourci. C'est aussi le cas, plus fondamentalement, si pour la courbe de type C (a, b) donnée par l'équation F (X, Y)=0, il existe des valeurs différentes x1 et x2 dans Fq, pour lesquelles le nombre de solutions en Y (dans Fq) de F (xi, Y) = 0 et de F (x2, Y) = 0 est différent. Par exemple, avec a = 4, si on dispose des quatre polynômes q-2 Si (Z)= E cri (i) Z, j = 0, ..., 3, à partir desquels on peut calculer les quatre i=o vecteurs z1= 61 V-1, où 61 est le vecteur des u. (i). De façon équivalente, Ti est le vecteur ayant en position h, 0 h Si on se place pour l'exemple dans un cas où l'agrégat correspondant à x = x ne contienne que trois coordonnées notées (x, y1(x)) , (x, y2(x)) et (x, y3(x)), on a quatre équations portant sur les trois inconnues ê (x, y(x)),s 1,2,3: ê (x, yi(x))+ ê (x, y2(x)) + ê (x, y3(x)) = So (x -1) = Zo(x), y1(x) ê (x, Y1(x)) + y2(x) ê (x, y2(x)) + y3(x) ê (x, y3(x)) = (x -1) = ri (x), (yi(x))2 ê (x, y1(x)) + /(Y2/(x))2 ê (x, y2(x)) + (Y3/(x))2 ê (x, y3(x)) = S2 (x -1) = z2(x), (Y1(x))3 ê (x, Y1(x)) + (Y2(x))3 ê / (x, y2(x)) + / (Y3(x))3 ê (x, y3(x)) = S3 (x -1) = Î3(x), que l'on écrit comme 3 3 Y, Y2 Y3 où on a Omis les arguments x et yi(x) pour les éléments de la matrice et des deux vecteurs. Dans un tel cas, si aucun yj(x) n'est nul, on peut choisir soit les trois premières équations soit les trois dernières, parmi les quatre équations données ci-dessus sous forme matricielle. Par exemple, si on prend les trois dernières, on calculera les trois composantes et de l'erreur dans l'agrégat indicé par x en résolvant le système Y2 y3 2 2 Y2 Y3 3 3 Y2 Y3 io z, î2 e, e2 e3 y1 Y1 y1 Z1 22 z-3 e, e2 e3_ La première des quatre équations est alors utilisable pour vérifier la cohérence des valeurs ei ainsi calculées. Le schéma synoptique de la figure 2 représente un appareil de lecture de signaux numériques codés 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 10 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 30 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 - une table contenant chaque mot Y'X dont les composantes sont égales à la valeur prise par le monôme Y'X aux points de l'ensemble de localisation, pour i = 0,...,2L -1 et j = 0,..., Ama, -1, où L est le nombre total d'agrégats et Amax est la taille d'agrégat maximale, dans un registre W . 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 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 décodage d'un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0 de degré b en X et de degré a en Y sur Fq, caractérisé en ce qu'il comprend les étapes suivantes: - calcul de syndromes d'erreurs étendus (o-j(i)) associés à un mot reçu (r); - détermination des valeurs d'erreurs sur chaque composante (r(x, y p (x)) ) du mot reçu L, à partir des syndromes d'erreurs étendus calculés. 2. Procédé de décodage selon la revendication 1, caractérisé en ce que, la courbe algébrique étant partitionnée en agrégats, l'étape de détermination des valeurs d'erreurs sur chaque composante à partir des syndromes d'erreurs étendus comporte les étapes suivantes pour chaque agrégat: calcul, à partir des syndromes d'erreurs étendus, de valeurs d'erreurs composées (-1(h) , Ej(x)) représentant chacune une combinaison linéaire des erreurs sur les composantes de l'agrégat; - détermination que les erreurs sur les composantes de l'agrégat sont nulles si toutes lesdites valeurs d'erreurs composées sont nulles; - calcul des erreurs sur les composantes de l'agrégat si une au moins desdites valeurs d'erreur composées n'est pas nulle. 3. Procédé de décodage selon la revendication 2, caractérisé en ce que le calcul des syndromes d'erreurs étendus o-j(i) est effectué pour j= 0,..., jo -1, où jo est au moins égal à la valeur maximale '1'max des cardinaux a,(x) des agrégats du code. 4. Procédé de décodage selon l'une des revendications 1 à 3, caractérisé en ce que la détermination des valeurs d'erreurs comprend les étapes suivantes: - calcul de Ti = 61.V -1 pour] = 0, ... , a 1, où V-' est la matrice de dimensions (q 1) x (q 1) dont l'élément en position (i, j), 1 j 6. Procédé de décodage selon l'une des revendications 1 à 3, caractérisé en ce que la détermination des valeurs d'erreurs comprend les étapes suivantes: - mise en oeuvre, pour j = 0,...,/%max -1, au moyen du polynôme de syndromes d'erreurs q 2 / Si(Z) _ Eu./ (i)Zi i=0 d'un algorithme de correction d'erreurs adapté aux codes de Reed-Solomon, de manière à calculer l'erreur Ei(x) sur chaque composante étiquetée par l'élément x de Fq d'un mot de code de Reed-Solomon défini sur Fq, et - calcul des estimations ê(x, yp (x)) des erreurs respectives sur les composantes r(x, yp (x)) de r en résolvant le système d'équations du type 2(x) Ei(x) = E [yp(x)]' ê(x,yp(x)) , p=1 où l'on choisit des équations associées à des valeurs consécutives de j en nombre au moins égal au nombre de composantes 1(x) de l'agrégat considéré. 7. Procédé de décodage selon la revendication 6, caractérisé en ce que le calcul des estimations ê(x, yp (x)) est effectué seulement pour les valeurs de x telle qu'il existe au moins une valeur de j pour laquelle Ej(x) est non-nulle. 8. Procédé de décodage selon l'une quelconque des revendications 4 à 7, caractérisé en ce que, s'il existe au moins une valeur de x= ah associée à un agrégat erroné de cardinal 2(x) 9. Dispositif de correction d'erreurs pour code de géométrie 20 algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0 de degré b en X et de degré a en Y sur Fq, caractérisé en ce qu'il comprend: - des moyens de calcul de syndromes d'erreurs étendus (ai ) associés à un mot reçu (r) ; - des moyens de détermination des valeurs d'erreurs sur chaque composante (r(x, yp (x))) du mot reçu E, à partir des syndromes d'erreurs étendus calculés. (3) 10. Dispositif de correction d'erreurs selon la revendication 9, caractérisé en ce que, la courbe algébrique étant partitionnée en agrégats, les moyens de détermination des valeurs d'erreurs sur chaque composante à partir des syndromes d'erreurs étendus comprennent: - des moyens de calcul, pour chaque agrégat et à partir des syndromes d'erreurs étendus, de valeurs d'erreurs composées (z-;(h) , Ej(x) ) représentant chacune une combinaison linéaire des erreurs sur les composantes de l'agrégat; - des moyens de détermination que les erreurs sur les composantes 10 d'un agrégat sont nulles si toutes lesdites valeurs d'erreurs composées relatives à cet agrégat sont nulles; - des moyens de calcul des erreurs sur les composantes d'un agrégat si une au moins desdites valeurs d'erreur composées relatives à cet agrégat n'est pas nulle. 11. Dispositif de correction d'erreurs selon la revendication 10, caractérisé en ce que les moyens de calcul des syndromes d'erreurs étendus 6i (i) sont mis en oeuvre pour j = 0,..., jo -1, où jo est au moins égal à la valeur maximale /lmax des cardinaux À.(x) des agrégats du code. 12. Dispositif de correction d'erreurs selon l'une des revendications 9 à 11, caractérisé en ce que les moyens de détermination des valeurs d'erreurs comprennent: - des moyens de calcul de ri = .V - ' pour] = 0, ... , a - 1, où V-1 est la matrice de dimensions (q - 1) x (q - 1) dont l'élément en position (i, j), 1 j q- 1, est a - (' xi-1), a étant l'élement primitif de Fq; - des moyens pour calculer, pour tout h tel qu'il existe j tel que ri (h) 0, l'erreur ê(x, y p (x)) des composantes de l'agrégat défini par x =ah dans le mot reçu r par: e( ,Y, ) ) e(c,Y, (a' )) e( ,Y,w) (d)) 1 1 y,(a' ) y,,(d,)(a') yM''- (ay) ) zo(h) z, (h) (h) 13. Dispositif de correction d'erreurs selon la revendication 12, caractérisé en ce qu'il comprend, pour chaque j, un circuit comprenant un 5 registre à décalage et recevant en entrée les éléments du vecteur ai pour calculer les éléments du vecteur z J. 14. Dispositif de correction d'erreurs selon l'une des revendications 9 à 11, caractérisé en ce que les moyens de détermination des valeurs d'erreurs 10 comprennent: - des moyens de mise en oeuvre, pour j = 0,..., Âmax -1, au moyen du polynôme de syndromes d'erreurs q 2 Si (Z)=(i)Z, i=o d'un algorithme de correction d'erreurs adapté aux codes de Reed-Solomon, de manière à calculer l'erreur Ei(x) sur chaque composante étiquetée par l'élément x de Fq d'un mot de code de Reed-Solomon défini sur Fq, et -des moyens de calcul des estimations ê(x, y p (x)) des erreurs respectives sur les composantes r(x, yp (x)) de r en résolvant le système d'équations du type t(X) r EJ(x) = E [Yp(x)] ê(x,Yp(x)) + (3) p=1 où l'on choisit des équations associées à des valeurs consécutives de j en nombre au moins égal au nombre de composantes),(x) de l'agrégat considéré. 15. Dispositif de correction d'erreurs selon la revendication 14, caractérisé en ce que les moyens de calcul des estimations ê(x, y p (x)) sont mis en oeuvre seulement pour les valeurs de x telle qu'il existe au moins une valeur de j pour laquelle Ei(x) est non-nulle. 16. Dispositif de correction d'erreurs selon l'une quelconque des 5 revendications 12 à 14, caractérisé par des moyens de comparaison, en cas d'existence d'au moins une valeur de x = ah associée à un agrégat erroné de cardinal X(x) 17. Décodeur (10), caractérisé en ce qu'il comprend: - au moins un dispositif de correction d'erreurs selon l'une quelconque des revendications 9 à 16, et - au moins une unité de suppression de la redondance (108). 15 18. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 17, et en ce qu'il comprend des moyens (106) pour démoduler lesdits signaux numériques codés. 19. Système informatique (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 17, 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. 20. 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 l'une quelconque des revendications 1 à 8. 21. 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 l'une quelconque des revendications 1 à 8. 22. 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 l'une quelconque des revendications 1 à 8.