FR 2877165 A1 20060428 FR 0411352 A 20041025 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 des procédés de décodage ainsi que les dispositifs et appareils destinés à mettre en oeuvre ces procédés. On rappelle que le codage 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 = 23 = 8, 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. 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. 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 oeuvre au niveau du récepteur un procédé de décodage qui exploite judicieusement la redondance mentionnée ci-dessus. Le décodage comprend deux étapes principales. La première étape de décodage consiste à associer au mot reçu un 5 mot de code associé v = r - ê , où v appartient au code et ê est une valeur estimée de l'erreur e. On connaît (au moins) deux approches pour mettre en oeuvre cette première étape. Selon la première approche, on cherche à associer au mot reçu le mot de code situé à la distance de Hamming la plus courte de ce mot reçu. Plus précisément, on effectue d'abord une localisation d'erreurs consistant à déterminer quelles sont les composantes du mot reçu dont la valeur est erronée, puis on effectue une correction d'erreurs , consistant à calculer une estimation de l'erreur de transmission affectant ces composantes. Pour un code de distance minimale d, 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, lorsque le nombre de positions erronées est au plus égal à INT [(d -1)/21 où INT désigne la partie entière (pour certaines configurations d'erreurs, on peut même parfois faire mieux). Selon la deuxième approche, on recherche tous les mots de code situés à une distance de Hamming du mot reçu r inférieure ou égale à une valeur 8 prédéterminée. Cette méthode est généralement appelée décodage de liste ( list decoding en anglais), car il existe en général plusieurs mots de code qui répondent à cette définition. Selon le mode de réalisation, on peut soit choisir immédiatement l'un des mots de code de la liste sur la base d'un critère prédéterminé pour en faire le mot de code associé au mot reçu r, soit conserver tous les mots de code de la liste et effectuer ce choix à une étape ultérieure du traitement. L'inconvénient d'avoir à choisir parmi plusieurs candidats (le cas échéant) pour déterminer le mot de code associé est compensé par le fait que le décodage de liste permet en principe de corriger de façon fiable un plus grand nombre d'erreurs que la première approche. La seconde étape de décodage 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. En particulier, lorsque l'on utilise une méthode de décodage par liste et qu'aucun choix parmi les différents mots de code de la liste n'a été effectué au préalable, on obtient lors de cette seconde étape de décodage une pluralité de suites de k symboles, parmi lesquelles on peut choisir celle qui vérifie un critère prédéterminé. 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 étape de décodage, étant entendu que l'homme du métier est capable sans difficulté de mettre en oeuvre la seconde étape. Parmi les codes connus, on peut citer les codes dits linéaires , qui 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 (nk)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. Notamment, certains codes linéaires dits codes de Reed- Solomon sont réputés pour leur efficacité. Un code de Reed-Solomon de dimension k et de longueur n (où n doit être inférieur ou égal à (q -1) ) possède une distance minimale d égale à (n - k + l). La matrice de parité H 25 du code a la structure d'une matrice de Vandermonde; elle peut être définie par exemple en prenant Hi i= a(1-1) (1 On peut, de manière équivalente, définir un code de Reed-Solomon de la façon suivante: étant donné un ensemble de localisation (11,P2,...,Pn) composé d'éléments quelconques, mais distincts deux à deux, de Fq, les mots du code de Reed-Solomon sont les mots v = (p(P, ), p(P2),..., p(Pn)) où p est un polynôme quelconque de degré inférieur à k sur Fq. Comme tous les codes, les codes de Reed-Solomon 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 nonsinguliè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). On connaît divers procédés de décodage pour les codes de Reed- Solomon. Dans le cadre de la première approche , mentionnée ci-dessus, on utilise habituellement l'algorithme dit de Berlekamp-Massey pour la localisation d'erreurs, et l'algorithme dit de Forney pour la correction d'erreurs. Pour apprendre comment fonctionnent ces algorithmes (et obtenir plus de détails sur les codes de Reed-Solomon en général), on pourra se référer par exemple à l'ouvrage de R.E. Blahut intitulé Theory and practice of error-control codes , Addison-Wesley, Reading, Mass.,1983. Dans le cadre de la deuxième approche , un procédé de décodage de liste a été proposé par M. Sudan dans son article Decoding of Reed Solomon Codes beyond the Error-Correction Bound (J. Complexity, vol. 13, pages 180 à 193, Academic Press, 1997). Cet article reformule le problème du décodage par liste pour codes de Reed-Solomon de la manière suivante: puisqu'il s'agit de trouver tous les mots de code situés à une distance de Hamming du mot reçu r =(rl,r2,...,rn) inférieure ou égale à b, on va rechercher l'ensemble des polynômes p de degré inférieur à k sur Fq pour lesquels le nombre d'éléments Pi (où i =1,...,n) de l'ensemble de localisation tels que p(Pi) = ri est au moins égal à (n - 8) . Pour résoudre ce problème de manière pratique, cet article propose, d'abord, de construire un polynôme à deux variables Q(X,Y) sur Fq qui s'annule en tout point (P,., ri) (où i =1,..., n) ; il s'agit donc ici d'une étape d'interpolation. Ensuite, on factorise le polynôme Q(X,Y) en facteurs irréductibles, dans le but de trouver des facteurs de la forme (Y- p(X)) . Dans cet article, il est démontré que les polynômes p ainsi obtenus sont solutions du problème de décodage de liste, si l'on a imposé une certaine condition sur le 10 degré en X et Y (sous une forme combinée) du polynôme Q(X,Y) . Naturellement, à partir de chacun de ces polynômes p, on reconstruit facilement un mot de code correspondant v = (p(P1), p(P2), ., p(Pn)) , qui est un candidat pour être le mot de code associé au mot reçu r...DTD: M. Sudan, en collaboration avec V. Guruswami, a ensuite présenté une version généralisée de son algorithme dans l'article Improved Decoding of Reed-Solomon and Algebraic-Geometry Codes , IEEE Trans. Inform. Theory, vol. 45, n 6, septembre 1999). Cet algorithme généralisé, dit algorithme de Guruswami-Sudan , fait appel à un paramètre, que nous désignerons par M , appelé multiplicité . C'est un entier supérieur ou égal à 1, l'algorithme initial de M. Sudan correspondant à M =1. Plus M est grand (jusqu'à une valeur de saturation MGS), et plus le nombre d'erreurs que l'algorithme peut corriger est grand, mais aussi plus la construction du polynôme Q(X,Y) est complexe. Une méthode de décodage de liste qui reprend ces principes et précise les techniques d'interpolation utilisées est décrite par T. Hoholdt et R. Refslund Nielsen au chapitre 3 (intitulé Decoding Reed-Solomon Codes Beyond Half the Minimum Distance ) du livre Applied Algebra, Algebraic Algorithm and Error Correcting Codes (Lecture notes in computer science, Springer Verlag 1999). Par ailleurs, R.J. McEliece a publié en avril 2003 une présentation mathématiquement rigoureuse de l'algorithme de Guruswami-Sudan (voir http://www.systems.caltech.edu/EE/Faculty/rim/papers/RSD-JPL. pdf). De manière générale, quand un algorithme doit corriger un mot reçu, le fait de connaître à l'avance quelles composantes de ce mot contiennent des symboles douteux facilite considérablement la tâche de l'algorithme; on dit alors que ces symboles douteux sont effacés . Naturellement, la correction d'un mot reçu au moyen d'un tel algorithme ne peut alors se faire de façon fiable que si le mot reçu comporte suffisamment de symboles corrects dans les composantes non-effacées, c'est-à-dire si le nombre d'erreurs non détectées est suffisamment faible. R.J. McEliece, dans l'article que l'on vient de citer, mentionne (voir Sec. 11) que, pour toute multiplicité M donnée, l'algorithme de GuruswamiSudan dans lequel on n'interpole que sur les composantes non-effacées du mot reçu reste capable de corriger des erreurs non détectées dans un mot reçu, à condition toutefois que le nombre d'effacements ne dépasse pas la redondance (n k) du code. McEliece montre que, pour un nombre d'effacements donné, le nombre d'erreurs non détectées que l'on peut ainsi corriger augmente avec M, comme c'était le cas en l'absence d'effacements. La présente invention concerne, inter alla, la mise en oeuvre pratique du décodage de liste des codes de Reed-Solomon en présence d'effacements, que l'information concernant ces effacements ait été transmise par le récepteur (en fonction de la qualité de réception physique des données), ou à partir d'étapes de décodage précédentes (en fonction des corrections effectuées au cours de ces étapes). L'invention concerne, selon un premier aspect, divers procédés de décodage de liste. Elle concerne ainsi, premièrement, un procédé de décodage pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P1,P2,...,Pn de Fq, ledit procédé étant remarquable en ce que, pour corriger un mot reçu r = (r1,r2...,rn) pouvant comporter e effacements, où 0 e 1 sur les f points correspondant aux composantes non-effacées. Ainsi, la première étape de ce procédé consiste à effectuer une interpolation, avec une multiplicité égale à 1, sur un ensemble de points d'interpolation réduit à k éléments (où k est la dimension du code). En effet, les auteurs de la présente invention ont réalisé que dans ces conditions, avantageusement, la factorisation du polynôme Q(X,Y) est triviale, et cette factorisation fournit un, et un seul, polynôme p(X), et donc un, et un seul, mot 20 reconstruit r = (p(PI), p(P2),..., p(Pn)) . Si les f composantes non-effacées du mot reçu r sont effectivement correctes, elles doivent être égales aux composantes respectives de ce mot reconstruit @ . Par conséquent, lorsque cette égalité est vérifiée en pratique, on peut être raisonnablement sûr que l'on est bien dans ce cas favorable (on ne peut exclure que, dans le cas d'un grand nombre d'erreurs non-détectées, les f composantes non-effacées correspondent par hasard à un autre mot de code que celui qui avait été transmis; le mot de code associé sera alors différent du mot transmis correspondant au mot reçu, mais on est impuissant contre une telle erreur de décodage, quel que soit le procédé employé). On notera par ailleurs que le résultat du décodage est alors manifestement indépendant du choix qui a été fait, en vue de l'interpolation, de telle ou telle composante pour former un sous-ensemble de k composantes parmi les f composantes non- effacées. Si, en revanche, l'une (au moins) des f composantes non-effacées est, en fait, erronée, un désaccord apparaît lorsque l'on compare les (f -k) composantes non-effacées qui n'ont pas été utilisées pour l'interpolation avec les composantes respectives du mot reconstruit F. Dans ce cas, selon l'invention, on procède à une nouvelle interpolation, mais cette fois sur toutes les composantes non-effacées; de plus, on prend une multiplicité identique pour toutes ces composantes, et aussi grande que possible -- en tous cas supérieure à 1, de façon à optimiser la capacité de correction d'erreurs non encore détectées. Ainsi, en jouant sur le nombre de points d'interpolation en combinaison avec la valeur de la multiplicité, l'invention fournit un procédé de décodage qui est simple à mettre en oeuvre dans le cas (normalement le plus fréquent) où toutes les erreurs dans le mot reçu ont été effacées, et qui est en même temps très puissant en termes de correction d'erreurs dans le cas (normalement assez rare) où l'on n'a pas encore détecté toutes les erreurs dans le mot reçu. On minimise ainsi la complexité du décodage, sans pour autant perdre en capacité de correction d'erreurs. Une application particulièrement avantageuse de ce procédé de décodage selon l'invention concerne les codes de géométrie algébrique. 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é récemment des codes dits codes de géométrie algébrique ou codes de Goppa géométriques (voir par exemple Algebraic Geometric Codes , par J.H. van Lint, dans Coding Theory and Design Theory , IMA 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 15 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 PQ (où ,Q =1, .,n) formant une courbe algébrique ...DTD: 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+2g1), 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: x, y) = Xb +cYa +EcuYiX, 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 Pour un tel code, on définit classiquement une matrice de parité de la manière suivante. A tout monôme Y'X, où i et j sont des entiers positifs ou nuls, on associe un poids égal par définition à (ai + bj). Si, pour un entier p 0, il existe au moins un monôme dont le poids est p, on dit que p est un poids réalisable . Soient pl On peut, de manière équivalente, définir un code de géométrie algébrique dit à un point de la façon suivante. Etant donné un ensemble de localisation (P1,P2,...,Pn) tel que défini ci-dessus, les mots du code de géométrie algébrique sont les mots v = (p(P1), p(P2),..., p(Pn)) , où p est un élément quelconque de l'espace vectoriel L(m P.o) des polynômes en X et Y à coefficients dans Fq dont les seuls pôles sont situés à l'infini et sont d'ordre inférieur ou égal à m, où 0 2g 2), possède une base constituée par les monômes ha = Y' X de poids pa m, où a = 1,..., n - k, et j est un entier compris entre 0 et (a -1) (on rappelle que a désigne le degré en Y dans l'équation représentant l'équation algébrique). Les codes de géométrie algébrique sont avantageux quant à leur distance minimale d, qui est au moins égale à (n - k +1- g), et, comme on l'a dit, quant à la longueur des mots de code, mais ils présentent l'inconvénient de requérir des algorithmes de décodage assez complexes, et donc assez coûteux en termes d'équipements (logiciel et/ou matériel) et de temps de traitement. Cette complexité est en fait plus ou moins grande selon l'algorithme considéré, une plus grande complexité étant en principe le prix à payer pour accroître la capacité de correction d'erreurs du décodeur (voir par exemple l'article de Tom Hrholdt et Ruud Pellikaan intitulé On the Decoding of Algebraic-Geometric Codes , IEEE Trans. Inform. Theory, vol. 41 n 6, pages 1589 à 1614, novembre 1995). De manière générale, plus la courbe algébrique utilisée est de genre g élevé et plus les mots de code sont de grande longueur, mais aussi plus le décodage est complexe. On connaît divers procédés de décodage pour codes de géométrie algébrique (définis sur une courbe de genre non-nul). Dans le cadre de la première approche , il existe plusieurs algorithmes de localisation d'erreurs; ces algorithmes permettent de localiser de manière fiable les erreurs dans un mot reçu pourvu que leur nombre soit inférieur ou égal à (n - k - g)/2. On connaît également divers algorithmes de calcul des erreurs (supposées localisées) ; mais 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. Dans le cadre, à présent, de la deuxième approche , les principes du décodage de liste pour code de géométrie algébrique ont été discutés par V. Guruswami et M. Sudan dans l'article Improved Decoding of ReedSolomon and Algebraic-Geometty Codes cité ci-dessus. Une méthode de décodage de liste qui reprend ces principes et précise les techniques d'interpolation utilisées, mais ne les applique qu'aux courbes hermitiennes (c'est-à-dire aux courbes représentées par une équation du type + Y = X'+' définie sur Fq, où q est un carré parfait), est décrite par T. Hoholdt et R. Refslund Nielsen au chapitre 4 (intitulé Decoding Hermitian Codes with Sudan's Algorithm ) du livre Applied Algebra, Algebraic Algorithm and Error Correcting Codes cité ci-dessus. Par analogie avec la méthode d'interpolation utilisée pour les codes de ReedSolomon, les techniques proposées dans ce chapitre incluent la recherche d'un polynôme Q(X,Y,Z) à trois variables sur Fq, qui s'annule en tout point (P1,rl) (où i =1,..., n) , où ( P J, P2,..., Pn) désigne l'ensemble de localisation du code et r = (ri, r2..., rn) un mot reçu, puis la factorisation de ce polynôme Q(X,Y,Z) pour trouver des facteurs de la forme (Z - p(X,Y)). Ces techniques s'avèrent toutefois lourdes à mettre en oeuvre, notamment du fait que le polynôme Q(X,Y,Z) à factoriser est un polynôme à trois variables sur Fq. Le brevet US-6,634,007 déjà cité ci-dessus présente un procédé de décodage de liste pour codes de géométrie algébrique, qui tire avantage des décisions douces . Il est clair toutefois que ce procédé est encore plus complexe que le procédé à décisions douces pour codes de Reed- Solomon. La demande de brevet EP-1 434 132 au nom de CANON divulgue un procédé de décodage avantageusement simple, qui est 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) . Nous allons à présent décrire ce procédé de manière assez détaillée. Le procédé de décodage selon la demande EP-1 434 132 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 seront notés (x, y p (x)) , où p =1,...,2(x) et.1.(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, yp(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 motc. 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 M. ={17'X10 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: 20T Ht(>) Év_j _ =0, où la fonction t(j) est donnée ci-dessus et, par définition, 1 1 1 Ht = t 1 t 1 t 1 XI X2 Xp Or cette matrice Ht est une matrice de Vandermonde définie sur Fq; par conséquent, si l'on considère, pour chaque valeur de j, que Ht(i) est une matrice de parité définissant un ensemble de mots de code vj, cet ensemble de mots constitue un code de Reed-Solomon dont l'ensemble de localisation est constitué par les,u valeurs de X identifiant les agrégats, et dont la redondance est égale à t(j) , la dimension de ce code étant donc égale à (,u t(j)) . 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 ,numérotés j = 0,..., %max Considérons alors un mot reçu r résultant de la transmission d'un mot appartenant au code de géométrie algébrique. On dira qu'un agrégat associé à une valeur x de X est erroné lorsqu'il existe au moins un point (x, y) de l'ensemble de localisation du code tel que la composante dudit mot reçu r étiquetée par ce point est erronée. Pour corriger d'éventuelles erreurs de transmission dans un mot reçu, on calcule d'abord, pour j = 0,..., jmax, les mots reçus agrégés r =[r(x1),...,r(x,)] , dans lesquels, pour x les symboles reçus agrégés ri(x) sont donnés par 2(x) f ri(x)= E [yp(x)Jl r(x,yp(x)) p=1 Chaque mot reçu agrégé ri est alors traité comme s'il résultait de la transmission dans un canal bruyant d'un mot appartenant au code de Reed-Solomon numéro j. En effet, pour chaque agrégat erroné, l'équation (1) implique que les symboles reçus agrégés rj(x) (où j = ) pour cette valeur x de X sont tous erronés, et chaque mot reçu agrégé rj comporte une composante erronée étiquetée par cette valeur x de X. On notera, toutefois, 25 qu'il peut se produire exceptionnellement qu'un des symboles reçus agrégés ri (x) soit correct en dépit du fait que l'agrégat étiqueté par cette valeur x de X est erroné, en raison d'une compensation fortuite d'au moins deux erreurs sur (1) les composantes de r appartenant à cet agrégat (voir équation (1)) ; on dit alors qu'on affaire à des erreurs jumelles . Après la correction de ces erreurs dans les mots ri, on calcule, pour x = , les symboles v(x, yp(x)) du mot de code associé au mot reçu r à partir des symboles corrigés P1(x) en utilisant le système d'équations 2(x) (x) = [yp (x)]' 3(x, y p (x)) p=1 où j prend un nombre de valeurs différentes (le nombre d'équations) au moins égal à 2(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 2(x) . 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 EP-1434132 est significatif, grâce au fait que ce procédé, essentiellement, ramène la correction d'erreurs dans un mot appartenant à un code de géométrie algébrique à la correction d'erreurs dans quelques mots appartenant à un code de Reed-Solomon. Le procédé de correction d'erreurs selon la demande EP-1 434 132 s'applique par ailleurs à un ensemble de codes, décrits dans cette même demande, plus large que l'ensemble des codes définis sur une courbe algébrique de type C(a,b) . On construit pour ce faire un ensemble de localisation en choisissant n couples distincts (toujours notés (x, yp(x)) , où p =1,...,2(x) et 2(x) est le cardinal de l'agrégat considéré), que l'on peut toujours considérer comme représentant les points Pfl (où /3 =1, .,n) d'une courbe, dont on supposera qu'elle est de genre non-nul mais sans être nécessairement une courbe algébrique de type C(a,b) . L'élément en ligne a et colonne,Q de la matrice de parité est toujours égal au monôme ha (où a =1,...,n - k) évalué au point Pfl de cette courbe. (2)..DTD: Ces monômes de la matrice de parité sont des monômes YJX, où les entiers i et j sont positifs ou nuls, et sont tels que si, parmi ces monômes, il en existe un associé à i > 0 et à j quelconque, alors il en existe aussi un associé à (i -1) et à la même valeur de j, et s'il en existe un associé à i 5 quelconque et à j > 0, alors il en existe aussi un associé à la même valeur de i et à (j -1) . Les puissances de Y forment donc un ensemble j = 0,..., Jmax II est clair que pour un tel code généralisé, on peut définir des codes de Reed-Solomon composants en regroupant dans des sous-ensembles Mi tous les monômes Y'X ayant la même valeur de j. Comme expliqué ci-dessus, on doit toutefois choisir les valeurs de Jmax et de a,mm, où 2max désigne le plus grand parmi les cardinaux d'agrégat 2(x) , de façon à ce que Umm +1) soit au moins égal à 2max. Ce procédé de décodage s'applique également aux codes obtenus en modifiant ou en raccourcissant un code tel que défini ci-dessus. On donnera dorénavant le nom de procédé de décodage par agrégats au procédé de correction d'erreurs selon la demande EP-1 434 132, que l'on vient de décrire aussi succinctement que possible, dans sa forme la plus générale. L'invention concerne donc, deuxièmement, un procédé de décodage 20 par agrégats, dans lequel, un mot r ayant été reçu, on forme les mots reçus agrégés ri _ [ ri(xl),..., ri(x,u) ] (où 0 s j Ainsi, lorsque le premier décodage de Reed-Solomon (qui est 10 associé à une certaine valeur J prédéterminée de j) aboutit, on efface tous les agrégats erronés, sauf, le cas échéant, celui ou ceux affecté d'erreurs jumelles pour la valeur J de j (comme expliqué ci-dessus) puisque, par définition, les erreurs jumelles sont cachées . On applique ensuite, une ou plusieurs fois, le procédé de décodage pour codes de Reed-Solomon selon l'invention à un code de Reed-Solomon de longueur p et de dimension (,u t( j)) (où j = 0,..., jmax, sauf j = J) ; pour ces codes mis en oeuvre suite au premier, une multiplicité M égale à 1 sera la plupart du temps parfaitement suffisante; il suffit alors, pour pouvoir décoder les mots ri selon l'invention, que le nombre d'effacements provenant du premier décodage de Reed-Solomon soit inférieur à la redondance t(j) de chacun de ces codes. En revanche, le recours à une multiplicité M supérieure à 1 sera utile dans les cas (relativement rares) où, d'une part, la présence d'erreurs jumelles a empêché l'identification d'au moins un agrégat erroné lors du premier décodage, et, d'autre part, la capacité de correction d'erreurs non encore détectées d'un code de Reed- Solomon de numéro j J est insuffisante pour pouvoir corriger cette erreur ou ces erreurs si l'on fixe M =1 pour l'interpolation, mais suffisante si l'on donne à m une valeur supérieure ou égale à une valeur minimale, elle- même supérieure à 1. On voit donc que le procédé de décodage par agrégats selon la présente invention permet non seulement de bénéficier de la simplicité de mise en oeuvre offerte par le procédé de décodage par agrégats selon la demande EP-1 434 132, mais, en plus, de diminuer fortement les risques d'échec de décodage causés par d'éventuelles erreurs jumelles. Lorsque la décomposition d'un code de géométrie algébrique (généralisé) conduit à plus de deux codes de Reed-Solomon, on pourra, naturellement, appliquer avantageusement le procédé de décodage avec effacements selon l'invention aux codes de Reed-Solomon considérés à la suite des deux premiers. C'est pourquoi, selon des dispositions particulières, pour chaque mot reçu agrégé ri restant (où 0 j jmax, j $ J et j J') (le cas échéant), on efface les composantes de ce mot correspondant à tous les agrégats erronés identifiés lors des corrections précédentes de mots reçus agrégés, et on met ensuite en oeuvre un procédé de décodage avec effacements tel que décrit succinctement ci-dessus. On notera que, pour le décodage, décrit succinctement ci-dessus, du premier code de Reed-Solomon composant considéré (au cours duquel on corrige un mot reçu agrégé ri), on peut soit utiliser la première approche de décodage (par exemple l'algorithme de Berlekamp-Massey suivi de l'algorithme de Forney), qui a le mérite d'être simple et très bien connue, soit la deuxième approche (c'est à dire un décodage de liste) qui, bien qu'étant moins conventionnelle, a le mérite d'augmenter le nombre d'erreurs corrigibles par rapport à la première approche. Le choix de l'approche la plus adéquate sera donc fait par l'homme du métier en fonction du cahier des charges (conditions physiques de transmission des données sur le canal, pouvoir de correction, simplicité et rapidité des calculs, et ainsi de suite) de l'application envisagée. A cet égard, un cas particulièrement intéressant en pratique est celui où le récepteur des données transmises est capable d'attacher un degré de fiabilité non-binaire à chaque composante du mot reçu; par degré de fiabilité non-binaire , on entend une échelle de degrés de fiabilité pouvant, a priori, prendre n'importe quelle valeur entre 0 et 100 %, cela par opposition aux degrés de fiabilité binaires représentés par des effacements, tels que discutés ci-dessus, où l'on n'a que le choix entre très fiable et pas du tout fiable . Un procédé de décodage apte à prendre en compte de tels degrés de fiabilité non-binaires est appelé un décodage à décisions douces (en anglais, softdecision decoding ). Le brevet US-6,634,007 divulgue un procédé de décodage de liste à 5 décisions douces pour codes de Reed-Solomon, dans lequel on construit, de façon analogue à l'algorithme de Guruswami-Sudan, un polynôme QM(X,Y) destiné à être factorisé. Mais selon ce brevet, d'une part, la multiplicité varie en général de point d'interpolation en point d'interpolation, et d'autre part M représente une matrice de multiplicités au lieu d'un simple nombre entier. Le procédé de décodage selon US-6,634,007 est donc complexe à mettre en oeuvre. L'invention concerne donc, troisièmement, un procédé de décodage pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et 15 défini sur un ensemble de localisation constitué des éléments P1,P2, .,Pn de Fq, ledit procédé étant remarquable en ce que, pour corriger un mot reçu r = (r1,r2...,rn) dont chaque composante est munie d'un degré de fiabilité non- binaire respectif, il comprend notamment les étapes suivantes: a) on effectue une interpolation sur les k points (] .,rl) (1 1 sur un ensemble de points d'interpolation comprenant, d'une part, tous les points (Pt, rt) (i =1,...,n), et d'autre part les 8 points (Pi, p(Pi)) tels que p(Pi) ri...DTD: En effet, la première étape de ce procédé de décodage à décisions douces consiste, avantageusement, à effectuer une interpolation sur seulement k points de l'ensemble de localisation, avec une multiplicité égale à 1, comme pour le procédé selon l'invention, décrit succinctement ci-dessus, applicable au décodage avec effacements. Mais ici, compte tenu de ce que l'on a choisi pour ces k interpolations les composantes les plus fiables, on s'attend à ce que le polynôme p(X) ainsi obtenu soit le bon . On s'attend donc à ce que le mot r = (p(PI), p(P2),..., p(Pn)) soit le mot de code v associé à r, même si certaines 10 des (n - k) composantes non-utilisées pour l'interpolation (composantes moins fiables que les k premières) ont une valeur différente des composantes respectives du mot reconstruit F -- mais à condition, toutefois, que le nombre de ces composantes ayant une valeur différente ne soit pas excessivement grand. En effet, si le nombre de composantes ainsi corrigées dépasse la capacité de correction classique pour ce code de Reed-Solomon, il est à craindre qu'une composante (au moins) du mot reçu parmi celles considérées a priori comme étant les plus fiables, est en fait erronée. Dans ces conditions, la conclusion qui s'impose est que ce sont les degrés de fiabilité eux-mêmes qui ne sont pas fiables. C'est pourquoi, selon l'invention, on met alors en oeuvre une tentative de correction de secours , dans laquelle on exploite toutes les informations disponibles sur la valeur des composantes du mot de code transmis; de plus, si l'on dispose, pour une composante donnée, de plusieurs valeurs éventuelles, on s'abstiendra de classer ces valeurs en termes de fiabilité. En pratique, on effectue un nouveau décodage de liste sur le mot reçu, en interpolant non seulement sur la valeur de chaque composante reçue, mais aussi (le cas échéant) sur chaque valeur p(Pi) qui se trouve être différente de la valeur reçue ri de même indice j (on notera que dans ce cas le nombre de points d'interpolation est supérieur à n) ; de plus, pour cette dernière 30 interpolation, on utilise une multiplicité fixe, et aussi grande que possible -- en tous cas supérieure à 1, de façon à optimiser la capacité de correction d'erreurs de l'algorithme. Ainsi, le procédé de décodage à décisions douces selon l'invention est simple à mettre en oeuvre dans le cas (normalement le plus fréquent) où les k composantes du mot reçu considérées comme les plus fiables sont effectivement correctes, et est en même temps très puissant en termes de correction d'erreurs dans le cas (normalement assez rare) où l'une au moins de ces k composantes est en fait erronée. Selon des dispositions particulières, lorsque 8> INT [(n-k)/2], on place dans ledit ensemble de points d'interpolation, pour chacun desdits 8 points (Pi, p(Pi)) tels que p(Pi) r, les deux valeurs disponibles directement l'une après l'autre. Grâce à ces dispositions, on obtient une liste contenant un nombre maximal de polynômes de reconstruction, toutes choses égales par ailleurs. Naturellement, le procédé de décodage à décisions douces selon l'invention pourra, en particulier, être appliqué avantageusement au premier code de Reed-Solomon considéré parmi ceux résultant de la décomposition d'un code de géométrie algébrique (généralisé), lorsque les composantes du mot reçu sont munies d'un degré de fiabilité non-binaire respectif. En résumé, les procédés de décodage avec effacements et à décisions douces selon l'invention, jouent sur le nombre de points d'interpolation en combinaison avec la valeur de la multiplicité, de façon à minimiser la complexité du décodage, sans pour autant perdre en capacité de correction d'erreurs. De manière générale, la présente invention concerne par conséquent un procédé de décodage pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P1,P2,...,Pn de Fq, ledit procédé étant remarquable en ce que, pour corriger un mot reçu r = (rl,r2...,rn) dont chaque composante est munie d'un degré de fiabilité respectif, il comprend notamment les étapes suivantes: a) on effectue une interpolation sur les k points (P;,ri) (où 1 i n) correspondant aux composantes les plus fiables dudit mot reçu L, avec une multiplicité M =1 en chacun desdits k points, de manière à obtenir un polynôme p(X) vérifiant p(PI) =ri pour tous lesdits k points (P;,r;) ; b) on compare le mot reconstruit F =(p(Pl),p(P2),...,p(Pn)) avec le mot reçu r de manière à vérifier une condition d'acceptation prédéterminée; et c) si ladite condition d'acceptation prédéterminée est vérifiée, on prend = (p(Pl), p(P2),..., p(Pn)) comme mot de code associé au mot reçu r; sinon, on effectue un décodage de liste de ce mot reçu r, dans lequel on interpole avec une multiplicité uniforme prédéterminée M > 1 sur un ensemble de points incluant l'ensemble de k points utilisé à l'étape a), de manière à obtenir un polynôme d'interpolation Q(X,Y) dont la factorisation fournit au moins un mot reconstruit r(i) = (P(i)(Pt),P(l) (P2),..., p(')(Pn)) (où 1 = 0,1,...) . Selon des caractéristiques particulières, pour factoriser ledit polynôme d'interpolation Q(X,Y), on utilise de manière itérative un sous-algorithme permettant de trouver un seul facteur de Q(X,Y) à la fois. Comme expliqué en détail ci-dessous, on peut, par exemple, faire appel à l'algorithme dit de Roth-Ruckenstein pour trouver un facteur de Q(X,Y) . Selon un second aspect, l'invention concerne divers dispositifs. Elle concerne ainsi, premièrement, un dispositif de correction d'erreurs pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments PI,P2,... ,Pn de Fq, ledit dispositif étant remarquable en ce que, pour corriger un mot reçu r = (ri,r2,...,rn) dont chaque composante est munie d'un degré de fiabilité respectif, il comprend des moyens pour: a) effectuer une interpolation sur les k points (P.,r;) (où 1 i n) correspondant aux composantes les plus fiables dudit mot reçu r, avec une multiplicité M =1 en chacun desdits k points, de manière à obtenir un polynôme p(X) vérifiant p(Pi) = ri pour tous lesdits k points (Pi,ri) ; b) comparer le mot reconstruit r =(p(P1),p(P2),...,p(Pn)) avec le mot reçu r de manière à vérifier une condition d'acceptation prédéterminée; et c) prendre v = (p(P), p(P2),..., p(Pn)) comme mot de code associé au mot reçu r si ladite condition d'acceptation prédéterminée est vérifiée; et sinon, effectuer un décodage de liste de ce mot reçu r comprenant une interpolation avec une multiplicité uniforme prédéterminée M >1 sur un ensemble de points incluant l'ensemble de k points utilisé à l'étape a), de manière à obtenir un polynôme d'interpolation Q(X,Y) dont la factorisation fournit au moins un mot reconstruit r(1) = (p(l) (PI), p(l) (P2),..., p(l)(Pn)) (où 1 = 0,1,...). L'invention concerne aussi, deuxièmement, un dispositif de correction d'erreurs pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P,P2,...,Pn de Fq, ledit dispositif étant remarquable en ce que, pour corriger un mot reçu r = (r1,r2,...,rn) pouvant comporter e effacements, où 0 e 1 sur les f points correspondant aux composantes non-effacées. L'invention concerne aussi, troisièmement, un dispositif de correction d'erreurs pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P1,P2,É..,Pn de Fq, ledit dispositif étant remarquable en ce que, pour corriger un mot reçu r =(rl,r2,...,rn) dont chaque composante est munie d'un degré de fiabilité non-binaire respectif, ledit dispositif comprend des moyens pour: a) effectuer une interpolation sur les k points (P, r,) (1 1 sur un ensemble de points d'interpolation comprenant, d'une part, tous 20 les points (P, rt) (i = 1,..., n), et d'autre part les 8 points (Pj, p(Pj)) tels que p(P) L'invention concerne aussi, quatrièmement, un dispositif de correction d'erreurs par agrégats, ledit dispositif comprenant, un mot r ayant été reçu, des moyens pour former les mots reçus agrégés ri = [ ri (x1),... , ri(xii) ] 25 (où 0 j jmax), dont les composantes sont les symboles reçus agrégés ri(x) respectivement associés aux agrégats étiquetés par x = x1,...,x, et correspondant respectivement aux codes de Reed-Solomon composants de redondance t(j), ledit dispositif étant remarquable en ce qu'il comprend également des moyens pour: a) essayer de corriger, pour une valeur prédéterminée J de j, le mot reçu agrégé ri au moyen d'un procédé de correction d'erreurs adapté aux codes de Reed-Solomon; b) en cas de succès de cette correction, identifier tous les agrégats xi (i=l,..., f) éventuels tels que la composante rj(xi) a été corrigée à l'étape précédente; et c) corriger au moins un autre mot reçu agrégé rJ, (0 J' Jmax, et J' J) en effaçant les composantes de ce mot correspondant aux agrégats identifiés à l'étape précédente (le cas échéant), et en mettant ensuite en oeuvre les moyens d'un dispositif apte à corriger un mot reçu comportant des effacements tel que décrit succinctement ci-dessus. Les avantages de ces dispositifs de correction d'erreurs sont essentiellement les mêmes que ceux des procédés corrélatifs décrits succinctement ci-dessus. L'invention 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 20 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 décodage 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 est un algorithme représentant les étapes principales d'un procédé de décodage pour codes de Reed-Solomon selon l'invention dans son application aux effacements, - la figure 3 est un algorithme représentant les étapes principales d'un 20 procédé de décodage pour codes de Reed-Solomon selon l'invention dans son application aux décisions douces, - la figure 4 est un algorithme représentant les étapes principales de la factorisation d'un polynôme d'interpolation, et la figure 5 représente un appareil de réception de signaux numériques incorporant un décodeur selon l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations 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 par exemple correspondre au stockage sur un support adapté tel qu'un DVD ou un disque magnétique ou encore une bande magnétique; il peut aussi correspondre à une émission filaire ou non-filaire comme c'est le cas d'un lien radio; il peut aussi correspondre à la compression d'une image fixe ou vidéo tatouée. Le message transmis parvient à un lecteur (ou un récepteur) 105, 15 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. De manière connue, on peut donner au démodulateur 106 la capacité de signaler, en réponse à des situations prédéterminées au niveau du signal physique reçu, que tel ou tel de ces symboles de Fq est probablement erroné : on parle alors d'effacement . On peut en variante, également de manière connue, donner au démodulateur 106 la capacité d'attribuer un degré de fiabilité à chacun de ces symboles de Fq; par exemple, dans le cas, mentionné ci- dessus, de la transmission d'images tatouées, on applique un codage de canal au tatouage, et le décodage correspondant utilise des informations de fiabilité, qui sont déduites de l'examen de l'image dans laquelle le tatouage était inséré. 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'erreurs107, 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 5 un décodeur 10. La figure 2 est un algorithme représentant les étapes principales d'un procédé de décodage selon l'invention pour un code de Reed-Solomon de longueur n et de dimension k, dans la situation où un mot reçu r = (rl,r2, .,rn) a été affecté (le cas échéant) d'un certain nombre e d'effacements, où 10 0 A l'étape 235, on compare p(Pi) et ri pour les autres composantes noneffacées. Si, au test de l'étape 240, on constate qu'il y a égalité pour ces (f - k) composantes (NbDiff = 0), on prend v = r, et l'algorithme s'achève. Si, en revanche, le test 240 indique que p(Pi) $ ri pour l'une au moins de ces (f -k) composantes non-effacées (NbDiff > 0), on récupère, à l'étape 245, l'ensemble des f composantes non-effacées. A l'étape 250, on procède à une interpolation sur ces NPoints = f composantes, avec une multiplicité uniforme Mult = M, ce qui fournit un polynôme Q(X,Y) . Contrairement au cas précédent, la factorisation, à l'étape 255, de ce 30 polynôme Q(X,Y) n'est en général pas triviale; on pourra utiliser pour ce faire l'algorithme décrit ci-dessous en référence à la figure 4. On obtient ainsi, en général, une pluralité de polynômes de reconstruction p()(X), et, par conséquent, une pluralité (c'est-à-dire, une liste ) de mots reconstruits F(i) à l'étape 260. Selon un mode de réalisation, on compte, à l'étape 265, pour chaque mot reconstruit Fo , le nombre de composantes dont la valeur est différente des composantes correspondantes du mot reçu r. On ne conserve alors que le ou les mots reconstruits présentant le moins de différences, c'est-à- dire dont la distance de Hamming avec le mot reçu est la plus faible; ce ou ces mots forment alors une sous-liste. Pour terminer, s'il l'on constate qu'il n'y a qu'un seul mot dans cette sous-liste, on le prend comme mot de code associé ; sinon, le mot de code associé est déterminé à partir des mots de la sous-liste selon un critère prédéterminé. On va illustrer à présent, à l'aide d'un exemple numérique, le procédé de décodage pour codes de Reed-Solomon selon l'invention, dans son application aux effacements. On notera à cette occasion que les exemples numériques fournis dans la présente description ne constituent pas nécessairement des choix de paramètres préférentiels pour le codage ou le décodage. Ils ne sont fournis ici que pour permettre à l'homme du métier de comprendre plus facilement le fonctionnement du procédé selon l'invention dans ses diverses applications. Considérons donc un code de Reed-Solomon de dimension 7 et de longueur 15 défini sur le corps de Galois F16 défini par le polynôme (X4 +X +1). Les éléments de F16 seront commodément représentés sous la forme de puissances d'un élément primitif, noté a, de ce corps, et l'ensemble de localisation sera constitué des éléments J. = ai-1 pour (i =1,...,15). Supposons, comme premier exemple, que le mot reçu (correspondant à un mot transmis appartenant à ce code de Reed-Solomon) soit le suivant: 14 9 6 4 6 7 3 8 10 r=(a,E,a) , où les composantes r2, r3, r11, r12, et r14 sont effacées (les effacements sont désignés par la lettre E ). Si l'on mettait en oeuvre un procédé de décodage de liste selon McEliece (voir l'article cité ci-dessus), on effectuerait une interpolation sur les 10 composantes non-effacées du mot reçu, avec une multiplicité identique pour ces 10 composantes et de valeur aussi grande que possible. En revanche, conformément à l'invention, on effectue une interpolation sur seulement k = 7 composantes non-effacées, et avec une multiplicité seulement égale à 1. Prenons pour ce faire, par exemple, les composantes d'indice j =1,4,5,6,9,13 et 15. On obtient alors un polynôme d'interpolation Q(X,Y) qui, après une factorisation triviale, s'écrit: Q(X,Y)=X4 É(Y+a+a4X2+a3X3) Le polynôme de reconstruction est donc: p(X)=a+a4X2+a3X3 (on notera que comme le cardinal de F16, à savoir 16, est une puissance de 2, le signe + est équivalent au signe - devant tout coefficient d'un polynôme à coefficients sur ce corps). Appliqué à l'ensemble de localisation, ce polynôme fournit le mot reconstruit = (a14,a,a13,a9,a6,a4,a6,9,a7,a3,O,0,a8,a6,10 r a) Conformément à l'invention, on vérifie ensuite si les composantes non-effacées de r qui n'ont pas été utilisées pour ce calcul, à savoir r7, r8 et rio, ont la même valeur dans r (nous les avons soulignées ci-dessus pour faciliter la comparaison). C'est bien le cas en l'occurrence, et donc le mot F n'est autre que le mot de code v associé à r, c'est-à-dire l'estimation du mot transmis correspondant au mot reçu r. Supposons, comme second exemple, que le mot reçu (correspondant à un mot transmis appartenant à ce code de Reed-Solomon) soit le suivant: r=(a140, a13 a9,a6,a4,E,0,a,a3,0,E,E,E,a10) , où les composantes r7, r12, r13, et r14 sont effacées. Conformément à l'invention, on effectue une interpolation sur seulement k = 7 composantes non-effacées, et avec une multiplicité seulement égale à 1. Prenons pour ce faire, par exemple, les composantes d'indice j =1,2,3, 5,6,9 et 11. On obtient alors le polynôme d'interpolation Q(X,Y) =Y+a4X+ a7X2 +a11X3 +a4X4 +a3X5 +a2X6 Le polynôme de reconstruction est donc: p(X) =a4X+a7X2+allx3+a4X4+a3X5+a2X6. Appliqué à l'ensemble de localisation, ce polynôme fournit le mot reconstruit 14 13 6 6 4 13 11 7 Il 11 10 14 F _ (a,u,a,a,a,a,a,a,a,a,0,1,a,a,a) Conformément à l'invention, on vérifie ensuite si les composantes non- effacées der qui n'ont pas été utilisées pour ce calcul, à savoir r4, r8, r10 et r15 ont la même valeur dans F (nous les avons soulignées ci-dessus pour faciliter la comparaison). On constate alors qu'en fait elles ont toutes quatre changé de valeur, ce qui révèle l'existence d'une erreur non encore détectée. Conformément à l'invention, on effectue alors une interpolation sur les 11 composantes non-effacées, avec une multiplicité M uniforme, que l'on prendra égale à 4 (cette valeur est ici optimale, car c'est la valeur de saturation Mcs introduite par V. Guruswami et M. Sudan, comme mentionné ci-dessus; pour la méthode de calcul de Mis, on pourra se référer à l'article de McEliece cité ci- dessus). On obtient alors le polynôme d'interpolation Q(X,Y) =Y4+a11X4Y4+ X4+aX8+a8X16+a4 = all(Y+a +a4X 2 +a3X3)4 É (X +a)4. Le polynôme de reconstruction est donc: p(X)=a+a4X2+a3X3. Appliqué à l'ensemble de localisation, ce polynôme fournit le mot de code associé v = (a14,a,a13,a9,a6,a4,a6,0,a7,a3,0,0,a8,a6,a10) On constate alors que c'était la composante r2 qui était erronée. On va illustrer à présent au moyen d'un exemple numérique l'application aux codes de géométrie algébrique du procédé de décodage avec 30 effacements pour codes de Reed-Solomon selon l'invention. Considérons par exemple un code de géométrie algébrique Q de dimension 34 et de longueur 60 sur F16 défini comme suit. 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 F(X,Y)=Y4+Y+X5 =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, yp (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.o). 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,u =15 agrégats ayant chacun un cardinal 2(x) = 4. On rappelle que chaque point Pfl de l'ensemble de localisation sert à identifier le Q è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 à (m - g +1) (égale si m > 2g - 2), possède une base constituée par les monômes ha = Yi 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 ha où a = 1,...,26, puisque: m-g+1=31-6+1=26. Les monômes ha peuvent être classés dans des sous-ensembles ordonnés de monômes M._ {Y1X 1 0 On peut par exemple prendre pour matrice de parité H de ce code Q la matrice dont l'élément en ligne a et colonne /3 est égal à la valeur prise par le monôme ha au point Pp de la courbe algébrique. La redondance (n k) du code Q étant égale à 26, sa dimension vaut k = 34. La distance minimale d de ce code est au moins égale à n - k +1- g = 21. Selon le procédé de décodage par agrégats décrit ci-dessus, on met en oeuvre des codes de Reed-Solomon composants , tous de longueur égale au nombre d'agrégats, à savoir p = 15. Ces codes sont les suivants: - Qo de longueur no =15 et de dimension ko =15-8= 7, - QI de longueur ni =15 et de dimension k1 =15-7 = 8, - Q2 de longueur n2 =15 et de dimension k2 =15-6 = 9, et - Q3 de longueur n3 =15 et de dimension k3 =15-5 =10. Pour décoder un mot reçu r appartenant à Q, on calcule tout d'abord les mots agrégés ri (où j= 0,1,2,3) correspondants, conformément à l'équation (1). On corrige alors, par exemple, ro en premier conformément au code de ReedSolomon Q0 (autrement dit, on choisit ici J = 0), ce qui fournit un mot corrigé P. Chaque composante ayant subi une correction (le cas échéant) identifie un agrégat erroné . On corrige ensuite, par exemple, rl conformément au code de Reed-Solomon QI (autrement dit, on choisit ici J'=1), ce qui fournit un mot 5 corrigé rl. Pour ce faire, on efface les composantes de r1 étiquetées par les agrégats erronés (le cas échéant), et l'on met en oeuvre le procédé de décodage avec effacements selon l'invention. On peut alors découvrir que l'on a ainsi corrigé une composante non-effacée (au moins) de ri; on parle dans ce cas de l'existence d'erreurs jumelles dans ro, car la composante de ro de même indice que ladite composante non-effacée de rl se trouve avoir une valeur correcte, alors qu'elle résulte de la combinaison de 4 (ici tous les agrégats sont de cardinal,(x)=4) composantes de r, dont deux au moins sont erronées. On corrige ensuite, par exemple, r2 conformément au code de Reed-Solomon Q2, ce qui fournit un mot corrigé r2. Selon un mode de réalisation de l'invention, on efface dans r2 toutes les composantes de même indice que les composantes de ro et de rl ayant subi une correction (le cas échéant). On met ensuite en oeuvre le procédé de décodage avec effacements selon l'invention. On corrige enfin r3 conformément au code de Reed-Solomon Q3, ce qui fournit un mot corrigé r3. Selon un mode de réalisation de l'invention, on efface dans r3 toutes les composantes de même indice que les composantes de ro, de ri et de r3 ayant subi une correction (le cas échéant). On met ensuite en oeuvre le procédé de décodage avec effacements selon l'invention. Il ne reste plus qu'à calculer le mot de code associé v à partir des mots ro, , r2 et r3 au moyen des systèmes d'équations (2). On aura certainement remarqué que, concernant l'étape de correction du mot agrégé ro, il n'a pas été précisé jusqu'à présent quel procédé de décodage était utilisé. En effet, comme expliqué ci-dessus, le choix du procédé le plus adapté pour ce faire doit être effectué par l'homme du métier en fonction des circonstances pratiques de la transmission de données. A cet égard, l'homme du métier pourra se trouver dans le cas d'un démodulateur apte à fournir, pour chaque composante reçue, un degré de fiabilité non-binaire sur la valeur de cette composante. On rappelle que la capacité à exploiter ce type d'information sur les degrés de fiabilité caractérise les décodages à décisions douces . La figure 3 est un algorithme représentant les étapes principales d'un procédé de décodage selon l'invention pour un code de Reed-Solomon de longueur n et de dimension k, dans la situation où l'on a attribué un degré de fiabilité non-binaire à la valeur de chaque composante d'un mot reçu. Tout d'abord, à l'étape 310, on enregistre chaque composante de ce mot (un indice associé à une valeur) avec son degré de fiabilité respectif. A l'étape 315, ces composantes sont classées en fonction de leur fiabilité, par exemple par degrés de fiabilité décroissants. Ensuite, à l'étape 320, on sélectionne les k composantes les plus fiables. A l'étape 325, on effectue une interpolation avec une multiplicité uniforme Mult = 1 sur ces NPoints = k composantes. La factorisation du polynôme Q(X,Y) ainsi obtenu est triviale, et fournit un unique polynôme de reconstruction p(X). On en déduit, à l'étape 330, un mot reconstruit r = (p(P1), p(P2),..., p(Pn)) , dans lequel p(Pi) = ri pour toutes les composantes ayant servi à l'interpolation. A l'étape 335, on compare p(Pi) et ri pour les (n - k) autres composantes, et l'on détermine le nombre 8 de composantes pour lesquelles p(Pi) ri. Si, au test de l'étape 340, on constate que ce nombre 8 (égal à la distance de Hamming entre le mot reçu et le mot reconstruit) est au plus égale à la capacité classique de correction du code (soit, INT [(n - k) / 2] puisque la distance minimale du code est d = n - k +1), on prend v = F, et l'algorithme s'achève. Si, en revanche, le test 340 indique que 8 > INT [(n - k) / 2], on constitue, à l'étape 345, un ensemble de NPoints = n + 8 points d'interpolation comprenant, d'une part, chaque composante reçue, mais aussi (le cas échéant) chaque valeur p(Pi) qui se trouve être différente de la valeur reçue ri de même indice j. A l'étape 350, on procède à une interpolation sur cet ensemble, avec une multiplicité uniforme Mult = M, ce qui fournit un polynôme Q(X,Y) . Dans ce mode de réalisation, on prend en compte, pour chacune des 8 composantes telles que p(Pj.) ri, les deux valeurs disponibles p(Pi) et ri (associées au même point de l'ensemble de localisation du code) directement l'une après l'autre au cours de l'interpolation, ceci dans le but d'obtenir une liste de polynômes de reconstruction qui soit aussi fournie que possible. On notera également que (comme le sait l'homme du métier) le procédé d'interpolation comprend une étape dans laquelle on choisit un polynôme d'initialisation (à deux variables X et Y) ; cela a des conséquences importantes, car, selon le polynôme d'initialisation choisi, l'interpolation peut conduire à des polynômes d'interpolation Q(X,Y) différents, et donc, après factorisation, à des ensembles de polynômes de reconstruction différents; au final, on voit que l'on peut ainsi obtenir des listes de mots reconstruits différentes (mais ayant évidemment en général un certain nombre d'éléments en commun). La factorisation, à l'étape 355, de ce polynôme Q(X,Y) n'est en général pas triviale; comme mentionné ci-dessus, on pourra utiliser pour ce faire l'algorithme décrit ci-dessous en référence à la figure 4. On obtient ainsi, en général, une pluralité de polynômes de reconstruction p()(X) , et, par conséquent, une pluralité de mots reconstruits F (t) à l'étape 360. Selon un mode de réalisation, on compte, à l'étape 365, pour chaque mot reconstruit iF(), le nombre de composantes dont la valeur est différente des composantes correspondantes du mot reçu r. On ne conserve alors que le ou les mots reconstruits présentant le moins de différences, c'est-à- dire dont la distance de Hamming avec le mot reçu est la plus faible; ce ou ces mots forment alors une sous-liste. Pour terminer, s'il l'on constate qu'il n'y a qu'un seul mot dans cette sous-liste, on le prend comme mot de code associé ; sinon, le mot de code associé est déterminé à partir des mots de la sous-liste selon un critère prédéterminé ; on pourra par exemple préférer, entre deux mots situés à la même distance de Hamming du mot reçu, celui (le cas échéant) dont les composantes corrigées ont, globalement, les degrés de fiabilité les plus faibles. On va illustrer à présent, à l'aide d'un exemple numérique, le procédé 5 de décodage pour codes de Reed-Solomon selon l'invention, dans son application aux décisions douces. Considérons par exemple le code de Reed-Solomon de dimension 7 et de longueur 15 défini sur le corps de Galois F16 déjà considéré ci-dessus, et supposons qu'on ait reçu le mot suivant: r = (a14 1 a4 a9 a6 a4 a6 0 a7 a3 a4 a2 ag a7 al ) dont les composantes sont ordonnées selon la fiabilité décroissante de la façon suivante: r1,r2,r5,r13,r9,r6,r4,r15, r10,r8,r7,r14,r12,r,r11. Conformément à l'invention, on effectue une interpolation sur les k = 7 15 premières composantes de cette liste, et avec une multiplicité M seulement égale à 1. On obtient alors le polynôme d'interpolation Q(X,Y) =Y+a12+X+a3X2+a3X3+a7X4+aX5+a11X6 Le polynôme de reconstruction est donc: p (X)=a'2 +X +a3X2 +a3X3 +a7X4 +aX5 +a11X6 Appliqué à l'ensemble de localisation, ce polynôme fournit le mot reconstruit r( ) =(a14 1 0 a9 a6 a4 a9 a8 a7 1 a4 a6 ag a3 a8) où nous avons souligné les composantes dont la valeur est différente de celle de la composante de même indice du mot reçu r; ces composantes sont au nombre de 8=7. Conformément à l'invention, on compare ensuite ce nombre de corrections à INT [(n - k) / 2] = INT [(15-7)/2]= 4. On constate que ô> 4: on en déduit qu'il faut mettre en oeuvre le décodage de secours selon l'invention. On effectue donc une interpolation sur un ensemble comprenant n + 8 =15 + 7 = 22 points, avec une multiplicité uniforme M = 4; ce faisant, on place dans cet ensemble d'interpolation, pour chacune des 7 composantes corrigées , les deux valeurs disponibles directement l'une après l'autre. Il reste à choisir le polynôme servant à l'initialisation de l'interpolation. On peut montrer que si l'on initialise l'interpolation avec Q(X,Y) =1 ou Q(X,Y) = Y, la factorisation (par exemple au moyen de la technique décrite ci-dessous en référence à la figure 4) des polynômes d'interpolation Q(X,Y) ainsi obtenus ne fournit qu'un seul polynôme de reconstruction, à savoir encore le polynôme p( ) (X) donné ci-dessus. Mais si l'on initialise l'interpolation avec Q(X,Y) = Y2, la factorisation du polynôme d'interpolation Q(X,Y) obtenu fournit 4 polynômes de reconstruction, dont l'un n'est autre que p( ) (X) et les autres sont: p(l)(X)=a3 +a14X+a10X2 +a7X3 +a4X4 +a8X5 +a12X6 p(2)(X) =a3 + a8X +a13X2 +a11X3 +a12X4 +a'0X5 +a12X6, et p(3)(X) =a+a4X2 +a3X3 Appliqués à l'ensemble de localisation, ces trois polynômes fournissent, respectivement, les mots reconstruits suivants: (1) 9 7 9 7 8 11 7 2 3 6 3 4 4 12 10 r =(a,a,a,a,a,a,a,a,a,a,a,a,a,a,a) (2)i,: (a14 1 8,12,11 4 6,11 7 3 4 2,13 7) r = (a, a a a a,a a a,a a a a a,10 et r(3) =(a1413a9,a6,a4,a6,0,a7,a3,0,0,a8,a6,a10) où nous avons souligné les composantes dont la valeur est différente de celle de la composante de même indice du mot reçu Y. II reste enfin à choisir lequel de ces quatre mots reconstruits r( ) , F(1) , F 2) et F 3) sera pris comme étant le mot de code v associé à r. Or on constate que, par rapport au mot reçu, F 1) est à une distance de Hamming égale à 14, FO) est à une distance de Hamming égale à 7, cependant que F 2) et F 3) sont tous deux à une distance de Hamming seulement égale à 5: de préférence, le choix se fera donc entre rF(2) et F(3) . Mais on note également que r(3) ne comporte qu'une seule composante corrigée parmi les 7 premières composantes du mot reçu, alors que F(2) en comporte 3; on peut alors estimer que le classement ci-dessus en termes de fiabilité des composantes du mot reçu était après tout assez correct, à l'exception d'une mauvaise estimation concernant la fiabilité de la composante r2; dans ces conditions, on peut raisonnablement choisir = . La figure 4 est un algorithme représentant les étapes principales de la factorisation du polynôme d'interpolation Q(X,Y) . Cet algorithme permet de trouver tous les facteurs de la forme (Y p(i)(X)) (où i compte les tentatives successives d'obtention d'un tel facteur, étant entendu que deux polynômes de reconstruction p(i)(X) avec une valeur différente de i peuvent être identiques lorsqu'un facteur de Q(X,Y) intervient avec une puissance supérieure à 1). L'algorithme utilise de manière itérative un sous-algorithme permettant, quant à lui, de trouver un facteur (un seul à la fois) du polynôme d'interpolation Q(X, Y) ; ce sous-algorithme peut être, par exemple, l'algorithme introduit par R.M. Roth et G. Ruckenstein dans leur article Efficient Decoding of Reed-Solomon Codes Beyond Haif the Minimum Distance (IEEE Trans. Inform. Theory, vol. 46, n 1, janvier 2000). A l'étape 410, on attribue des valeurs initiales à diverses quantités: on donne à l'index de comptage i la valeur (-1), de manière à obtenir en premier lieu p( )(X) après l'étape 435; on donne la valeur zéro au coefficient gi qui sera utilisé à l'étape 425 (les coefficients suivants gi sont obtenus à l'étape 445) ; et l'on donne la valeur Q(X,Y) au polynôme G(X,Y) qui va représenter les facteurs restants de Q(X,Y) après élimination d'un facteur à chaque itération indexée par i. A l'étape 415, on initialise p(i)(X) à la valeur (Y -1) . A l'étape 420, on ôte du polynôme à factoriser courant G(X,Y) le facteur trouvé précédemment. L'étape 425 contient des sous-étapes faisant partie de l'algorithme de Roth- Ruckenstein; notamment, on ôte de G(X,Y) le facteur X r, où r (entier positif ou nul) est aussi grand que possible, et l'on effectue une translation en Y du polynôme G(X,Y) . A l'étape 430, on cherche les racines du polynôme G(X,0) au moyen d'un algorithme classique quelconque adapté aux polynômes à une seule variable. Si ce polynôme G(X,0) est nul quel que soit la valeur de X, on en déduit que l'on a complété le calcul d'un nouveau polynôme de reconstruction; ce dernier est alors enregistré à l'étape (440) après qu'on lui ait, à l'étape (435), attribué l'index i correspondant, et l'on retourne à l'étape (420) pour poursuivre la recherche de facteurs de Q(X,Y) . Si en revanche on trouve à l'étape 430 un symbole x tel que G(x,0) 0, on cherche, conformément à l'algorithme de Roth-Ruckenstein, les racines éventuelles Y = gi (où j = 0,1,...) du polynôme G(0,Y). S'il s'avère, à l'étape 450, que G(0,Y) n'admet pas de racines, on en 10 déduit que l'on a trouvé tous les facteurs de la forme (Y p()(X)) dans Q(X,Y), et l'algorithme de factorisation prend fin. S'il s'avère en revanche, à l'étape 450, que G(0,Y) admet au moins une racine, on vérifie d'abord, à l'étape 455, si le nombre de ces racines est encore inférieur ou égal à la dimension k du code. Si c'est le cas, on en conclut que le calcul du polynôme de reconstruction courant doit se poursuivre, et l'on retourne à l'étape 425. Sinon, on en conclut que le facteur correspondant à cette valeur de i est de degré en X supérieur ou égal à k, de sorte qu'il est impropre à fournir un polynôme de reconstruction; on retourne donc à l'étape 415 pour une nouvelle recherche d'un facteur de Q(X,Y) , après avoir augmenté l'index i d'une unité. Le schéma synoptique de la figure 5 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 5 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de stockage de masse et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - le destinataire d'informations 109 pourrait être, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait être adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, - le lecteur 105 est adapté à lire des données enregistrées sur un support tel qu'un disque magnétique ou magnéto-optique. La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment les registres suivants: des registres mots reçus , dans lesquels sont conservés les mots reçus, - un registre symboles estimés , dans lequel sont conservés les symboles issus d'un mot reçu en cours de correction, - un registre mots associés , dans lequel sont conservés les symboles des mots de code associés , et - un registre symboles information , dans lequel sont conservés les 25 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, 30dans 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 - la valeur de la multiplicité pour le décodage de secours selon l'invention, dans un registre M . 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 aussi bien être mis en oeuvre dans d'autres applications du codage de canal, par exemple au sein d'un réseau de télécommunications, auquel cas l'unité 105 pourrait être un récepteur adapté à mettre en oeuvre un protocole de transmission de données par paquets par ondes hertziennes, ou encore au sein d'un système audiovisuel, auquel cas l'unité 105 pourrait être une unité de décompression d'images tatouées compressées. REVENDICATIONS 1. Procédé de décodage pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P,P2,...,Pn de Fq, caractérisé en ce que, pour corriger un mot reçu r = (ri,r2...,rn) dont chaque composante est munie d'un degré de fiabilité respectif, il comprend les étapes suivantes: a) on effectue une interpolation sur les k points (P, rt) (où 1 s i 1 sur un ensemble de points incluant l'ensemble de k points utilisé à l'étape a), de manière à obtenir un polynôme d'interpolation Q(X,Y) dont la factorisation fournit au moins un mot reconstruit r' =(p(1)(Pi),p(1)(P2),. ,p(1)(Pn)) (où 1=0,1,...)...CLMF: 2. Procédé de décodage pour code de Reed-Solomon selon la revendication 1, caractérisé en ce que, pour factoriser ledit polynôme d'interpolation Q(X,Y) , on utilise de manière itérative un sous-algorithme permettant de trouver un seul facteur de Q(X,Y) à la fois. 3. Procédé de décodage pour code de Reed-Solomon selon la revendication 2, caractérisé en ce que ledit sous-algorithme est l'algorithme de RothRuckenstein. 4. Procédé de décodage pour code de Reed-Solomon selon l'une quelconque des revendications précédentes, caractérisé en ce que, si la liste desdits mots reconstruits.(1) comporte une pluralité d'éléments, on élimine de cette liste les mots dont (le cas échéant) la distance de Hamming avec le mot reçu r est plus grande que pour d'autres mots de la liste. 5. Procédé de décodage pour code de Reed-Solomon selon la revendication 4, caractérisé en ce que, s'il reste encore dans ladite liste de mots reconstruits r(l) une pluralité d'éléments, on élimine de cette liste les mots dans lesquels (le cas échéant), par rapport à d'autres mots de la liste, les corrections concernent les composantes du mot reçu r initialement considérées comme étant les moins fiables. 6. Procédé de décodage pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P,P2,...,Pn de Fq, caractérisé en ce que, pour corriger un mot reçu r = (r1, r2..., rn) pouvant comporter e effacements, où 0 1 sur les f points correspondant aux composantes non-effacées. 7. Procédé de décodage pour code de Reed-Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments I,P2,...,P de Fq, caractérisé en ce que, pour corriger un mot reçu r=(JÎ,r2,...,r ) dont chaque composante est munie d'un degré de fiabilité non-binaire respectif, il comprend les étapes suivantes: a) on effectue une interpolation sur les k points (P, ri) (1 1 sur un ensemble de points d'interpolation comprenant, d'une part, tous les points (Pi,ri) (i =1,..., n), et d'autre part les 8 points (Pi, p(Pi)) tels que p(Pi) ri. 8. Procédé de décodage pour code de Reed-Solomon selon la revendication 7, caractérisé en ce que, lorsque 8 > INT [(n k)/2], on place dans ledit ensemble de points d'interpolation, pour chacun desdits 8 points (P, p(P)) tels que p(P) ri, les deux valeurs disponibles directement l'une après l'autre. 9. Procédé de décodage par agrégats, dans lequel, un mot r ayant été reçu, on forme les mots reçus agrégés ri = [ri(xl),...,ri(xi,) ] (où O j jmax), dont les composantes sont les symboles reçus agrégés ri(x) respectivement associés aux agrégats étiquetés par x = ,...,xi, , et correspondant respectivement aux codes de Reed-Solomon composants de 25 redondance t(j), caractérisé en ce qu'il comporte les étapes suivantes: a) on essaie de corriger, pour une valeur prédéterminée J de j, le mot reçu agrégé ri au moyen d'un procédé de correction d'erreurs adapté aux codes de Reed-Solomon; b) en cas de succès de cette correction, on identifie tous les agrégats xt (i=l,..., f) éventuels tels que la composante rj (xi) a été corrigée à l'étape précédente; et c) on corrige au moins un autre mot reçu agrégé rj, (0 J' Jmax ' et J' J) en effaçant les composantes de ce mot correspondant aux agrégats identifiés à l'étape précédente (le cas échéant), et en mettant ensuite en oeuvre un procédé selon la revendication 6. 10. Procédé de décodage par agrégats selon la revendication 9, 10 caractérisé en ce que, pour chaque mot reçu agrégé ri restant (où 0 11. Procédé de décodage par agrégats selon la revendication 9 ou la revendication 10, caractérisé en ce que le procédé de correction d'erreurs utilisé pour corriger ledit mot reçu agrégé r, est un procédé selon la revendication 7. 12. Dispositif (107) de correction d'erreurs pour code de Reed- Solomon sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P1,P2,...,Pn de Fq, caractérisé en ce que, pour corriger un mot reçu r = (ri,r2...,rn) dont chaque composante est munie d'un degré de fiabilité respectif, il comprend des moyens pour: a) effectuer une interpolation sur les k points (Fiji) (où 1 1 sur un ensemble de points incluant l'ensemble de k points utilisé à l'étape a), de manière à obtenir un polynôme d'interpolation Q(X,Y) dont la factorisation fournit au moins un mot reconstruit ï- (1) =(p(l)(PI),p(l)(P2),...,p(1)(P )) (où 1 =0,1,...). 13. Dispositif de correction d'erreurs sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P,P2,...,Pn de Fq, caractérisé en ce que, pour corriger un mot reçu r = (r, r2..., rn) pouvant comporter e effacements, où 0 e 1 sur les f points correspondant aux composantes noneffacées. 14. Dispositif de correction d'erreurs sur un corps de Galois Fq, où q est un entier supérieur à 2 et égal à une puissance d'un nombre premier, de dimension k et défini sur un ensemble de localisation constitué des éléments P,P2,...,Pn de Fq, caractérisé en ce que, pour corriger un mot reçu (ri,r2...,r ) dont chaque composante est munie d'un degré de fiabilité non- binaire respectif, il comprend des moyens pour: a) effectuer une interpolation sur les k points (P, , r) (1 1 sur un ensemble de points d'interpolation comprenant, d'une part, tous les points (P,,r,) (i =I,...,n), et d'autre part les 8 points (Pj, p(Pj)) tels que p(Pj) ri. 15. Dispositif (107) de correction d'erreurs par agrégats, ledit dispositif comprenant, un mot r ayant été reçu, des moyens pour former les mots reçus agrégés rj = [ri (xj),..., ri (x) ] (où 05_ j jmax), dont les composantes sont les symboles reçus agrégés ri (x) respectivement associés aux agrégats étiquetés par x = , et correspondant respectivement aux codes de Reed-Solomon composants de redondance t(j) , caractérisé en ce qu'il comprend également des moyens pour: a) essayer de corriger, pour une valeur prédéterminée J de j, le mot reçu agrégé r au moyen d'un procédé de correction d'erreurs adapté aux codes de Reed-Solomon; b) en cas de succès de cette correction, identifier tous les agrégats x, (i=l,..., f) éventuels tels que la composante rj(x,) a été corrigée à l'étape précédente; et c) corriger au moins un autre mot reçu agrégé r,1, (0 16. Décodeur (10), caractérisé en ce qu'il comprend: - au moins un dispositif de correction d'erreurs pour code de Reed- Solomon selon l'une quelconque des revendications 12 à 14, ou un dispositif de correction d'erreurs par agrégats selon la revendication 15, et - au moins une unité de suppression de la redondance (108). 17. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 16, et en ce qu'il comprend des moyens (106) pour démoduler lesdits signaux numériques codés. 18. Système informatique (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 16, 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. 19. Moyen de stockage de données inamovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de décodage pour code de Reed-Solomon selon l'une quelconque des revendications 1 à 8, ou d'un procédé de décodage par agrégats selon l'une quelconque des revendications 9 à 11. 20. Moyen de stockage de données partiellement ou totalement amovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de décodage selon l'une quelconque des revendications 1 à 8, ou d'un procédé de décodage par agrégats selon l'une quelconque des revendications 9 à 11. 21. Programme d'ordinateur, caractérisé en ce qu'il contient des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre un procédé de décodage f selon l'une quelconque des revendications 1 à 8, ou d'un procédé de décodage par agrégats selon l'une quelconque des revendications 9 à 11.