Brevet FR2838580A1 — publié le 20031017

condensateur (C3'). La présente invention concerne les systèmes de communication dans lesquels, afin d'améliorer la fidélité de la transmission, les donnces à transmettre sont soumises à un codage de canal. Elle concerne plus particulièrement un procédé de décodage, ainsi que les dispositifs et appareils destinés à mettre en _uvre ce procédé. On rappelle que le codage dit " de canal " consiste, quand on forme les " mots de code " envoyés au récepteur, à introduire une certaine redondance dans les données à transmettre. Plus précisément, on transmet, au moyen de chaque mot de code, un nombre prédéterminé k de symboles d'information choisis au sein d'un " alphabet " prédéterminé de taille finie; on ajoute à ces k symboles d'information un nombre (n-k) de symboles dits de " parité ", prélevés dans le même alphabet, de manière à former des mots de code de longueur n; I'ensemble des règles de calcul des symboles de parité en fonction des symboles d'information définit un " code ", ou " procédé de codage ", de paramètres (n,k). 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. 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 analyse d'abord le mot reçu pour vérifier s'il appartient au code. Si c'est le cas, on supposera qu'il n'y a pas eu d'erreur de transmission, et ledit " mot de code associé " sera simplement identique au mot reçu. Si ce n'est pas le cas, on en déduit que certains symboles dans ie mot reçu sont erronés, et l'on met alors en _uvre un algorithme de correction destiné à remplacer certains des symboles reçus par d'autres symboles du même alphabet, de manière à ce que le résultat soit un mot de code, qui constituera alors ledit " mot de code associé ". La seconde étape consiste simplement à inverser le procédé de codage, c'est-à-dire à retirer les symboles de redondance du " mot de code associé " pour retrouver les données initiales. L'invention concerne plus particulièrement la première de ces deux étapes et les conditions de mise en _uvre desUits algorithmes de correction. Ceux-ci ont habituellement pour rôle 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. Chaque code offre donc une capacité de correction d'erreurs qui est limitée par la distance de Hamming la plus petite entre deux mots quelconques de ce code, que l'on appelle la " distance minimale >' du code d; plus précisément, quand l'algorithme de correction choisi est chargé de trouver la position des erreurs éventuelles dans un mot reçu quelconque, et de fournir un symbole de remplacement pour chacune de ces positions, on est sûr de pouvoir corriger au mieux INT[(d-1)/2] erreurs pour un code de distance minimale d ( sera alors évidemment très douteux que cette correction soit la bonne, c'est-à- dire que le mot de code associé soit bien le mot de code envoyé par l'émetteur. Parmi les procédés de codage utilisés de façon classique, par exemple dans les enregistrements de CD (" compacts discs ") et de DVD (" digital video discs "), certains sont des " codes produits ". Dans ces procédés, les symboles de chaque mot de code peuvent être placés dans un tableau comportant n lignes et n2 colonnes, de telle manière que les symboles constituant chaque ligne forment un mot appartenant à un premier code " composant " (n',k), et les symboles constituant chaque colonne forment un mot appartenant à un second code composant (n2,k2). On peut aisément se rendre compte que de tels codes produits sont avantageux: par exemple, si l'on constate que dans un mot reçu, une certaine ligne n'appartient pas au premier code et une certaine colonne n'appartient pas au second code, on en daduit immédiatement, dans l'hypothèse o un seul symbole reçu est entaché d'erreur, que ce symbole erroné est situé au croisement de ladite ligne et de ladite colonne. Un autre avantage important est que l'on peut parvenir à corriger toutes les erreurs du mot reçu même si certaines de ses lignes sont initialement incorrigibles par l'algorithme associé au premier code, eVou certaines de ses colon nes sont in itialement incorrigibles par l'algorithme associé au second code: en effet, la correction itérative des lignes l'une après l'autre, puis des colonnes l'une après l'autre, et à nouveau des lignes, et ainsi de suite tant que de nécessité, peut très bien parvenir à réduire progressivement le nombre d'erreurs, de sorte que, à un certain stade, ce nombre tombera dans chaque ligne en deçà de la capacité de correction du premier algorithme et dans chaque colonne en deçà de la capacité de correction du second algorithme. Les brevets US-6,047,395 et US-6,138,263, par exemple, divulguent des procédés de décodage de code produit. Ces procédés comprennent une étape consistant, lorsque le premier (resp. second) algorithme est incapable de proposer une correction pour une ligne (resp. colonne) considérée, à " effacer " toute ladite ligne (resp. colonne): cela signifie que, lorsque l'on cherche ensuite à corriger les colonnes (resp. Iignes), on signale au second (resp. premier) algorithme les positions dont les symboles ont été " effacés ". En effet, de manière générale, quand un algorithme doit corriger un mot (dans le cas présent, une ligne ou une colonne), le fait de conna^'tre à l'avance les positions contenant d es sym boles douteux facil ite considéra b leme nt la tâch e de l'algorithme; plus précisément, on sait qu'un algorithme apte à prendre en compte cette information possède, si on ne lui soumet que des mots comportant des effacements, une limite de correction fiable deux fois supérieure à celle qu'il possède si on ne lui soumet que des mots contenant des erreurs de position inconnue. Ces procédés de décodage de codes produits avec effacement des lignes et colonnes incorrigibles permettent donc, d'une part, de tolérer un plus grand nombre d'erreurs de transmission, et d'autre part d'accélérer la procédure de correction de ces erreurs. Bien que de tels procédés de décodage possèdent des avantages certains, ils ont pour inconvénient de provoquer un taux relativement élevé de fausses corrections. En effet, à chaque fois qu'on efface une ligne ou une colonne, toute information sur le mot envoyé qui pouvait subsister dans cette ligne ou cette colonne en dépit des erreurs de transmission que cette ligne ou colonne a subies, est évidemment perdue. Par conséquent, si l'on veut néanmoins aboutir à une correction effective de ce mot, il est nécessaire de disposer d'un nombre sufffisant de symboles fiables dans les positions non effacées du tableau. Or le fait d'accepter la " correction " fournie par les algorithmes à chaque fois qu'ils sont capables de fournir une " correction " signifie que l'on va souvent, lorsque le nombre d'erreurs dans une ligne ou une colonne soumise à l'algorithme de ligne ou de colonne est relativement élevé, inscrire une nouvelle ligne ou colonne qui est en fait entachée d'erreurs (sans que l'on s'en soit rendu compte), du fait que l'algorithme a été en mesure de proposer un mot apparemment corrigé en modifiant un nombre relativement faible de symboles, dont l'un au moins était correct. On va alors engendrer un nombre croissant de symboles faux au cours des étapes ultérieures de " correction " de ce mot, et aboutir généralement, dans ces circonstances, à un " mot de code associé " lourdement erroné. - Afin de résoudre ce problème, I'invention concerne, selon un premier aspect, un procédé de décodage d'un code produit, dans lequel les symboles de chaque mot de code peuvent étre placés dans un tableau comportant n2 lignes et n colonnes, de telle manière que les symboles constituant chaque ligne forment un mot légal de longueur n selon un premier code composant pouvant étre décodé au moyen d'un algorithme de correction avec effacements A, et les symboles constituant chaque colonne forment un mot légal de longueur n2 selon un second code composant pouvant être décodé au moyen d'un algorithme de correction avec effacements A2, ledit procédé étant remarquable en ce qu'il comprend une succession d'étapes principales que l'on met en ceuvre jusqu'à ce que la correction du mot reçu soit complète, chacune de ces étapes consistant à traiter soit une ligne soit une colonne dudit tableau dans un ordre prédéterminé, et en ce que, pour traiter une ligne / ( 1 d*4, on efface tous les symboles de cette ligne, et en ce que, pour traiter une colonne j (1 s j - Si (2t2i + T2i) > d*2, on efface tous les symboles de cette colonne. En effet, les auteurs de la présente invention ont réalisé que, lorsque l'on cherche à estimer si une correction proposée par un algorithme de ligne ou de colonne a de bonnes chances d'être effective (au lieu d'être une fausse correction), la quantité naturelle à considérer est le nombre (2t + I), o T désigne le nombre d'effacements dans la ligne ou la colonne à corriger, et t le nombre de symboles dans cette ligne ou colonne qui ont été modifiés par l'algorithme (et dont il ne savait pas à l'avance qu'ils devaient être corrigés, c'est-à-dire qui ne se trouvaient pas à des positions effacées). Selon l'invention, on n'accepte la correction d'une ligne ou colonne que lorsqu'il s'avère après traitement que le nombre de symboles dont la valeur a été changée ou déterminée est raisonnabiement petit, de sorte que l'algorithme n'a pas été poussé au- delà de ses capacités réelles et la correction proposée est fiable, le paramètre d* jouant donc le rôle de " limite de fiabilité ". Ainsi, on tire parti des avantages susmention nés de la technique du décodage de cod es prod uits avec effacements, mais en outre, grâce à l'invention, on réduit considérablement le taux de corrections erronées. On notera que le nombre f ne concidera pas toujours avec le nombre réel de symboles erronés (c'est-à-dire, différents de ceux transmis) dans la ligne ou colonne considérée: en effet, il pourra se produire occasionnellement que l'algorithme propose une ligne ou colonne cette étape du décodage. Ainsi, selon la présente invention, on considère que la capacité d'un algorithme de correction de pouvoir proposer une correction d'un mot reçu dans tous les cas (c'est-à-dire quel que soit ce mot reçu), est fidèlement représentée par la formule: (2t +) ' A, o A est un entier strictement positif que nous appellerons le " pouvoir de résolution " de l'algorith me (u n algorith me de correction d'erreu rs doit notamment résoudre un certain nombre d'équations résultant des " syndromes d'erreurs "). Si la valeur de (2t +) est supérieure à ce pouvoir de résolution A, I'algorithme pourra: - soit échouer purement et simplement dans sa tentative de correction, - soit être capable de proposer une correction du mot reçu; dans ce cas, si l'on accepte cette correction, on s'expose au risque qu'elle soit erronée, c'est-à-dire que le mot de code proposé ne soit pas, en fait, le mot envoyé, ce risque étant évidemment d'autant plus prononcé que (2t +) est grand par rapport à A. Compte tenu des considérations présentées en introduction concernant la distance minimale d du code auquel s'applique cet algorithme, on dira que l'algorithme considéré est " maximal " si = d-1, et " sub-maximal " si Selon une caractéristique préférentielle de l'invention, I'algorithme A associé au code de ligne eVou l'algoritUme A2 associé au code de colonne est un algorithme sub-maximal (quand il en existe un). Cette caractéristique est particulièrement avantageuse dans le cas o l'on connaAtt, pour le même code, à la fois un algorithme maximal, ou seulement " légèrement sub-maximal " (A proche de (d-1) tout en lui étant inférieur), et un algorithme maximal >> (A très inférieur à (d-1)), ce dernier étant plus rapide eVou plus simple d'exécution que le premier. Si l'on choisit alors l'algorithme sub-maximal avec les effacements selon l'invention au lieu de l'algorithme maximal sans effacements, le décodage gagnera en rapidité eVou en simplicité de mise en _uvre, sans pour autant perdre significativement en matière de fiabilité, c'est-à- dire sans accroissement significatif du taux de corrections erronées des mots reçus. En effet, les échecs de correction de l'algorithme " nettement sub maximal " ne sont, dans le cadre du décodage d'un code produit selon l'invention, pas synonymes de perte totale d'information: les effacements constituent en quelque sorte une " information douce " consistant à indiquer à l'algorithme, en vue des étapes ultérieures de traitement du mot, quelles positions dans ce mot sont moins fiables que les autres; ainsi, cet algorithme peut, en tirant parti de cette " information douce >>, compenser son infériorité en termes de performances par rapport à un algorithme plus complexe, et donc devenir très avantageux, justement du fait de sa relative simplicité de mise en _uvre. Avant de mettre en _uvre l'invention dans une application particulière, il est recommandé d'effectuer des tests pour déterminer la meilleure valeur possible de la limite de fiabilité d*. A cet égard, ia valeur du pouvoir de résolution pourra utilement servir de référence. De manière générale, on distinguera deux situations: - soit l'algorithme choisi est maximal, ou seulement proposée par l'algorithme soit erronée. Les brevets US-6,047,395 et US-6,138,263 susmentionnés visent notamment des applications dans lesquelles le code de ligne et le code de colonne sont tous deux des " codes de Reed-Solomon ". Les codes de Reed Solomon sont très efficaces, mais deviennent lourds à manier quand la taille de l'alphabet dépasse 256; pour un code produit construit sur la base de deux tels codes de Reed-Solomon, on obtient donc, raisonnablement, une longueur n égale au plus à 2562, soit 65536. Or dans les supports d'information modernes, on cherche à accro^tre la densité d'information. De ce fait, quand un tel support est affecté par un défaut physique tei qu'une éraflure, un nombre important de symboles d'information peut étre rendu illisible. On peut toutefois remédier à ce problème en utilisant des mots de code de très grande longueur. C'est pourquoi on a cherché à construire des codes offrant de manière naturelle une plus grande longueur que les codes de Reed-Solomon, et l'on peut construire, en composant de tels codes, des codes produits de très grande longueur. On a notamment proposé récemment des codes dits ?, par J.H. van Lint, dans " Coding Jheory and Design Theory", 1ère partie, IMA Volumes Math. Appl., volume 21, Springer- Verlag, Berlin, 1990). Ces codes sont construits à partir de courbes algébriques définies sur un alphabet à q éléments structuré en corps de Galois. 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. Les codes de géométrie algébrique permettent d'atteindre une longueur égale à (q+2g5), qui peut être très élevée; par exemple, avec deux codes composants possédant chacun une taille d'alphabet égale à 256 et un genre égal à 120, on obtient des mots de code produit de longueur 16 777 216. Selon des caractéristiques particulières de l'invention7 le code de ligne et/ou le code de colonne est un code de géométrie algébrique. Les codes de géométrie algébrique sont, comme on l'a dit, avantageux quant à la longueur des mots de code, mais ils présentent l'inconvénient de requérir (en tous cas dans l'état actuel des connaissances) des algorithmes de décodage assez complexes, et donc assez coûteux en termes d'équipements (logiciel eVou 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. Dans le cas o au moins l'un des deux codes composants d'un code produit est un code de géométrie algébrique, on pourra donc avantageusement appliquer la présente invention aux algorithmes de correction avec effacements qui ont été conçus pour de tels codes (voir par exemple l'article de Tom H0hoidt and Ruud Pellikaan intitulé " On the Decoding of Algebraic-Geomemc Codes ", IEEE Trans. Inform. Theory, vol. 41 n 6, pages 1589 à 1614, novembre 1995). Il est à noter que pour ces algorithmes, on ne dispose que d'une borne inférieure de leur pouvoir de résolution A, sauf dans le cas du pouvoir de résolution est A = n - k - 2g. Il est à noter que, pour la correction d'un code de géométrie algébrique qui n'est pas un composant de produit direct, cet algorithme " de base " est plus simple, mais moins performant, que l'algorithme " de Feng- Rao ". En revanche, dans le cadre de la présente invention, c'est en fait l'algorithme de base qui est préféré, pour les raisons expliquées cidessus. De plus, on pourra avantageusement combiner l'utilisation de l'un q uelconq ue de ces algorith mes de décod age d es cod es de géométrie algébrique avec des améliorations algorithmiques connues, telles que celle divulguée par le brevet US-6,138,263 susmentionné et qui concerne la façon de procéder en début de correction d'un mot reçu ayant subi une rafale d'erreurs, ou telles que " I'accélération de Berlekamp-Massey- Sakata " (voir les articles de S. Sakata dans J. Symbolic Computing, vol. 5, pages 321 à 337, 1988, et dans Informat. Comput., vol. 84, pages 207 à 239, 1990). U n autre exemple d'application avantageuse de l' invention est celu i des codes produits dans lesquels au moins l'un des codes composants est un " code de géométrie algébrique partiel ", tel que décrit dans l'article " Partlal Geometric Codes " de O. Pretzel, IEEE Trans. Inform. Theory, vol. 45 n 7, pages 2506 à 2512, 1999). Il s'agit de codes définis au moyen de courbes dont le genre n'est pas précisément connu, mais pour lesquels il existe des algorithmes de décodage " de base " et " de vote majoritaire " analogues à ceux mentionnés ci-dessus. Seion un autre de ses aspects, I'invention concerne divers dispositifs. Elle concerne ainsi, premièrement, un dispositif de correction d'erreurs, ledit dispositif étant remarquable en ce qu'il comporte des moyens pour mettre en _uvre l'un quelconque des procédés de décodage tels que décrits succinctement ci-dessus. L'invention concerne aussi, deuxièmement, un décodeur comportant: - au moins un dispositif de correction d'erreurs tel que décrit succinctement ci-dessus, et - au moins une unité de suppression de la redondance. L'invention vise également: - un appareil de réception de signaux numériques codés comprenant un décodeur tel que décrit succinctement cidessus, ainsi que des moyens pour recevoir lesdits 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 succinctement exposés ci-dessus, - un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés succinctement exposés ci-dessus, et - un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en _uvre l'un des procédés succinctement exposés ci-dessus. Les avantages offerts par ces dispositifs, moyens de stockage de données et programmes d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés selon l'invention. D'autres aspects et avantages de l'invention apparatront à la lecture de la description détaillée ci-dessous de modes particuliers de réalisation, 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 util isant u n cod age de canal selon l'i nvention, - - la figure 2 est un organigramme représentant les étapes principales d'un procédé de correction d'erreurs dans un mot reçu, - la figure 3a est un organigramme représentant les étapes principales d'un procédé de tentative de correction d'erreurs, ce procédé faisant partie d'une étape du procédé illustré sur la figure 2, - la figure 3b est un organigramme représentant les étapes principales d'un procédé de tentative de correction d'erreurs, ce procédé faisant partie d'une autre étape du procédé illustré sur la figure 2, - les figures 4a à 6b illustrent un exemple numérique de mise en _uvre du procédé illustré sur la flgure 2, et - la figure 7 représente un appareil de réception de signaux numériques incorporant un décodeur selon l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations utilisant un codage et décodage de canal selon l'invention. Ce système a pour fonction de transmettre des informations de nature quelconque à partir d'une source 100 vers un destinataire ou utilisateur 109. En premier lieu, la source 100 met ces informations sous la forme de symboles appartenant à un certain alphabet (par exemple des quadruplets de bits), et transmet ces symboles à une unité de stockage 101, qui accumule les symboles de façon à former des ensembles contenant chacun k k2 symboles. Ensuite, chacun de ces ensembles est transmis par l'unité de stockage 101 à un codeur 102 qui y ajoute (n n2- k' k2) symboles de redondance, de manière à construire un mot du code produit dans lequel chaque ligne est un mot de longueur n appartenant à un premier code composant, et chaque colonne est un mot de longueur n2 appartenant à un second code composant (éventuellement identique au premier code composant). Les mots de code produit ainsi formés sont ensuite transmis à un modulateur 103, qui associe à chaque symbole du mot de code produit un symbole de modulation (par exemple, une amplitude complexe). Ensuite, ces symboles de modulation sont transmis à un émetteur ou à un enregistreur 104, qui insère les symboles dans un canal de transmission. Ce canal peut étre constitué par exemple d'une émission filaire ou non-filaire telle qu'un signal radio, ou par un stockage sur un support adapté tel qu'un DVD ou une bande magnétique. Cette transmission parvient à un récepteur ou à un lecteur 105, après avoir été affecté par un " bruit de transmission " dont l'effet est de modifier ou d'effacer, aléstoirement, certains des symboles de modulation. Le récepteur ou lecteur 105 transmet alors ces symboles au démodulateur 106, qui les transforme en symboles de l'alphabet mentionné précédemment, dont chaque ensemble constitue un " mot reçu ". Le mot reçu est ensuite traité par une unité de correction d'erreurs 107, qui met en _uvre un procédé de décodage selon l'invention, de manière à fournir un " mot de code associé >, appartenant au code produit. Puis ce mot de code associé est transmis à une unité de suppression de redondance 108, qui en extrait k k2 symboles d'information en mettant en _uvre un algorithme de décodage inverse de celui mis en _uvre 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. La fig u re 2 est u n organ ig ramme représentant les étapes principal es d'un procédé de correction d'erreurs selon l'invention, qui est mis en _uvre chaque fois que l'unité de correction d'erreurs 107 saisit un nouveau mot reçu (sous forme d'un tableau de symboles appartenant audit alphabet) à l'étape 200 de ce procédé. Le procédé comprend au moins une itération, avec un nombre d'itérations maximum /maX fixé à l'avance, par précaution, pour éviter les risques de boucle infinie. Chaque itération comprend elle-même une tentative de correction portant sur les lignes, suivie d'une tentative de correction portant sur les colonnes. Une variable logique appelée L-correctes reçoit la valeur vrai lorsque l'algorithme de correction de ligne A, a constaté que toutes les lignes du tableau sont des mots de code du premier code composant; tant que ce n'est pas le cas, la variable L-correctes reçoit lavaleur faux. De même, une variable logique appelée C-correctes reçoit la valeur vrai lorsque l'algorithme de correction de ligne A2 a constaté que toutes les colonnes du tableau sont des mots de code du second code composant; tant que ce n'est pas le cas, la variable C-correctes reçoit la valeur faux. A l'étape 201, on initialise la variable C-correctes à faux, et le compteur d'itérations à zaro. A l'étape 202, I'algorithme A caloule les syndromes d'erreur des lignes du tableau. Si, à l'étape 203, on constate que ces syndromes sont tous nuls, on en déduit que les lignes sont toutes des mots du premier code composant, et par conséquent la variable L-correctes reçoit la valeur vrai à l'étape 204. On vérifie ensuite, à l'étape 205, si la valeur de C-correctes est égale à vrai. Si c'est le cas, on en déduit que la correction du mot reçu est terminée, et l'unité de correction d'erreurs 107 transmet, à l'étape finale 206, le tableau de symboles, qui constitue à présent le " mot de code associé ", à l'unité de suppression de redondance 108. Mais s'il s'avère, à l'étape 205, que la valeur de C-correctes est égale à faux, on passe, à l'étape 207, au calcul par l'algorithme A2 des syndromes d'erreur des colonnes du tableau. Si l'on constate en revanche, à l'étape 203, que certains syndromes d'erreur de lignes ne sont pas nuis, on applique, à l'étape 208, sur les lignes correspondantes, le procédé de tentative de correction selon l'invention décrit ci-dessous en référence à la figure 3a. On vérifie ensuite, à l'étape 209, si certaines positions du tableau restent effacées. Si c'est le cas, la variable L- correctes reçoit la valeur faux à l'étape 210, sinon la variable Lcorrectes reçoit la valeur vrai à l'étape 211. Après l'étape 210, ou bien l'étape 211, on passe à l'étape 207 déjà mentionnée. Si, à l'étape 212, on constate que les syndromes d'erreur de colonnes sont tous nuis, on en déduit que les colonnes sont toutes des mots du second code composant, et par conséquent on donne à la variable C- correctes la valeur vrai à l'étape 213. On vérifie ensuite, à l'étape 214, si la variable L correctes est égale à vrai. Si c'est le cas, on en débuit que la correction du mot reçu est terminée et l'on passe à l'étape finale 206 déjà mentionnce. Sinon, on incrémente le compteur d'itérations à l'étape 215. Si l'on constate en revanche, à l'étape 212, que certains syndromes d'erreur de colonnes ne sont pas nuis, on applique, à l'étape 216, sur les colonnes correspondantes, le procédé de tentative de correction selon I'invention décrit ci-dessous en référence à la figure 3b. On vérifie ensuite, à l'étape 217, si certaines positions du tableau restent effacées. Si c'est le cas, la variable C-correctes reçoit la valeur faux à l'étape 218, sinon la variable C correctes reçoit la valeur vrai à l'étape 219. Après l'étape 218, ou bien l'étape 219, on passe à l'étape 215 déjà mentionnée. Après l'étape 215, on vérifie, à l'étape 220, si l'on a déjà effectué un nombre d'itérations égal au nombre maximal prévu /maX si ce n'est pas le cas, on retourne à l'étape 202 pour une nouvelle itération. Mais si c'est le cas, on considère que la tentative de correction du mot reçu a échoué, et l'on interrompt le procédé à l'étape 221; les suites à donner dans ces cas d'échec de correction ne relèvent pas du procédé selon l'invention, et doivent être convenues à l'avance par les utilisateurs du procédé. La figure 3a est un organigramme représentant les étapes principales, selon l'invention, d'un procédé de tentative de correction des erreurs contenues dans une ligne i (1 s i référence à la figure 2. A l'étape 301,1'algorithme A' tente de corriger la ligne i à partir de ses syndromes d'erreur en prenant en compte, le cas échéant, les i positions effacées de cette ligne. Si, à l'étape 302, I'on constate que l'algorithme A, ne parvient pas à corriger cette ligne, c'est-à-dire à proposer un mot correspondant faisant partie du premier code composant, alors on efface entièrement la ligne i à l'étape 303. Si en revanche, à l'étape 302, I'aigorithme A propose un mot correspondant faisant partie du premier code composant, alors on compte, à l'étape 304, le nombre t de symboles dans cette ligne qui ont été modifiés par I'algorithme (et qui ne se trouvaient pas à des positions effacées), puis on calcule le nombre (2ti + i) et l'on compare sa valeur à un nombre prédéterminé d*. S'il s'avère, à l'issue de l'étape 304, que (2ti + i) est supérieur à d*4, alors on efface entièrement la ligne i à l'étape 303 déjà mentionnce. Si en revanche (2ti + 'i) s'avère étre inférieur ou égal à d*i, alors on accepte, à l'étape 305, la correction de la ligne i qui vient d'étre effectuce par l'algorithme A. De même, la figure 3b est un organigramme représentant les étapes principales, selon l'invention, d'un procédé de tentative de correction des erreurs contenues dans une colonne j (1 s j dessus en référence à la figure 2. Les étapes311 à315 figurant sur cette figure 3b sont tout à fait analogues, respectivement, aux étapes 301 à 305 de la figure 3a. On va à présent illustrer le procédé de correction d'erreurs selon l'invention à l'aide d'un exemple numérique, en s'appuyant sur les figures 4a à 6b. 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. ll 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 produit dont les codes composants sont des codes de géométrie algébrique construits sur F6 à partir d'une courbe elliptique maximale de 24 points (par exemple: y2 + y = x3 + x), de genre: g = 1. Les paramètres (n,k) de ces codes sont pris respectivement égaux à: n =24,k =20;n2=24,k2=18. De plus, l'on choisit " I'algorithme de base >> pour les deux algorithmes A et A2. Ainsi, les pouvoirs de résolution respectifs sont: A = n -k -2g = 2, et /2 = n2 -k2 -2g = 4 Enfin, I'on prend comme limites de fiabilité: d*' = A', et d*2 = A2, de sorte que A, peut, de manière fiable, corriger 1 erreur ou déterminer la valeur de 2 positions effacées, et que A2 peut, de manière fiable, corriger 2 erreurs, ou corriger 1 erreur et déterminer la valeur de 2 positions effacées, ou encore déterminer la valeur de 4 positions effacées. Sur ces figures 4a à 6b, on a représenté par des " x " les positions erronées du tableau de symboles, c'est à dire les positions contenant chacune un symbole différent du symbole émis correspondant. La figure 4a représente le mot reçu lui-même, tel qu'il est issu du démodulateur 106. On voit qu'il souffre d'un certain nombre d'erreurs de transmission, qui affectent les lignes 3, 6, 9, 10, 14 et 16. La figure 4b montre l'état du tableau de symboles après une première application de l'algorithme A. Les erreurs simples des lignes 10 et 16 ont été 1 1 corrigées. Les lignes 6 et 9, qui contenaient beaucoup d'erreurs, n'ont pu être corrigées, et les symboles qu'elles contenaient ont été effacés, ce que l'on représente par une zone grisée sur cette figure et les figures suivantes. La ligne 3 contenait également un grand nombre d'erreurs de transmission (quatre); malgré cela, I'algorithme A a été capable de proposer un mot de code " corrigé "; il lui a suffi pour cola de changer, dans la ligne 3, la valeur d'un seul symbole, à savoir celui situé en colonne 10, et par conséquent la ligne 3 n'a pas été effacée. Or ce symbole, ainsi que ceux situés en colonne 5, 6, et 12 sont en fait erronés. Enfin, la ligne 14 contenait elle aussi un grand nombre d'erreurs de transmission (cinq); malgré cela, I'algorithme A a été capable de proposer un mot de code " corrigé "; il lui a sufffi pour cela de changer, dans la ligne 14, la valeur d'un seul symbole, à savoir celui situé en colonne 15 (qui était en fait correct dans le mot reçu!), et par conséquent la ligne 14 n'a pas été effacée. Ce symbole, ainsi que ceux situés en colonne 6, 7, 8, 9 et 10 sont ainsi, à ce stade, erronés. La figure 5a reprend la figure 4b. La figure 5b montre l'état du tableau de symboles après une première application de l'algorithme A2 (ce qui complète la première itération du procédé). On voit que toutes les colonnes ont été corrigées, à l'exception des colonnes 6 et 10, qui ont été effacées car l'algorithme A2 a été incapable de les corriger. La figure 6a reprend la figure 5b. La figure 6b montre qu'après une deuxième application de l'algorithme A,, toutes les erreurs initialement contenues dans le mot reçu ont été corrigées. Le mot de code associé représenté sur la figure 6b est donc identique au mot émis correspondant, et il ne reste plus à I'unité 108 qu'à supprimer les symboles de redondance pour que l'unité 109 puisse récupérer les symboles d'information qui lui étaient destinés. Le procédé de correction d'erreurs selon l'invention a été décrit ci dessus de manière générale en s'appuyant sur les figures 2 à 6b. Mais il importe de noter ici que l'application de ce procédé se révélera être particulièrement efficace si l'on choisit, pour A' et A2, des algorithmes " sub maximaux ": en effet, comme expliqué en introduction, ces algorithmes sont généralement simples à mettre en _uvre, et d'exécution rapide. Il est vrai que si le mot reçu souffre d'un grand nombre d'erreurs de transmission, le fait que lesdits algorithmes ont un pouvoir de résolution relativement faible pourra causer, lors des premières étapes de traitement, un nombre important d'effacements, mais le procédé selon l'invention garantit que les symboles non effacés du mot traité seront presque tous corrects après ces étapes initiales; à partir de là, le traitement de ce mot s'achèvera donc de manière à la fois fiable et rapide (sauf évidemment si le nombre d'erreurs de transmission est si grand que toute tentative raisonnable de correction du mot reçu est impossible, mais dans ce cas l'utilisation d'algorithmes maximaux aboutirait soit, elle aussi, à un échec de correction, soit, ce qui est sans doute encore pire, à un mot de code associé erroné). En option, on pourra d'ailleurs rendre encore plus rapides les étapes finales du procédé de correction selon l'invention, en augmentant quelque peu en fin de traitement la valeur de la limite de fiabilité d*i et/ou de la limite de fiabilité d*2. Le schéma synoptique de la figure 7 représente un appareil de réception de signaux numériques 70 incorporant le décodeur 1O, et destiné à une application dans laquelle le code de canal utilisé est un code produit dont les composants sont par exemple tous deux des codes de géométrie algébrique. 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'entrce/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 7 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éés, 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 ies registres suivants: des registres " mots_reçus ", dans lesquels sont conservés ies mots reçus, - un registre " symboles_estimés ", dans lequel sont conservés les symboles du tableau issu d'un mot reçu en cours de correction, - un registre " mots_associés ", dans lequel sont conservés les tableaux de symboles des " mots de code associés ", - un registre " symboles_information ", dans lequel sont conservés les symboles résultant de la suppression de la redondance, et - un registre " nb_itérations ", dans lequel est conservoe la valeur du nombre d'itérations déjà effectuées par le décodeur en cours de correction d'un mot reçu. 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 a programme ", - la longueur des mots du premier code composant dans un registre "n ", - la longueur des mots du second code composant dans un registre " n2 ", - le nombre de symboles d'information dans les mots du premier code composant, dans un registre " k ", - le nombre de symboles d'information dans les mots du second code composant, dans un registre " k2 ", - le genre de la courbe algébrique choisie pour le premier code, dans un registre " g' ", - le genre de la courbe algébrique choisie pour le second code, dans un registre " g2 ", I'algorithme de correction avec effacements choisi pour le premier code composant, dans un registre " A' ", - I'algorithme de correction avec effacements choisi pour le second code composant, dans un registre " A2 ", - la limite de fiabilité pour le premier algorithme, dans un registre "d*", - la limite de fiabilité pour le second algorithme, dans un registre "d*2", et - le nom bre maximal d 'itérations Imax, d ans u n reg istre " nb_iteration_max ". On a décrit ci-dessus à titre d'exemple une application de l'invention au stockage de masse des données, mais il est ciair que les procédés selon l'invention peuvent tout aussi bien étre mis en _uvre au sein d'un réseau de télécommunications, auquel cas l'unité 105 pourrait par exemple être un récepteur adapté à mettre en ceuvre un protocole de transmission de données par paquets sur un canal hertzien. REVENDICATIONS 1. Procédé de décodage d'un code produit, dans lequel les symboles de chaque mot de code peuvent être placés dans un tableau comportant n2 lignes et n colonnes, de telle manière que les symboles constituant chaque ligne forment un mot légal de longueur n, selon un premier code composant pouvant étre décodé au moyen d'un algorithme de correction avec effacements A', et les symboles constituant chaque colonne forment un mot logal de longueur n2 selon un second code composant pouvant être décodé au moyen d'un algorithme de correction avec effacements A2, ledit procédé étant caractérisé en ce qu'il comprend une succession d'étapes principales que l'on met en _uvre jusqu'à ce que la correction du mot reçu soit compiète, chacune de ces étapes consistant à traiter soit une ligne soit une colonne dudit tableau dans un ordre prédéterminé, et en ce que, pour traiter une ligne i ( 1 c i d*, on efface tous les symboles de cette ligne, et en ce que, pour traiter une colonne j (1 - si (2t2J + T2i) > d*2, on efface tous les symboles de cette colonne. 2. Procédé de décodage selon la revendication 1, caractérisé en ce que ledit premier code eVou ledit second code est un code de géométrie algébrique. 3. Procédé de décodage selon la revendication 1, caractérisé en ce que ledit algorithme A' eVou ledit algorithme A2 est un algorithme " sub- maximal ". 4. Procédé de décodage selon la revendication 2 et la revendication 3, caractérisé en ce que l'algorithme de décodoge A eVou A2 est l'algorithme " de base ". 5. Procédé de décodage selon l'une quelconque des revendications 1 à 4, caractérisé en ce que l'on fait varier la valeur de d* et/ou de d*2 au cours du décodage d'un mot reçu. 6. Dispositif de correction d'erreurs (107), caractérisé en ce qu'il comporte des moyens pour mettre en _uvre l'un quelconque des procédés de décodage selon les revendications 1 à 5. 7. Décodeur (1 0), caractérisé en ce qu'il comporte: - au moins un dispositif de correction d'erreurs selon la revendication 6, et - au moins une unité de suppression de la redondance (108). 8. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comporte un décodeur selon la revendication 7, et en ce qu'il comporte des moyens (706) pour recevoir lesdits signaux numériques codés. 9. Moyen de stockage de données inamovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 5. 10. Moyen de stockage de données partiellement ou totalement amovible, caractérisé en ce qu'il comporte des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon rune quelconque des revendications 1 à 5. 11. Programme d'ordinateur, caractérisé en ce qu'il contient des instructions telles que, lorsque ledit programme commando un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en _uvre un procédé selon l'une