FR2873875A1 - Localisation d'erreurs pour codes de geometrie algebrique - Google Patents

Localisation d'erreurs pour codes de geometrie algebrique Download PDF

Info

Publication number
FR2873875A1
FR2873875A1 FR0408345A FR0408345A FR2873875A1 FR 2873875 A1 FR2873875 A1 FR 2873875A1 FR 0408345 A FR0408345 A FR 0408345A FR 0408345 A FR0408345 A FR 0408345A FR 2873875 A1 FR2873875 A1 FR 2873875A1
Authority
FR
France
Prior art keywords
values
locating
erroneous
erroneous aggregates
polynomial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0408345A
Other languages
English (en)
Other versions
FR2873875B1 (fr
Inventor
Philippe Piret
Frederic Lehobey
Bars Philippe Le
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR0408345A priority Critical patent/FR2873875B1/fr
Publication of FR2873875A1 publication Critical patent/FR2873875A1/fr
Application granted granted Critical
Publication of FR2873875B1 publication Critical patent/FR2873875B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

La présente invention concerne un procédé de localisation d'erreurs pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b). Selon ce procédé, un mot r ayant été reçu, on détermine un ensemble de valeurs de x comprenant toutes celles pour lesquelles qu'il existe au moins un point (x,y) de l'ensemble de localisation du code tel que la composante du mot r étiquetée par ce point est erronée, mais sans avoir à calculer pour autant les valeurs correspondantes de y .L'invention concerne également les dispositifs et appareils destinés à mettre en oeuvre ce procédé.

Description

La présente invention concerne les systèmes de communication ou
d'enregistrement de données dans lesquels, afin d'améliorer la fidélité de la transmission ou du stockage, on soumet les données à un codage de canal. Elle concerne plus particulièrement un procédé de localisation d'erreurs ainsi
que les dispositifs et appareils destinés à mettre en oeuvre ce procédé.
On rappelle que le codage de canal dit en blocs consiste à transmettre à un récepteur (ou à enregistrer sur un support de données) des mots de code qui sont formés en introduisant une certaine redondance dans les données à transmettre. Plus précisément, on transmet au moyen de chaque mot de code l'information initialement contenue dans un nombre prédéterminé k de symboles, dits symboles d'information , prélevés dans un alphabet de taille finie q; on calcule à partir de ces k symboles d'information un nombre n > k de symboles appartenant à cet alphabet, qui constituent les composantes des mots de code: v=(v1,v2,.
,vn). L'ensemble des mots de code obtenus quand chaque symbole d'information prend une valeur quelconque dans l'alphabet, constitue une sorte de dictionnaire appelé code de dimension k et de longueur n...DTD: Par exemple, lorsque la taille q de l'alphabet est prise égale à une puissance d'un nombre premier, on peut donner à cet alphabet une structure de corps ( field en anglais), dit corps de Galois ( Galois field en anglais), noté Fq, dont les éléments non-nuls peuvent être commodément identifiés comme étant chacun égal à y pour une valeur correspondante de i, où i =1,...,q -1, et où y est une racine (q -1)ème primitive de l'unité dans Fq.
En particulier, certains codes, appelés codes linéaires , sont tels que toute combinaison linéaire de mots de code (avec les coefficients pris dans l'alphabet) est encore un mot de code. Ces codes peuvent, de façon commode, être associés à une matrice H de dimension (n k)x n, dite matrice de parité : un mot v de longueur n donné est un mot de code si, et seulement si, il vérifie la relation: H. vT = 0 (où l'exposant T indique la transposition) ; on dit 30 alors que le code est orthogonal à cette matrice H. Au niveau du récepteur, le procédé de décodage associé exploite alors judicieusement cette redondance pour détecter d'éventuelles erreurs de transmission et si possible les corriger. II y a erreur de transmission si la différence e entre un mot reçu r et le mot de code v correspondant envoyé par l'émetteur, est non-nulle.
Plus précisément, le décodage se fait en deux étapes principales.
La première étape consiste à associer au mot reçu un mot de code associé Pour ce faire, le décodeur calcule d'abord le vecteur de syndromes d'erreurs s = H É rT = H É eT de longueur (n - k) (dans le cadre de la présente invention, on ne fait pas de différence entre le terme mot et le terme vecteur ). Si les syndromes sont tous nuls, on supposera qu'il n'y a pas eu d'erreur de transmission, et le mot de code associé sera alors simplement pris égal au mot reçu. Si ce n'est pas le cas, on en déduit que le mot reçu est erroné, et l'on procède alors à des calculs destinés à estimer la valeur de l'erreur e; autrement dit, ces calculs fournissent une valeur estimée ê de l'erreur telle que le mot (r - ê) soit un mot de code, qui constituera alors le mot de code associé v. Habituellement, cette première étape du décodage est décomposée en deux sous-étapes distinctes: une première sous-étape, dite de localisation d'erreurs , au cours de laquelle on détermine quelles sont les composantes du mot reçu dont la valeur est erronée, et une seconde sous-étape, dite de correction d'erreurs , au cours de laquelle on calcule une estimation de l'erreur de transmission affectant ces composantes.
La seconde étape consiste simplement à inverser le procédé de codage. Si le mot reçu était correct ou si l'on est parvenu, lors de la première étape, à y corriger toutes les erreurs de transmission, cette seconde étape permet évidemment de retrouver les k symboles d'information initiaux (avant codage) correspondant à ce mot reçu.
On notera que dans le cadre de la présente invention, on parlera souvent, pour faire court, de décodage pour désigner uniquement la première de ces étapes, étant entendu que l'homme du métier est capable sans difficulté de mettre en oeuvre la seconde étape.
On assigne habituellement comme but au décodage d'associer au mot reçu le mot de code situé à la distance de Hamming la plus courte de ce mot reçu, 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 dits de Reed- Solomon , qui sont réputés pour leur efficacité. Ce sont des codes linéaires dont la distance minimale d est égale à (n - k + 1). La matrice de parité H du code de Reed-Solomon de dimension k et de longueur n (où n est inférieur ou égal à (q -1)) est une matrice à (n - k) lignes et à n colonnes, qui a la structure d'une matrice de Vandermonde. Cette matrice de parité H peut être définie par exemple en prenant Hu= a(' 1) (l < i _< n - k, 1 <_ j < n), où a est une racine n ème de l'unité dans Fq; on peut alors étiqueter la composante vi, où 1 j < n, de tout mot de code v = (vi, v2, ...,vn) au moyen de l'élément a(' 1) de Fq; c'est pourquoi un ensemble tel que (1,a,a2,...,an-') est appelé ensemble de localisation ( locating set en anglais) du code de Reed-30 Solomon.
Comme mentionné ci-dessus, l'étape d'un procédé de décodage au cours de laquelle on calcule un mot de code associé au mot reçu se décompose habituellement en deux sous-étapes: la première sous-étape, dite de localisation d'erreurs , consiste à identifier dans le mot reçu les éventuelles composantes dont la valeur est erronée, et la seconde sousétape consiste à calculer ensuite la valeur corrigée de ces composantes erronées.
Pour le décodage des codes de Reed-Solomon, en ce qui concerne, d'une part, la localisation d'erreurs, on utilise habituellement l'algorithme dit de Berlekamp-Massey : on construit d'abord une matrice S, appelée matrice des syndromes , dont chaque élément est une certaine composante du vecteur de syndromes d'erreurs s = H É rT =H É eT; on cherche ensuite un vecteur A tel que A É S = 0, puis l'on forme un polynôme de localisation d'erreurs A(Z) dont les coefficients sont des composantes du vecteur A; les inverses des racines de ce polynôme A(Z) sont alors, parmi les éléments w; (où i =1,...,n) de l'ensemble de localisation, ceux qui étiquettent les composantes erronées du mot reçu r. En ce qui concerne, d'autre part, la correction d'erreurs, on utilise habituellement l'algorithme dit de Forney . Pour plus de détails sur les codes de Reed-Solomon, et en particulier les algorithmes de Berlekamp-Massey et de Forney, on pourra se référer par exemple à l'ouvrage de R.E. Blahut intitulé Theory and practice of errorcontrol codes , Addison-Wesley, Reading, Mass.,1983.
Dans les supports d'information modernes, par exemple dans les disques durs d'ordinateurs, les CD ( compact discs ) ou encore les DVD ( digital video discs ), on cherche à accroître la densité d'information. Quand un tel support est affecté par un défaut physique tel qu'une éraflure, un nombre important de symboles d'information peuvent être rendus illisibles. On peut toutefois remédier à ce problème en utilisant un code de très grande longueur. Or, comme indiqué ci-dessus, la longueur n des mots dans les codes de Reed-Solomon est inférieure à la taille q de l'alphabet des symboles. Par conséquent, si l'on souhaite disposer d'un code de Reed-Solomon ayant des mots de code de grande longueur, on doit envisager de grandes valeurs de q, ce qui conduit à des mises en oeuvre coûteuses au niveau des calculs et de la mémorisation. De plus, de grandes valeurs de q sont parfois inadaptées à l'application technique envisagée. C'est pourquoi l'on a cherché à construire des codes offrant de manière naturelle une plus grande longueur de mots que 5 les codes de Reed-Solomon sans nécessiter pour autant un alphabet de plus grande taille.
On a notamment proposé récemment des codes dits codes de géométrie algébrique ou codes de Goppa géométriques (voir par exemple Algebraic Geometric Codes , par J.H. van Lint, dans Coding Theory and Design Theory , IMA Volumes Math. Appt., vol. 21, pages 137 à 162, Springer-Verlag, Berlin, 1990). Ces codes sont construits à partir d'un ensemble de n couples (x,y) distincts de symboles appartenant à un corps de Galois Fq choisi; cet ensemble de couples constitue l'ensemble de localisation du code de géométrie algébrique. De manière générale, il existe une équation algébrique à deux inconnues X et Y telle que les couples (x,y) de cet ensemble de localisation soient tous des solutions de cette équation algébrique. Les valeurs de x et de y de ces couples peuvent être considérées comme les coordonnées de points Pp (où ,13 =1,...,n) formant une courbe algébrique .
Un paramètre important d'une telle courbe est son genre g.
Dans le cas particulier où la courbe est une simple droite (le genre g est alors nul), le code de géométrie algébrique se réduit à un code de Reed-Solomon. Pour q et g donnés, certaines courbes algébriques, dites maximales , permettent d'atteindre une longueur égale à (q+2gJ), qui peut être très élevée; par exemple, avec une taille d'alphabet égale à 256 et un genre égal à 120, on obtient des mots de code de longueur 4096.
Parmi tous les codes de géométrie algébrique, on considère habituellement ceux qui sont définis sur une courbe algébrique représentée par une équation F(X,Y) = 0, avec: F(X,Y)=XG +cYa +Ec1YiX où c 0 et les ci). sont des éléments de Fq, a et b sont des entiers strictement positifs et premiers entre eux, et où la somme ne porte que sur les entiers i et j qui satisfont ai + bj < ab. Cette forme d'équation est dite C(a,b) . Pour un tel code, on définit classiquement une matrice de parité de la manière suivante. A tout monôme Y'X, où i et j sont des entiers positifs ou nuls, on associe un poids égal par définition à (ai + bj). Si, pour un entier p 0, il existe au moins un monôme dont le poids est p, on dit que p est un poids réalisable . Soient Pl < P2 < ÉÉÉ < Pn-k les (n - k) plus petits poids qui sont réalisables, et soit ha (où a =1,...,n-k) un monôme de poids pa. L'élément en ligne a et colonne f de la matrice de parité est égal au monôme ha évalué au point Pfl (où, rappelons-le, /3 =1,
.,n) de la courbe algébrique. Chaque point PQ sert alors à identifier la fi ème composante de tout mot de code. Un code ayant une telle matrice de parité est appelé code à un point car sa matrice de parité est obtenue en évaluant (en les n points Pfl) des fonctions (les monômes ha) qui n'ont de pôles qu'en un seul point, à savoir le point à l'infini...DTD: Comme tous les codes, les codes de géométrie algébrique peuvent être modifiés et/ou raccourcis . On dit qu'un code donné Cmod est une version modifiée du code C s'il existe une matrice diagonale carrée non-singulière A telle que chaque mot de Cmod est égal à v É A avec v dans C. On dit qu'un code donné est une version raccourcie du code C s'il ne comprend que les mots de C dont, pour un nombre R de positions prédéterminées, les composantes sont toutes nulles: ces positions étant connues du récepteur, on peut se dispenser de les transmettre, de sorte que le code raccourci est de longueur (n - R). En particulier, il peut être utile en vue de la facilité de décodage de raccourcir un code de géométrie algébrique en supprimant de l'ensemble de localisation, le cas échéant, un point, ou plusieurs points, dont la coordonnée x est nulle.
Les codes de géométrie algébrique sont avantageux quant à leur distance minimale d, qui est au moins égale à (n - k + l - g), et, comme on l'a dit, quant à la longueur des mots de code, mais ils présentent l'inconvénient de 2873875 7 requérir des algorithmes de décodage assez complexes, et donc assez coûteux en termes d'équipements (logiciel et/ou matériel) et de temps de traitement. Cette complexité est en fait plus ou moins grande selon l'algorithme considéré, une plus grande complexité étant en principe le prix à payer pour accroître la capacité de correction d'erreurs du décodeur (voir par exemple l'article de Tom Hoholdt et Ruud Pellikaan intitulé On the Decoding of Algebraic- Geometric Codes , IEEE Trans. Inform. Theory, vol. 41 n 6, pages 1589 à 1614, novembre 1995). De manière générale, plus la courbe algébrique utilisée est de genre g élevé et plus les mots de code sont de grande longueur, mais aussi plus le décodage est complexe.
On connaît divers algorithmes de localisation d'erreurs pour codes de géométrie algébrique (définis sur une courbe de genre non-nul).
Un tel algorithme, appelé algorithme de base , a été proposé par A.N. Skorobogatov et S.G. Vlâdut dans l'article intitulé On the Decoding of Algebraic-Geometric Codes , IEEE Trans. Inform. Theory, vol. 36 n 5, pages 1051 à 1060, novembre 1990). On va décrire sommairement cet algorithme: a) on construit une matrice des syndromes S, de dimension (n k)x(n k), dont chaque coefficient Sil, où j est inférieur ou égal à une valeur frontière w(i) , est égal à une combinaison linéaire judicieusement choisie des éléments s, (v =1,2,..., n k) du syndrome s, les coefficients Si].
au-delà de la frontière restant indéterminés; b) on considère le système d'équations linéaires E 11 Su = 0, pour j =1,2,..., w(4) , i=1 où les inconnues li appartiennent au même alphabet de symboles que les éléments des mots de code, et où est un entier compris entre 1 et (n k) tel que le système admette une solution non-triviale (c'est-à-dire une solution où les coefficients li ne sont pas tous nuls), et l'on détermine les valeurs de ces coefficients li correspondant à la plus petite valeur possible de, que l'on notera 2; et c) on calcule les zéros du polynôme de localisation d'erreurs A(X, Y) = E li hi (X, Y) i=1 (où les monômes hi (X,Y) ont été définis ci-dessus) ; ces zéros comprennent tous les couples (x,y) étiquetant les composantes du mot reçu ayant souffert d'une erreur de transmission.
Skorobogatov et Vlàdut ont également proposé, dans le même article cité ci-dessus, une version modifiée de l'algorithme de base , qui permet généralement de corriger un plus grand nombre d'erreurs que l'algorithme de base .
On connaît également des algorithmes qui fonctionnent suivant un principe itératif: chaque nouvelle itération d'un tel algorithme fait appel à une composante supplémentaire du vecteur de syndromes d'erreurs s = H É rT.
Un exemple d'un tel algorithme de décodage itératif est divulgué dans l'article de M. Sakata et al. intitulé Generallzed Berlekamp-Massey Decoding of Algebraic-Geometric Codes up to Hait' the Feng-Rao Bound (IEEE Trans. Inform. Theory, vol. 41, pages 1762 à 1768, novembre 1995). Cet algorithme peut être vu comme une généralisation de l'algorithme de Berlekamp-Massey aux codes de géométrie algébrique définis sur une courbe de genre non-nul.
Un autre exemple d'algorithme de décodage itératif pour codes de géométrie algébrique est divulgué dans l'article de M.E. O'Sullivan intitulé Decoding of Codes Defined by a Single Point on a Curve (IEEE Trans. Inform. Theory, vol. 41, pages 1709 à 1719).
Pour tout mot reçu r donné, on peut déterminer des polynômes de localisation d'erreurs dont les zéros comprennent tous les couples (x,y) étiquetant les composantes erronées de ce mot reçu. L'ensemble des polynômes de localisation d'erreurs possède la structure d'un idéal appelé idéal de Grôbner (associé aux erreurs de transmission affectant ce mot). On peut engendrer l'idéal de Gribner au moyen d'un ensemble fini de f polynômes qui constitue une base de Grôbner de l'idéal. On peut obtenir une base de Grôbner ç = {Gg,(X,Y) f çP =1,... f} à partir d'une matrice S*, de dimension n x n, obtenue en étendant la matrice S (autrement dit, les éléments de S et ceux de S* sont identiques pour j s w(i) avec i s n - k).
Cette extension est possible à chaque fois que le nombre d'erreurs dans le mot reçu est inférieur ou égal à (n - k -g)12.
En effet, lorsque le nombre d'erreurs dans le mot reçu est inférieur ou égal à (n - k - g)l2, il faut en général, pour pouvoir localiser ces erreurs, connaître plus d'éléments de la matrice des syndromes que les éléments que nous qualifierons de connus du fait qu'ils sont égaux à des composantes du vecteur de syndromes d'erreurs s = H É rT ou à de simples combinaisons linéaires de ces composantes (voir l'exemple numérique décrit ci-dessous). Il est heureusement possible de calculer ces éléments de valeur inconnue par un procédé comprenant un certain nombre de décisions majoritaires , par exemple l'algorithme dit de Feng-Rao (voir l'article de G.-L. Feng et T.R.N.
Rao intitulé Decoding Algebraic-Geometric Codes up to the Designed Minimum Distance , IEEE Trans. Inform. Theory, vol. 39, n 1, janvier 1993).
Cet algorithme a essentiellement pour but d'étendre la matrice S au moyen d'étapes de calcul jouant le rôle d'itérations successives. II faut un nombre d'itérations égal à un certain nombre g' , où g' est au plus égal à 2g, pour parvenir au stade où, comme expliqué ci-dessus, il devient possible de calculer une base de Grôbner à partir de la matrice S* ainsi obtenue.
A ce stade, il est également possible de calculer des éléments inconnus supplémentaires de la matrice S* à partir des éléments obtenus précédemment, soit au moyen de nouvelles itérations d'un algorithme à décisions majoritaires , soit plus commodément au moyen d'un certain nombre de relations, dites de récurrence , utilisant des polynômes de rétroaction choisis dans la base de Grôbner. On pourra se référer à ce propos à l'article de Sakata et al. cité ci-dessus.
Dans le cadre de la présente invention, on dira que les éléments de 30 la matrice des syndromes étendue S* ( connus ou inconnus ) sont des syndromes d'erreurs étendus .
On connaît par ailleurs divers algorithmes pour codes de géométrie algébrique permettant de calculer la valeur corrigée des composantes erronées du mot reçu; autrement dit, ces algorithmes sont aptes à fournir une valeur estimée ê de l'erreur de transmission e subie par le mot de code transmis.
Le calcul des erreurs pour les codes de géométrie algébrique est a priori plus compliqué que pour les codes de Reed-Solomon. En effet: - la sous-étape de localisation d'erreurs ne produit pas seulement un polynôme de localisation d'erreurs (tel que A(Z) ci-dessus), mais plusieurs polynômes, qui forment une base de Grôbner de l'idéal des polynômes de localisation d'erreurs; - ces polynômes de localisation d'erreurs sont des polynômes à deux variables au lieu d'une; et - ces polynômes de localisation d'erreurs ont donc des dérivées partielles par rapport à ces deux variables, de sorte que la formule de Forney donnée ci-dessus, qui fait intervenir une dérivée unique, n'est plus applicable.
On connaît divers algorithmes de calcul des erreurs pour codes de géométrie algébrique.
L'article Algebraic Geometry Codes , de Tom Hoholdt, Jacobus Van Lint et Ruud Pelikaan (Chapitre 10 de Handbook of Coding Theory , North Holland, 1998) construit le produit de certaines puissances des polynômes de la base de Grôbner. II effectue ensuite une combinaison linéaire de ces produits, affectés de coefficients adéquats. Il démontre enfin que la valeur du polynôme ainsi obtenu, prise au point (x, y) de l'ensemble de localisation est, au signe près, la valeur de l'erreur pour la composante du mot reçu étiquetée parce point (x, y).
L'article A Generalized Forney Formula for Algebraic Geometric Codes , de Douglas A. Leonard (IEEE Trans. lnform. Theory, vol. 42, n 4, pages 1263 à 1268, juillet 1996), et l'article A Key Equation and the Computation of Error Values for Codes from Order Domains de John B. Little (publié sur Internet le 7 avril 2003) calculent les valeurs des erreurs en évaluant un polynôme à deux variables en les zéros communs des polynômes de localisation d'erreurs.
Ces trois algorithmes sont complexes à mettre en oeuvre, notamment du fait qu'ils comprennent la multiplication de polynômes à deux variables, en plus de multiplications formelles dans Fq.
On connaît un algorithme plus simple d'après l'article A Forney type formula for the determination of error values for Hermitian codes de Raft Kôtter (Algebraic Decoding of Algebraic Geometry and Cyclic Codes, dissertation n 419, Linkoping Studies in Science and Technology,1996). Mais cet algorithme s'applique uniquement au cas des codes construits sur une courbe hermitienne (c'est-à-dire une courbe représentée par l'équation + Y = définie sur Fq, où q est un carré parfait).
La demande de brevet européen n 03293336.8 au nom de CANON décrit un procédé de décodage applicable notamment aux codes, décrits ci-dessus, de géométrie algébrique à un point définis sur une courbe algébrique de type C(a,b) . Ce procédé de décodage effectue à la fois la localisation et la correction d'erreurs. Nous allons à présent le décrire de manière assez détaillée.
Ce procédé de décodage repose sur la subdivision de l'ensemble de localisation du code en sous-ensembles appelés agrégats . Par définition, un agrégat regroupe les couples (x, y) de l'ensemble de localisation ayant une valeur commune de x (on aurait pu tout aussi bien définir les agrégats par une valeur commune de y en échangeant les rôles des inconnues X et Y de l'équation représentant la courbe algébrique sur laquelle est définie le code). Lorsque l'on souhaite faire apparaître cette structure en agrégats, les couples de l'ensemble de localisation seront notés (x, y p (x)) , où p =1,...,2(x) et 2(x) est le cardinal de l'agrégat considéré, et les composantes de tout mot c de longueur n seront notées c(x, y p (x)) ; on dira que les composantes de c qui, étiquetées de la sorte, possèdent la même valeur de x forment un agrégat de composantes du mot c.
Soit m le poids maximal des monômes définissant les lignes de la 30 matrice de parité (voir ci-dessus). Selon la demande n 03293336.8, on classe ces monômes dans des ensembles de monômes 2873875 12 M. ={YJX I0 5 i S (m bj)/a} pour 0 j < jmax, Oë jmax <a. L'ensemble Mi a donc pour cardinal: t(j) =1+INT [(m bj)/a] . Notons par les différentes valeurs de x dans l'ensemble de localisation, et par V = [ V(x1, ,Y1(xl)), ..., V (xl, y/,(x]) (xl)),..., V(x,u, y2(xt) (Xi, ] un mot de code quelconque. On construit, pour chaque agrégat attaché à l'une des valeurs xl,x2,...,x de x, (jma, +1) symboles agrégés a.(x) vJ (x) = [yp (x)L 1 v(x, y f, (x)) p=1 pour j= 0,..., jmax. Ces symboles agrégés servent à former (jmax +1) mots agrégés vi IVj(x1),...,Vj(x)], de longueur On vérifie facilement que la condition d'appartenance au code de géométrie algébrique (à savoir H. vT = 0) est équivalente à l'ensemble de (.%max +1) équations: "'tu) vjT 0, où la fonction t(j) est donnée ci-dessus et, par définition, 1 1 1 t 1 t 1 t 1 x1 X2 xu Or cette matrice Ht est une matrice de Vandermonde définie sur Fq; par conséquent, si l'on considère, pour chaque valeur de j, que Ht(J) est une matrice de parité définissant un ensemble de mots de code y], cet ensemble constitue un code de Reed- Solomon. On dit alors que l'on a décomposé le code de géométrie algébrique considéré en un certain nombre de codes de Reed-Solomon composants .
L'intérêt de cette formulation est que l'on dispose, pour les codes de Reed-Solomon, d'algorithmes de décodage aussi simples que performants. Par exemple, un mot r ayant été reçu, on calcule d'abord, pour j= 0,..., %max, les mots reçus agrégés ri ri (xl (xi,) , dans lesquels, pour x = , les symboles reçus agrégés ri(x) sont donnés par 2(x) r.(x)= E {yp(x)1 r(x,yp(x)) . p=1 Puis on utilise l'algorithme de Berlekamp-Massey pour la localisation des symboles erronés de chaque mot ri, suivi de l'algorithme de Forney pour la correction de ces symboles erronés, d'après le vecteur de syndromes d'erreurs si = Ht(.i) É r.T. Enfin, on calcule les symboles v(x, y p (x)) du mot de code associé à partir des symboles corrigés Pi (x) en utilisant le système d'équations 2,(x) r rJ (x) = Lyp (x)]' v(x, y p (x)) p=1 où j prend un nombre de valeurs différentes (le nombre d'équations) au moins égal à .1,(x) (le nombre d'inconnues). Ce procédé de décodage requiert donc que (jmax +1) soit au moins égal à 2max, où 2max est le plus grand parmi les cardinaux d'agrégat.i,(x) . Par rapport aux algorithmes de correction d'erreurs mentionnés précédemment, le gain en complexité résultant de l'utilisation du procédé selon la demande n 03293336.8 est significatif. En revanche, le nombre d'erreurs que l'on peut corriger avec ce procédé peut être inférieur à la capacité de correction d'erreurs théorique du code (comme expliqué ci-dessus, cette capacité théorique est égale à INT[(d -1)/2], où d est la distance minimale du code de géométrie algébrique considéré) : cet inconvénient est lié au fait que, (1) (2) lors des étapes de localisation d'erreurs dans le procédé selon la demande n 03293336.8, on localise des agrégats erronés associés au mot reçu, et non des composantes individuelles erronées du mot reçu. Dans le cadre de la présente invention, on dira qu'un agrégat associé à une valeur x de X est erroné lorsqu'il existe au moins un point (x, y) de l'ensemble de localisation du code tel que la composante dudit mot reçu r étiquetée par ce point est erronée.
La demande française n 0402033 au nom de CANON décrit un procédé, applicable aux codes de géométrie algébrique à un point définis sur une courbe algébrique de type C(a,b) , qui effectue la correction d'erreurs dans un mot reçu r après que les agrégats erronés de ce mot reçu aient été localisés d'une manière ou d'une autre. Selon ce procédé, le calcul des valeurs (estimées) des erreurs comprend notamment les étapes suivantes (où la notation c c2) représente le produit scalaire de deux mots c1 et c2 de longueur n) : - on compte le nombre 1 de valeurs différentes de x apparaissant dans ces points associés à des composantes erronées de r,chacune de ces valeurs de x définissant un agrégat erroné dont les éléments sont tous les 2(x) points (x, yp (x)), où p =0,...,2(x) 1, de l'ensemble de localisation correspondant à cette valeur de x, - on calcule, pour i = 0,...,21 1 et j = 0,..., 2max -1, où 2max est la valeur maximale des cardinaux 2(x) des agrégats erronés, les syndromes d'erreurs étendus o-j(i) _ (Y'X' e) , où e est l'erreur de transmission affectant r et Y'X' représente le mot dont les composantes sont égales à la valeur prise par le monôme Y'X1 aux points de l'ensemble de localisation, - on met en oeuvre, pour j= 0,..., max -1, au moyen du polynôme de syndromes d'erreurs 21 1 s (Z) = E6j(1)Z, 1=0 un algorithme de correction d'erreurs adapté aux codes de Reed-Solomon, de manière à calculer les erreurs Ei(x) sur celles des composantes d'un mot de code de Reed-Solomon défini sur le même corps de Galois que ledit code de géométrie algébrique qui sont étiquetées par les l valeurs de x associées à un agrégat erroné, et - on calcule, pour chaque valeur de x telle qu'il existe au moins une valeur de j pour laquelle E.(x) est non-nulle, les estimations ê(x, yp (x) ) des erreurs respectives sur les composantes r(x, y p (x)) de r en résolvant le système d'équations 2(x) 1 E 'j (x) [y p (x)]' ê(x, y p (x)) p=o où l'on choisit des équations (associées chacune à une valeur distincte de j) en nombre au moins égal au nombre de composantes erronées de l'agrégat considéré.
Ainsi, ce procédé comprend le calcul de l'estimation de l'erreur 2(x) 1 E (x) = r (x) P (x) sur le symbole reçu agrégé r i (x) = [y p (x)}' r(x, yp (x)) p=o (voir équations (1) et (2)). La correction d'erreurs dans un mot appartenant à un code de géométrie algébrique est ramenée à la correction d'erreurs dans Â,max mots appartenant à un code de Reed-Solomon; avantageusement, ce procédé ne cause aucune perte en termes de capacité de correction d'erreurs par rapport à la capacité théorique du code pourvu que soient connus les générateurs de l'idéal de Grôbner correspondant à l'erreur produite sur le canal. Ainsi, lorsque le nombre d'erreurs de transmission affectant le mot reçu est inférieur ou égal à (n k g)/2, l'estimation fournie par ce procédé fournit de manière certaine la valeur des erreurs de transmission.
Par rapport, maintenant, aux algorithmes de correction d'erreurs connus applicables de manière générale aux codes de géométrie algébrique considérés, le gain en complexité résultant de la mise en oeuvre du procédé selon la demande n 0402033 est significatif, et ce, malgré la nécessité de mettre en oeuvre un algorithme de correction d'erreurs pour code de Reed- Solomon (par exemple l'algorithme de Forney) 2max fois, et de résoudre pour (3) chaque agrégat erroné étiqueté par une valeur x de X un système d'équations (3) ; on notera à cet égard que le nombre d'équations dans chacun de ces systèmes est au plus égal à a (l'exposant de Y dans l'équation représentant la courbe algébrique), puisque la taille de tout agrégat (c'est à dire le nombre de solutions, pour x fixé, de l'équation représentant la courbe algébrique) est au plus égale à a.
On notera par ailleurs que le système d'équations (3) est un système de Vandermonde: il possède donc toujours une, et une seule, solution; de plus, comme il est bien connu de l'homme du métier, la résolution de ce type de système d'équations linéaires est, avantageusement, particulièrement simple.
Selon des caractéristiques particulières du procédé selon la demande n 0402033, le calcul des syndromes d'erreurs étendus o (i)=(YIX e) pour i = 0,...,21 1 et j = 0,..., 2max -1 comprend les sous- étapes suivantes: - on calcule, pour chaque valeur de j= 0,..., 2max -1, un nombre de syndromes d'erreurs étendus 6j(i) au moins égal audit nombre Z d'agrégats erronés, et - on calcule (s'il y a lieu) ceux parmi les syndromes d'erreurs étendus 6f (i) pour i = 0,...,21 1 et j = 0,..., Àmax -1 qui n'ont pas encore été obtenus, au moyen de relations de récurrence utilisant le polynôme de localisation d'erreurs en x A(Z)=fl(1 Zx ) , v=1 où les x, sont lesdites valeurs de x étiquetant un agrégat erroné.
Grâce à ces dispositions, on obtient (s'il y a lieu) les syndromes d'erreurs étendus complémentaires requis pour les étapes suivantes du procédé selon l'invention, au moyen de relations de récurrence utilisant le polynôme de localisation d'erreurs en x, au lieu de procédés classiques tels que des itérations d'un algorithme à décisions majoritaires ou des récurrences utilisant des polynômes de rétroaction choisis dans la base de Grôbner G. Comme A(Z) est un polynôme à une variable alors que les polynômes de l'idéal de Grôbner sont à deux variables, l'utilisation de A(Z) permet de réduire de manière significative la complexité des calculs pour l'obtention de certains syndromes d'erreurs étendus.
Or les auteurs de la présente invention ont réalisé que, pour pouvoir mettre en oeuvre le procédé selon la demande n 0402033, il n'est pas nécessaire de connaître les couples (x, y p (x)) étiquetant les composantes erronées du mot reçu, mais seulement toutes les valeurs de x dans ces couples (valeurs étiquetant les agrégats erronés).
Cette remarque s'applique aux étapes générales du procédé, et notamment aux systèmes d'équations (3) : il suffit en effet de considérer que les symboles ê(x,yp(x)) représentent une erreur nulle Si la composante correspondante r(x, y p (x)) est correcte, et d'utiliser un nombre d'équations égal à la taille de l'agrégat, pour obtenir toutes les valeurs des estimations d'erreurs ê(x, y p (x)) , que celles-ci soient nulles ou non.
Cette remarque s'applique aussi, manifestement, au mode de réalisation dans lequel on calcule des syndromes d'erreurs étendus complémentaires au moyen du polynôme A(Z).
Selon un premier aspect, l'invention concerne divers procédés.
Elle concerne ainsi, premièrement, un procédé de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0, procédé dans lequel on associe à ce mot reçu r un ensemble E de polynômes de localisation d'erreurs à deux variables X et Y (cet ensemble E est donc un sous-ensemble fini de l'idéal de Grôbner associé au mot reçu L). Ce procédé est remarquable en ce qu'il comprend les étapes suivantes: - on détermine un polynôme de localisation d'erreurs en X à partir d'au moins deux polynômes appartenant à l'ensemble r = EU {F(X,Y) } ; et - on détermine, à partir dudit polynôme de localisation d'erreurs en X, un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
Ainsi, la présente invention permet de remplacer avantageusement la localisation complète des erreurs par un algorithme moins complexe, dans lequel on détermine un ensemble de valeurs de x comprenant toutes celles pour lesquelles qu'il existe au moins un point (x, y) de l'ensemble de localisation du code tel que la composante du mot r étiquetée par ce point est erronée (c'est-à-dire tel que ce couple (x,y) soit un zéro commun des polynômes de la base de Grôbner ç), mais sans avoir à calculer pour autant les valeurs correspondantes de y.
Selon des caractéristiques particulières, ledit ensemble E de polynômes de localisation d'erreurs constitue une base de Grôbner ç associée au mot reçu r. En effet, si on connaît tous les polynômes d'une base de Grôbner g, il est inutile de connaître d'autres polynômes de l'idéal de Grôbner pour pouvoir mettre en oeuvre l'invention.
Selon d'autres caractéristiques particulières, pour déterminer ledit polynôme de localisation d'erreurs en X, on calcule la résultante en Y de deux polynômes sélectionnés dans ledit ensemble P. En effet, comme expliqué en détail ci-dessous, la résultante en Y de deux polynômes quelconques à deux variables X et Y permet de déterminer si ces deux polynômes ont un zéro (x,y) commun. C'est vrai en particulier lorsque ces deux polynômes appartiennent à l'ensemble P. On peut avantageusement utiliser cette technique de la résultante en Y avec un nombre plus grand de polynômes de l'ensemble p. Ainsi, selon encore d'autres caractéristiques particulières, pour déterminer le polynôme de localisation d'erreurs en X: - on calcule les résultantes en Y d'au moins deux paires de polynômes sélectionnés dans ledit ensemble r; et - on calcule le PGCD A(X) de ces résultantes en Y. Grâce à ces caractéristiques, on peut affiner la recherche de la liste exacte des agrégats erronés.
De même, selon des caractéristiques encore plus particulières, si le cardinal de l'ensemble E est impair, on pourra se contenter de sélectionner chaque élément de l'ensemble Pau plus une fois pour ledit calcul des résultantes en Y. De même, si le cardinal de l'ensemble E est pair, on pourra se contenter de sélectionner chaque élément de l'ensemble E au plus une fois pour le calcul des résultantes en Y. Selon des caractéristiques particulièrement avantageuses de l'invention, ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est simplement obtenu en calculant les racines du polynôme de localisation d'erreurs en X. L'invention concerne aussi, deuxièmement, un procédé de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0, procédé dans lequel on construit une base de Grôbner G de l'idéal des polynômes de localisation d'erreurs à deux variables X et Y associés à ce mot reçu r. Ce procédé est remarquable en ce qu'il comprend les étapes suivantes: - on sélectionne, dans ladite base de Grôbner G, un polynôme qui ne dépend que de la variable X, s'il en existe; et - on détermine, à partir dudit polynôme en X sélectionné, un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
Selon des caractéristiques particulièrement avantageuses de l'invention, ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est simplement obtenu en calculant les racines dudit polynôme en X sélectionné.
L'invention concerne aussi, troisièmement, un procédé de 30 localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) =0, procédé dans lequel on construit une base de Grôbner ç de l'idéal des polynômes de localisation d'erreurs à deux variables X et Y associés à ce mot reçu r. Ce procédé est remarquable en ce qu'il comprend les étapes suivantes: - on détermine si ladite base de Grôbner ç est cohérente ; - si la base de Grôbner ç est cohérente, on calcule le déterminant zw(X) de la matrice de cohérence ; et - on détermine, à partir dudit déterminant zv(X), un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
Selon des caractéristiques particulièrement avantageuses de l'invention, ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est simplement obtenu en calculant les racines dudit déterminant zv (X) . Selon un second aspect, l'invention concerne divers dispositifs.
Elle concerne ainsi, premièrement, un dispositif de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) =0, ledit dispositif comprenant des moyens pour associer à ce mot reçu r un ensemble E de polynômes de localisation d'erreurs à deux variables X et Y. Ce dispositif est remarquable en ce qu'il comprend également des moyens pour: - déterminer un polynôme de localisation d'erreurs en X à partir d'au moins deux polynômes appartenant à l'ensemble = EU {F(X,Y) } ; et - déterminer, à partir dudit polynôme de localisation d'erreurs en X, un 25 ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
Selon des caractéristiques particulières, ledit ensemble E de polynômes de localisation d'erreurs constitue une base de Grôbner ç associée au mot reçu r.
Selon d'autres caractéristiques particulières, pour déterminer ledit polynôme de localisation d'erreurs en X, le dispositif comprend des moyens pour calculer la résultante en Y de deux polynômes sélectionnés dans ledit ensemble 'r.
Selon encore d'autres caractéristiques particulières, pour déterminer ledit polynôme de localisation d'erreurs en X, le dispositif comprend des moyens pour: - calculer les résultantes en Y d'au moins deux paires de polynômes sélectionnés dans ledit ensemble 'r; et - calculer le PGCD A(X) de ces résultantes en Y. Selon des caractéristiques encore plus particulières, si le cardinal de l'ensemble E est impair, chaque élément de l'ensemble 'r est sélectionné au plus une fois pour ledit calcul des résultantes en Y. De même, si le cardinal de l'ensemble E est pair, chaque élément de l'ensemble E est sélectionné au plus une fois pour le calcul des résultantes en Y. Selon des caractéristiques particulièrement avantageuses de l'invention, ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est simplement obtenu en calculant les racines du polynôme de localisation d'erreurs en X. L'invention concerne aussi, deuxièmement, un dispositif de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) =0, ledit dispositif comprenant des moyens pour construire une base de Grôbner g de l'idéal des polynômes 25 de localisation d'erreurs à deux variables X et Y associés à ce mot reçu r. Ce dispositif est remarquable en ce qu'il comprend également des moyens pour: - sélectionner, dans ladite base de Grôbner g, un polynôme qui ne dépend que de la variable X, s'il en existe; et - déterminer, à partir dudit polynôme en X sélectionné, un ensemble de 30 valeurs de Xcomprenant les valeurs de X étiquetant lesdits agrégats erronés.
Selon des caractéristiques particulièrement avantageuses de l'invention, ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est simplement obtenu en calculant les racines les racines dudit polynôme en X sélectionné.
L'invention concerne aussi, troisièmement, un dispositif de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0, ledit dispositif comprenant des moyens pour construire une base de Grôbner g de l'idéal des polynômes 10 de localisation d'erreurs à deux variables X et Y associés à ce mot reçu r. Ce dispositif est remarquable en ce qu'il comprend également des moyens pour: - déterminer si ladite base de Grôbner g est cohérente ; - si la base de Grôbner g est cohérente, calculer le déterminant zy,(X) de la matrice de cohérence ; et - déterminer, à partir dudit déterminant z,1, (X) , un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
Selon des caractéristiques particulièrement avantageuses de l'invention, ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est simplement obtenu en calculant les racines dudit déterminant zw (X) . Les avantages de ces dispositifs de localisation d'erreurs sont essentiellement les mêmes que ceux des procédés corrélatifs décrits succinctement ci-dessus.
L'invention vise également: - un décodeur comprenant au moins un dispositif de localisation d'erreurs tel que décrit succinctement ci-dessus, et au moins une unité de suppression de la redondance, - un appareil de réception de signaux numériques codés comprenant un décodeur tel que décrit succinctement ci-dessus, et comprenant des moyens pour 30 démoduler lesdits signaux numériques codés, - un système informatique comprenant un décodeur tel que décrit succinctement ci-dessus, et comprenant en outre au moins un disque dur ainsi qu'au moins un moyen de lecture de ce disque dur, - un moyen de stockage de données inamovible comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de décodage succinctement exposés ci-dessus, - un moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes de l'un quelconque des procédés de décodage succinctement exposés ci-dessus, et - un programme d'ordinateur, contenant des instructions telles que, lorsque ledit programme commande un dispositif de traitement de données programmable, lesdites instructions font que ledit dispositif de traitement de données met en oeuvre l'un des procédés de décodage succinctement exposés ci-dessus.
Les avantages offerts par ce décodeur, cet appareil de réception, ce système informatique, ces moyens de stockage de données et ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés de localisation d'erreurs selon l'invention.
D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels: - la figure 1 est un schéma synoptique d'un système de transmission d'informations mettant en oeuvre un procédé selon l'invention, et - la figure 2 représente un appareil de réception de signaux numériques incorporant un décodeur selon l'invention.
La figure 1 est un schéma synoptique d'un système de transmission d'informations mettant en oeuvre un procédé selon l'invention.
Ce système a pour fonction de transmettre des informations de nature quelconque à partir d'une source 100 vers un destinataire ou utilisateur 109. En premier lieu, la source 100 traduit ces informations en une suite de symboles appartenant à un certain corps de Galois Fq (par exemple des octets de bits pour q = 28), et transmet ces symboles à une unité de stockage 101, qui accumule les symboles de façon à former des ensembles contenant chacun k symboles. Ensuite, chacun de ces ensembles est transmis par l'unité de stockage 101 à un codeur 102 qui y incorpore de la redondance, de manière à construire un mot de longueur n appartenant au code choisi.
Les mots de code ainsi formés sont ensuite transmis à un modulateur 103, qui associe à chaque symbole du mot de code un symbole de modulation. Ensuite, ces symboles de modulation sont transmis à un enregistreur (ou un émetteur) 104, qui insère les symboles dans un canal de transmission. Ce canal peut être par exemple un stockage sur un support adapté tel qu'un DVD ou un disque magnétique ou encore une bande magnétique. Il peut correspondre également à une émission filaire ou non-filaire comme c'est le cas d'un lien radio.
Le message transmis parvient à un lecteur (ou un récepteur) 105, 15 après avoir été affecté par un bruit de transmission dont l'effet est de modifier ou d'effacer certains des symboles de modulation.
Le lecteur (ou récepteur) 105 transmet alors ces symboles au démodulateur 106, qui les transforme en symboles de Fq. Les n symboles résultant de la transmission d'un même mot de code sont ensuite groupés en un mot reçu dans une unité de correction d'erreurs 107, qui met en oeuvre un procédé de décodage selon l'invention, de manière à fournir un mot de code associé . Puis ce mot de code associé est transmis à une unité de suppression de redondance 108, qui en extrait k symboles d'information en mettant en oeuvre un algorithme de décodage inverse de celui mis en oeuvre par le codeur 102. Enfin, ces symboles d'information sont fournis à leur destinataire 109.
On peut considérer que les unités 107 et 108 forment conjointement un décodeur 10.
On va à présent illustrer le procédé de codage selon l'invention à l'aide d'un exemple numérique. On notera que cet exemple ne constitue pas nécessairement un choix de paramètres préférentiel pour le codage ou le décodage. Il n'est fourni ici que pour permettre à l'homme du métier de comprendre plus facilement le fonctionnement du procédé selon l'invention.
Considérons donc un code de géométrie algébrique Q de dimension 34 et de longueur 60 défini comme suit.
L'alphabet des symboles est constitué par le corps de Galois F16.
Comme le cardinal de ce corps est une puissance de 2 (16 = 24), le signe + est équivalent au signe - devant tout coefficient d'un polynôme à coefficients sur ce corps.
On considère la courbe algébrique de genre g = 6 constituée par l'ensemble des solutions (X = x,Y = y) de l'équation à deux inconnues F(X, Y)=Y4+Y+XS =0 (4) sur F16. On constate qu'en donnant à X une valeur x quelconque dans F16, il existe à chaque fois 4 valeurs y(x) (p =1,2,3,4) dans F16 telles que le couple (x, y p (x)) soit solution de l'équation (4) ; ces solutions de l'équation (4) sont les coordonnées des points finis de la courbe (la courbe contient également un point à l'infini noté P..). On choisit de constituer l'ensemble de localisation au moyen de toutes ces solutions sauf celles où x = 0; l'ensemble de localisation a donc un cardinal égal à 60, et il peut être subdivisé en 15 agrégats qui ont chacun un cardinal /i,(x) égal à 4. On rappelle que chaque point Pfl de l'ensemble de localisation sert à identifier le 13ème élément de tout mot de code; le nombre de tels points étant ici égal à 60, la longueur n du code est donc elle aussi égale à 60.
Ensuite, on considère l'espace vectoriel L(m PO4 de polynômes en X et Y à coefficients dans F16 dont les seuls pôles sont situés en P., et sont d'ordre inférieur ou égal à m, où m est un entier strictement positif (l'image de cet espace de polynômes sur les points finis de la courbe représentée par l'équation (4) est donc un code de géométrie algébrique dit à un point ). Cet espace vectoriel, qui est de dimension supérieure ou égale à (m - g +1) (égale si m > 2g - 2), possède une base constituée par les monômes ha = Y1X, où j est un entier compris entre 0 et 3, i est un entier positif ou nul, 41+ 5 j <_ m, et a =1,...,n k. Cette 30 quantité p(ha) = 4i +5 j est le poids du monôme ha.
Prenons par exemple: m = 31; on obtient alors un ensemble de monômes ha où a = 1,...,26, puisque: m-g+1=31-6+1=26.
Les monômes ha peuvent être classés dans des sous-ensembles 5 ordonnés de monômes Mi = {YiXZ 1 05i<-(23-5j)/4}, pour 0 < j 3 (ici, jmax =3). Ces sous-ensembles ordonnés de monômes sont explicitement: Mo = {1,X,X2,X3,X4, X5,X6,X7} , 10 M1 = {Y,YX,YX2,YX3,YX4,YX5,YX6} , M2 = {Y2, Y2X,Y2X 2,Y2X 3,Y2X 4,Y2X 5} , et M3 = {Y3,Y3X,Y3X2,Y3X3,Y3X4} . On vérifie que le nombre total de monômes ha est bien égal à : 8+7+6+5 = 26.
On peut par exemple prendre pour matrice de parité H de ce code Q 15 la matrice dont l'élément en ligne a et colonne /3 est égal à la valeur prise par le monôme ha au point Pfl de la courbe algébrique.
La redondance (n -k) du code Q étant égale à 26, sa dimension vaut k= 34. La distance minimale d de ce code est au moins égale à n - k + 1-g = 21.
On peut donc corriger (au moins) INT[(21-1)12] = 10 symboles ayant subi une 20 erreur de transmission si les erreurs sont localisées.
Comme expliqué ci-dessus, parmi les algorithmes connus offrant une telle capacité, l'un des moins complexes est celui divulgué dans la demande française n 0402033. Selon ce procédé, un mot r ayant été reçu, on commence par localiser les erreurs de transmission affectant ce mot. Comme expliqué ci-dessus, un moyen classique pour effectuer cette localisation est: 1) de construire une base de Grôbner g à partir de la matrice des syndromes étendue S * , puis 2) de chercher les zéros communs aux polynômes Ge,(X,Y) (où çP =1,... f) constituant cette base G. La seconde sous-étape de localisation que l'on vient de mentionner est assez complexe. Il est nécessaire en effet, pour chaque point Pfl = (x, yfl) de l'ensemble de localisation, de vérifier si Gço(xfl, yfl) est nul pour chaque valeur de çP =1,...f. Naturellement, dès que l'on constate que G,(xf, yR) est non- nul pour une certaine valeur de çz, on peut passer au point Big suivant. Selon les cas donc, cette vérification exige, pour chaque point Pie, le calcul d'un nombre imprévisible de valeurs G(xfl, yfi) ; tout ce que l'on sait a priori, c'est que ce nombre est compris entre 1 et f inclus. Pour couvrir l'ensemble de localisation, on devra effectuer au minimum n telles évaluations polynomiales, mais évidemment un nombre bien plus grand en moyenne.
On va décrire à présent un mode de réalisation de l'invention.
Si la base de Grôbner ç contient un polynôme qui ne dépend que de la variable X, les racines de ce polynôme fournissent directement les valeurs étiquetant les agrégats erronés.
Si en revanche la base de Grôbner g ne contient que des polynômes dépendant au moins de la variable Y, le procédé selon l'invention exploite une propriété mathématique connue qui concerne ce que l'on appelle la matrice de Sylvester RA,B(X) associée à deux polynômes quelconques A(X,Y) et B(X,Y) à deux variables sur un corps de Galois Fq. Cette propriété mathématique est la suivante.
Soient donc 8(A) A(X,Y) _ E a1(X) Y1, et (5a) 1=0 8(B) B(X,Y) _ E bl (X) Y1 1=0 deux tels polynômes. On construit une matrice carrée RA,B(X), de dimension 8 = 8(A) +8(B) , de la manière suivante. (5b)
Dans le cas général où 8(A) 2 etlou 8(B) > 2: - pour 1 =1,...,1+8(A), l'élément de RAB (X) en position (1,1) est a!-1(X) - pour 1= 2+ 8(A),..., 8(A) +8(B) , l'élément de RAB (X) en position (1,1) est nul; - pour j = 2,..., 8(B) , la j ème ligne de RA,B(X) est obtenue à partir de la première ligne de RA,B(X) par une permutation circulaire d'amplitude (j -1) ; - pour l =1,...,1+ 8(B) , l'élément de RA,B (X) en position (1 + 8(B),l) est b1 1(X) - pour l = 2+ 8(B),..., 8(A) + 8(B) , l'élément de RAB (X) en position (1 + 8(B), l) est nul; et - pour j = 2,..., 8(A) , la (j + 8(B)) 'me ligne de RA,B (X) est obtenue à partir de la (1+ 8(B)) ème ligne de RAB (X) par une permutation circulaire d'amplitude (j -1).
Dans le cas particulier où à la fois 8(A) =1 et 8(B) =1, la matrice de Sylvester est simplement: RAB (X) = ao (X) al (X) bo (X) bl (X) Par exemple, lorsque 8(A) = 4 et 8(B) = 2, la matrice de Sylvester a ao(X) al(X) a2(X) a3(X) a4(X) 0 0 ao(X) al(X) a2(X) a3(X) a4(X) bo(X) b1(X) b2(X) 0 0 0 0 bo(X) b1 (X) b2 (X) 0 0 0 0 bo(X) b1(X) b2(X) 0 0 0 0 bo(X) b1(X) b2(X) On peut montrer que la matrice de Sylvester RA, B(X) possède dans tous les cas la propriété suivante: les polynômes A(X,Y) et B(X,Y) possèdent un zéro commun (X = x,Y = y) si, et seulement si, il existe un symbole x de Fq la forme suivante: RAB(X)= 2873875 29 tel que le déterminant rA,B(X) de la matrice RA,B(X) soit nul pour X = x (ce déterminant rA,B(X) est appelé la résultante en Y des polynômes A(X,Y) et B(X,Y) ).
Le présent procédé de localisation d'agrégats erronés exploite cette 5 propriété mathématique de la manière suivante. Soit 'r = G U {Go} l'ensemble de polynômes à deux variables composé de la base de Grôbner G et du polynôme Go (X,Y) = F(X,Y) , où F(X,Y) = 0 est l'équationreprésentant la courbe algébrique associée au code considéré. Considérons alors deux éléments quelconques 10 { G1(X, Y), Gi(X, Y) 1 0 .i < j 5 f} de 'r, et leur résultante en Y, soit rG,G. (X). Conformément à la propriété mentionnée ci-dessus, ces polynômes G; (X,Y) et Gi(X,Y) ont un zéro commun si, et seulement si, il existe une valeur x telle que rGr G (X).= 0.
On notera que le calcul de rG G] (X) est relativement simple, et ce, pour deux raisons: d'une part, la matrice RA,B (X) comprend manifestement beaucoup d'éléments de matrice nuls (dès que 8(A) et/ou 8(B) sont au moins égaux à 2), ce qui simplifie le calcul de son déterminant; et d'autre part, les éléments de matrice non-nuls de RA,B(X) étant des polynômes à une variable, le calcul de son déterminant peut être commodément effectué au moyen de 20 registres à décalage.
Si l'on considère plusieurs paires de polynômes appartenant à , on pourra avantageusement calculer le PGCD (Plus Grand Commun Diviseur) A(X) des résultantes rG,,G (X) associées à ces paires (pour le calcul du PGCD d'une pluralité de polynômes, on connaît des algorithmes très efficaces). Enfin, on 25 déterminera toutes les racines de A(X), par exemple au moyen de l'algorithme de Chien (voir l'article de R.T. Chien intitulé Cyclic Decoding Procedures for Bose-Chaudhury-Hocquenghem Codes , IEEE Trans. Inform. Theory, pages 357 à 363, vol. 10, n 5, octobre 1964). Chacune des valeurs X = x ainsi obtenues sera une racine de chacune des résultantes l,G (X) . On notera que, dans les couples (x, y) respectifs qui sont des zéros communs à chaque paire respective {Gl (X,Y),Gj(X,Y) } pour une valeur de x commune à toutes les paires, les valeurs de y peuvent être différentes d'une paire à l'autre (pour des agrégats de taille supérieure à 1, ce qui est habituellement le cas) ; par conséquent, on risque d'avoir, parmi ces valeurs de x, des valeurs excédentaires en ce sens qu'elles ne correspondent pas à des zéros communs à tous les polynômes de la base de Grôbner G; on ne peut donc pas être certain que les valeurs de x obtenues de la façon indiquée ci-dessus correspondent toutes à des agrégats erronés. En revanche, toutes les valeurs de x correspondant à des agrégats erronés sont bien incluses dans l'ensemble ainsi obtenu. Au cours des étapes ultérieures de la correction du mot reçu, les agrégats associés à de telles valeurs excédentaires seront traités comme des agrégats erronés , mais cela est sans conséquence sur le résultat du décodage puisque l'on aboutira alors simplement à des estimations d'erreurs nulles pour les composantes de ces agrégats.
Le choix desdites paires de polynômes s'impose clairement dans les cas les plus simples. Si la base de Grôbner ç ne contient qu'un seul élément GI(X,Y) (polynôme effectivement en X et Y), il suffira de considérer la paire {Go(X,Y),GI(X,Y)} (si en outre la courbe algébrique est hyperelliptique , c'est à dire si l'équation représentant la courbe est de degré 2 en Y, on obtient ainsi la liste exacte des agrégats erronés sans valeurs excédentaires ). Si la base de Grôbner G contient deux éléments GI(X,Y) et G2(X,Y) , on pourra considérer la paire {GI (X,Y),G2 (X,Y) }.
Pour f 3, on peut distinguer deux cas: - si f est pair, on peut avantageusement considérer successivement les éléments de la base de Grôbner ç pris deux à deux; et - si f est impair, on peut avantageusement considérer successivement 30 les éléments de l'ensemble cF pris deux à deux.
2873875 31 On peut, en outre, utiliser certains des éléments de l'ensemble p plus d'une fois pour constituer de nouvelles paires. II est clair que plus on prend de paires en considération, et plus on a de chances d'éliminer d'éventuelles valeurs de x excédentaires. En revanche, si l'on prend un nombre relativement faible de paires en considération, l'augmentation de calculs résultant, le cas échéant, de l'augmentation du nombre d'agrégats considérés a priori comme étant erronés, peut être avantageusement compensée par la réduction du nombre de résultantes rG,G1 (X) à considérer.
C'est pourquoi, toujours dans ce cas f 3, on peut même se contenter de déterminer, de la manière expliquée ci-dessus, les valeurs de x associées aux zéros communs d'un ensemble incomplet de polynômes de la base de Grôbner g (à la limite, d'une seule paire, par exemple {Gl (X,Y),G2 (X,Y) }) ; dans ce cas, le risque est évidemment accru d'accepter, parmi ces valeurs de x, des valeurs excédentaires, mais, comme on l'a dit, cela 15 peut néanmoins s'avérer être avantageux en termes de complexité globale du décodage.
On va décrire à présent une variante du procédé de localisation en X selon l'invention. Cette variante permet des calculs plus simples que la variante exposée ci-dessus, mais ne s'applique que dans des cas favorables correspondant à ce que nous appellerons, dans le cadre de la présente invention, une base de Grôbner cohérente . Pour une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0 de degré b en X et de degré a en Y, où, pour fixer les idées, on supposera a <b, on détermine si une base de Grôbner est cohérente de la manière suivante.
Considérons une base de Grôbner g qui a été déterminée au moyen d'un algorithme de localisation d'erreurs classique tel que celui décrit dans l'article de Sakata et al. cité ci-dessus. Comme il est connu de l'homme du métier, une telle base de Grôbner comprend au plus a éléments, soit: f < a.
De la même manière que ci-dessus (voir équations (5a) et (5b)), on peut écrire: Gço(X,Y)_EF,1(X)Y' (6) 1=0 pour ço =1,..., f. Rangeons alors les éléments Gq, (X,Y) de la base ç de manière à ce que les degrés en Y de ces éléments soient croissants au sens large: gl S <-053 5..._<f.
On dira alors que la base ç est cohérente s'il existe au moins une valeur de ço telle que: 89 _ - 1. C'est en particulier le cas dans la situation, assez fréquente en pratique, où, d'une part, la base de Grôbner comprend exactement a éléments, et d'autre part ces éléments sont tous des polynômes de degré (a-1) en Y (soit, 8, =a-1 pour tout ço=1,...,a).
Dans le cas, donc, où la base de Grôbner est cohérente, la localisation d'erreurs en X pourra se faire de la manière suivante. Soit la plus petite valeur de ço vérifiant 89, = çP-1. On définit alors une matrice carrée polynomiale Zw(X), que nous appellerons matrice de cohérence , de dimension v, telle que l'élément en position (id') de cette matrice soit égal à F1, _1(X) (voir équation (6)). On peut montrer que si un couple (x, y) donné étiquette une composante erronée du mot reçu, alors le déterminant zv,(X) de la matrice de cohérence vérifie: z11, (x) = 0. Par conséquent, la recherche des zéros de ce déterminant, par exemple au moyen de l'algorithme de Chien, permet commodément de déterminer la valeur de x associée à tous les 20 agrégats erronés.
Pour terminer la description du procédé de localisation en X selon l'invention, on va maintenant présenter un exemple numérique, dans lequel on considérera le code Q, décrit ci-dessus, de dimension 34 et de longueur 60, et défini sur une courbe algébrique représentée par l'équation (4). Les éléments de F16 seront identifiés comme puissances respectives d'un élément primitif a de F16 qui est racine de l'équation Z4 +Z+1= 0.
Supposons que l'on reçoive un mot r dont les composantes non-nulles sont les suivantes: r(l,a8)=a7, r(a,a9)=1, r(a2,a3) = 1, r(a5,a3)=a, r(a7,a9) =a11, r(a7,a13)=a2 r(a9,a)=1, r(a9,a4)=1, r(all,all)=1, r(a14,a14)=a5.
A partir du vecteur de syndromes d'erreurs (à n k = 26 composantes) s = H É rT et au moyen d'un algorithme à décisions majoritaires , on obtient les syndromes d'erreurs étendus 6J (i) _ (Y'X' I suivants (on rappelle que e est l'erreur de transmission affectant le mot reçu L, et que Y'X' représente le mot dont les composantes sont égales à la valeur prise par le monôme Y'X' aux points de l'ensemble de localisation) : ao(0) =(1 e)=a2,6o(1)=(X e)=a11,al(0)=(YIe)=a7 60(2)= (X2 e)=a2,61(1)=(YX e)=a10, 62(0)=(Y2 6o(3)=(X3le)=0, 6l(2)=(YX2 e?=a4, 62(1)=(Y2X 63(0)=(Y3 e=0 60(4)= 1X4 e) =1, 61(3)=(YX3 62 (2) = (Y2X2 e =1, 63 (1) = (Y3X e)=1, a-o(5)=(X5 61(4) = (YX4 60(6)1Y6 e)=a4, 61(5)=(YX5 e)=a10, 62(3)=(Y2X3 B1=a14 62(4)=(Y2x4 e=1, 63(2)=(Y3X2 e) =alo, 63(3)=(Y3X3le)=a5, 60(2)=(X7 e) =1, 61(6)=(YX6 62(5)= (Y2X5 e=a8, 63(4)=(Y3X4 Un algorithme de localisation d'erreurs classique est à même de produire les générateurs de l'idéal de Grôbner à partir de ces 26 syndromes 20 étendus. Dans le cas présent, il se trouve que la base de Grôbner ç ne contient qu'un seul élément, à savoir: G1(X,Y) =Y2+(a5X+a3)Y+(a14X2+a2X+a6) . Ainsi, dans ce cas particulier, on ne peut pas éliminer la variable Y avec un autre élément de la base de Grôbner puisqu'il n'y en a pas. C'est 25 notamment pour pouvoir traiter ce genre de situation que les inventeurs ont prévu d'apparier cet unique élément G1(X,Y) de la base de Grôbner avec le polynôme Go(X,Y) = F(X,Y) ; en effet, les points étiquetant les composantes erronées du mot reçu font partie de l'ensemble de localisation du code, et satisfont donc tous à l'équation (4), c'est-à-dire: F(X,Y) =Y4 +Y+X5 = O. On appariera donc G1(X,Y) avec Go(X,Y)=Y4+Y+ X5.
Pour la résultante en Y associée à ces deux polynômes, on trouve: rGo,Gi (X) = X1 +a5X9 +a11X8 +a5X6 +a5X5 +a6X-4 +a14X2 +a9X +as = (X +1)(X +a)(X +a2)(X +a5)(X +a7)2(X +a9)2(X +a11)(X +a14) dont les racines x=1,a,a2,a5,a7,a9,a11,a14 étiquettent donc les agrégats erronés de ce mot reçu.
Le schéma synoptique de la figure 2 représente un appareil de lecture de signaux numériques codés 70 incorporant le décodeur 10. Cet appareil 70 comprend un clavier 711, un écran 709, un destinataire d'informations externe 109, un lecteur de données 105 et un démodulateur 106, conjointement reliés à des ports d'entrée/sortie 703 du décodeur 10 qui est réalisé ici sous la forme d'une unité logique.
Le décodeur 10 comporte, reliés entre eux par un bus d'adresses et de données 702: - une unité centrale de traitement 700, - une mémoire vive (RAM) 704, - une mémoire morte (ROM) 705, et - lesdits ports d'entrée/sortie 703.
Chacun des éléments illustrés en figure 2 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de stockage de masse et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - le destinataire d'informations 109 pourrait être, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait être adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, - le lecteur 105 est adapté à lire des données enregistrées sur un support tel qu'un disque magnétique ou magnéto-optique.
La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment les registres suivants: des registres mots reçus , dans lesquels sont conservés les mots reçus, - un registre symboles estimés , dans lequel sont conservés les symboles issus d'un mot reçu en cours de correction, - un registre mots associés , dans lequel sont conservés les symboles des mots de code associés , et - un registre symboles information , dans lequel sont conservés les symboles résultant de la suppression de la redondance.
La mémoire morte 705 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: le programme de fonctionnement de l'unité centrale de traitement 700, dans un registre programme , - la longueur des mots de code dans un registre n , - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre q , - le nombre de symboles d'information servant à construire un mot de code, dans un registre k , et - une table contenant chaque mot Y'X dont les composantes sont égales à la valeur prise par le monôme Y'X' aux points de l'ensemble de localisation, pour i= 0,...,2L 1 et j = 0,...,Amax -1, où L est le nombre total d'agrégats et Amax est la taille d'agrégat maximale, dans un registre W .
On a décrit ci-dessus à titre d'exemple une application de l'invention au stockage de masse des données, mais il est clair que les procédés selon l'invention peuvent tout aussi bien être mis en oeuvre au sein d'un réseau de télécommunications, auquel cas l'unité 105 par exemple pourrait être un récepteur adapté à mettre en oeuvre un protocole de transmission de données par paquets sur un canal hertzien.

Claims (28)

REVENDICATIONS
1. Procédé de localisation d'agrégats erronés de composantes d'un 5 mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0, procédé dans lequel on associe à ce mot reçu r un ensemble E de polynômes de localisation d'erreurs à deux variables X et Y, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes: - on détermine un polynôme de localisation d'erreurs en X à partir d'au moins deux polynômes appartenant à l'ensemble p = E U {F(X,Y)} ; et - on détermine, à partir dudit polynôme de localisation d'erreurs en X, un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
2. Procédé de localisation d'agrégats erronés selon la revendication 1, caractérisé en ce que ledit ensemble E de polynômes de localisation d'erreurs constitue une base de Grôbner g associée au mot reçu r.
3. Procédé de localisation d'agrégats erronés selon la revendication 1 ou la revendication 2, caractérisé en ce que, pour déterminer ledit polynôme de localisation d'erreurs en X, on calcule la résultante en Y de deux polynômes sélectionnés dans ledit ensemble p.
4. Procédé de localisation d'agrégats erronés selon la revendication 1 ou la revendication 2, caractérisé en ce que, pour déterminer le polynôme de localisation d'erreurs en X: - on calcule les résultantes en Y d'au moins deux paires de polynômes sélectionnés dans ledit ensemble 'P; et - on calcule le PGCD A(X) de ces résultantes en Y.
5. Procédé de localisation d'agrégats erronés selon la revendication 4, caractérisé en ce que, si le cardinal de l'ensemble E est impair, chaque 30 élément de l'ensemble P est sélectionné au plus une fois pour ledit calcul des résultantes en Y.
6. Procédé de localisation d'agrégats erronés selon la revendication 4, caractérisé en ce que, si le cardinal de l'ensemble E est pair, chaque élément de l'ensemble E est sélectionné au plus une fois pour le calcul des résultantes en Y.
7. Procédé de localisation d'agrégats erronés selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est obtenu en calculant les racines du polynôme de localisation d'erreurs en X.
8. Procédé de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0, procédé dans lequel on construit une base de Grôbner g de l'idéal des polynômes de localisation d'erreurs à deux variables X et Y associés à ce mot reçu L, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes: - on sélectionne, dans ladite base de Grôbner g, un polynôme qui ne dépend que de la variable X, s'il en existe; et - on détermine, à partir dudit polynôme en X sélectionné, un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats 20 erronés.
9. Procédé de localisation d'agrégats erronés selon la revendication 8, caractérisé en ce que ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est obtenu en calculant les racines dudit polynôme en X sélectionné.
10. Procédé de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X,Y) = 0, procédé dans lequel on construit une base de Grôbner g de l'idéal des polynômes de localisation d'erreurs à deux variables X et Y associés à ce mot reçu r, ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes: - on détermine si ladite base de Grôbner ç est cohérente ; - si la base de Grôbner ç est cohérente, on calcule le déterminant zv (X) de la matrice de cohérence ; et - on détermine, à partir dudit déterminant zv (X) , un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
11. Procédé de localisation d'agrégats erronés selon la revendication 10, caractérisé en ce que ledit ensemble des valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est obtenu en calculant les racines dudit déterminant zv (X) .
12. Dispositif (107) de localisation d'agrégats erronés de composantes d'un mot reçu 12. pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X, Y) =0, ledit dispositif comprenant des moyens pour associer à ce mot reçu r un ensemble E de polynômes de localisation d'erreurs à deux variables X et Y, ledit dispositif étant caractérisé en ce qu'il comprend également des moyens pour: - déterminer un polynôme de localisation d'erreurs en X à partir d'au moins deux polynômes appartenant à l'ensemble F = EU {F(X,Y) } ; et déterminer, à partir dudit polynôme de localisation d'erreurs en X, un 20 ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
13. Dispositif de localisation d'agrégats erronés selon la revendication 12, caractérisé en ce que ledit ensemble E de polynômes de localisation d'erreurs constitue une base de Grôbner ç associée au mot reçu r.
14. Dispositif de localisation d'agrégats erronés selon la revendication 12 ou la revendication 13, caractérisé en ce que, pour déterminer ledit polynôme de localisation d'erreurs en X, il comprend des moyens pour calculer la résultante en Y de deux polynômes sélectionnés dans ledit ensemble 2873875 40
15. Dispositif de localisation d'agrégats erronés selon la revendication 12 ou la revendication 13, caractérisé en ce que, pour déterminer ledit polynôme de localisation d'erreurs en X, il comprend des moyens pour: - calculer les résultantes en Y d'au moins deux paires de polynômes sélectionnés dans ledit ensemble P; et - calculer le PGCD a(X) de ces résultantes en Y.
16. Dispositif de localisation d'agrégats erronés selon la revendication 15, caractérisé en ce que, si le cardinal de l'ensemble E est impair, chaque élément de l'ensemble est sélectionné au plus une fois pour ledit calcul des résultantes en Y.
17. Dispositif de localisation d'agrégats erronés selon la revendication 15, caractérisé en ce que, si le cardinal de l'ensemble E est pair, chaque élément de l'ensemble E est sélectionné au plus une fois pour le calcul des résultantes en Y.
18. Dispositif de localisation d'agrégats erronés selon l'une quelconque des revendications 12 à 17, caractérisé en ce que ledit ensemble de valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est obtenu en calculant les racines du polynôme de localisation d'erreurs en X.
19. Dispositif (107) de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X, Y) = 0, ledit dispositif comprenant des moyens pour construire une base de Grôbner G de l'idéal des polynômes de localisation d'erreurs à deux variables X et Y associés à ce mot reçu r, ledit dispositif étant caractérisé en ce qu'il comprend également des moyens pour: - sélectionner, dans ladite base de Grôbner G, un polynôme qui ne dépend que de la variable X, s'il en existe; et déterminer, à partir dudit polynôme en X sélectionné, un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
20. Dispositif de localisation d'agrégats erronés selon la revendication 19, caractérisé en ce que ledit ensemble de valeurs de X 2873875 41 comprenant les valeurs de X étiquetant les agrégats erronés est obtenu en calculant les racines dudit polynôme en X sélectionné.
21. Dispositif (107) de localisation d'agrégats erronés de composantes d'un mot reçu r pour un code de géométrie algébrique à un point défini sur une courbe algébrique de type C(a,b) représentée par une équation F(X, Y) =0, ledit dispositif comprenant des moyens pour construire une base de Grôbner G de l'idéal des polynômes de localisation d'erreurs à deux variables X et Y associés à ce mot reçu L, ledit dispositif étant caractérisé en ce qu'il comprend également des moyens pour: - déterminer si ladite base de Grôbner g est cohérente ; - si la base de Grôbner g est cohérente, calculer le déterminant zv(X) de la matrice de cohérence ; et - déterminer, à partir dudit déterminant zv(X), un ensemble de valeurs de X comprenant les valeurs de X étiquetant lesdits agrégats erronés.
22. Dispositif de localisation d'agrégats erronés selon la revendication 21, caractérisé en ce que ledit ensemble des valeurs de X comprenant les valeurs de X étiquetant les agrégats erronés est obtenu en calculant les racines dudit déterminant zw(X).
23. Décodeur (10), caractérisé en ce qu'il comprend: - au moins un dispositif de localisation d'agrégats erronés selon l'une quelconque des revendications 12 à 22, et - au moins une unité de suppression de la redondance (108).
24. Appareil de réception de signaux numériques codés (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 23, et en ce qu'il comprend des moyens (106) pour démoduler lesdits signaux numériques codés.
25. Système informatique (70), caractérisé en ce qu'il comprend un décodeur selon la revendication 23, 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.
26. 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 localisation d'agrégats erronés selon l'une quelconque des revendications 1 à 11.
27. 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 localisation d'agrégats erronés selon l'une quelconque des revendications 1 à 11.
28. 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 localisation d'agrégats erronés selon l'une quelconque des revendications 1 à 11.
FR0408345A 2004-07-28 2004-07-28 Localisation d'erreurs pour codes de geometrie algebrique Expired - Fee Related FR2873875B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0408345A FR2873875B1 (fr) 2004-07-28 2004-07-28 Localisation d'erreurs pour codes de geometrie algebrique

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0408345A FR2873875B1 (fr) 2004-07-28 2004-07-28 Localisation d'erreurs pour codes de geometrie algebrique

Publications (2)

Publication Number Publication Date
FR2873875A1 true FR2873875A1 (fr) 2006-02-03
FR2873875B1 FR2873875B1 (fr) 2006-12-15

Family

ID=34948505

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0408345A Expired - Fee Related FR2873875B1 (fr) 2004-07-28 2004-07-28 Localisation d'erreurs pour codes de geometrie algebrique

Country Status (1)

Country Link
FR (1) FR2873875B1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8132078B2 (en) 2004-12-23 2012-03-06 Canon Kabushiki Kaisha Decoding method for algebraic geometric codes and associated device
CN109029368A (zh) * 2018-05-29 2018-12-18 淮阴师范学院 像方补偿的遥感影像/sar影像高精度几何定位后处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134342A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd グレブナ基底生成方法及び装置
US5678055A (en) * 1993-11-22 1997-10-14 Fujitsu Limited Method and device for generating Grobner bases to reduce memory usage and increase computing speed
EP1434132A1 (fr) * 2002-12-26 2004-06-30 Canon Kabushiki Kaisha Un code de géometrie algébrique adapté pour rafales d'erreurs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678055A (en) * 1993-11-22 1997-10-14 Fujitsu Limited Method and device for generating Grobner bases to reduce memory usage and increase computing speed
JPH09134342A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd グレブナ基底生成方法及び装置
EP1434132A1 (fr) * 2002-12-26 2004-06-30 Canon Kabushiki Kaisha Un code de géometrie algébrique adapté pour rafales d'erreurs

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BLAKE I ET AL: "Algebraic-Geometry Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE INC. NEW YORK, US, vol. 44, no. 6, 6 October 1998 (1998-10-06), pages 2596 - 2618, XP002251940, ISSN: 0018-9448 *
DUURSMA I M: "ALGEBRAIC DECODING USING SPECIAL DIVISORS", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE INC. NEW YORK, US, vol. 39, no. 2, 1 March 1993 (1993-03-01), pages 694 - 698, XP000377728, ISSN: 0018-9448 *
HOEHOLDT T ET AL: "On the Decoding of Algebraic-Geometric Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE INC. NEW YORK, US, vol. 41, no. 6, November 1995 (1995-11-01), pages 1589 - 1614, XP002224191, ISSN: 0018-9448 *
PATENT ABSTRACTS OF JAPAN vol. 1997, no. 09 30 September 1997 (1997-09-30) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8132078B2 (en) 2004-12-23 2012-03-06 Canon Kabushiki Kaisha Decoding method for algebraic geometric codes and associated device
CN109029368A (zh) * 2018-05-29 2018-12-18 淮阴师范学院 像方补偿的遥感影像/sar影像高精度几何定位后处理方法
CN109029368B (zh) * 2018-05-29 2020-09-08 淮阴师范学院 像方补偿的遥感影像/sar影像高精度几何定位后处理方法

Also Published As

Publication number Publication date
FR2873875B1 (fr) 2006-12-15

Similar Documents

Publication Publication Date Title
FR2860360A1 (fr) Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
FR2849514A1 (fr) Code de geometrie algebrique adapte aux erreurs en rafale
FR2909499A1 (fr) Procede et dispositif de decodage pour codes ldpc, et appareil de communication comprenant un tel dispositif
WO2009095574A2 (fr) Procede et entite de chiffrement symetrique probabiliste
FR2533091A1 (fr) Systeme de detection et de correction d&#39;erreurs de transmission d&#39;un message binaire utilisant un code cyclique detecteur et correcteur d&#39;erreurs de type reed-solomon entrelace
FR2778289A1 (fr) Decodage iteratif de codes produits
FR2853976A1 (fr) Codage d&#39;informations par code de geometrie algebrique offrant deux options de decodage
FR2765749A1 (fr) Decodeur a base de syndrome a decision ponderee pour codes a convolution
WO2009044031A1 (fr) Procede et dispositif d&#39;encodage de symboles avec un code du type a contrôle de parite et procede et dispositif correspondants de decodage
FR2866998A1 (fr) Decodage et correction d&#39;erreurs pour codes de geometrie algebrique
FR2845220A1 (fr) Procedes et dispositifs pour le decodage des codes de geometrie algebrique a un point
EP2119095A1 (fr) Procede de codage de donnees
WO2009016272A1 (fr) Procédé d&#39;authentification utilisant un décodage de code correcteur d&#39;erreurs à partir d&#39;une matrice publique
FR2865083A1 (fr) Decodage pour code de geometrie algebrique associe a un produit fibre.
FR2785744A1 (fr) Procede et dispositif de codage de sequences de donnees, procede et dispositif de decodage associes
FR2863794A1 (fr) Procedes et dispositifs de localisation d&#39;erreurs pour les codes de geometrie algebrique
US20050210357A1 (en) Channel encoding adapted to error bursts
EP0204635B1 (fr) Procédé de transmission en blocs de mots d&#39;information numérique
FR2891419A1 (fr) Decodage d&#39;une pluralite de flux d&#39;informations codees selon un algorithme de codage par blocs.
EP0204612A1 (fr) Procédé de transmission, avec possibilité de correction de paquets d&#39;erreurs, de messages d&#39;information et dispositifs de codage et de décodage pour la mise en oeuvre de ce procédé
FR2838580A1 (fr) Procedes et dispositifs de faible cout pour le decodage de codes produits
FR2858141A1 (fr) Codage d&#39;informations par codes de reed-solomon raccourcis
FR2873875A1 (fr) Localisation d&#39;erreurs pour codes de geometrie algebrique
FR2880218A1 (fr) Procede de decodage pour codes de geometrie algebrique et dispositif associe
FR2847398A1 (fr) Codes sesqui-rs doubles et leur decodage

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140331