Brevet FR2867925A1 — publié le 20050923

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 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 = (vi,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 ( field en anglais), dit corps de Galois ( Galois field en anglais), noté Fq, dont les éléments non-nuls peuvent être commodément identifiés comme étant chacun égal à yt pour une valeur correspondante de i, où i =1,...,q -1, et où y est une racine (q 1)ème 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. Il y a erreur de transmission si la différence e entre un mot reçu r et le mot de code v correspondant envoyé par l'émetteur, est non-nulle. Plus précisément, le décodage se fait en deux étapes principales. La première étape consiste à associer au mot reçu un mot de code associé . Pour ce faire, le décodeur calcule d'abord le vecteur de syndromes 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é . 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. 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. 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, 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)12] (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 + l). 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 Htu = aU-1) (1 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 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 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 w1 (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) _ s1Z 1=0 et les st sont les composantes du vecteur de syndromes d'erreurs s, les erreurs sont alors données, pour i =1,...,n, par: 0 si A(w 0 S-2(co 1) si A(wïI) =0 P1A'(w11) où A'(Z) désigne la dérivée de A(Z) , et p. est égal à 1 pour un code de Reed-25 Solomon standard et à l'élément diagonal en position (i, i) de la matrice P pour un code modifié (voir ci-dessous). 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 uvre 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é récemment des codes dits codes de géométrie algébrique ou codes de Goppa géométriques (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). 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 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 PA (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+2gJ), 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. Dans le cadre de la présente invention, on s'intéresse à une classe très générale de codes de géométrie algébrique: ces codes, dont on trouvera un exemple décrit en détail ci-dessous, sont définis sur une courbe algébrique représentée par une équation f(X,Y) = 0 avec f(X,Y)=Xb+cYa+ Ec1YiX, où c 0 et les ci} 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 0, il existe au moins un monôme dont le poids est p, on dit que p est un poids réalisable . Soient pl Comme tous les codes, les codes de géométrie algébrique peuvent être modifiés et/ou 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). En particulier, il est courant de raccourcir un code de géométrie algébrique en supprimant de l'ensemble de localisation, le cas échéant, un point, ou plusieurs points, dont la coordonnée x est nulle. Les codes de géométrie algébrique sont avantageux quant à leur distance minimale d, qui est au moins égale à (n k+l 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 cité ci-dessus). 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 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. Inform. Theory, vol. 36 n 5, pages 1051 à 1060, novembre 1990). 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 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 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 d'algorithme de décodage itératif a été divulgué par M. O'Sullivan dans l'article A Generalization of the Berlekamp-MasseySakata Algorithm (preprint 2001). Tous les algorithmes de localisation d'erreurs mentionnés ci-dessus fournissent des polynômes de localisation d'erreurs A(x,y) dont les zéros comprennent tous les couples (x, y) étiquetant les composantes du mot reçu ayant souffert d'une erreur de transmission. L'ensemble des polynômes de localisation d'erreurs forme un idéal, dans lequel on peut définir une base appelée base de Grôbner . 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 (noté ci-dessus A(Z) pour les codes de Reed-Solomon), mais plusieurs polynômes (appartenant à 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 donc des dérivées partielles par rapport à ces deux variables, de sorte que la formule de Forney donnée ci-dessus, qui fait intervenir une dérivée unique, n'est plus applicable. On connaît divers algorithmes de calcul des erreurs pour codes de géométrie algébrique. L'article Algebraic Geometry Codes , de Tom Hoholdt, 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. II 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), et 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) calculent les valeurs des erreurs en évaluant un polynôme à deux variables en les zéros communs des polynômes de localisation d'erreurs. Ces algorithmes sont complexes à mettre en oeuvre, notamment du fait qu'ils comprennent la multiplication de polynômes à deux variables, en plus de multiplications formelles dans Fq. La demande de brevet européen n 03293336.8 au nom de CANON décrit un procédé de décodage qui effectue à la fois la localisation et la correction d'erreurs. Ce procédé de décodage s'applique à un vaste ensemble de codes, qui comprend notamment les 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) . Nous allons à présent décrire ce procédé 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 ayant une valeur commune de x (on aurait pu tout aussi bien définir les agrégats par une valeur commune de y en échangeant les rôles des inconnues X et Y de l'équation représentant la courbe algébrique sur laquelle est définie le code). Lorsque l'on souhaite faire apparaître cette structure en agrégats, les couples de l'ensemble de localisation (qui n'est d'ailleurs pas nécessairement un 2867925 10 ensemble de solutions d'une équation algébrique de type C(a,b)) seront notés (x, y p (x)) , où p = 0,...,/1(x) -1 et 2(x) est le cardinal de l'agrégat considéré, et les composantes de tout mot c de longueur n seront notées c(x, y p (x)) ; on dira que les composantes de c qui, étiquetées de la sorte, possèdent la même valeur de x forment un agrégat de composantes du mot c. Soit m le poids maximal des monômes définissant les lignes de la matrice de parité (voir ci-dessus). Selon la demande n 03293336.8, on classe ces monômes dans des ensembles de monômes M ={YJX'10 ., jmax. Ces symboles agrégés servent à former ( jmax +1) mots agrégés v [vi(x1),v(x2),...,v(xp)] de longueur ...DTD: 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 (jmax +1) équations: Ht(1) , vJT = 0 - où la fonction t(j) est donnée ci-dessus et, par définition, 1 1 1 H = t1 r-1 t-1 Xi X2... x1j L'intérêt de cette formulation est que cette matrice H de l'équation est une matrice de Vandermonde définie sur Fq; par conséquent, si on considère H'(') comme une matrice de parité définissant des mots de code il s'agit, pour chaque valeur de j, d'un code de Reed-Solomon, pour lequel on connaît des algorithmes de décodage aussi simples que performants. 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,x2,...,xp, les symboles reçus agrégés rj (x) sont donnés par 2(x)-1 r (x) [y], (x)]j p=o yp(x)) ; (1) puis on utilise l'algorithme de Berlekamp-Massey pour la localisation des symboles erronés de chaque mot suivi de l'algorithme de Forney pour la correction de ces symboles erronés, d'après le vecteur de syndromes d'erreurs s j = H'(j) r jT. Enfin, on calcule les symboles r(x, y p (x)) à partir des symboles r1(x) en utilisant le système d'équations (1) (ou un système équivalent) ; ce système possède une solution unique à condition que (jmax +1) (le nombre d'équations) soit au moins égal à 2,nax ' où ',nax est le plus grand parmi les 20 cardinaux d'agrégat /l.(x) (le nombre d'inconnues). Ainsi, par rapport aux algorithmes de correction d'erreurs mentionnés précédemment, le gain en complexité résultant de l'utilisation du procédé selon la demande n 03293336.8 est significatif, et ce, malgré la nécessité de mettre en oeuvre un algorithme de correction d'erreurs adapté aux codes de Reed- Solomon (par exemple l'algorithme de Forney) un certain nombre de fois (au moins égal à 2max), et de résoudre pour chaque agrégat erroné étiqueté par une certaine valeur x de X un système d'équations (1) de taille 2(x) ; on notera toutefois à cet égard que.max est au plus égal à a, où a désigne, rappelons-le, l'exposant de Y dans l'équation représentant la courbe algébrique. On notera par ailleurs que le système d'équations (1) est un système de Vandermonde; comme il est bien connu de l'homme du métier, la résolution d'un tel système d'équations linéaires est particulièrement simple. De plus, la mise en oeuvre de ce procédé de décodage est particulièrement avantageuse pour un certain type de canaux: il s'agit des canaux dans lesquels les données à transmettre sont g'rbupées en blocs de longueur prédéterminée, et dans lesquels le taux d'erreurs par donnée transmise est essentiellement constant au sein d'un même bloc. Autrement dit, de tels canaux sont physiquement caractérisés en ce que, le plus souvent, les bruits de transmission affectent les données par bloc, et peuvent affecter différemment des blocs différents; ainsi, pour certains blocs, la probabilité d'erreur pourra être très faible ou même nulle, cependant que pour certains autres blocs la probabilité d'erreur pourra être élevée et même proche de (q-1)/q. Cela se traduit par une rafale d'erreurs ( burst of errors en anglais) en termes de symboles du corps de Galois. Un exemple, important dans la pratique industrielle, de canaux de ce type est constitué par l'enregistrement/lecture sur disque dur. En effet, les bits composant les symboles des mots de code sont habituellement enregistrés au moyen d'un code de modulation destiné à assurer certaines propriétés spectrales souhaitables, par exemple la propriété selon laquelle le nombre de 1 est, en moyenne, approximativement égal au nombre de 0 . Pour obtenir ce résultat, les bits entrant dans le modulateur sont groupés par blocs a de N bits; en fonction du bilan entre le nombre total de 1 et le nombre total de 0 précédemment enregistrés, un bloc a sera enregistré sur le disque, soit tel quel, soit sous forme de son complément a' (où l'on a changé chaque 1 en un 0 et inversement), de manière à ce que le nouveau bilan soit aussi proche que possible de l'égalité. Lorsqu'une erreur d'enregistrement/lecture se produit sur un bit particulier, l'ambiguïté résultant du codage de modulation fait que l'on ne peut corriger individuellement ce bit, et que l'on doit par conséquent, en pratique, se résoudre à considérer le bloc entier de N bits comme erroné. Comme l'on considère par ailleurs que les bits enregistrés et lus forment des multiplets représentant des symboles d'un corps de Galois, un bloc erroné de N bits sera généralement à cheval sur plusieurs symboles; par exemple, si N-48 et q -210, un bloc erroné pourra être à cheval sur 6 multiplets de 10 bits successifs, ce qui se traduit par une rafale d'erreurs affectant 6 symboles du corps de Galois. On voit donc que le procédé de décodage selon la demande n 03293336.8, qui corrige en premier lieu des agrégats erronés associés au mot reçu et non des composantes individuelles erronées de ce mot, est bien adapté à tirer parti d'une telle répartition du bruit sur un canal de transmission: il suffit pour cela d'insérer en position adjacente dans le flux de données à transmettre les composantes d'un mot de code (de canal) appartenant à un même agrégat. En revanche, et pour la même raison, le nombre d'erreurs individuelles que l'on peut corriger avec ce procédé peut être inférieur à la capacité de correction d'erreurs théorique du code (comme expliqué ci-dessus, cette capacité théorique est égale à INT[(d-1)/2], où d est la distance minimale du code de géométrie algébrique considéré). Cela étant, la question se pose de savoir si les codes pouvant bénéficier de ce procédé de décodage souffrent tous de cet inconvénient dans la même mesure. L'invention concerne donc, selon un premier aspect, un procédé de codage de symboles d'information, comprenant une étape dans laquelle on associe à tout bloc de k symboles d'information appartenant à un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot v appartenant à un code Q de longueur n. Ce procédé est remarquable en ce que la matrice de parité dudit code Q est égale à la matrice H que l'on obtient de la manière suivante: - on choisit un code Q' 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 de degré 5 b en X et de degré a 3 en Y, - on classe les monômes associés audit code Q', qui sont de poids maximal m, dans des ensembles de monômes M'.={YiXSi Plus précisément, pour augmenter, à la première étape de décodage, le nombre d'agrégats localisables d'une unité, il faut ajouter un monôme Y''X (avec i =1 + (m - bJ) / a) à l'ensemble M'j si le cardinal de M'j est impair, mais il faut ajouter deux monômes Y''X t (avec i =1 + (m - bJ) /a, et 25 i =2+(m-bJ)/a) si ce cardinal est pair. On peut évidemment, pour constituer l'ensemble Mj, ajouter encore d'autres monômes Y''X à l'ensemble M'1, afin d'augmenter encore plus le nombre d'agrégats localisables lors la première étape de décodage. Ce faisant, selon l'invention, on retire des monômes dans les autres ensembles de 30 monômes de manière à maintenir la redondance du code. U est clair, toutefois, que ce processus va se trouver limité par le respect des conditions t(J) 2t(j) pour tout j J. Cela étant, il n'est pas nécessairement souhaitable d'avoir (le cas échéant) t(J) strictement égal à 2t(j) pour tout j J. En effet, il peut se produire, occasionnellement, que, pour un certain agrégat erroné, étiqueté par x, E1 (x) =0, mais ED (x) 0 où D est une certaine valeur de j J, et où, si l'on désigne par e(x, y p (x)) l'erreur sur la composante r(x, y p (x)) (où p=0,...,2(x) 1) du mot reçu r, E.(x) désigne l'erreur agrégée affectant le mot agrégé r1 (x) et vérifiant 2(x)-1 Ej (x) [y p (x)]' e(x, y p (x)) p=0 quel que soit j (voir système d'équations (1)). Dans ce cas, les erreurs e(x, y p(x)) non-nulles dans l'agrégat étiqueté par x, que l'on pourrait appeler erreurs jumelles , ne sont pas localisées lors du décodage associé à j = J, mais lors du décodage ultérieur associé à j = D. Lorsque le nombre d'agrégats erronés est soit égal à t(J)/2, soit même inférieur à t(J)/2 mais en étant proche de cette valeur, la localisation de ces erreurs jumelles lors du décodage associé à j = D ne peut se faire que si l'on dispose d'une redondance supplémentaire , c'est à dire supérieure à t(J)/2; autrement dit, le choix de t(J) = 2t(j) pour tout j J permettrait uniquement de corriger les erreurs qui ont été localisées lors du premier décodage (celui associé à j = J), et ne permettrait pas de corriger les erreurs jumelles. Notons toutefois que l'occurrence d'erreurs jumelles est relativement rare. Compte tenu de ce qui précède, selon des caractéristiques particulières, on impose les condition supplémentaires: t(j) Ainsi, dans ce mode de réalisation, chaque t(j) pour j J se trouve être légèrement supérieur à la limite inférieure t(J)12 prévue par l'invention. Grâce à ces dispositions, la capacité de localisation d'agrégats erronés lors du décodage associé à j = J est quasiment optimale, et l'on peut même en plus corriger un certain nombre d'erreurs jumelles. Selon d'autres caractéristiques particulières, l'ensemble de localisation dudit code Q est identique à l'ensemble de localisation dudit code Q' . Grâce à ces dispositions, on peut obtenir un procédé de décodage particulièrement robuste en ce sens que l'on peut, en s'appuyant sur certaines propriétés des équations algébriques, incorporer dans ce procédé des moyens faisant que, dans la plupart des cas où le nombre d'erreurs dans un mot reçu excède la capacité de correction de l'algorithme, cette incapacité peut être détectée, au lieu de conduire à une fausse correction. Cette détection permet évidemment à l'utilisateur de prévoir une réponse adaptée, par exemple le recours à un autre algorithme de correction plus puissant pour décoder ce mot reçu. Mais d'autres choix (incompatibles ou non) que ce dernier quant à l'ensemble de localisation du code peuvent également s'avérer être intéressants lors d'une mise en oeuvre de l'invention. Ainsi, selon d'autres caractéristiques particulières, on choisit un cardinal fixe 2 pour tous les agrégats, et l'on choisit pour chaque coordonnée yp(x) , où p = 0,...,2 -1, une valeur fixe yp pour p donné. Grâce à ces dispositions, le système d'équations (1) possède des coefficients invariables d'un agrégat à l'autre, ce qui rend encore plus rapide la résolution du système d'équations (1) (ou son équivalent (2)) en cours de décodage. Naturellement, l'invention concerne également les procédés de codage mettant en oeuvre des codes obtenus en modifiant ou en raccourcissant un code tel que défini succinctement ci-dessus. L'invention concerne également, selon le même premier aspect, un procédé de communication de données. Ce procédé de communication comprend les étapes suivantes: a) les données à transmettre sont codées conformément à l'un des procédés de codage décrits succinctement ci-dessus, b) les données codées sont transmises sous forme de blocs de longueur prédéterminée, et c) les données reçues sont décodées conformément à un procédé de décodage par agrégats. Comme expliqué ci-dessus, on bénéficie ainsi d'un algorithme de correction d'erreurs relativement simple à mettre en oeuvre, tout en réduisant le taux d'erreurs survenant lors de ladite communication et dépassant la capacité de correction de l'algorithme. Selon un second aspect, l'invention concerne un dispositif de codage apte à associer à tout bloc de k symboles d'information appartenant à un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de code v appartenant à un code Q de longueur n. Ce dispositif est remarquable en ce que la matrice de parité dudit code Q est égale à la matrice H que l'on obtient de la manière suivante: - on a choisi un code Q' 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 de degré b en X et de degré a 3 en Y, - on a classé les monômes associés audit code Q' , qui sont de poids maximal m, dans des ensembles de monômes M'-={Y'X' Naturellement, l'invention concerne également les dispositifs de codage mettant en oeuvre des codes obtenus en modifiant ou en raccourcissant un code tel que défini succinctement ci-dessus. Les avantages de ces dispositifs de codage sont essentiellement les mêmes que ceux des procédés corrélatifs décrits succinctement ci-dessus. L'invention vise également - un appareil d'enregistrement de signaux numériques codés comprenant un dispositif de codage tel que décrit succinctement ci-dessus, des moyens pour moduler lesdits signaux numériques codés, et un enregistreur de données modulées, - un appareil d'émission de signaux numériques codés comprenant un dispositif de codage tel que décrit succinctement ci-dessus, des moyens pour moduler lesdits signaux numériques codés, et un émetteur de données modulées, - un système de stockage de données comprenant au moins un appareil d'enregistrement de signaux numériques codés tel que décrit succinctement ci-dessus, au moins un support d'enregistrement, et au moins un appareil de lecture de signaux numériques codés, - un système de télécommunication de données sous forme de blocs de longueur prédéterminée, comprenant au moins un appareil d'émission de signaux numériques codés tel que décrit succinctement ci-dessus, et au moins un appareil de réception de signaux numériques codés, - un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de codage et/ou de communication 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 codage et/ou de communication succinctement exposés ci-dessus, et - un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre l'un des procédés de codage et/ou de communication succinctement exposés ci-dessus. Les avantages offerts par ces appareils d'enregistrement ou d'émission, ces systèmes de stockage de données ou de télécommunication, 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 codage et de communication selon l'invention. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1 est un schéma synoptique d'un système de transmission d'informations selon un mode de réalisation de l'invention, - la figure 2 représente un appareil d'enregistrement de signaux numériques incorporant un codeur selon l'invention, et - la figure 3 représente un appareil de lecture de signaux numériques. La figure 1 est un schéma synoptique d'un système de transmission d'informations utilisant un 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 série de bits conformément à un code de modulation, comme expliqué ci-dessus). 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 nonfilaire 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 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 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. 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. Considérons donc un code de géométrie algébrique Q' de dimension 34 et de longueur 60 défini comme suit. 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 30 équivalent au signe devant tout coefficient d'un polynôme à coefficients sur ce 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 (3) 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 (3) ; ces solutions de l'équation (3) sont les coordonnées des points finis de la courbe (la courbe contient également un point à l'infini noté P.). 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 2(x) égal à 4. On rappelle que chaque point Pfl de l'ensemble de localisation sert à identifier le,8 ème élément de tout mot de code; le nombre de tels points étant ici égal à 60, la longueur n du code est donc elle aussi égale à 60. Ensuite, on considère l'espace vectoriel L(m P.) de polynômes en X et Y à coefficients dans F16 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 de la courbe représentée par l'équation (3) est donc un code de géométrie algébrique dit à un point ). Cet espace vectoriel, qui est de dimension supérieure ou égale à (ni- g +1) (égale si m > 2g - 2), possède une base constituée par les monômes h'a = Y' X, où j est un entier compris entre 0 et 3, i est un entier positif ou nul, 4i + 5 j Prenons par exemple: m =31; on obtient alors un ensemble de monômes h'a où a = 1,...,26, puisque: m-g+1=31-6+1=26. Les monômes h'a peuvent être classés dans des sous-ensembles ordonnés de monômes M'{Y'X I 0 On peut par exemple prendre pour matrice de parité H' de ce code Q' la matrice dont l'élément H'afl en ligne a et colonne /.3 est égal à la valeur prise par le monôme h'a au point PQ de la courbe algébrique. La redondance (n k) du code Q' étant égale à 26, sa dimension vaut 10 k = 34. La distance minimale d de ce code est au moins égale à n k +1 -- g = 21. On peut donc corriger (au moins) INT[(21-1)/2] = 10 symboles ayant subi une erreur de transmission si l'on utilise un algorithme de décodage ayant cette capacité de correction maximale; comme expliqué ci-dessus, de tels algorithmes sont complexes à mettre en oeuvre. Conformément à l'invention, on construit à présent, à partir de ce code Q' , un code Q de même longueur 60 et de même dimension 34 que le code Q' ; le code Q a donc lui aussi une redondance: n k = 26. Dans cet exemple de réalisation, on prendra pour le code Q un ensemble de localisation identique à celui du code Q' . D'autre part, on choisit d'associer au code Q les monômes ha, où a =1,...,26, que l'on trouvera ci-dessous classés dans les sous-ensembles ordonnés de monômes Mi, où 0 j On peut par exemple prendre pour matrice de parité H du code Q la matrice dont l'élément Hafi en ligne a et colonne fi est égal à la valeur prise par le monôme ha au point Pfl de la courbe algébrique. On est ainsi passé d'une capacité de localisation d'erreurs par agrégats égale (dans la plupart des cas) à INT[t'(0)/2] = 4 à une capacité de localisation d'erreurs par agrégats égale (dans la plupart des cas) à INT[t(0)/2] = 5. On va maintenant illustrer, à l'aide d'un exemple numérique, le décodage d'un mot reçu r associé à un mot transmis appartenant à ce code Q. Pour cela, choisissons comme élément primitif de F16 une racine a de l'équation Z4 +Z+1= 0. Supposons que l'on reçoive un mot r produisant, pour j allant de 0 à 3, les vecteurs de syndromes d'erreurs (naturellement à t(j) composantes) suivants: S0 = Ht(0) .rOT _ [a13a2a5a9a13a10 a9 at4a6a6]T fi = Ht(1) r 1T. [a9a3a2al2a4a4]T s2 =11 É r2T = [a4a3a9a 0, et s3 = Ht(3) r3T _ [a10a7a6a11a10]T Appliquons l'algorithme de Berlekamp-Massey au mot agrégé r0. On obtient ainsi le polynôme de localisation d'erreurs: A0(Z) =1+a10Z+a11Z2 +a5Z3 +Z4 +a12Z' , qui se factorise de la manière suivante: Ao(Z)=(1-Z)(1-aZ)(1-a5Z)(1-a7Z)(1-a14Z) . Par application de l'algorithme de Berlekamp-Massey au mot agrégé rl, avec initialisation par A(Z) = Ao (Z) , on obtient le polynôme de localisation d'erreurs A1(Z) = A0(Z) . Cette étape ne fournit donc pas de nouvel agrégat erroné. Par application de l'algorithme de Berlekamp-Massey au mot agrégé 2, avec initialisation par A(Z) = A1(Z), on obtient le polynôme de localisation d'erreurs A2 (Z) = Al (Z) . Cette étape ne fournit donc pas de nouvel agrégat erroné. Par application de l'algorithme de Berlekamp-Massey au mot agrégé r3, avec initialisation par A(Z) = A2 (Z) , on obtient le polynôme de localisation d'erreurs A3 (Z) = A2 (Z) . Cette étape ne fournit donc pas de nouvel agrégat erroné. Les agrégats erronés sont donc associés au valeurs de x suivantes: x1=1, x2=a,x3=a5,x4=a',x5=a14. Ces agrégats sont de cardinal 4 (comme d'ailleurs, en l'occurrence, tous les agrégats de cet ensemble de localisation), et par conséquent: ,nax = 4. Pour la correction des erreurs agrégées Ei(x) affectant chaque mot agrégé, on peut par exemple faire appel à l'algorithme de Forney, appliqué à A3 (Z) . On obtient ainsi: Eo(1)=a11,Eo(a)=a11,Eo(a5)=a11,Eo(a7)=a11 Eo(a14) =a13 E1(1)=a6,E1(a)=a2,E1(a5)=a12,E1(a7)=a9,E1(a14)=a10, E2(1)=a',E2(a) =a9,E2(a5)=a11,E2(a7)=0,E2(a14)=a6, et E3(1)=0,E3(a)a11,E3(a5)=a',E3(a') =a9,E3(a14)=a12. La dernière étape de l'algorithme de correction par agrégats consiste à regrouper les résultats ci-dessus agrégat par agrégat, et à calculer les estimations ê(x, y p (x)) des erreurs respectives sur les composantes r(x, y p (x)) , où p = 0,..., 2(x) -1, de r en résolvant le système d'équations de Vandermonde: 2(x)-1 EJ (x) [y/,(x) ] e(x,yp (x)) , Oë i = 0,...,jmax, p=0 (voir système d'équations (2)) pour chaque agrégat. En l'occurrence, ces systèmes d'équations sont de taille jmax +1=4, et tous les agrégats ont un cardinal 2(x) = 4. Ainsi: - pour xl =1, sachant que Yo(1)=a,Y1(1)=a2,Y2(1)=a4,Y3(1)=a' , on trouve: ê(1,Yo(1)) =0, ê(l,Y1(1)) =0, ê(1,Y2(1)) = a', e(1,Y3 (1)) = a' - pour x2 = a, sachant que Yo(a)=a6,Y1(a)=a',Y2(a)=a9,Y3(a)=a13, on trouve: ê(a,Yo(a = 1, ê(a,YI (a)) = a2, ê(a,y2 (a)) = a' , ê(a,y3 (a)) = 0; - pour x3 = a5, sachant que y0(a5)=a3,Y1(a5)=a'1y2(a5)=a12,y3(a5)=a14 on trouve: ê(a5,Yo(a5)) =a, e(a5,Y1(a5)) = a2, êta' ,Y2(a5)) = a3, e(a5,Y3(a5)) = 0; - pour x4 =a' , sachant que Yo(a7)=a6,y1(a')=a',Y2(a7)=a9,y3(a =a13 on trouve: e(a',Yo(a'')) =1, e(a7,Yt (a)) = a8, ê(a7,Y2(a7)) = a11, ê(a7, Y3(a7)) = a2; et - pour x5 = a14, sachant que Yo(a14)=a3,Y1(a14)=a11,y2(a14)=a12,Y3(a14) =a14 on trouve: e(a14,yo(al4)),e(a14,Y1(a14))=0,e(a14,Y2(a14))_a9 e-, 14 Y3(a14))=a5. Le code Q selon l'invention a donc été capable, dans cet exemple numérique, de corriger les 15 erreurs individuelles contenues dans le mot reçu. Ce résultat doit maintenant être comparé à la capacité de correction d'erreurs du code de géométrie algébrique Q' décrit ci-dessus. Naturellement, les mots du code Q' sont en général différents des mots du code Q, mais supposons, aux fins de comparaison, que les erreurs, et par conséquent les erreurs agrégées E1(x) , affectant un certain mot reçu soient les mêmes que celles que l'on vient de calculer. Dans ce cas, comme t'(0) =8, le vecteur de syndromes d'erreurs pour le code de Reed- Solomon associé à j = 0 comprend les 8 premières composantes du vecteur correspondant mentionné ci-dessus, soit: si0 = Ht'(0) EOT _ [a13a2a5a9a13a10 a9 a141T L'application de l'algorithme de BerlekampMassey fournit alors le polynôme de localisation d'erreurs: A'0 (Z)=1+ a13Z+a10Z3 +Z4. Or ce polynôme n'a pas de racines dans F16. L'algorithme de correction d'erreurs par agrégats se révèle donc en l'occurrence incapable de détecter l'une quelconque des 15 erreurs affectant le mot reçu. En supposant qu'ils soient décodés au moyen d'un algorithme par 15 agrégats, le code Q' ne pourra corriger (dans la plupart des cas) que des mots contenant au plus t'(0)/2=4 agrégats erronés, alors que le code Q pourra corriger (dans la plupart des cas) des mots contenant au plus t(0)/2 =5 agrégats erronés. On notera que même si l'on cherchait à corriger les erreurs dans un 20 mot appartenant à Q' en utilisant un algorithme classique de correction d'erreurs individuelles (tel que l'algorithme de O'Sullivan), on serait normalement incapable de corriger plus de 10 erreurs. Cela est à comparer à la capacité de correction du code Q selon l'invention lorsqu'il est décodé avec un algorithme par agrégats, qui est comprise (dans la plupart des cas) entre 5 x 1 = 5 (une seule erreur par agrégat erroné) et 5 x 4 = 20 (4 erreurs par agrégat erroné) ; on a ainsi pu corriger 15 erreurs individuelles dans l'exemple ci-dessus. On comprend aisément que le code selon l'invention soit particulièrement avantageux dans le cas de canaux où les erreurs de transmission tendent à se produire en rafales. Le schéma synoptique de la figure 2 représente, de façon très schématique, un appareil d'enregistrement de données d'information 48 incorporant le codeur 102. Cet appareil 48 comprend un clavier 911, un écran 909, une source d'informations externe 100, un modulateur 103 et un enregistreur de données modulées 104, conjointement reliés à des ports d'entrée/sortie 903 d'un dispositif de codage 102 qui est réalisé ici sous la forme d'une unité logique. Le dispositif de codage 102 comporte, reliés entre eux par un bus d'adresses et de données 902: - une unité centrale de traitement 900, une mémoire vive RAM 904, - une mémoire morte 905, et - lesdits ports d'entrée/sortie 903. Chacun des éléments illustrés en figure 2 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - la source d'informations 100 pourrait être, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait par exemple fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, et - l'enregistreur 104 est adapté à enregistrer des données modulées sur un support tel qu'un disque magnétique. La mémoire vive 904 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. On observera, au passage, que le mot registre désigne, à travers la présente description, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier) au sein d'une mémoire vive ou d'une mémoire morte. La mémoire vive 904 comporte notamment les registres suivants: - un registre symboles information dans lequel sont conservés les symboles d'information appartenant à Fq, et - un registre mots code , dans lequel sont conservés les mots de code v avant qu'ils ne soient soumis au modulateur 103. La mémoire morte 905 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: le programme de fonctionnement de l'unité centrale de traitement 900, dans un registre programme , - la longueur des mots de code, dans unregistre n , - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre q , - le nombre de symboles d'information servant à construire un mot de code, dans un registre k , et - la matrice de parité du code, dans un registre H . Le schéma synoptique de la figure 3 représente 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 de données 702: - une unité centrale de traitement 700, - une mémoire vive (RAM) 704, - une mémoire morte (ROM) 705, et - lesdits ports d'entrée/sortie 703. Chacun des éléments illustrés en figure 3 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de 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, - des registres mots agrégés , dans lesquels sont conservés les mots reçus agrégés, - 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 des mots de code dans un registre n , - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre q , - le nombre de symboles d'information servant à construire un mot de code, dans un registre k , et - les matrices de parité des codes de Reed-Solomon, dans des registres H' . On notera que, dans certaines applications, il sera commode d'utiliser le même dispositif informatique (fonctionnant en mode multi-tâches) pour l'échange, c'est-à-dire à la fois l'émission et la réception, de signaux selon l'invention; dans ce cas, les unités 10 et 102 seront physiquement identiques. On a décrit ci-dessus à titre d'exemple une application de l'invention au stockage de masse des données, mais il est clair que les procédés selon l'invention peuvent tout aussi bien être mis en oeuvre au sein d'un réseau de télécommunications, auquel cas l'unité 105 par exemple pourrait être un récepteur adapté à mettre en oeuvre un protocole de transmission de données par paquets sur un canal hertzien. REVENDICATIONS 1. Procédé de codage de symboles d'information, comprenant une étape dans laquelle on associe à tout bloc de k symboles d'information appartenant à un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot v appartenant à un code Q de longueur n, caractérisé en ce que la matrice de parité dudit code Q est égale à la matrice H que l'on obtient de la manière suivante: - on choisit un code Q' 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 de degré b en X et de degré a>_ 3 en Y, - on classe les monômes associés audit code Q' , qui sont de poids maximal m, dans des ensembles de monômes M'.={YIXI0 3. Procédé de codage selon la revendication 1 ou la revendication 2, caractérisé en ce que l'ensemble de localisation dudit code Q est identique à l'ensemble de localisation dudit code Q' . 4. Procédé de codage selon l'une quelconque des revendications précédentes, caractérisé en ce que, pour définir l'ensemble de localisation dudit code Q, on choisit un cardinal fixe 2 pour tous les agrégats, et l'on choisit pour chaque coordonnée yp(x), où p = 0,...,2 -1, une valeur fixe yp pour p donné. 5. Procédé de codage, caractérisé en ce que la matrice de parité du code est obtenue en post-multipliant par une matrice diagonale non singulière la matrice de parité telle que définie dans un procédé selon l'une quelconque des revendications précédentes. 6. Procédé de codage, caractérisé en ce que la matrice de parité du code est obtenue en supprimant au moins une colonne dans la matrice de parité telle que définie dans un procédé selon l'une quelconque des revendications précédentes. 7. Procédé de communication de données, caractérisé en ce qu'il comprend les étapes suivantes: a) les données à transmettre sont codées conformément à un procédé 30 de codage selon l'une quelconque des revendications précédentes, b) les données codées sont transmises sous forme de blocs de longueur prédéterminée, et c) les données reçues sont décodées conformément à un procédé de décodage par agrégats. 8. Dispositif de codage (102) apte à associer à tout bloc de k symboles d'information appartenant à un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, un mot de code v appartenant à un code Q de longueur n, caractérisé en ce que la matrice de parité dudit code Q est égale à la matrice H que l'on obtient de la manière suivante: - on a choisi un code Q' 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 de degré b en X et de degré a 3 en Y, - on a classé les monômes associés audit code Q' , qui sont de poids 15 maximal m, dans des ensembles de monômes M'J={Y'X10 12. Dispositif de codage, caractérisé en ce que la matrice de parité du code est obtenue en post-multipliant par une matrice diagonale non singulière la matrice de parité telle que définie dans un dispositif selon l'une quelconque des revendications 8 à 11. 13. Dispositif de codage, caractérisé en ce que la matrice de parité du code est obtenue en supprimant au moins une colonne dans la matrice de parité telle que définie dans un dispositif selon l'une quelconque des revendications 8 à 12. 14. Appareil d'enregistrement de signaux numériques codés (48), caractérisé en ce qu'il comprend un dispositif de codage selon l'une quelconque des revendications 8 à 13, des moyens (103) pour moduler lesdits signaux numériques codés, et un enregistreur de données modulées (104). 15. Appareil d'émission de signaux numériques codés (48), caractérisé en ce qu'il comprend un dispositif de codage selon l'une quelconque des revendications 8 à 13, des moyens (103) pour moduler lesdits signaux numériques codés, et un émetteur de données modulées (104). 16. Système de stockage de données, caractérisé en ce qu'il comprend: - au moins un appareil d'enregistrement de signaux numériques codés selon la revendication 14, - au moins un support d'enregistrement, et - au moins un appareil de lecture de signaux numériques codés (70). 17. Système de télécommunication de données sous forme de blocs de longueur prédéterminée, caractérisé en ce qu'il comprend: - au moins un appareil d'émission de signaux numériques codés selon la revendication 15, et - au moins un appareil de réception de signaux numériques codés (70). 18. Moyen de stockage de données inamovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage selon l'une quelconque des revendications 1 à 6, et/ou d'un procédé de communication selon la revendication 7. 19. Moyen de stockage de données partiellement ou totalement amovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de codage selon l'une quelconque des revendications 1 à 6, et/ou d'un procédé de communication selon la revendication 7. 20. 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é de codage selon l'une quelconque des revendications 1 à 6, et/ou d'un procédé de communication selon la revendication 7.