Brevet FR2847398A1 — publié le 20040521

La présente invention concerne les systèmes de communication dans lesquels, afin d'améliorer la fidélité de la transmission, les données à transmettre sont soumises à un codage de canal. Elle concerne plus particulièrement, d'une part, des procédés de codage, et d'autre part des procédés de décodage ainsi que les dispositifs et appareils destinés à mettre en oeuvre ces procédés de décodage. 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 q; on forme à partir de ces k symboles d'information un nombre n de symboles prélevés dans le même alphabet, de manière à former des mots de code y (vi,v2,...,vn); l'ensemble des règles de calcul de ces n symboles en fonction des k symboles d'information définit un " code ", ou " procédé de codage ", de " dimension " k et de " longueur " n, ainsi caractérisé par un certain ensemble de mots de code constituant une sorte de dictionnaire. Certains codes peuvent, de façon commode, être définis au moyen d'une matrice H, de dimension (n-k)xn, dite " matrice de parité ": un mot v de longueur n donné est un mot de code si, et seulement si, il vérifie la relation: H vT = O (o l'exposant T indique la transposition). Ces codes, que l'on appelle " codes linéaires ", seront les seuls codes considérés plus bas. Au niveau du récepteur, le procédé de décodage associé exploite alors judicieusement cette redondance pour détecter d'éventuelles erreurs de transmission et si possible les corriger. Il y a erreur de transmission si la différence e entre un mot reçu r, et le mot de code v correspondant envoyé par l'émetteur, est non-nulle. Plus précisément, le décodage se fait en deux étapes principales. La première étape consiste à associer au mot reçu un " mot de code associé ". Pour ce faire, le décodeur calcule d'abord le vecteur de " syndromes d'erreurs " s = H rT= H.eT. Si les syndromes sont tous nuls, on supposera qu'il n'y a pas eu d'erreur de transmission, et le " mot de code associé " sera alors simplement pris égal au mot reçu. Si ce n'est pas le cas, on en déduit que certains symboles dans le mot reçu sont erronés, et l'on met alors en oeuvre un algorithme de correction destiné à estimer la valeur de l'erreur e; l'algorithme va ainsi fournir une valeur estimée ê de manière à ce que (r - ê) soit un mot de code, qui constituera alors le " mot de code associé ". 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 symboles d'information initiaux. L'invention concerne plus particulièrement la première de ces deux étapes, et les conditions de mise en oeuvre de l'algorithme de correction. Un algorithme de correction a pour tâche d'associer au mot reçu le mot de code situé à la distance de Hamming la plus courte de ce mot reçu, la " distance de Hamming " étant, par définition, le nombre d'emplacements o deux mots de même longueur possèdent un symbole différent. On appelle " distance minimale " d d'un code la plus petite distance de Hamming entre deux mots différents de ce code. C'est un paramètre important du code. Plus précisément, il est en principe possible de trouver la position des erreurs éventuelles dans un mot reçu, et de fournir le symbole de remplacement correct (c'est-à-dire, identique à celui envoyé par l'émetteur) pour chacune de ces positions, chaque fois que le nombre de positions erronées est au plus égal à INT[(d-1)/2] (o " INT " désigne la partie entière) pour un code de distance minimale d (pour certaines configurations d'erreurs, on peut même parfois faire mieux). Dans tous les cas toutefois, il ne s'agit que d'une possibilité de principe, car il est souvent difficile de mettre au point un algorithme de décodage atteignant cette performance. On notera également que, lorsque l'algorithme choisi parvient à proposer une correction pour le mot reçu, cette correction est d'autant plus fiable (du moins, pour la plupart des canaux de transmission) qu'elle concerne un plus petit nombre de positions. Parmi les codes connus, on peut citer les " codes de ReedSolomon ", qui sont réputés pour leur efficacité. Ces codes sont définis sur un alphabet à q éléments structuré en corps de Galois Fq. Leur distance minimale d est égale à (n-k+1). Pour leur décodage, on utilise habituellement un algorithme dit de " Berlekamp-Massey " pour la détection des positions erronées dans un mot reçu, et un algorithme dit de " Forney " pour la correction des symboles erronés correspondants. Pour plus de détails à cet égard, on pourra consulter l'ouvrage de R.E. Blahut intitulé " Theory and practice of error-control codes ", Addison-Wesley, Reading, Mass.,1983). De plus, l'algorithme de Berlekamp-Massey est capable de tirer parti des " effacements ", c'est-à-dire des positions dans le mot reçu pour lesquelles la valeur du symbole reçu est incertaine. En effet, de manière générale, quand un algorithme doit corriger un mot, le fait de connaître à l'avance les positions contenant des symboles douteux facilite considérablement la tâche de l'algorithme; plus précisément, on sait qu'un algorithme apte à prendre en compte cette information possède, si on lui soumet des mots ne comportant, outre les symboles corrects, que des effacements et aucune erreur non localisée, une limite de correction fiable deux fois supérieure à celle qu'il possède si on lui soumet des mots ne comportant, outre les symboles corrects, que des erreurs de position inconnue. L'algorithme de Berlekamp-Massey avec effacements est assez simple à mettre en oeuvre. Mais les codes de Reed-Solomon présentent la particularité que la longueur n des mots de code est nécessairement inférieure ou égale à la taille q de l'alphabet des symboles. De ce fait, 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 coteuses 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. Or dans les supports d'information modernes, par exemple dans les enregistrements de CD (" compacts discs ") et de 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. C'est pourquoi l'on a cherché à construire des codes offrant de manière naturelle une plus grande longueur de mots que les codes de Reed-Solomon. On a notamment proposé récemment des codes dits " codes de géométrie algébrique " ou " codes de Goppa géométriques " (voir par exemple " Algebraic Geometric Codes ", par J.H. van Lint, dans " Coding Theory and Design Theory", 1ère partie, IMA Volumes Math. Appi., volume 21, SpringerVerlag, Berlin, 1990). Ces codes, eux aussi définis sur un corps de Galois Fq, sont construits à partir d'une équation algébrique à deux inconnues X et Y. Les solutions de cette équation algébrique peuvent être considérées comme les coordonnées (x1,y,) de points d'une " courbe algébrique ". Pour définir une matrice de parité, on constitue d'abord un ensemble ordonné, appelé " ensemble de localisation " (" locating set " en anglais), à partir de n tels points dont toutes les coordonnées sont finies; puis chaque ligne de la matrice de parité est obtenue en évaluant une fonction bien choisie de X et Y en chaque élément de cet ensemble de localisation. On obtient ainsi un code de géométrie algébrique de longueur n. 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. Dans certains cas, les codes de géométrie algébrique permettent d'atteindre une longueur égale à (q + 2g+/8), qui peut être très élevée; par exemple, avec une taille d'alphabet égale à 256 et un genre égal à 120, on obtient des mots de code de longueur 4096. On notera par ailleurs que les codes de géométrie algébrique possèdent une distance minimale d supérieure ou égale à (n-k+l-g). Les codes de géométrie algébrique sont avantageux quant à leur distance minimale et, comme on l'a dit, à 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 coteux 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 H0holdt et Ruud Pellikaan intitulé " On the Decoding of Algebraic-Geometric Codes ", IEEE Trans. Inform. Theory, vol. 41 n0 6, pages 1589 à 1614, novembre 1995). Une catégorie connue de codes de géométrie algébrique est constituée par les codes dits " hyperelliptiques ". Ces codes sont définis à partir d'une équation algébrique dite " hyperelliptique ", qui est, notamment, quadratique par rapport à l'une des deux inconnues (disons, Y). Pour obtenir des codes de grande longueur, il est, en particulier, commode de choisir une équation hyperelliptique, telle que, quelle que soit la valeur x de X, cette équation possède exactement deux solutions (x,y1) et (x,y2) o, en outre, les valeurs Yi et y2 de Y sont différentes l'une de l'autre: de tels codes hyperelliptiques, définis sur un corps de Galois Fq o l'équation algébrique possède 2q solutions, sont dits " maximaux ". Comme tous les codes, les codes hyperelliptiques peuvent être " modifiés " et/ou " raccourcis ". Un code CM est une version " modifiée " du code C s'il existe une matrice diagonale carrée non-singulière M telle que chaque mot vM de CM est égal à vM avec v dans C. Un code CR est une version " raccourcie " du code C s'il ne comprend que les mots de C dont, pour un nombre p 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-p). En particulier, un code hyperelliptique de longueur 2q peut être raccourci en supprimant de l'ensemble de localisation, le cas échéant, l'un des points, ou les deux points, dont la coordonnée x est nulle. De manière générale, les codes hyperelliptiques permettent de corriger un nombre important d'erreurs de transmission, mais au prix d'algorithmes de décodage assez complexes. Pour pouvoir disposer d'un algorithme de décodage relativement simple, S. Miura, dans l'article (en japonais) intitulé " Codes Hyperelliptiques Il " (12ème Symposium sur la Théorie de l'information et ses Applications SITA '89, Inuyama, Japon, décembre 1989) a proposé un procédé de décodage qui peut s'appliquer aux codes hyperelliptiques, mais qui s'applique de façon plus " naturelle " à une famille de codes, également définis sur un corps de Galois Fq, que l'on appellera ci-dessous " codes de Miura ". Ces codes sont de longueur n paire, et sont caractérisés par une matrice de parité choisie astucieusement de manière à permettre, pour décoder un mot reçu, d'appliquer à deux mots de longueur nl2 déduits d'une certaine façon dudit mot reçu un algorithme de décodage quelconque pour code de Reed-Solomon de longueur f12. Une première famille de codes de Miura, de longueur n = 2q, est définie par la matrice de parité suivante (par la suite, on désignera par y un élément primitif du corps de Galois Fq): EH Y, H Y2: o - 2t - H2t et H sont des réalisations respectives pour u = 2t et u = t de la matrice HIu à u lignes et q colonnes définie par Hu = (i-1)U1) (1 i à la matrice unité, et différentes l'une de l'autre. Ainsi qu'il est expliqué dans l'ouvrage de R.E. Blahut cité ci-dessus, il est plus simple de décoder un code de Reed-Solomon de longueur (q-1) défini sur Fq qu'un code de longueur q, toujours défini sur Fq. Comme le décodage des codes de Miura utilise des algorithmes de décodage pour codes de ReedSolomon, il est utile, pour faciliter le décodage, de disposer de codes de Miura raccourcis à la longueur n = 2(q-1). On définit donc une deuxième famille de codes de Miura, de longueur n = 2(q-1), par la matrice de parité suivante: X H2t H2t Ht Y, Ht Y2 o - H2t et Ht sont des réalisations respectives pour u = 2t et u = t de la matrice Hu à u lignes et (q-1) colonnes définie par Hu,; = y( -l)&-l) (1 s i u, i j q-1), et - Y1 et Y2 sont deux matrices carrées de dimension (q-1), proportionnelles à la matrice unité, et différentes l'une de l'autre. Mais les codes de Miura ont pour inconvénient que leur distance minimale, qui est égale à (2t+1), est (pourvu que t soit supérieur à 8) inférieure à la distance minimale de codes hyperelliptiques maximaux de même redondance. Un premier but de la présente invention est de proposer une famille de codes de canal comportant plus de paramètres ajustables que la famille des codes de Miura. En même temps, on souhaite disposer de codes tout aussi faciles à décoder, et ayant (au moins pour certains choix desdits paramètres) une distance minimale plus grande que les codes de Miura de même longueur et de même dimension. Dans ce but, l'invention concerne, selon un premier aspect, une première famille de codes de canal (représentant, comme expliqué ci-dessus, autant de procédés de codage de symboles d'information). Un tel code de canal est " non hyperelliptique ", est défini sur un corps de Galois Fq d'élément primitif y, et possède une longueur n = 2q; de plus, sa matrice de parité est de la forme: H=C H _ M, (1) o - H et Ho sont des réalisations respectives pour u = (x et u = de la matrice LH à u lignes et q colonnes définie par _UH = yjQ1> (1 i s u, 1 s j élément sur la diagonale n'est nul. Par " codes non hyperelliptiques ", on entend, dans le cadre de la présente demande, des codes qui ne sont ni des codes hyperelliptiques au sens strict, ni des codes hyperelliptiques modifiés. En effet, certains de ces codes présentent une matrice de parité qui peut être mise sous la forme (1), en prenant simultanément les conditions particulières suivantes: - (a - P) est égal à g ou à (g+1), o g est le genre de l'équation hyperelliptique, et - les couples (X,Y) ayant pour valeur (0, (Yî)qq), (0, (Y2)qq), (y7-1,(Yi)11) et ( Ainsi, les matrices de parité des codes selon l'invention ne peuvent présenter simultanément ces conditions particulières. On peut avantageusement associer à chaque code appartenant à la première famille selon l'invention une paire de codes de Reed-Solomon, que l'on pourra décoder, de manière classique, au moyen d'algorithmes relativement simples (comme c'est le cas pour les codes de Miura). Un avantage supplémentaire est que les codes selon l'invention présentent, à longueur et dimension respectivement égales, une distance minimale supérieure aux codes de Miura, pourvu que l'on choisisse de manière appropriée les matrices Y, et Y2. Notamment, on pourra avantageusement choisir des matrices Y, et Y2 telles que les couples (X,Y) ayant pour valeur (0, (Yi)qq), (0, (Y2)qq), (y-h, (Y1),1) et (yi (HP Y, HP Y20 2 o - HW et Ho sont des réalisations respectives pour u = oa et u = f3 de la matrice Hu à u lignes et (q-1) colonnes définie par HUu = y ul) (1 élément sur la diagonale n'est nul. Par " codes non hyperelliptiques raccourcis", on entend, dans le cadre de la présente demande, des codes qui ne sont ni des codes hyperelliptiques au sens strict raccourcis de deux unités, ni des codes hyperelliptiques modifiés raccourcis de deux unités. En effet, certains de ces codes présentent une matrice de parité qui peut être mise sous la forme (2), en prenant simultanément les conditions particulières suivantes: - (oc - P) est égal à g ou à (g+1), o g est le genre de l'équation hyperelliptique, et - les couples (X,Y) ayant pour valeur ('y'1,(Yi)îî) et (y'-1,(Y2)ii), o 1 i I q-1, sont solutions de l'équation hyperelliptique. Ainsi, les matrices de parité des codes selon l'invention ne peuvent présenter simultanément ces conditions particulières. On peut avantageusement associer à chaque code appartenant à la seconde famille selon l'invention une paire de codes de Reed-Solomon, que l'on pourra décoder, de manière classique, au moyen d'algorithmes relativement simples (comme c'est le cas pour les codes de Miura). Un avantage supplémentaire est que les codes selon l'invention présentent, à longueur et dimension respectivement égales, une distance minimale supérieure aux codes de Miura, pourvu que l'on choisisse de manière appropriée les matrices Y1 et Y2. Notamment, on pourra avantageusement choisir des matrices Y1 et Y2 telles que les couples (X,Y) ayant pour valeur (yf1,(Y1)jj) et (y-1,(Y2)11), o 1 offrent une distance minimale relativement grande. Selon d'autres caractéristiques particulières, on prendra ac = 2t et = t, o t est un entier strictement positif prédéterminé. Ce choix conduit à un algorithme de décodage particulièrement simple et efficace, même lorsque l'on prend en compte les effacements. Cette famille particulière de codes selon l'invention sera appelée codes " sesqui-RS doubles " (en anglais, " two-fold sesqui-RS " ou TSR). Les caractéristiques particulières que l'on vient de mentionner peuvent avantageusement être combinées. Dans ce cas, on peut montrer que la distance minimale du code selon l'invention est égale à (2t + 2); elle est donc supérieure d'une unité à la distance minimale du code de Miura correspondant. Pour certaines application particulières, on pourra utiliser avantageusement un code obtenu en raccourcissant un code selon l'invention, c'est-à-dire en utilisant une matrice de parité obtenue en supprimant p colonnes prédéterminées (o 1 colonnes décrites succinctement ci-dessus. L'invention concerne aussi, selon le même premier aspect, un code produit dans lequel le code composant de ligne et/ou le code composant de colonne est l'un quelconque des codes selon l'invention décrits ci-dessus. En effet, en raison des avantages mentionnés ci-dessus, les codes selon l'invention sont particulièrement bien adaptés en tant que codes composants de codes produits. On rappelle que, par définition d'un " code produit ", les symboles de chaque mot de code peuvent être placés dans un tableau comportant n1 lignes et n2 colonnes, de telle manière que les symboles constituant chaque ligne forment un mot appartenant à un premier code " composant " (n2,k2), et les symboles constituant chaque colonne forment un il mot appartenant à un second code " composant " (ni,kO). On peut aisément se rendre compte que les codes produits sont très 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 déduit 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, et/ou certaines de ses colonnes sont initialement 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. Concernant les codes produits, il est connu, par exemple d'après les brevets US-6,047,395 et US-6,138,263 (dans lesquels, par ailleurs, les codes composants sont tous des codes de Reed-Solomon), de prévoir des algorithmes de décodage avec effacements pour les codes composants. Cela signifie que, lorsque l'on cherche à corriger les colonnes (resp. lignes), on signale à l'algorithme de colonnes (resp. lignes) les positions dont les symboles ont été " effacés " lors d'une tentative de correction de lignes (resp. colonnes) précédente qui n'a pas abouti à une correction fiable. Ces procédés de décodage de codes produits avec effacement des lignes et colonnes provisoirement 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. Un deuxième but de la présente invention est donc de proposer un algorithme de décodage avec effacements, applicable notamment aux codes selon l'invention. Dans ce but, l'invention concerne, selon le même premier aspect, divers procédés de décodage pour un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: H HC H HP YI HP Y2 ou - Ha et HW sont des réalisations respectives pour u = a et u = D de la matrice Hu à u lignes et (q-1) colonnes définie par HuU = yi(p-l) (1 élément sur la diagonale n'est nul. Pour des raisons de simplicité de présentation uniquement, les caractéristiques de ces procédés de décodage seront présentées ci-dessous en supposant que la matrice M est égale à la matrice unité. En effet, la généralisation des procédés décrits succinctement ci-dessous au cas o la matrice M est différente de l'unité est triviale: - on associe à tout mot reçu r le mot rM r M, - on applique audit mot rM un procédé de décodage tel que décrit succinctement ci-dessous, associé à la matrice de parité H= Ha Ha) et - si cette application aboutit à une estimation vMon prend v =M M1 comme estimation du mot transmis correspondant audit mot reçu r L'invention concerne donc, premièrement, un procédé de décodage comprenant les étapes suivantes: a) on construit à partir du mot reçu r =[r1(j..,r1(q-i),r2(),.,r2(q-i)] dans lequel certaines composantes ri(j) et/ou r2(j) (i = 1,...,q-1) portent, le cas échéant, un effacement, un mot i de longueur (q-1) dont chaque composante *j _rî(j)+r2(j) (j = 1,..., q-1) porte un effacement si au moins l'une des composantes r1(j) et r2(j) porte un effacement, b) on met en oeuvre un algorithme de correction dudit mot i pour obtenir un mot v faisant partie du code défini par la matrice de parité If, le procédé comprenant en outre, à chaque fois que l'algorithme de correction de l'étape b) réussit, les étapes suivantes: c) on construit un mot r'=[r'î (1),.",r'1 (q -1),r'2 (l}..,r'2 (q -1)] tel que, pour toutj (i = 1,...,q-1): - si rî(j) porte un effacement sans que r2(j) en porte un, alors les composantes r', (i) _j - r2 (i) et r'2 (j) r2 (i) ne portent pas d'effacement, cependant que - si r2(j) porte un effacement sans que rî(j) en porte un, alors les composantes r'1 (j) _ r1 (j) et r'2 (ô) -j - r1 (i) ne portent pas d'effacement, et sinon - r'l () _ rl () et r'2 () -r2 (i) sans modification des effacements éventuels, d) on construit un mot _ de longueur (q-1) dont les composantes sont rj =-(Y, )j r', (j)+(Y2)1jr'2 (j) (j = 1,...,q-1), o -' porte un effacement si r'1 (j) et r'2 (j) en portent un, et e) on met en oeuvre un algorithme de correction dudit mot _ pour obtenir un mot _ faisant partie du code défini par la matrice de parité HO. Deuxièmement, l'invention concerne un procédé de décodage comprenant les étapes suivantes: a) on construit à partir du mot reçu r =[-(,[r(q -), r2(1),,r2 (q -)] dans lequel certaines composantes rî(j) et/ou r2(j) (j = 1,...,q-1) portent, le cas échéant, un effacement, un mot i de longueur (q-1) dont chaque composante ij _ri(j)+r2(j) (1 = l,...,q-1) porte un effacement si au moins l'une des composantes ri(j) et r2(j) porte un effacement, b) on met en oeuvre un algorithme de correction dudit mot i pour obtenir un mot v faisant partie du code défini par la matrice de parité Hf, le procédé comprenant en outre, à chaque fois que l'algorithme de correction de l'étape b) réussit, les étapes suivantes: g) on construit un mot i de longueur (q-1) dont les composantes sont Fj =(YI) jjrI(j)+(Y2)jjr2(j) ( = 1,...,q-1), o Fj porte un effacement sauf si ni r1(j) ni r2(j) n'en portent un et si simultanément j= i, et h) on met en oeuvre un algorithme de correction dudit mot 1 pour obtenir un mot v faisant partie du code défini par la matrice de parité H5. Ces procédés de décodage s'appliquent donc aussi bien à un code selon l'invention tel que décrit succinctement ci-dessus, qu'à un code hyperelliptique maximal ou qu'à un code de Miura (on notera que l'algorithme de décodage proposé par Miura n'est pas apte à prendre en compte les effacements). Les étapes de correction d'erreurs b), e) et h) mentionnées cidessus peuvent être mises en oeuvre au moyen d'algorithmesavec effacements classiques adaptés aux codes de Reed-Solomon, tels que les algorithmes de Berlekamp-Massey et de Forney. On notera que la mise en oeuvre du décodage selon l'invention pourra le cas échéant comprendre toutes les étapes a), b), c), d), e), g) et h) cidessus; on pourra par exemple prévoir de mettre d'abord en oeuvre les étapes a), b), c), d) et e), et de mettre ensuite en oeuvre les étapes g) et h) si l'algorithme de correction de l'étape e) s'avère être incapable de fournir une correction v' du mot r considéré. Un avantage important de la mise en ceuvre des effacements selon les règles que l'on vient de décrire est le suivant: on peut montrer que, pourvu que le nombre d'erreurs de position inconnue et le nombre d'effacements dans le mot reçu r soient suffisamment faibles pour que l'algorithme de correction de l'étape b) puisse réussir, alors au moins l'un des algorithmes de correction des étapes e) et h) réussit; on est donc certain dans ce cas de pouvoir fournir une estimation v fiable du mot transmis correspondant à ce mot reçu. Plus précisément, pour tous les codes visés par le procédé de décodage selon l'invention et vérifiant (x 2p, on peut montrer que, si le mot reçu porte T effacements, on pourra effectivement corriger jusqu'à (a- T) /2 erreurs de position inconnue. Par exemple, dans le cas des codes " TSR ", on pourra corriger jusqu'à t erreurs dans un mot reçu ne comportant aucun effacement. De manière générale, en cas de succès aux étapes b) et e), on pourra mettre en oeuvre l'étape supplémentaire suivante: f) on calcule un mot w= [w1(i),,wl(q-Iw2(i),. w2(q-i)]en résolvant le système d'équations: (Yl)jj (Y2)jj1y2)) X pour j= 1.q-1. De même, en cas de succès aux étapes b) et h), on pourra mettre en ceuvre l'étape supplémentaire suivante: i) on calcule un mot w'k[wl (l),,w'] (q')-w'2 (),,w'2(q-1)] en résolvant le système d'équations: 0(YI)JJ (Y2)jjJ(w'2(j)) Cvj)ç, pour j= 1,..,q-1. Si l'on ne dispose que dudit mot w, on prendra naturellement w comme estimation v du mot transmis correspondant audit mot reçu r. De même, si l'on ne dispose que dudit mot w', on prendra naturellement w, comme estimation v du mot transmis correspondant audit mot reçu r. Si, enfin, l'on dispose à la fois de w et de w', on pourra choisir le plus adéquat des deux à servir d'estimation v du mot transmis correspondant audit mot reçu r, selon un critère approprié que l'on choisira (un exemple d'un tel critère sera donné plus bas). Comme expliqué ci-dessus, une application préférée des procédés de décodage selon l'invention concerne les codes produits dans lesquels le code composant de ligne et/ou le code composant de colonne est un code de canal visé par ces procédés. De manière encore plus préférentielle, un tel procédé de décodage de code produit pourra attribuer provisoirement un effacement à tous les éléments d'une telle ligne ou colonne si la tentative de correction de cette ligne ou colonne échoue, ou si la correction envisagée nécessiterait de changer les symboles en un nombre de positions supérieur à un nombre prédéterminé; en effet une telle disposition diminue les risques de " fausse correction " de cette ligne ou colonne, ce qui aurait des conséquences fâcheuses pour la suite de la correction du mot reçu. Les procédés de décodage selon l'invention décrits succinctement ci10 dessus ne concernent que des codes raccourcis. Mais on peut très facilement modifier ces procédés de décodage pour les adapter au cas des codes " non raccourcis " associés aux codes considérés ci-dessus, c'est-àdire des codes dans lesquels on remplace, respectivement, les matrices Ha et Hi par les matrices H et H définies ci-dessus, et dans lesquels les matrices Y1 et Y2 sont de dimension q et la matrice M est de dimension 2q: en effet, il suffit de remplacer (q-1) par q dans toutes les étapes mentionnées ci-dessus. Dans ces procédés toutefois, on fera évidemment appel à des algorithmes de correction d'erreurs pour codes de ReedSolomon de longueur q au lieu de (q-1), ce qui, comme expliqué ci-dessus, implique un décodage plus long et plus complexe. Selon un deuxième aspect, l'invention concerne divers dispositifs de correction d'erreurs pour le décodage d'un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: (HP Y, HP Y2 M o - Ha et Hi sont des réalisations respectives pour u = aL et u = D de la matrice HU à u lignes et (q-1) colonnes définie par Huj = cas o la matrice M est différente de l'unité étant triviale, comme expliqué ci10 dessus au sujet des procédés selon l'invention. L'invention concerne donc, premièrement, un dispositif de correction d'erreurs comprenant des moyens pour: a) construire à partir du mot reçu r[r().,ri(q-1),r2(1),,r2(q-1)], dans lequel certaines composantes ri(j) et/ou r2(j) (Y = 1,...,q-1) portent, le cas échéant, un effacement, un mot i de longueur (q-1) dont chaque composante j =-rl(j)+r2(j) (j = 1,..., q-1) porte un effacement si au moins l'une des composantes r (J) et r2(j) porte un effacement, b) mettre en oeuvre un algorithme de correction dudit mot i pour obtenir un mot ' faisant partie du code défini par la matrice de parité Ha, c) construire, à chaque fois que l'algorithme de correction de l'étape b) réussit, un mot ('-[r'(1), -.,r'1(q-1),r'2 (1),.. .,r'2 (q-1)] tel que, pour tout j (j = 1,...,q-1): - si r1(j) porte un effacement sans que r2(j) en porte un, alors les composantes r'1 () _ - r2 (i) et r'2 (j) = r2 (i) ne portent pas d'effacement, cependant que - si r2(j) porte un effacement sans que r1(j) en porte un, alors les composantes r'1 (j) _ r1 (j) et r'2 () _ - r1 (i) ne portent pas d'effacement, et sinon - r'l () _rl (j) et r'2 (j) r2 (j) sans modification des effacements éventuels, d) construire un mot r de longueur (q-1) dont les composantes sont îj _(Yi)jjr'î(j)+(Y2)jjr'2(j) ( = 1,...,q-1), o - porte un effacement si r'1 (j) et r'2 (j) en portent un, et e) mettre en oeuvre un algorithme de correction dudit mot _ pour obtenir un mot _r faisant partie du code défini par la matrice de parité HW. De préférence, ce dispositif comprendra en outre des moyens pour: f) calculer un mot w =[wj()... wj(q-ljw2(lî),..w2(q-i)]en résolvant le système d'équations: ( 1(IJ)1y00w2IJ) 3 (v f, pour j=1,...,q-1 Deuxièmement, l'invention concerne un dispositif de correction d'erreurs comprenant des moyens pour: a) construire à partir du mot reçu r 1[ri(j. rî(q-1),r2(î,...,r2(q-i)], dans lequel certaines composantes r1(j) et/ou r2(j) (i= 1,...,q-1) portent, le cas échéant, un effacement, un mot i de longueur (q-1) dont chaque composante ij 3rI(j)+r2(j) ( = 1,...,q-1) porte un effacement si au moins l'une des composantes r1 (j) et r2 (j) porte un effacement, b) mettre en oeuvre un algorithme de correction dudit mot i pour obtenir un mot v faisant partie du code défini par la matrice de parité Ha, g) construire, à chaque fois que l'algorithme de correction de l'étape b) réussit, un mot F de longueur (q-1) dont les composantes sont rj -(Yî)jjrl(j)+(Y2)jjr2(j) (j = 1,...,q-1), o Fjporte un effacement sauf si ni ri(j) ni r2(j) n'en portent un et si simultanément Vj = ii, et h) mettre en oeuvre un algorithme de correction dudit mot P pour obtenir un mot v faisant partie du code défini par la matrice de parité Ho. De préférence, ce dispositif comprendra en outre des moyens pour: i) calculer un mot w =[w'l(1),..,w'l(q - Iw'2 (1),..,w'22(q-i)] en résolvant le système d'équations: 0(jY) j (Y2) jj w'2 (j) = ój, pour j= 1,...,q-1. Selon des caractéristiques préférées, le dispositif de correction d'erreurs comprendra en outre des moyens pour prendre, le cas échéant, soit le mot w, soit le mot w' comme estimation v du mot transmis correspondant audit mot reçu r. Naturellement, une application préférentielle des dispositifs de correction d'erreurs selon l'invention concerne les codes produits dans lesquels le code composant de ligne et/ou le code composant de colonne est un code de canal visé par ces dispositifs. De manière encore plus préférentielle, un tel dispositif de correction d'erreurs de code produit comprendra des moyens pour attribuer provisoirement un effacement à tous les éléments d'une telle ligne ou colonne si la tentative de correction de cette ligne ou colonne échoue, ou si la correction envisagée nécessiterait de changer les symboles en un nombre de positions supérieur à un nombre prédéterminé. Enfin, de manière analogue aux procédés de décodage selon l'invention, il est trivial d'adapter les dispositifs de correction d'erreurs selon l'invention au cas des codes non raccourcis associés aux codes considérés cidessus. Les avantages de ces dispositifs 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 un dispositif de correction d'erreurs tel que décrit succinctement ci-dessus, et une unité de suppression de la redondance, - un appareil de réception de signaux numériques codés comprenant un décodeur tel que décrit succinctement cidessus, ainsi que des moyens pour démoduler lesdits signaux numériques codés, - un système informatique comprenant un décodeur tel que décrit succinctement ci-dessus, et comprenant en outre au moins un disque dur, et au moins un moyen de lecture de ce disque dur, - un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés 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 utilisant un codage de canal selon l'invention, - la figure 2 est un organigramme représentant les étapes principales d'un algorithme de correction d'erreurs selon un mode de réalisation préférentiel de l'invention, et - la figure 3 représente un appareil de réception de signaux numériques incorporant un décodeur selon l'invention. La figure 1 est un schéma synoptique d'un système de transmission d'informations utilisant un codage et décodage de canal selon l'invention. Ce système a pour fonction de transmettre des informations de nature quelconque à partir d'une source 100 vers un destinataire ou utilisateur 109. En premier lieu, la source 100 met ces informations sous la forme de symboles appartenant à un certain alphabet (par exemple des octets de bits), et transmet ces symboles à une unité de stockage 101, qui accumule les symboles de façon à former des ensembles contenant chacun k symboles. Ensuite, chacun de ces ensembles est transmis par l'unité de stockage 101 à un codeur 102 qui y ajoute (n-k) symboles de redondance, de manière à construire un mot du code de longueur n. Les mots de code ainsi formés sont ensuite transmis à un modulateur 103, qui associe à chaque symbole du mot de code un symbole de modulation (par exemple, une amplitude complexe). Ensuite, ces symboles de modulation sont transmis à un émetteur ou à un enregistreur 104, qui insère les symboles dans un canal de transmission. Ce canal peut être constitué par exemple d'une émission filaire ou non-filaire telle qu'un signal radio, ou par un stockage sur un support adapté tel qu'un DVD ou une bande magnétique. Cette transmission parvient à un récepteur ou à un lecteur 105, après avoir été affectée par un " bruit de transmission " dont l'effet est de modifier ou d'effacer, aléatoirement, certains des symboles de modulation. Le récepteur ou lecteur 105 transmet alors ces symboles au démodulateur 106, qui les transforme en symboles de l'alphabet mentionné précédemment, 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 oeuvre un procédé de décodage selon l'invention, de manière à fournir un " mot de code associé ". Puis ce mot de code associé est transmis à une unité de suppression de redondance 108, qui en extrait k symboles d'information en mettant en oeuvre un algorithme de décodage inverse de celui mis en oeuvre par le codeur 102. Enfin, ces symboles d'information sont fournis à leur destinataire 109. On peut considérer que les unités 107 et 108 forment conjointement un " décodeur " 10. La figure 2 est un organigramme représentant les étapes principales d'un algorithme de correction d'erreurs selon un mode de réalisation préférentiel de l'invention. Cet algorithme est destiné à être mis en oeuvre chaque fois que le dispositif de correction d'erreurs 107 saisit un nouveau mot reçu à l'étape 201 de ce procédé. On suppose ici que le mot émis correspondant est un mot appartenant à un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: H=L $1Hc (HP Y, HP Y2 o - Ha et Ho sont des réalisations respectives pour u = ac et u = fB de la matrice Hu à u lignes et (q-1) colonnes définie par HuY =.yi-1 (15 i est différent de l'élément de Y2 à cette position. Ce mot reçu sera noté: Certaines composantes ri(j) et/ou r2(j) (I = 1,..., q-1) de ce mot reçu ont le cas échéant été " effacées " après réception en cas de doute sur leur valeur. A l'étape 202, on construit à partir de ce mot reçu un mot i de longueur (q-1) dont les composantes sont: ij -r1(j)+r2(j), o j= 1,...,q-1. On considère comme étant effacée toute composante ij dans laquelle r1(j) et/ou r2(j) sont effacées. A l'étape 203, on essaye de corriger le mot i pour obtenir un mot ' de longueur (q-1) faisant partie du code défini par la matrice de parité Wf. Pour ce faire, on pourra utiliser n'importe quel algorithme applicable aux codes de Reed-Solomon; par exemple, ledit algorithme pourra utiliser les syndromes d'erreur S(') _( ('),> (i = î,...,c), o â0)est la i-ème ligne de Hf, et la notation (ab) désigne le produit scalaire des vecteurs a et b. A l'étape 204, on détermine si la tentative de correction a abouti, c'està-dire si cet algorithme a été capable de fournir un mot v. En cas d'échec, on en conclut (étape 218) que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger le mot reçu r; la suite des opérations (par exemple, remplacement du mot par un mot prédéterminé tel que le mot nul) dépend des applications envisagées du procédé de décodage. Si en revanche, on constate à l'étape 204 que la tentative de correction a abouti, on construit, à l'étape 205, un mot: r-[r', (1),,r', (q-)lr'2 (1) r 2 (q tel que, pour toutj ( = 1,...,q-1): - si ri(j) est effacée sans que r2(j) le soit, alors les composantes r' ( _ j - r2 (i) et r'2 (j) r2(j) sont considérées comme non effacées, cependant que - si r2(j) est effacé sans que r1(j) le soit, alors les composantes r 1 () - r1 (j) et r'2 (j) -j - ri ( sont considérées comme non effacées, cependant que - si ni ri(j) ni r2(j) ne sont effacées, alors les composantes ré (j) _ r1 (j) et r 2 (j) r2(j) sont considérées comme non effacées, et enfin - si r1(j) et r2(j) sont toutes deux effacées, alors les composantes r' (j) - rI (j) et r 2 (j) r2 () sont considérées comme effacées. A l'étape 206, on construit un mot 1 de longueur (q-1) dont les composantes sont: ri =(Y1)jjr'1(j)+(Y2)jjr'2(j) pour j= 1,...,q-1, o îj est considérée comme effacée si r'1 () et r'2 (i) sont effacées. A l'étape 207, on essaye de corriger le mot _ pour obtenir un mot v de longueur (q-1) faisant partie du code défini par la matrice de parité HW. Pour ce faire, on pourra utiliser n'importe quel algorithme applicable aux codes de Reed-Solomon; par exemple, ledit algorithme pourra utiliser les syndromes d'erreur T(') _ (C(i),) ( =,...,). A l'étape 208, on détermine si la tentative de correction a abouti, c'està-dire si cet algorithme a été capable de fournir un mot _. En cas d'échec, on passe directement à l'étape 212 décrite ci-dessous. Si en revanche, on constate à l'étape 208 que la tentative de correction a abouti, on calcule, à l'étape 209, un mot: W -=[Wl (1}@, Wl (q -l}W2 (1) ,*, W2 (q -1)] en résolvant le système d'équations (( l)jj (F2) jj)W2(j)) (vj j pour j,. ,qA l'étape 210, selon une variante préférentielle, on détermine si le mot w est " acceptable " en tant que mot de code associé à r. On souhaite notamment que le mot de code associé ne soit pas " trop éloigné " du mot de code reçu: en effet, dans ce cas, on pourrait craindre que le mot de code w ne soit en fait pas le mot transmis correspondant à r. Par exemple, on vérifiera si le nombre 1lw-ril, o Il.. .Il est une norme prédéterminée, est inférieur à une valeur prédéterminée. De manière encore plus préférentielle, cette norme pourra être simplement la distance de Hamming entre w et r, en ne prenant en compte que les positions non effacées de r. Si donc il s'avère à l'étape 210 que w est acceptable, on en déduit, à l'étape 21 1, que ce mot constitue l'estimation cherchée v, autrement dit le mot de code associé à r. Si en revanche il s'avère à l'étape 210 que w n'est pas acceptable, on construit, à l'étape 212, un mot P de longueur (q-1) dont les composantes sont j _ (Y,)jj r(j)+(Y2)jjr2(j) pour j=1,...,q-1, o Fi est considérée comme effacée sauf si ni ri(j) ni r2(j) ne sont effacées et si simultanément Vj = rj. A l'étape 213, on essaye de corriger le mot i pour obtenir un mot v de longueur (q-1) faisant partie du code défini par la matrice de parité HO. Pour ce faire, on pourra utiliser n'importe quel algorithme applicable aux codes de Reed-Solomon; par exemple, ledit algorithme pourra utiliser les syndromes d'erreur T(') =(_)(i)) (i= 1,....P). A l'étape 214, on détermine si la tentative de correction a abouti, c'està-dire si cet algorithme a été capable de fournir un mot v. En cas d'échec, on en conclut (étape 218) que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger le mot reçu r (comme ci-dessus en cas d'échec à l'étape 204). Si en revanche, on constate à l'étape 214 que la tentative de correction a abouti, on calcule, à l'étape 215, un mot: W_'=['I (1), W'l (q -), W'2 (l),,W'2 (1-)], en résolvant le système d'équations JYl)j (Y2)jiw'2 (j)), j X pour j= 1,...,q-1 A l'étape 216, selon une variante préférentielle, on détermine si le mot w' est " acceptable " en tant que mot de code associé à r. On se référera pour cette variante aux commentaires ci- dessus relatifs à l'étape 210. S'il s'avère à l'étape 216 que w' n'est pas acceptable, on en conclut (étape 218) que les moyens mis en oeuvre ne permettent pas, en raison d'un nombre trop important d'erreurs de transmission, de corriger le mot reçu r (comme cidessus en cas d'échec à l'étape 204 ou à l'étape 214). S'il s'avère en revanche à l'étape 216 que w' est acceptable, on en déduit enfin, à l'étape 217, que ce mot constitue l'estimation cherchée v, autrement dit le mot de code associé à r. Selon une variante plus coteuse, mais plus fiable, de l'algorithme illustré sur la figure 2, on pourra choisir de mettre en oeuvre toutes les étapes indiquées sauf les étapes 210, 211, 216 et 217, à chaque fois que les trois tentatives de correction aux étapes 203, 207 et 213 aboutissent. On décidera alors, en une étape finale supplémentaire, de prendre pour v soit w, soit w', en fonction d'un certain critère prédéterminé; par exemple, on pourra prendre celui des deux mots qui est le plus " proche " de r, au sens de la norme mentionnée ci-dessus, s'il s'avère que les mots w et w' sont différents l'un de l'autre. On va à présent fournir un exemple " numérique " de code selon l'invention, et de décodage de mots reçus selon l'invention. Prenons q = 16 (ce qui implique que le code est de longueur 30), et soit y une racine du polynôme (z4 + z + 1). Les matrices Hu, Y1 et Y2 sont choisies de la façon suivante: Huî=y iî-) (1 Enfin, l'on prend: a = 8 et C = 4 (il s'agit donc d'un code " TSR ", o t = 4). Supposons par exemple que l'on ait reçu un mot r dont toutes les composantes sont nulles, sauf: ri(1) = y', r(2) = y, rl(3) = y7, r2(1) y2, et r2(2) = y1. En outre, on supposera que les composantes r1(1) et r2(2) portent un effacement. On peut commodément représenter le mot r de la façon suivante: y3 y6 y7 0... 0 y2 y11 0... o E E o la lettre " E " indique un effacement. L'étape a) du procédé selon l'invention donne alors: Y6 y y 7 ... ol LE E j L'application des algorithmes de Berlekamp-Massey et de Forney à i (étape b)), qui utilise le vecteur de syndromes d'erreurs H8 rTdonne: v=(0,....,0). D'autre part, on obtient (étape g)): [9 y9 y9 r'= 'Y t 0O... 0 E E E o il a été tenu compte de: V3 Ér3. L'application des algorithmes de Berlekamp-Massey et de Forney à P (étape h)), qui utilise le vecteur de syndromes d'erreurs H4 T, donne: v' = (0,....,0). On obtient également (étapes c) et d)): Y2 y6 y9 0... -L O]2 mais l'application des algorithmes de Berlekamp-Massey et de Forney à r (étape e)), qui utilise le vecteur de syndromes d'erreurs H4 r', produit le mot v- = (y 2 zY6,r3 0. X0) X lequel, n'étant pas orthogonal à H4, n'est pas acceptable. L'estimation du mot transmis est donc conduite sur la base de la paire (vv) (étape i)), et donne finalement: = w' = (0,...,0). Supposons, comme autre exemple, que l'on ait reçu un mot r dont toutes les composantes sont nulles, sauf: r1(1) = y3, ri(2) = Y6, r2(3) = Y7, r1(4) =,2 et r2(5) = Y En outre, on supposera que les composantes ri(1) et ri(2) portent un effacement. La représentation du mot r est donc la suivante: rry3 y... o y 7 y 2 yil. o] E E L'étape a) du procédé selon l'invention donne alors: [3 y6 y7 2 yil o... o LE EO] L'application des algorithmes de Berlekamp-Massey et de Forney à i (étape b)), qui utilise le vecteur de syndromes d'erreurs H8 'T, donne: v=(O'..., 0). D'autre part, on obtient (étapes c) et d)): 0 N 0 1 y 12 1 0..01 E E E L'application des algorithmes de Berlekamp-Massey et de Forney à T r (étape e)), qui utilise le vecteur de syndromes d'erreurs H4 _, donne: _=(0,....,0). On obtient également (étape g)): [,8 y7 1 y12 1 0 o] LE E E E E On constate ici que le nombre d'effacements contenus dans k est égal à 5, ce qui est supérieur au nombre maximal d'effacements corrigibles dans ce mot: en effet, le nombre maximal d'effacements corrigibles est égal à 4, car la distance minimale du code orthogonal à H4 est égale à 5. On ne peut donc pas, en l'occurrence, calculer un mot v à partir de ?. L'estimation du mot transmis est donc conduite sur la base de la paire (v, _) (étape f)), et donne finalement: v = w = (0,....,0). Le schéma synoptique de la figure 3 représente un appareil de réception de signaux numériques 70 incorporant le décodeur 10. Cet appareil comprend un clavier 711, un écran 709, un destinataire d'informations externe 109, un lecteur de données 105 et un démodulateur 106, conjointement reliés à des ports d'entrée/sortie 703 du décodeur 10 qui est réalisé ici sous la forme d'une unité logique. Le décodeur 10 comporte, reliés entre eux par un bus d'adresses et de données 702: - une unité centrale de traitement 700, - une mémoire vive (RAM) 704, - une mémoire morte (ROM) 705, et - lesdits ports d'entrée/sortie 703. Chacun des éléments illustrés en figure 3 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de stockage de masse et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - le destinataire d'informations 109 pourrait être, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait être adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, - le lecteur 105 est adapté à lire des données enregistrées sur un support tel qu'un disque magnétique ou magnéto-optique. La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment les registres suivants: des registres " motsreç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 " motsassociés ", dans lequel sont conservés les symboles des " mots de code associés ", et - un registre " symbolesJinformation ", dans lequel sont conservés les symboles résultant de la suppression de la redondance. La mémoire morte 705 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: le programme de fonctionnement de l'unité centrale de traitement 700, dans un registre " programme ", - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre " q ", et - la matrice de parité du code, dans un registre " H ". On a décrit ci-dessus à titre d'exemple une application de l'invention austockage de masse des données, mais il est clair que les procédés selon l'invention peuvent tout aussi bien être mis en oeuvre au sein d'un réseau de télécommunications, auquel cas l'unité 105 pourrait par exemple être un récepteur adapté à mettre en oeuvre un protocole de transmission de données par paquets sur un canal hertzien. REVENDICATIONS 1. Procédé de codage de symboles d'information, comportant une étape dans laquelle on calcule à partir de symboles d'information appartenant à un corps de Galois Fg d'élément primitif y, des symboles formant des mots de longueur n = 2q appartenant à un code de canal " non hyperelliptique ", caractérisé en ce que ledit code est associé à une matrice de parité de la forme: H=LH y 0YMI H Y, H Y2 o - H et H sont des réalisations respectives pour u = cx et u = 3 de la matrice HU à u lignes et q colonnes définie par -uij= y) (1 i ' u, 1 5j élément sur la diagonale n'est nul. 2. Procédé de codage selon la revendication 1, caractérisé en ce que les couples (X,Y) ayant pour valeur (0, (Yi)qq), (0, (Y2)qq), ( (y 3. Procédé de codage de symboles d'information, comportant une étape dans laquelle on calcule à partir de symboles d'information appartenant à un corps de Galois Fq d'élément primitif y, des symboles formant des mots de longueur n = 2(q-1) appartenant à un code de canal " non hyperelliptique raccourci ", caractérisé en ce que ledit code est associé à une matrice de parité de la forme: H= Ha Ha M' o - Ha et HW sont des réalisations respectives pour u = cL et u = fi de la matrice Hu à u lignes et (q-1) colonnes définie par Huij = yî-1) (1S i s u, i j q-1), - Y1 et Y2 sont deux matrices carrées diagonales de dimension (q-1), dont l'une au moins n'est pas proportionnelle à la matrice unité, et telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, et - M est une matrice carrée diagonale de dimension 2(q-1) dont aucun élément sur la diagonale n'est nul. 4. Procédé de codage selon la revendication 3, caractérisé en ce que les couples (X, Y) ayant pour valeur (y-1,(Y1),,) et (y'-',(Y2),1), o 1 s i q-1, sont solutions d'une équation hyperelliptique. 5. Procédé de codage selon la revendication 3 ou la revendication 4, caractérisé en ce que oc = 2t, et f3 = t, o t est un entier strictement positif prédéterminé. 6. Procédé de codage de symboles d'information, caractérisé en ce qu'il comporte une étape dans laquelle on calcule à partir de ces symboles d'information des symboles formant des mots appartenant à un code de canal associé à une matrice de parité obtenue en supprimant certaines colonnes de la matrice de parité d'un code de canal selon l'une quelconque des revendications précédentes. 7. Procédé de codage de symboles d'information, caractérisé en ce qu'il comporte une étape dans laquelle on calcule à partir de ces symboles d'information des symboles formant des mots appartenant à un code produit dont le code composant de ligne et/ou le code composant de colonne est un code de canal selon l'une quelconque des revendications précédentes. 8. Procédé de décodage pour un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: H=[ H HO; o - HW et Ho sont des réalisations respectives pour u = ac et u = D de la matrice Hu à u lignes et (q-1) colonnes définie par Hu1 = -yil-) (15 i HP YI HP Y2 o - Ha et HW sont des réalisations respectives pour u = cx et u = D de la matrice Hu à u lignes et (q-1) colonnes définie par HU = yi(i-l) (1S i U, 1 i j q-1), et - Y, et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, ledit procédé comprenant les étapes suivantes: a) on construit à partir du mot reçu -[ri(1), ri(q-),r2(1), r2(q-)], dans lequel certaines composantes ri(j) et/ou r2(j) ( = 1,... q-1) portent, le cas échéant, un effacement, un mot i de longueur (q-1) dont chaque composante ij =r(j)+r2(j) (j = 1,...,q-1) porte un effacement si au moins l'une des composantes r1(j) et r2(j) porte un effacement, b) on met en oeuvre un algorithme de correction dudit mot i pour obtenir un mot v faisant partie du code défini par la matrice de parité Ha, le procédé comprenant en outre, à chaque fois que l'algorithme de correction de l'étape b) réussit, les étapes suivantes: g) on construit un mot F' de longueur (q-1) dont les composantes sont rj -(YI)jj r(j)+(Y2)jjr2(j) (i = 1,..,q-1), o Fj porte un effacement sauf si ni r1 (ô) ni r2(j) n'en portent un et si simultanément Vj = rj, et h) on met en oeuvre un algorithme de correction dudit mot r pour obtenir un mot v faisant partie du code défini par la matrice de parité Ho. 10. Procédé de décodage selon la revendication 8, caractérisé en ce qu'il comprend en outre l'étape suivante: f) on calcule un mot w -[w1(1),,w1 (q -1),w2 (1),,w2(q -1)] en résolvant le système d'équations: () j ())w()) j pour j= 1,.... q-1. 11. Procédé de décodage selon la revendication 9, caractérisé en ce qu'il comprend en outre l'étape suivante: i) on calcule un mot w'4w'1(1),..,w' (q-1),w'2(1),,w'2 (q-i)] en résolvant le système d'équations: Ij (1 (j)) -j pour j= 1,...,q-1. 12. Procédé de décodage selon la revendication 10, caractérisé en ce que l'on prend ledit mot w comme estimation 0 du mot transmis correspondant audit mot reçu r 13. Procédé de décodage selon la revendication 11, caractérisé en ce que l'on prend ledit mot w' comme estimation v du mot transmis correspondant audit mot reçu r 14. Procédé; de décodage selon les revendications 10 et 11, caractérisé en ce que l'on choisit, d'après un critère prédéterminé, soit ledit mot w, soit ledit mot w' comme estimation v du mot transmis correspondant audit mot reçu r. 15. Procédé de décodage pour un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: tH YI HP Y2 o - Ha et HW sont des réalisations respectives pour u = oc et u = D de la matrice HU à u lignes et (q-1) colonnes définie par Huj = eî(jl) (15 i 5 u, 1 5 j 5 q-1), - Y1 et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y, à cette position est différent de l'élément de Y2 à cette position, et - M est une matrice carrée diagonale de dimension 2(q-1) dont aucun élément sur la diagonale n'est nul, ledit procédé comprenant les étapes suivantes: - on associe à tout mot reçu r le mot rM = r M, - on applique audit mot rM un procédé de décodage selon l'une quelconque des revendications 8 à 11, associé à la matrice de parité H H" HOE et - si cette application aboutit à une estimation vMon prend v =M M comme estimation du mot transmis correspondant audit mot reçu r 16. Procédé de décodage pour un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2q, dans lequel la matrice de parité est de la forme: H=H H43M -a -a H =H Y, H Y2 M o - H et Ho sont des réalisations respectives pour u = ct et u = D de la matrice Hu à u lignes et q colonnes définie par H = i (1 selon la revendication 15, dans lesquelles on remplace partout (q-1) par q. 17. Procédé de décodage pour un code produit dont le code composant de ligne et/ou le code composant de colonne est un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: ôHP Y, SD Y2 o - Ha et HP sont des réalisations respectives pour u = cx et u = a de la matrice Hu à u lignes et (q-1) colonnes définie par Huij = 7iu1) (15 i S U, 1 procédé de décodage selon la revendication 15. 18. Procédé de décodage pour un code produit dont le code composant de ligne et/ou le code composant de colonne est un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2q, dans lequel la matrice de parité est de la forme: -0k, -(x4 H= Hp HP M, o - H et H sont des réalisations respectives pour u = ct et u = D de la matrice Hu à u lignes et q colonnes définie par u i = i'u-1) (15 i S u, 1 S j S q1), HUiq =0 (2si u),et H lq =1, - Y1 et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, et - M est une matrice carrée diagonale de dimension 2q dont aucun élément sur la diagonale n'est nul, caractérisé en ce que l'on applique audit code de ligne et/ou de colonne un procédé de décodage selon la revendication 16. 19. Procédé de décodage pour code produit selon la revendication 17 ou la revendication 18, caractérisé en ce que l'on attribue provisoirement un effacement à tous les éléments d'une telle ligne ou colonne si la tentative de correction de cette ligne ou colonne échoue, ou si la correction envisagée nécessiterait de changer les symboles en un nombre de positions supérieur à un nombre prédéterminé. 20. Dispositif de correction d'erreurs pour le décodage d'un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: H{HOYE H3Y2 o - Ha et HO sont des réalisations respectives pour u = cx et u = 3 de la matrice Hu à u lignes et (q-1) colonnes définie par HUj = yj(-> (15 i s u, i s j s q-1), et - Y1 et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, ledit dispositif de correction d'erreurs comprenant des moyens pour: a) construire à partir du mot reçu r 4r1(î), ri(q - 1),r2(1),..., r2(q -)], dans lequel certaines composantes ri(j) et/ou r2(j) (j = 1,..., q-1) portent, le cas échéant, un effacement, un mot i de longueur (q-1) dont chaque composante rj =r_(j)+r2(j) (i = 1,...,q-1) porte un effacement si au moins l'une des composantes r1(j) et r2(j) porte un effacement, b) mettre en oeuvre un algorithme de correction dudit mot - pour obtenir un mot ' faisant partie du code défini par la matrice de parité Ha, c) construire, à chaque fois que l'algorithme de correction de l'étape b) réussit, un mot r'_[r'1 (1),,r', (q -1),r'2 (l),.,r'2 (q -1)] tel que, pour tout j (j = 1,...,q-1): - si r1(j) porte un effacement sans que r2(j) en porte un, alors les composantes r'1 (j) - r2 (i) et r'2 (j) = r2 (i) ne portent pas d'effacement, cependant que - si r2(j) porte un effacement sans que r1(j) en porte un, alors les composantes r'1 (j)_ r1(j) et r'2 (j)j - -r1(j) ne portent pas d'effacement, et sinon - r'l (j) rl (j) et r'2 (j) r2 (j) sans modification des effacements éventuels, d) construire un mot _ de longueur (q-1) dont les composantes sont 7j =(YI) jjr', (j)+(Y2)jr'2 (j) ( = 1,...,q-1), o 7j porte un effacement si r', (j) et r'2 (j) en portent un, et e) mettre en oeuvre un algorithme de correction dudit mot _' pour obtenir un mot v faisant partie du code défini par la matrice de parité H. 21. Dispositif de correction d'erreurs pour le décodage d'un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: HP Y, H Y2= ou - Ha et HW sont des réalisations respectives pour u = cx et u = f8 de la matrice Hu à u lignes et (q-1) colonnes définie par HUj = iuî-l) (1 i S U, 1 obtenir un mot v faisant partie du code défini par la matrice de parité Ho. 22. Dispositif de correction d'erreurs selon la revendication 20, caractérisé en ce qu'il comprend en outre des moyens pour: f) calculer un mot w -[wl(î),...,wl(q - 1),w2(1),,w2(q -)] en résolvant le système d'équations: 1 1) ()wj(j))J A pour j = 1,....,q-1. 0\(Yl)jj (Y2) jj W2 (j)) vJ) 23. Dispositif de correction d'erreurs selon la revendication 21, caractérisé en ce qu'il comprend en outre des moyens pour: i) calculer un mot wl'[w'l Q), W. w'1 (q w'), w'2 (q)] en résolvant le système d'équations: 1 1 0 wlJ) = vJ:X pour j=,q-1. 24. Dispositif de correction d'erreurs selon la revendication 22, caractérisé en ce qu'il comprend en outre des moyens pour prendre ledit mot w comme estimation v du mot transmis correspondant audit mot reçu r. 25. Dispositif de correction d'erreurs selon la revendication 23, caractérisé en ce qu'il comprend en outre des moyens pour prendre ledit mot w' comme estimation v du mot transmis correspondant audit mot reçu r. 26. Dispositif de correction d'erreurs selon les revendications 22 et 23, caractérisé en ce qu'il comprend en outre des moyens pour choisir, d'après un critère prédéterminé, soit ledit mot w soit ledit mot w' comme estimation v du mot transmis correspondant audit mot reçu r. 27. Dispositif de correction d'erreurs pour le décodage d'un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: ou - Ha et HW sont des réalisations respectives pour u = a et u = a de la matrice Hu à u lignes et (q-1) colonnes définie par Huij = 1(pl) (15 i s U, i 5 j S q-1), - Y1 et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, et - M est une matrice carrée diagonale de dimension 2(q-1) dont aucun élément sur la diagonale n'est nul, ledit dispositif de correction d'erreurs (107) comprenant un dispositif de correction d'erreurs selon l'une quelconque des revendications 20 à 26 associé à la matrice de parité H=(Ha HuY OHP Y, HP Y2 et comprenant en outre des moyens pour: - associer à tout mot reçu r le mot rM = r M, - si le traitement dudit mot rM par ledit dispositif de correction d'erreurs selon l'une quelconque des revendications 20 à 23 aboutit à une estimation v, prendre = vM1-- comme estimation du mot transmis correspondant audit mot reçu r. 28. Dispositif de correction d'erreurs pour le décodage d'un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2q, dans lequel la matrice de parité est de la forme: CH Y, HD Y2, o - H et H sont des réalisations respectives pour u = cc et u = a de la matrice Hu à u lignes et q colonnes définie par = -i(l-) (1S i S u, 1 j S q-1), H q=0 (2sisu), et H 1, =1, - Y1 et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, et - M est une matrice carrée diagonale de dimension 2q dont aucun élément sur la diagonale n'est nul, ledit dispositif étant caractérisé en ce qu'il comprend un dispositif de correction d'erreurs selon la revendication 27, dans les moyens duquel on remplace partout (q-1) par q. 29. Dispositif de correction d'erreurs pour le décodage d'un code produit dont le code composant de ligne et/ou le code composant de colonne est un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2(q-1), dans lequel la matrice de parité est de la forme: H Hotl HiE M2 ou - W et HW sont des réalisations respectives pour u = a et u = D de la matrice Hu à u lignes et (q-1) colonnes définie par HUQ = yi(-1) (1 revendication 27 applicable audit code de ligne et/ou de colonne. 30. Dispositif de correction d'erreurs pour le décodage d'un code produit dont le code composant de ligne et/ou le code composant de colonne est un code de canal défini sur un corps de Galois Fq d'élément primitif y, et de longueur n = 2q, dans lequel la matrice de parité est de la forme: H= H _ M, o -H et H sont des réalisations respectives pour u = a et u = D de la matrice if' à u lignes et q colonnes définie par _U= yI-l) (1 i u, 1 j q-1), H jq = (2 Si Su), et H lq =1, - Y, et Y2 sont deux matrices carrées diagonales de dimension (q-1), telles que, pour toute position sur la diagonale, l'élément de Y1 à cette position est différent de l'élément de Y2 à cette position, et - M est une matrice carrée diagonale de dimension 2q dont aucun élément sur la diagonale n'est nul, caractérisé en ce qu'il comprend un dispositif de correction d'erreurs selon la revendication 28 applicable audit code de ligne et/ou de colonne. 31. Dispositif de correction d'erreurs selon la revendication 29 ou la revendication 30, caractérisé en ce qu'il comprend en outre des moyens pour attribuer provisoirement un effacement à tous les éléments d'une telle ligne ou colonne si la tentative de correction de cette ligne ou colonne échoue, ou si la correction envisagée nécessiterait de changer les symboles en un nombre de positions supérieur à un nombre prédéterminé. 32. Décodeur (10), caractérisé en ce qu'il comprend: - au moins un dispositif de correction d'erreurs selon l'une quelconque des revendications 20 à 31, et - au moins une unité de suppression de la redondance (108). 33. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 32, et en ce qu'il comporte des moyens (106) pour démoduler lesdits signaux numériques codés. 34. Système informatique (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 32, 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. 35. 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 selon l'une quelconque des revendications 8 à 19. 36. 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 8 à 19. 37. 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 selon l'une quelconque des revendications 8 à 19.