FR2869482A1 - Decoding method for e.g. encoded digital signal reading apparatus, involves calculating associated word, whose corresponding aggregated words according to aggregates are associated aggregated words, in code of length n and dimension k - Google Patents

Decoding method for e.g. encoded digital signal reading apparatus, involves calculating associated word, whose corresponding aggregated words according to aggregates are associated aggregated words, in code of length n and dimension k Download PDF

Info

Publication number
FR2869482A1
FR2869482A1 FR0404358A FR0404358A FR2869482A1 FR 2869482 A1 FR2869482 A1 FR 2869482A1 FR 0404358 A FR0404358 A FR 0404358A FR 0404358 A FR0404358 A FR 0404358A FR 2869482 A1 FR2869482 A1 FR 2869482A1
Authority
FR
France
Prior art keywords
word
code
aggregated
polynomial
decoding
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
FR0404358A
Other languages
French (fr)
Other versions
FR2869482B1 (en
Inventor
Bars Philippe Le
Philippe Piret
Frederic Lehobey
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 FR0404358A priority Critical patent/FR2869482B1/en
Publication of FR2869482A1 publication Critical patent/FR2869482A1/en
Application granted granted Critical
Publication of FR2869482B1 publication Critical patent/FR2869482B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • 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/132Algebraic geometric codes, e.g. Goppa codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

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

Abstract

The method involves calculating, from a received word, aggregated received words according to aggregate regrouping units of localization set. The aggregated word associated in Reed-Solomon code is obtained for each aggregated received word by list decoding method. The associated word, whose corresponding aggregated words according to the aggregates are associated aggregated words, is calculated in a code of length n and dimension k. Independent claims are also included for the following: (A) a data storage system having encoded digital signals recording apparatus, a storage medium and encoded digital signals reading apparatus comprising a decoding device (B) a data telecommunication system having digital signal transmission apparatus and encoded digital signal receiving apparatus (C) a fixed data storage unit comprising computer program code for executing a method of decoding (D) a partially or completely removable data storage unit comprising computer program code for executing a method of decoding (E) a computer program containing instruction for controlling a data processing device for implementing a decoding method.

Description

La présente invention concerne les systèmes de communication ouThe present invention relates to communication systems or

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 décodage, ainsi que les  for recording data in which, in order to improve the fidelity of the transmission or storage, the data is subjected to channel coding. It relates more particularly to a decoding method, as well as

dispositifs et appareils destinés à mettre en oeuvre ce procédé.  devices and apparatus for carrying out this method.

On rappelle que le codage de canal consiste, quand on forme les mots de code envoyés à un récepteur ou enregistrés sur un support de données, à introduire une certaine redondance dans les données. Plus précisément, on transmet, au moyen de chaque mot de code, l'information initialement contenue dans un nombre prédéterminé k de symboles prélevés dans un alphabet de taille finie q; on calcule à partir de ces k symboles d'information un nombre n > k de symboles appartenant à cet alphabet, qui constituent les composantes des mots de code: v = (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.  It is recalled that the channel coding consists, when forming the code words sent to a receiver or recorded on a data medium, to introduce some redundancy into the data. More precisely, the information initially contained in a predetermined number k of symbols taken from a finite-size alphabet q is transmitted by means of each code word; from these k information symbols are computed a number n> k of symbols belonging to this alphabet, which constitute the components of the codewords: v = (v1, v2, ..., vn). The set of code words obtained when each information symbol takes any value in the alphabet, constitutes a kind of dictionary called code of dimension k and length n.

Lorsque la taille q de l'alphabet est une puissance d'un nombre premier, on peut donner à cet alphabet une structure de corps, dit corps de Galois , 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.  When the size q of the alphabet is a power of a prime number, we can give this alphabet a body structure, called Galois body, denoted Fq, whose non-zero elements can be conveniently identified as being equal to each other. to y 'for a corresponding value of i, where i = 1, ..., q 1, and where y is a root (q -1) th primitive of the unit in 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)xn, dite matrice de parité : un mot v de longueur n donné est un mot de code si, et seulement si, il vérifie la relation: H É vT = 0 (où l'exposant T indique la transposition) ; on dit alors que le code est orthogonal à cette matrice H. 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.  In particular, some codes, called linear codes, are such that any linear combination of codewords (with the coefficients taken from the alphabet) is still a codeword. These codes can, conveniently, be associated with a matrix H of dimension (nk) xn, called parity matrix: a word v of given length n is a code word if, and only if, it verifies the relation: H EVt = 0 (where the exponent T indicates the transposition); it is said that the code is orthogonal to this matrix H. At the receiver, the associated decoding method then judiciously uses this redundancy to detect possible transmission errors and if possible correct them. There is a transmission error if the difference e between a received word r and the corresponding code word v sent by the issuer is non-zero.

Plus précisément, le décodage se fait en deux étapes principales.  More precisely, the decoding is done in two main stages.

La première étape consiste à associer au mot reçu un mot de code associé . Différentes méthodes ont déjà été proposées pour réaliser pratiquement cette première étape.  The first step is to associate the received word with an associated code word. Various methods have already been proposed to practically achieve this first step.

Selon une première méthode possible, le décodeur calcule d'abord le vecteur de syndromes d'erreurs s = H É rT = H É eT de longueur (n - k) , puis détermine une valeur estimée ê de l'erreur e de telle sorte que (r.--ê_) soit un 10 mode de code. Le vecteur (r - ê) constitue alors le mot de code associé.  According to a first possible method, the decoder first calculates the vector of error syndromes s = H E rT = H E eT of length (n - k), then determines an estimated value e of the error e in such a way that that (r) is a code mode. The vector (r - ê) then constitutes the associated code word.

Une méthode alternative pour réaliser la première étape consiste à rechercher tous les mots de code v qui sont situés à une distance de Hamming prédéterminée du mot reçu r. (On rappelle que la distance de Hamming est par définition le nombre de composantes où deux mots de même longueur possèdent un symbole différent.) Cette méthode est généralement dénommée décodage par liste ( //st decoding en anglais), puisque l'on obtient en général une liste de mots de code v qui répondent à cette définition.  An alternative method for performing the first step is to search for all code words v that are located at a predetermined Hamming distance from the received word r. (Remember that the Hamming distance is by definition the number of components where two words of the same length have a different symbol.) This method is generally called list decoding (// st decoding in English), since we obtain in general a list of code words v that meet this definition.

Selon les différents modes de mise en oeuvre envisageables, on pourra alors choisir le mot de code associé au mot reçu r parmi les mots de code de la liste au moyen d'un critère supplémentaire, ou bien considérer tous les mots de code ainsi obtenus dans la suite du traitement.  According to the different possible embodiments, it will then be possible to choose the code word associated with the received word r among the code words of the list by means of an additional criterion, or to consider all the codewords thus obtained in following the treatment.

La seconde étape consiste simplement à inverser le procédé de codage, ce qui permet d'obtenir la suite des k symboles initiaux (avant codage) si les erreurs de transmission ont été correctement corrigées.  The second step is simply to invert the coding process, which makes it possible to obtain the sequence of k initial symbols (before coding) if the transmission errors have been correctly corrected.

Lorsqu'on utilise une méthode de décodage par liste et qu'aucun choix parmi les différents mots de code de la liste n'a été effectué au préalable, on inverse le procédé de codage pour tous les mots de code de la liste et on obtient ainsi une pluralité de suites de k symboles possibles, parmi lesquelles on peut choisir celle qui vérifie un critère prédéterminé.  When using a list decoding method and no choice among the different code words of the list has been made beforehand, we reverse the coding process for all code words in the list and we get and a plurality of sequences of k possible symbols, from which one can choose the one that satisfies a predetermined criterion.

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.  Note that in the context of the present invention, we will often talk, for short, decoding to designate only the first of these steps, it being understood that the skilled person is able without difficulty to implement the second step.

Un paramètre important dans la caractérisation d'un code est sa distance minimale d, qui peut être définie comme la plus petite distance de Hamming entre deux mots différents de ce 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.  An important parameter in the characterization of a code is its minimum distance d, which can be defined as the smallest Hamming distance between two different words of this code. More precisely, it is in principle possible to find the position of possible errors in a received word, and to provide the correct replacement symbol (ie, identical to that sent by the sender) for each of these positions, whenever the number of erroneous positions is at most equal to INT [(d -1) / 2] (where INT denotes the integer part) for a minimum distance code d (for certain error configurations, it is possible to even sometimes do better). In any case, however, it is only a matter of principle, since it is often difficult to develop a decoding algorithm that achieves this performance. It will also be noted that, when the chosen algorithm manages to propose a correction for the received word, this correction is all the more reliable (at least, for most transmission channels) that it concerns a smaller number of positions. .

Parmi les codes connus, on peut citer les codes dits de Reed-Solomon , qui sont réputés pour leur efficacité. Ce sont des codes linéaires dont la distance minimale d est égale à (n-k+l) lorsqu'ils ne sont pas étendus. La matrice de parité H du code de Reed-Solomon de dimension k et de longueur n (où n est nécessairement égal à (q-1) ou à un diviseur de (q -1)) est une matrice à (n - k) lignes et à n colonnes, qui a la structure d'une matrice de Vandermonde. Cette matrice de parité H peut être définie par exemple en prenant H1 = a'1-1) (1 <_ i < n - k, 1 j s n) , où a est une racine n eme de l'unité dans Fq; on peut alors étiqueter la composante vj, où 1 < j n, de tout mot de code v = (v1, v2, ...,vn) au moyen de l'élément a''-1) de Fq; c'est pourquoi un ensemble tel que (1,a, a2,...,an-1) est appelé ensemble de localisation ( locating set en anglais) du code de Reed-Solomon.  Known codes include the so-called Reed-Solomon codes, which are known for their effectiveness. These are linear codes whose minimum distance d is equal to (n-k + l) when they are not extended. The parity matrix H of the Reed-Solomon code of dimension k and of length n (where n is necessarily equal to (q-1) or to a divisor of (q -1)) is a matrix at (n - k) lines and with n columns, which has the structure of a Vandermonde matrix. This parity matrix H can be defined for example by taking H1 = a'1-1) (1 <_ i <n - k, 1 j s n), where a is a root n of the unit in Fq; we can then label the component vj, where 1 <j n, of any code word v = (v1, v2, ..., vn) by means of the element a '' - 1) of Fq; this is why a set such that (1, a, a2, ..., an-1) is called the locating set in English of the Reed-Solomon code.

Il est par ailleurs connu qu'un tel code de Reed-Solomon peut être défini de manière équivalente comme suit: l'ensemble des mots du code de ReedSolomon est l'ensemble des mots (p(1), p(a), p(a2) ..., p(a -' )) lorsque p parcourt l'ensemble des polynômes de degré au plus (k -1) sur Fq.  It is furthermore known that such a Reed-Solomon code can be equivalently defined as follows: the set of words of the Reed Solomon code is the set of words (p (1), p (a), p (a2) ..., p (a - ')) when p traverses the set of polynomials of degree at most (k -1) on Fq.

Pour le décodage des codes de Reed-Solomon, on utilise couramment l'algorithme dit de Berlekamp-Massey pour la localisation des erreurs et l'algorithme dit de Forney pour la correction des erreurs.  For the decoding of Reed-Solomon codes, the Berlekamp-Massey algorithm for error localization and the Forney algorithm for error correction are commonly used.

Une alternative à ces méthodes, qui applique le décodage par liste aux codes de Reed-Solomon, a été proposée par M. Sudan dans son article Decoding of Reed Solomon Codes beyond the Error-Correction Bound , (Academic Press, 1997).  An alternative to these methods, which applies list decoding to Reed-Solomon codes, was proposed by Dr. Sudan in his article Decoding of Reed Solomon Codes beyond the Error-Correction Bound, (Academic Press, 1997).

Selon cet article, le problème du décodage par liste d'un mot reçu r = (r1, r2, ..., r ) revient à la recherche de l'ensemble des polynômes f de degré au plus (k -1) sur Fq qui génèrent un mot de code (f (1), f (a), f (a2) ..., f (a ^ )) situé dans un rayon ô du mot reçu r au sens de la distance de Hamming.  According to this article, the problem of the decoding by list of a received word r = (r1, r2, ..., r) returns to the search for the set of polynomials f of degree at most (k -1) on Fq which generate a code word (f (1), f (a), f (a2) ..., f (a ^)) situated in a radius δ of the received word r in the sense of the Hamming distance.

Le problème du décodage par liste se ramène donc au problème 15 suivant: rechercher l'ensemble des polynômes f de degré au plus (k -1) sur Fq, pour lesquels le nombre de composantes i telles que f(a'-') = r, est au moins égal à (n-5). Il s'agit donc d'un problème d'interpolation puisque l'on recherche des polynômes f qui vérifient f (x) = y pour au moins (n-8) couples (x, y) . Pour résoudre ce problème d'interpolation de manière pratique, l'article de M. Sudan propose de rechercher un polynôme Q(X,Y) (où X et Y sont des éléments de Fq) qui s'annule en tout point (a'-',r;), pour i entre 1 et n, puis de factoriser le polynôme Q(X,Y) en facteurs irréductibles, afin de trouver des facteurs de la forme (y - f (x)) . Les fonctions f ainsi obtenues sont candidates à la solution du problème d'interpolation puisqu'elles vérifient r; - f(a'-') = 0 pour certaines valeurs de i au moins.  The problem of decoding by list therefore reduces to the following problem: find the set of polynomials f of degree at most (k -1) on Fq, for which the number of components i such that f (a'- ') = r, is at least equal to (n-5). It is therefore an interpolation problem since we are looking for polynomials f which satisfy f (x) = y for at least (n-8) pairs (x, y). To solve this problem of interpolation in a practical way, the article by M. Sudan proposes to look for a polynomial Q (X, Y) (where X and Y are elements of Fq) which vanishes in every point (a ' - ', r;), for i between 1 and n, then to factorize the polynomial Q (X, Y) into irreducible factors, in order to find factors of the form (y - f (x)). The functions f thus obtained are candidates for the solution of the interpolation problem since they satisfy r; - f (a'- ') = 0 for some values of i at least.

Naturellement, la connaissance d'au moins un polynôme f solution du problème d'interpolation permet d'obtenir aisément le mot de code correspondant ( f (1), f (a), f (a2) ..., f (a -' )), qui peut donc être utilisé comme mot de code associé au mot reçu r.  Naturally, knowledge of at least one polynomial solution of the interpolation problem makes it easy to obtain the corresponding code word (f (1), f (a), f (a2). ')), which can be used as a codeword associated with the received word r.

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 10 mots de code de grande longueur, on doit envisager de grandes valeurs de q, ce qui conduit à des mises en oeuvre coûteuses au niveau des calculs et de la mémorisation. De plus, de grandes valeurs de q sont parfois inadaptées à l'application technique envisagée. C'est pourquoi l'on a cherché à construire des codes offrant de manière naturelle une plus grande longueur de mots que les codes de Reed-Solomon sans nécessiter pour autant un alphabet de plus grande taille.  In modern information media, such as computer hard drives, CDs (compact discs) or DVDs (digital video discs), there is an attempt to increase the density of information. When such media is affected by a physical defect such as a scratch, a large number of information symbols may be rendered illegible. However, this problem can be remedied by using a very long code. However, as indicated above, the length n of the words in the Reed-Solomon codes is less than the size q of the symbol alphabet. Therefore, if one wishes to have a Reed-Solomon code having long codewords, large values of q should be considered, which leads to expensive calculations and of memorization. In addition, large values of q are sometimes unsuitable for the intended technical application. This is why we have tried to build codes that naturally offer a greater length of words than Reed-Solomon codes without requiring a larger alphabet.

On a notamment proposé récemment des codes dits codes de géométrie algébrique ou codes de Goppa géométriques (voir par exemple l'article de Tom Hoholdt et Ruud Pellikaan intitulé On the Decoding of Algebraic-Geometric Codes , IEEE Trans. Inform. Theory, vol. 41 n 6, pages 1589 à 1614, novembre 1995). Ces codes sont construits à partir d'un ensemble de n couples (x, y) de symboles appartenant à un corps de Galois Fq choisi; cet ensemble de couples constitue l'ensemble de localisation du code de géométrie algébrique. En général, 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 Pfl (où /3=1,...,n) formant une courbe algébrique .  In particular, we have recently proposed codes called algebraic geometry codes or geometric Goppa codes (see for example the article by Tom Hoholdt and Ruud Pellikaan entitled On the Decoding of Algebraic-Geometric Codes, IEEE Trans. No. 6, pages 1589 to 1614, November 1995). These codes are constructed from a set of n pairs (x, y) of symbols belonging to a selected Galois field Fq; this set of couples constitutes the set of location of the algebraic geometry code. In general, there exists an algebraic equation with two unknowns X and Y such that the pairs (x, y) of this set of localization are all solutions of this algebraic equation. The values of x and y of these pairs can be considered as the coordinates of points Pfl (where /3 = 1, ..., n) forming an algebraic curve.

Un paramètre important d'une telle courbe est son genre g.  An important parameter of such a curve is its genus g.

Dans le cas particulier où la courbe est une simple droite (le genre g est alors 2869482 6 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+2g J), 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.  In the particular case where the curve is a straight line (the genus g is then zero), the algebraic geometry code is reduced to a Reed-Solomon code. For q and g given, some algebraic curves, called maximum, allow to reach a length equal to (q + 2g J), which can be very high; for example, with an alphabet size of 256 and a gender of 120, code words of length 4096 are obtained.

Dans le cadre de la présente invention, on s'intéresse à une classe très générale de codes contenant les codes de géométrie algébrique: ces codes, dont on trouvera un exemple décrit en détail ci-dessous, sont définis par 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 . 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 pi < 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, les monômes ha (pour a =1,...,n-k) ayant tous un poids distinct. L'élément en ligne a et colonne fi de la matrice de parité est égal au monôme ha évalué en un point PP (où fi =1,...,n) d'un ensemble de couples de FgxFq, qui constitue donc l'ensemble de localisation du code. Chaque point Pjg sert alors à identifier la fi ème composante de tout mot de code.  In the context of the present invention, we are interested in a very general class of codes containing the codes of algebraic geometry: these codes, an example of which is described in detail below, are defined by a parity matrix of the following way. At any monomer Y'X, where i and j are positive or null integers, we associate a weight. If, for an integer p 0, there exists at least one monomial whose weight is p, we say that p is a realizable weight. Let pi <P2 <eE <Pn_k be the (nk) smaller weights that are realizable, and let ha (where a = 1, ..., nk) be a monome of weight pa, the monomials ha (for a = 1 ,. .., nk) all having a distinct weight. The inline element a and column fi of the parity matrix is equal to the monomial ha evaluated at a point PP (where fi = 1, ..., n) of a set of pairs of FgxFq, which therefore constitutes the set of code localization. Each point Pjg then serves to identify the fi th component of any code word.

Comme tous les codes, les codes de géométrie algébrique peuvent être modifiés et/ou raccourcis . On dit qu'un code donné Cmod est une version modifiée du code C s'il existe une matrice diagonale carrée non- singulière A telle que chaque mot de Cmod est égal à v É A avec v dans C. On dit qu'un code donné est une version raccourcie du code C s'il ne comprend que les mots de C dont, pour un nombre R de positions prédéterminées, les composantes sont toutes nulles: ces positions étant connues du récepteur, on peut se dispenser de les transmettre, de sorte que le code raccourci est de longueur (n R). En particulier, il est courant de raccourcir un code de géométrie algébrique en supprimant de l'ensemble de localisation, le cas échéant, un point, ou plusieurs points, dont la coordonnée x est nulle.  Like all codes, algebraic geometry codes can be modified and / or shortened. We say that a given code Cmod is a modified version of the code C if there exists a non-singular square diagonal matrix A such that each word of Cmod is equal to v É A with v in C. It is said that a code given is a shortened version of the code C if it understands only the words of C of which, for a number R of predetermined positions, the components are all null: these positions being known of the receiver, one can dispense with transmitting them, of so that the shortened code is of length (n R). In particular, it is common to shorten an algebraic geometry code by removing from the location set, if necessary, a point, or several points, whose x coordinate is zero.

Les codes de géométrie algébrique sont avantageux quant à leur distance minimale d, qui est au moins égale à (n - k + l - g), et, comme on l'a dit, quant à la longueur des mots de code, mais ils présentent l'inconvénient de requérir des algorithmes de décodage assez complexes, et donc assez coûteux en termes d'équipements (logiciel et/ou matériel) et de temps de traitement. Cette complexité est en fait plus ou moins grande selon l'algorithme considéré, une plus grande complexité étant en principe le prix à payer pour accroître la capacité de correction d'erreurs du décodeur (voir par exemple l'article de T. Hoholdt et R. Pellikaan cité ci-dessus). De manière générale, plus la courbe algébrique utilisée est de genre g élevé et plus les mots de code sont de grande longueur, mais aussi plus le décodage est complexe.  The algebraic geometry codes are advantageous as to their minimum distance d, which is at least equal to (n - k + 1 - g), and, as said, as to the length of the codewords, but they have the disadvantage of requiring quite complex decoding algorithms, and therefore quite expensive in terms of equipment (software and / or hardware) and processing time. This complexity is in fact greater or lesser depending on the algorithm considered, a greater complexity being in principle the price to pay to increase the decoder error correction capacity (see for example the article by T. Hoholdt and R Pellikaan quoted above). In general, the higher the algebraic curve used, the longer the codewords are, and the more complex the decoding.

Comme pour les codes de Reed-Solomon, des méthodes de décodage d'un mot reçu r = (rl,r2, ...,rn) ont déjà été proposées qui utilisent un algorithme de localisation d'erreurs puis un algorithme de correction d'erreurs.  As for the Reed-Solomon codes, methods for decoding a received word r = (r1, r2, ..., rn) have already been proposed that use an error localization algorithm and then a correction algorithm. errors.

Ce type de méthodes est par exemple décrit dans l'article de A. N. Skorobogatov et S.G. Vlàdut intitulé On the Decoding of AlgebraicGeometric Codes (IEEE Trans. Inform. Theory, vol. 36 n 5, pages 1051 à 1060, novembre 1990) pour la localisation d'erreurs et l'article A Generalized Forney Formula for Algebraic Geometric Codes , de Douglas A. Leonard (IEEE Trans. Inform. Theory, vol. 42, n 4, pages 1263 à 1268, juillet 1996) pour la correction d'erreurs.  This type of method is described, for example, in the article by AN Skorobogatov and SG Vladut entitled On the Decoding of Algebraic Geometric Codes (IEEE Trans., Theory, Vol 36 No. 5, pages 1051-1060, November 1990) for localization. and A Generalized Formula for Algebraic Geometric Codes, Douglas A. Leonard (IEEE Trans., Theory, 42, 4, pages 1263-1268, July 1996) for error correction. .

Ces algorithmes sont en général complexes à mettre en oeuvre, notamment du fait qu'ils comprennent la multiplication de polynômes à deux variables, en plus de multiplications formelles dans Fq.  These algorithms are generally complex to implement, in particular because they include the multiplication of two-variable polynomials, in addition to formal multiplications in Fq.

Pour essayer de bénéficier des avantages propres au décodage de liste, il a été proposé d'appliquer la méthode de décodage par liste aux codes de géométrie algébrique. Les principes de cette méthode de décodage sont décrits dans l'article Improved Decoding of Reed-Solomon and AlgebraicGeometry Codes de V. Guruswami et M. Sudan (IEEE Trans. Inform. Theory, vol. 45, n 6, septembre 1999).  In order to try to benefit from the advantages proper to list decoding, it has been proposed to apply the method of list decoding to algebraic geometry codes. The principles of this decoding method are described in V. Guruswami's Improved Decoding of Reed-Solomon and AlgebraicGeometry Codes, and M. Sudan (IEEE Trans., Theory, Vol 45, No. 6, September 1999).

Une méthode de décodage par liste qui reprend ces principes et précise les techniques d'interpolation utilisées est par ailleurs décrite dans l'article Decoding Hermitian codes with Sudan's algorithm de T. Hoholdt et R. Refslund Nielsen (Applied Algebra, Algebraic Algorithm and Error Correcting Codes Lecture notes in computer science, Springer Verlag 1999).  A list decoding method which incorporates these principles and specifies the interpolation techniques used is also described in the article Decoding Hermitian codes with Sudan's algorithm by T. Hoholdt and R. Refslund Nielsen (Applied Algebra, Algebraic Algorithm and Error Correcting Codes reading notes in computer science, Springer Verlag 1999).

Par analogie avec la méthode d'interpolation utilisée pour les codes 5 de Reed-Solomon, les techniques proposées dans ces articles incluent la recherche d'un polynôme Q(X,Y,Z), où X, Y et Z sont des éléments de Fq, qui s'annule en tout point (PQ,re.) pour,6=1,...,n, puis la factorisation du polynôme Q(X,Y,Z). (On rappelle que les r, sont les composantes du mot reçu r et que les points P)g de Fq2 forment l'ensemble de localisation du code.) Ces techniques s'avèrent toutefois lourdes à mettre en oeuvre, notamment du fait que le polynôme Q(X,Y,Z) à factoriser est un polynôme à trois variables prenant leurs valeurs dans un corps de Galois. Les méthodes de décodage par liste ne semblaient donc pas apporter de solution au problème du décodage des codes de géométrie algébrique qui soit réaliste sur le plan pratique.  By analogy with the interpolation method used for Reed-Solomon codes 5, the techniques proposed in these articles include the search for a polynomial Q (X, Y, Z), where X, Y and Z are elements of Fq, which vanishes in every point (PQ, re) for, 6 = 1, ..., n, then the factorization of the polynomial Q (X, Y, Z). (Recall that the r, are the components of the received word r and that the points P) g of Fq2 form the set of localization of the code.) These techniques prove however cumbersome to implement, in particular because the polynomial Q (X, Y, Z) to factorize is a polynomial with three variables taking their values in a Galois body. The list decoding methods therefore did not seem to provide a solution to the problem of decoding the algebraic geometry codes that is practically realistic.

Dans ces conditions, l'invention propose un procédé de décodage pour code de longueur n et de dimension k sur un corps de Galois Fq, le code étant défini au moyen d'un ensemble de localisation de cardinal n sur Fq x Fq, caractérisé en ce que, l'ensemble de localisation comprenant au moins p sous-ensembles dits agrégats, où ,u 2, chaque agrégat regroupant les éléments (x, y p (x)) de l'ensemble de localisation ayant une valeur commune de x, pour p= 0, (x) -1, où ,,(x) est le cardinal de l'agrégat, il comprend les étapes suivantes: - calcul, à partir d'un mot reçu r, de mots reçus agrégés rf selon lesdits p agrégats; - pour chaque mot reçu agrégé ri, obtention d'au moins un mot agrégé associé r; dans un code de Reed-Solomon par une méthode de décodage par liste; - calcul d'au moins un mot associé dans le code de longueur n et de dimension k, dont les mots agrégés correspondants selon lesdits,u agrégats sont les mots agrégés associés Ej Afin de résoudre notamment les problèmes évoqués ci-dessus, l'invention propose donc d'utiliser un code dont l'ensemble de localisation peut être divisé en sous-ensembles appelés agrégats . Par définition, un agrégat regroupe les couples (x, y) de l'ensemble de localisation ayant une valeur commune de x (on aurait pu tout aussi bien définir les agrégats par une valeur commune de y en échangeant les rôles des inconnues X et Y de l'équation représentant la courbe algébrique sur laquelle est définie le code). Lorsque l'on souhaite faire apparaître cette structure en agrégats, les couples de l'ensemble de localisation (qui n'est d'ailleurs pas nécessairement un ensemble de solutions d'une équation algébrique de type C(a,b)) seront notés (x, yp (x)) , où p = 0,...,2(x) -1 et 2(x) est le cardinal de l'agrégat considéré, et les composantes de tout mot c de longueur n seront notées c(x, yp(x)) ; on dira que les composantes de c qui, étiquetées de la sorte, possèdent la même valeur de x forment un agrégat de composantes du mot c L'invention propose ainsi un procédé et un dispositif de décodage dont la complexité est réduite. Par complexité, on entend ici le nombre d'opérations nécessaires à la réalisation du décodage, ou, dans le cas d'une réalisation dans un circuit de décodage, le nombre de portes logiques nécessaires à sa réalisation.  Under these conditions, the invention proposes a decoding method for code of length n and of dimension k on a Galois field Fq, the code being defined by means of a set of localization of cardinal n on Fq x Fq, characterized in that, the location set comprising at least p subsets called aggregates, where, u 2, each aggregate grouping the elements (x, yp (x)) of the location set having a common value of x, for p = 0, (x) -1, where ,, (x) is the cardinal of the aggregate, it comprises the following steps: - calculation, from a received word r, of aggregated received words rf according to said p aggregates; for each received received word ri, obtaining at least one associated aggregated word r; in a Reed-Solomon code by a list decoding method; calculating at least one associated word in the code of length n and of dimension k, whose corresponding aggregated words according to said aggregates are the associated aggregated words Ej In order to solve, in particular, the problems mentioned above, the invention proposes to use a code whose set of localization can be divided into subsets called aggregates. By definition, an aggregate groups the pairs (x, y) of the localization set with a common value of x (we could have defined the aggregates as well by a common value of y by exchanging the roles of the unknowns X and Y of the equation representing the algebraic curve on which the code is defined). When we want to make this structure appear in aggregates, the pairs of the localization set (which is not necessarily a set of solutions of an algebraic equation of type C (a, b)) will be noted. (x, yp (x)), where p = 0, ..., 2 (x) -1 and 2 (x) is the cardinal of the considered aggregate, and the components of any word c of length n will be denoted c (x, yp (x)); it will be said that the components of c which, labeled in this way, have the same value of x form an aggregate of components of the word c. The invention thus proposes a method and a decoding device whose complexity is reduced. By complexity, here means the number of operations required to perform the decoding, or, in the case of an embodiment in a decoding circuit, the number of logic gates necessary for its implementation.

Selon une solution pratique à mettre en oeuvre, le code est défini par une matrice de parité H dont les éléments Haa pour 1 <, 5 n sont égaux à la valeur prise par un monôme ha = Y'X' sur les points de l'ensemble de localisation, les monômes ha pour 1 a < n k ayant tous un poids distinct.  According to a practical solution to be implemented, the code is defined by a parity matrix H whose elements Haa for 1 <, 5 n are equal to the value taken by a monomer ha = Y'X 'on the points of the set of localization, the monomials ha for 1 a <nk all having a distinct weight.

Le problème du décodage d'un tel code est ramené à une pluralité de décodages pour codes de Reed-Solomon. On peut ainsi bénéficier des avantages offerts par la technique de décodage par liste dont la mise en oeuvre pour des codes de Reed-Solomon est nettement moins complexe que pour les codes de géométrie algébrique.  The problem of decoding such a code is reduced to a plurality of decodings for Reed-Solomon codes. It is thus possible to benefit from the advantages offered by the list decoding technique, the implementation of which for Reed-Solomon codes is much less complex than for the algebraic geometry codes.

On notera également que le système d'équations, qui permet d'obtenir le mot de code associé au mot reçu à partir des mots agrégés associés, est un système de Vandermonde; comme il est bien connu de l'homme du métier, la résolution d'un tel système d'équations linéaires est particulièrement simple.  It will also be noted that the system of equations, which makes it possible to obtain the codeword associated with the word received from the associated aggregated words, is a Vandermonde system; as it is well known to those skilled in the art, the resolution of such a system of linear equations is particularly simple.

Un cas particulier de cette solution est le cas d'un code de géométrie algébrique.  A special case of this solution is the case of an algebraic geometry code.

Ainsi, grâce à l'invention et contrairement à ce que l'on pouvait penser, on peut bénéficier des avantages offerts par la méthode de décodage par liste, sans toutefois souffrir de la lourdeur impliquée par l'utilisation de polynômes à trois variables prenant des valeurs dans un corps Galois.  Thus, thanks to the invention and contrary to what one could think, one can benefit from the advantages offered by the method of decoding by list, without however suffering from the heaviness implied by the use of polynomials with three variables taking values in a Galois body.

La méthode de décodage par liste comprend en général, pour chaque mot reçu agrégé r1, les étapes suivantes: - recherche d'au moins un polynôme f1 sur Fq de degré au plus k1 tel que le nombre de composantes r1(x) du mot reçu agrégé rj pour lesquelles r1 (x) = f1 (x) est au moins égal à un nombre r/l, où k1 est un nombre entier prédéterminé et où rit,u et; - calcul du mot agrégé associé r tel que i-1(x;)= f1(x,) pour tout i entre 1 et,u.  The list decoding method generally comprises, for each received aggregate word r1, the following steps: searching for at least one polynomial f1 over Fq of degree at most k1 such that the number of components r1 (x) of the received word aggregated rj for which r1 (x) = f1 (x) is at least equal to a number r / l, where k1 is a predetermined integer and where rit, u and; calculating the associated aggregated word r such that i-1 (x;) = f1 (x,) for all i between 1 and u.

Le nombre rit est peut être prédéterminé ou correspondre au nombre maximum de composantes pour lesquelles r1(x) = g1 (x) lorsque g1 parcourt l'ensemble des polynômes sur Fq de degré au plus k1.  The number rit may be predetermined or correspond to the maximum number of components for which r1 (x) = g1 (x) when g1 traverses the set of polynomials over Fq of degree at most k1.

Enfin, lorsque l'étape de recherche d'au moins un polynôme fi génère au mois deux polynômes solutions, une mise en oeuvre possible de l'invention consiste à procéder aux étapes suivantes: - pour chaque polynôme solution, calcul d'un mot agrégé associé ; - pour chaque polynôme solution, calcul d'au moins un mot associé 30 en fonction dudit mot agrégé associé calculé pour le polynôme solution; 2869482 11 - comparaison des mots associés calculés pour chaque polynôme solution avec le mot reçu r - sélection du mot associé Y' parmi les mots associés calculés pour chaque polynôme solution.  Finally, when the step of searching for at least one polynomial fi generates at least two solution polynomials, a possible implementation of the invention consists in carrying out the following steps: for each solution polynomial, calculating an aggregate word partner; for each solution polynomial, calculating at least one associated word as a function of said associated aggregated word calculated for the solution polynomial; 2869482 11 - comparison of the associated words calculated for each solution polynomial with the received word r - selection of the associated word Y 'among the associated words calculated for each solution polynomial.

L'invention propose dans le même ordre d'idée un procédé de décodage pour code de longueur n et de dimension k sur un corps de Galois Fq, le code étant défini au moyen d'un ensemble de localisation de cardinal n sur Fq x Fq, caractérisé en ce que, l'ensemble de localisation comprenant au moins,u sous-ensembles dits agrégats, où ,u 2, chaque agrégat regroupant les éléments (x, yp (x)) de l'ensemble de localisation ayant une valeur commune de x, pour p = 0, (x) -1, où .1,(x) est le cardinal de l'agrégat, il comprend les étapes suivantes: - calcul, à partir d'un mot reçu r, de mots reçus agrégés = [ ri(xj), ri (x2),..., ri(xp) j pour j= 0,..., Jmax ' où J,nax 1, selon une formule du type ri (x) = A (x)[r(x, yo (x)),..., r(x, y,I(X,_l (x))] , où A. (x) est une fonction sur FgA(X), - pour chaque mot reçu agrégé ri, recherche d'au moins un polynôme fi sur Fq de degré au plus ki tel que le nombre de composantes ri(x) du mot reçu agrégé ri pour lesquelles ri(x) = fi (x) est au moins égal à un nombre i, où i u - pour chaque mot reçu agrégé ri, calcul d'au moins un mot agrégé associé tel que fi(x;) pour tout i entre 1 et,u - calcul d'au moins un mot de code associé ï^ dont les composantes i '(x, y) sont telles que A; (x,)[N(x;, yo (x y2(x,)_1 (x; ))] = i^i (x;) pour tout i entre 1 et,u et pour tout j entre 0 et jmax Dans le mode de réalisation déjà évoqué ci-dessus et proposé dans la suite, dans lequel la matrice de parité est formée des valeurs prises par les monômes Y'X' sur l'ensemble de localisation, on réunit avantageusement les monômes ayant une même puissance de la variable Y dans des ensembles M; : Mi ={Y'X1 I O <- i 5 (pj -bj)/a} pour 0 < j jmax, ou Imax <a. L'ensemble Mi a donc pour cardinal: t(j) =1+INT [(pi -bj)/aJ.  The invention proposes in the same order of idea a decoding method for code of length n and of dimension k on a Galois field Fq, the code being defined by means of a set of localization of cardinal n on Fq x Fq , characterized in that, the location set comprising at least, u subsets called aggregates, where, u 2, each aggregate grouping the elements (x, yp (x)) of the location set having a common value of x, for p = 0, (x) -1, where .1, (x) is the cardinal of the aggregate, it comprises the following steps: - calculation, from a received word r, of received words aggregates = [ri (xj), ri (x2), ..., ri (xp) j for j = 0, ..., Jmax 'where J, nax 1, according to a formula of the type ri (x) = A (x) [r (x, yo (x)), ..., r (x, y, I (X, l (x))], where A (x) is a function on FgA (X), for each aggregate received word ri, search for at least one polynomial fi over Fq of degree at most ki such that the number of components ri (x) of the aggregate received word ri for which ri (x ) = fi (x) is at least equal to a number i, where iu - for each aggregate received word ri, calculate at least one associated aggregate word such that fi (x;) for any i between 1 and, u - calculating at least one associated code word ï i whose components i '(x, y) are such that A; (x,) [N (x; yo (x y2 (x,) _ 1 (x;))] = i ^ i (x;) for all i between 1 and, u and for all j between 0 and jmax In the embodiment already mentioned above and proposed hereinafter, in which the parity matrix is formed of the values taken by the monomials Y'X 'on the localization set, advantageously brings together the monomials having the same power of the variable Y in sets M ;: Mi = {Y'X1 IO <- i 5 (pj -bj) / a} for 0 <j jmax, or Imax <a. The set Mi thus has for cardinal: t ( j) = 1 + INT [(pi -bj) / aJ.

Notons par x1,x2,...,xp les différentes valeurs de x dans l'ensemble de localisation, et par v = [v(xl, Yo (x1)), ..., v(x1, .ya11 1(x1)),..., v(x, YÂ, 1(xv)) l, un mot de code quelconque. On peut alors construire, pour chaque agrégat attaché à l'une des valeurs x1,x2,...,xp de x, (jmax + 1) symboles agrégés .1.(X)-1 v j (x) {y p (x)] i v(x, y p (x)) P=0 pour j = 0,..., jmax. Ces symboles agrégés servent à former (jm +1) mots agrégés v j = [ v j (xt), v j (x2),..., vi(xp) l de longueur g.  Let x1, x2, ..., xp denote the different values of x in the localization set, and by v = [v (xl, Yo (x1)), ..., v (x1, .ya11 1 ( x1)), ..., v (x, ya, 1 (xv)) 1, any code word. We can then construct, for each aggregate attached to one of the values x1, x2, ..., xp of x, (jmax + 1) aggregated symbols .1. (X) -1 vj (x) {yp (x )] iv (x, yp (x)) P = 0 for j = 0, ..., jmax. These aggregated symbols are used to form (jm +1) aggregated words v j = [v j (xt), v j (x2), ..., vi (xp) l of length g.

On vérifie facilement que la condition d'appartenance au code de géométrie algébrique (à savoir H É vT =o) est équivalente à l'ensemble de ( jmax +1) équations: Ht(.i) . v.T =o, où la fonction t(j) est donnée ci- dessus et, par définition, 1 1 1 x1 X2 t-1 t-1 t-1 x1 x2 x1i - L'intérêt de cette formulation est que cette matrice lit de l'équation est une matrice de Vandermonde définie sur Fq; par conséquent, si on considère H j) comme une matrice de parité définissant des mots de code vi, il s'agit, pour chaque valeur de j, d'un code de Reed-Solomon, pour lequel on connaît des algorithmes de décodage aussi simples que performants.  It is easy to verify that the condition of belonging to the algebraic geometry code (ie H EVt = o) is equivalent to the set of (jmax +1) equations: Ht (.i). vT = o, where the function t (j) is given above and, by definition, 1 1 1 x1 X2 t-1 t-1 t-1 x1 x2 x1i - The interest of this formulation is that this matrix reads of the equation is a matrix of Vandermonde defined on Fq; therefore, if we consider H j) as a parity matrix defining codewords vi, it is, for each value of j, a Reed-Solomon code, for which decoding algorithms are also known. simple than performant.

Dans le mode de réalisation proposé, pour j = 0,...,jmax, les mots reçus agrégés rl = [ri(xI),ri(x2),...,ri(xii) ] s'expriment donc en fonction du mot reçu r par la formule ri (x) _ E [y p (x)]' r(x, y p (x)) (1) p=o La mise en oeuvre de ce procédé de décodage est particulièrement avantageuse pour un certain type de canaux: il s'agit des canaux dans lesquels les données à transmettre sont groupées en blocs de longueur prédéterminée, et dans lesquels le taux d'erreurs par donnée transmise est essentiellement constant au sein d'un même bloc. Autrement dit, de tels canaux sont physiquement caractérisés en ce que, le plus souvent, les bruits de transmission affectent les données par bloc, et peuvent affecter différemment des blocs différents; ainsi, pour certains blocs, la probabilité d'erreur pourra être très faible ou même nulle, cependant que pour certains autres blocs la probabilité d'erreur pourra être élevée et même proche de (q -1)/ q. Cela se traduit par une rafale d'erreurs ( burst of errors en anglais) en termes de symboles du corps de Galois.  In the proposed embodiment, for j = 0, ..., jmax, the aggregated received words rl = [ri (xI), ri (x2), ..., ri (xii)] are therefore expressed as functions of the received word r by the formula ri (x) _E [yp (x)] 'r (x, yp (x)) (1) p = o The implementation of this decoding method is particularly advantageous for a certain type of channels: these are the channels in which the data to be transmitted are grouped into blocks of predetermined length, and in which the error rate per transmitted data is essentially constant within the same block. In other words, such channels are physically characterized in that, most often, transmission noises affect block data, and may differently affect different blocks; thus, for some blocks, the probability of error may be very low or even zero, while for some other blocks the probability of error may be high and even close to (q -1) / q. This translates into a flurry of errors (burst of errors in English) in terms of Galois body symbols.

Un exemple, important dans la pratique industrielle, de canaux de ce 20 type est constitué par l'enregistrement/lecture sur disque dur.  An important example in industrial practice of such channels is hard disk recording / playback.

En effet, les bits composant les symboles des mots de code sont habituellement enregistrés au moyen d'un code de modulation destiné à assurer certaines propriétés spectrales souhaitables, par exemple la propriété selon laquelle le nombre de 1 est, en moyenne, approximativement égal au nombre de 0 . Pour obtenir ce résultat, les bits entrant dans le modulateur sont groupés par blocs a de N bits; en fonction du bilan entre le nombre total de 1 et le nombre total de 0 précédemment enregistrés, un bloc a sera enregistré sur le disque, soit tel quel, soit sous forme de son complément a' (où l'on a changé chaque 1 en un 0 et inversement), de manière à ce que le nouveau bilan soit aussi proche que possible de l'égalité.  Indeed, the bits constituting the symbols of the code words are usually recorded by means of a modulation code intended to ensure certain desirable spectral properties, for example the property according to which the number of 1 is, on average, approximately equal to the number from 0. To obtain this result, the bits entering the modulator are grouped in blocks of N bits; depending on the balance between the total number of 1 and the total number of 0 previously recorded, a block a will be recorded on the disk, either as such, or in the form of its complement a '(where we changed each 1 in a 0 and vice versa), so that the new balance sheet is as close as possible to equality.

Lorsqu'une erreur d'enregistrementllecture se produit sur un bit particulier, l'ambiguïté résultant du codage de modulation fait que l'on ne peut corriger individuellement ce bit, et que l'on doit par conséquent, en pratique, se résoudre à considérer le bloc entier de N bits comme erroné. Comme l'on considère par ailleurs que les bits enregistrés et lus forment des multiplets représentant des symboles d'un corps de Galois, un bloc erroné de N bits sera généralement à cheval sur plusieurs symboles; par exemple, si N=48 et q = 210, un bloc erroné pourra être à cheval sur 6 multiplets de 10 bits successifs, ce qui se traduit par une rafale d'erreurs affectant 6 symboles du corps de Galois.  When a recording error occurs on a particular bit, the ambiguity resulting from the modulation coding means that this bit can not be individually corrected, and therefore, in practice, it must be resolved to consider the entire block of N bits as erroneous. Since it is also considered that the bits recorded and read form bytes representing symbols of a Galois field, an erroneous block of N bits will generally straddle several symbols; for example, if N = 48 and q = 210, an erroneous block can be straddling 6 bytes of 10 successive bits, which results in a burst of errors affecting 6 symbols of the Galois body.

On voit donc que le procédé de décodage proposé qui corrige en premier lieu des agrégats erronés associés au mot reçu et non des composantes individuelles erronées de ce mot, est bien adapté à tirer parti d'une telle répartition du bruit sur un canal de transmission: il suffit pour cela d'insérer en position adjacente dans le flux de données à transmettre les composantes d'un mot de code (de canal) appartenant à un même agrégat.  It can therefore be seen that the proposed decoding method which first corrects erroneous aggregates associated with the received word and not erroneous individual components of this word, is well adapted to take advantage of such a distribution of noise on a transmission channel: it suffices to insert in the adjacent position in the data stream to be transmitted the components of a code word (channel) belonging to the same aggregate.

En revanche, et pour la même raison, le nombre d'erreurs individuelles que l'on peut corriger avec ce procédé peut être inférieur à la capacité de correction d'erreurs théorique du code (comme expliqué ci-dessus, cette capacité théorique est égale à INT[(d -1)/2], où d est la distanceminimale du code de géométrie algébrique considéré). Cela étant, la question se pose de savoir si les codes pouvant bénéficier de ce procédé de décodage souffrent tous de cet inconvénient dans la même mesure.  On the other hand, and for the same reason, the number of individual errors that can be corrected with this method may be less than the theoretical error correction capability of the code (as explained above, this theoretical capacity is equal to INT [(d -1) / 2], where d is the distanceminimal of the algebraic geometry code considered). However, the question arises as to whether the codes that can benefit from this decoding process all suffer from this disadvantage to the same extent.

Naturellement, l'invention concerne également les dispositifs de décodage mettant en oeuvre l'invention.  Naturally, the invention also relates to decoding devices embodying the invention.

Les avantages de ces dispositifs de décodage sont essentiellement les mêmes que ceux des procédés corrélatifs décrits ci-dessus.  The advantages of these decoding devices are essentially the same as those of the correlative methods described above.

L'invention vise également: - un appareil de lecture de signaux numériques codés comprenant un lecteur de données modulées, des moyens pour démoduler lesdites données modulées en signaux numériques codés, et un dispositif de décodage tel que décrit ci-dessus, - un appareil de réception de signaux numériques codés comprenant un récepteur de données modulées, des moyens pour démoduler lesdites données 5 modulées en signaux numériques codés et un dispositif de décodage tel que décrit ci-dessus, - un système de stockage de données comprenant au moins un appareil d'enregistrement de signaux numériques codés, au moins un support d'enregistrement et au moins un appareil de lecture de signaux numériques codés tel que décrit ci-dessus, - un système de télécommunication de données sous forme de blocs de longueur prédéterminée, comprenant au moins un appareil d'émission de signaux numériques et au moins un appareil de réception de signaux numériques codés tel que décrit ci-dessus, - 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 et/ou de communication 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 et/ou de communication 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 et/ou de communication exposés ci-dessus.  The invention also relates to: an encoded digital signal reading apparatus comprising a modulated data reader, means for demodulating said modulated data into coded digital signals, and a decoding device as described above; receiving coded digital signals comprising a modulated data receiver, means for demodulating said coded digital signal modulated data and a decoding device as described above, - a data storage system comprising at least one data storage apparatus recording coded digital signals, at least one recording medium and at least one coded digital signal reading apparatus as described above, - a data communication system in block form of predetermined length, comprising at least one digital signal transmitting apparatus and at least one digital signal receiving apparatus s as described above, - immovable data storage means comprising computer program code instructions for performing the steps of any of the decoding and / or communication methods discussed above; partially or fully removable data storage means having computer program code instructions for performing the steps of any of the decoding and / or communication methods discussed above, and - a program of computer, containing instructions such that, when said program controls a programmable data processing device, said instructions cause said data processing device to implement one of the decoding and / or communication methods set forth above.

Les avantages offerts par ces appareils de lecture ou de réception, ces systèmes de stockage de données ou de télécommunication, ces moyens de stockage de données et ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par les procédés de décodage selon l'invention.  The advantages offered by these reading or receiving devices, these data storage or telecommunication systems, these data storage means and this computer program are essentially the same as those offered by the decoding methods according to the 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 dans le contexte de l'invention, - la figure 2 représente un appareil d'enregistrement de signaux numériques incorporant un exemple de codeur, - la figure 3 représente un appareil de lecture de signaux numériques incorporant un dispositif de décodage selon l'invention, - la figure 4 présente le schéma général de la technique de décodage proposée par l'invention, - la figure 5 illustre un mode de réalisation de la phase d'interpolation proposée par l'invention, - la figure 6 illustre un mode de réalisation de la phase de factorisation proposée par l'invention, - la figure 7 décrit une solution possible lorsque les phases précédentes donnent plusieurs solutions.  Other aspects and advantages of the invention will appear on reading the detailed description below of particular embodiments, given by way of non-limiting examples. The description refers to the accompanying drawings, in which: - Figure 1 is a block diagram of an information transmission system in the context of the invention, - Figure 2 shows a recording apparatus of digital signals incorporating an exemplary encoder, - Figure 3 shows a digital signal reading apparatus incorporating a decoding device according to the invention, - Figure 4 shows the general diagram of the decoding technique proposed by the invention, - FIG. 5 illustrates an embodiment of the interpolation phase proposed by the invention; FIG. 6 illustrates an embodiment of the factorization phase proposed by the invention; FIG. 7 describes a possible solution when the previous phases give several solutions.

La figure 1 est un schéma synoptique d'un système de transmission d'informations utilisant un codage de canal selon l'invention.  FIG. 1 is a block diagram of an information transmission system using channel coding according to the 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.  This system has the function of transmitting information of any kind from a source 100 to a recipient or user 109. First, the source 100 puts this information in the form of symbols belonging to a certain alphabet (for example bits bytes), and transmits these symbols to a storage unit 101, which accumulates the symbols so as to form sets each containing k symbols.

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.  Then, each of these sets is transmitted by the storage unit 101 to an encoder 102 which incorporates redundancy, so as to construct a word of length n belonging to the chosen code.

Les mots de code ainsi formés sont ensuite transmis à un modulateur 103, qui associe à chaque symbole du mot de code un symbole de modulation (par exemple, une série de bits conformément à un code de modulation, comme expliqué ci-dessus). Ensuite, ces symboles de modulation sont transmis à un enregistreur (ou un émetteur) 104, qui insère les symboles dans un canal de transmission. Ce canal peut être par exemple un stockage sur un support adapté tel qu'un DVD ou un disque magnétique ou encore une bande magnétique. Il peut correspondre également à une émission filaire ou nonfilaire comme c'est le cas d'un lien radio.  The code words thus formed are then transmitted to a modulator 103, which associates with each symbol of the code word a modulation symbol (for example, a series of bits according to a modulation code, as explained above). Then, these modulation symbols are transmitted to a recorder (or transmitter) 104, which inserts the symbols into a transmission channel. This channel can be for example a storage on a suitable medium such as a DVD or a magnetic disk or a magnetic tape. It can also correspond to a wire or non-wire transmission as is the case of a radio link.

Le message transmis parvient à un lecteur (ou un récepteur) 105, 5 après avoir été affecté par un bruit de transmission dont l'effet est de modifier ou d'effacer certains des symboles de modulation.  The transmitted message reaches a reader (or receiver) 105, after having been affected by a transmission noise whose effect is to modify or erase some of the modulation symbols.

Le lecteur (ou récepteur) 105 transmet alors ces symboles au démodulateur 106, qui les transforme en symboles de l'alphabet mentionné précédemment. Les n symboles résultant de la transmission d'un même mot de code sont ensuite groupés en un mot reçu dans une unité de correction d'erreurs 107, qui met en oeuvre un procédé de décodage selon l'invention, de manière à fournir un mot de code associé . Puis ce mot de code associé est transmis à une unité de suppression de redondance 108, qui en extrait k symboles d'information en mettant en oeuvre un algorithme de décodage inverse de celui mis en oeuvre par le codeur 102. Enfin, ces symboles d'information sont fournis à leur destinataire 109.  The reader (or receiver) 105 then transmits these symbols to the demodulator 106, which transforms them into symbols of the alphabet mentioned above. The n symbols resulting from the transmission of the same code word are then grouped into a word received in an error correction unit 107, which implements a decoding method according to the invention, so as to provide a word associated code. Then this associated code word is transmitted to a redundancy suppression unit 108, which extracts k information symbols by implementing a decoding algorithm inverse to that implemented by the encoder 102. Finally, these symbols of information is provided to the recipient 109.

On peut considérer que les unités 107 et 108 forment conjointement un décodeur 10.  Units 107 and 108 may be considered together to form a decoder 10.

Le schéma synoptique de la figure 2 représente, de façon très 20 schématique, un appareil d'enregistrement de données d'information 48 incorporant le codeur 102.  The block diagram of FIG. 2 very schematically shows an information data recording apparatus 48 incorporating the encoder 102.

Cet appareil 48 comprend un clavier 911, un écran 909, une source d'informations externe 100, un modulateur 103 et un enregistreur de données modulées 104, conjointement reliés à des ports d'entrée/sortie 903 d'un dispositif de codage 102 qui est réalisé ici sous la forme d'une unité logique.  This apparatus 48 comprises a keyboard 911, a screen 909, an external information source 100, a modulator 103 and a modulated data logger 104, jointly connected to input / output ports 903 of a coding device 102 which is realized here in the form of a logical unit.

Le dispositif de codage 102 comporte, reliés entre eux par un bus d'adresses et de données 902: - une unité centrale de traitement 900, une mémoire vive RAM 904, - une mémoire morte 905, et - lesdits ports d'entrée/sortie 903.  The coding device 102 comprises, interconnected by an address and data bus 902: a central processing unit 900, a random access memory RAM 904, a read only memory 905, and said input / output ports 903.

Chacun des éléments illustrés en figure 2 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments connus ne sont donc pas décrits ici. On observe, cependant, que: - la source d'informations 100 pourrait être, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement de l'information (non représenté), et pourrait par exemple fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia notamment de type IP ou ATM, sous forme de séquences de données binaires, et - l'enregistreur 104 est adapté à enregistrer des données modulées sur un support tel qu'un disque magnétique.  Each of the elements illustrated in Figure 2 is well known to those skilled in the field of microcomputers and transmission systems and, more generally, information processing systems. These known elements are therefore not described here. It is observed, however, that: the information source 100 could be, for example, an interface device, a sensor, a demodulator, an external memory or another information processing system (not shown), and could for example provide signal sequences representative of speech, service messages or multimedia data including IP or ATM type, in the form of binary data sequences, and - the recorder 104 is adapted to record data modulated on a support such as a magnetic disk.

La mémoire vive 904 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. On observera, au passage, que le mot registre désigne, à travers la présente description, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier) au sein d'une mémoire vive ou d'une mémoire morte.  The random access memory 904 stores data, variables and intermediate processing results, in memory registers carrying, in the description, the same names as the data whose values they retain. It will be observed, in passing, that the word register designates, through the present description, both a low capacitance memory area (a few binary data) and a large memory area (for storing an entire program) within 'a RAM or a ROM.

La mémoire vive 904 comporte notamment les registres suivants: - un registre symboles information dans lequel sont conservés les symboles d'information appartenant à Fq, et - un registre mots code , dans lequel sont conservés les mots de code v avant qu'ils ne soient soumis au modulateur 103.  The random access memory 904 comprises in particular the following registers: an information symbol register in which the information symbols belonging to Fq are stored, and a code word register, in which the code words v are stored before they are subject to modulator 103.

La mémoire morte 905 est adaptée à conserver, dans des registres 25 qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent: - le programme de fonctionnement de l'unité centrale de traitement 900, dans un registre programme , - la longueur des mots de code, dans un registre n , - le cardinal du corps de Galois Fq servant d'alphabet pour le code utilisé, dans un registre q , - le nombre de symboles d'information servant à construire un mot de code, dans un registre k , et - la matrice de parité du code, dans un registre H .  The read-only memory 905 is adapted to keep, in registers 25 which, for convenience, have the same names as the data they retain: the operating program of the central processing unit 900, in a program register; the length of the code words, in a register n, - the cardinal of the Galois field Fq serving as an alphabet for the code used, in a register q, - the number of information symbols used to construct a codeword, in a register k, and - the parity matrix of the code, in a register H.

Naturellement, la description qui vient d'être faite ne représente qu'un exemple illustratif et non limitatif de réalisation d'un codeur.  Naturally, the description which has just been made represents only an illustrative and nonlimiting example of embodiment of an encoder.

Le schéma synoptique de la figure 3 représente un appareil de lecture de signaux numériques codés 70 incorporant le décodeur 10. Cet appareil 70 comprend un clavier 711, un écran 709, un destinataire d'informations externe 109, un lecteur de données 105 et un démodulateur 106, conjointement reliés à des ports d'entrée/sortie 703 du décodeur 10 qui est réalisé ici sous la forme d'une unité logique.  The block diagram of FIG. 3 represents a coded digital signal reading device 70 incorporating the decoder 10. This apparatus 70 comprises a keyboard 711, a screen 709, an external information recipient 109, a data reader 105 and a demodulator 106, jointly connected to input / output ports 703 of the decoder 10 which is embodied herein as a logical unit.

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.  The decoder 10 comprises, interconnected by an address and data bus 702: a central processing unit 700, a random access memory (RAM) 704, a read only memory (ROM) 705, and said ports input / output 703.

On observe 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.  It is observed that: the information recipient 109 could be, for example, an interface device, a display, a modulator, an external memory or another information processing system (not shown), and could be adapted to receive sequences of signals representative of speech, service messages or multimedia data, particularly of the IP or ATM type, in the form of binary data sequences, the reader 105 is adapted to read data recorded on a medium such that a magnetic or magneto-optical disk.

La mémoire vive 704 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 704 comporte notamment les registres suivants: des registres mots reçus , dans lesquels sont conservés les mots reçus, - des registres mots agrégés , dans lesquels sont conservés les mots reçus agrégés, - un registre symboles estimés , dans lequel sont conservés les symboles issus d'un mot reçu en cours de correction, - un registre mots associés , dans lequel sont conservés les symboles des mots de code associés , et - un registre symboles information , dans lequel sont conservés les symboles résultant de la suppression de la redondance.  The RAM 704 stores data, variables and intermediate processing results, in memory registers carrying, in the description, the same names as the data whose values they retain. The random access memory 704 comprises in particular the following registers: received word registers, in which the received words are stored, - aggregate word registers, in which the aggregate received words are stored, - an estimated symbol register, in which the symbols are kept derived from a word received during correction, - an associated word register, in which the symbols of the associated code words are stored, and - an information symbol register, in which are kept the symbols resulting from the suppression of the redundancy.

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 , et - le nombre de symboles d'information servant à construire un mot de code, dans un registre k .  The read-only memory 705 is adapted to keep, in registers which, for convenience, have the same names as the data they retain: the operating program of the central processing unit 700, in a program register, the length code words in a register n, - the cardinal of the Galois body Fq serving as an alphabet for the code used, in a register q, and - the number of information symbols used to construct a code word, in a register k.

On remarque que, dans les modes de réalisation où seule une méthode de décodage par liste est utilisée, il n'est pas nécessaire de mémoriser les matrices de parité des codes de Reed-Solomon. En effet, la méthode de décodage par liste utilise les valeurs de l'ensemble de localisation et non la matrice de parité du code, comme nous le verrons dans la suite.  Note that in embodiments where only a list decoding method is used, there is no need to memorize the parity matrices of the Reed-Solomon codes. Indeed, the method of decoding by list uses the values of the set of location and not the parity matrix of the code, as we will see in the following.

La mémorisation de la matrice de parité peut toutefois s'avérer utile, par exemple si l'on souhaite utiliser une méthode combinant le décodage par liste proposé par l'invention et un décodage d'un autre type.  The storage of the parity matrix may, however, be useful, for example if it is desired to use a method combining the list decoding proposed by the invention and a decoding of another type.

On notera que, dans certaines applications, il sera commode d'utiliser le même dispositif informatique (fonctionnant en mode multi-tâches) pour l'échange, c'est-à-dire à la fois l'émission et la réception, de signaux selon l'invention; dans ce cas, les unités 10 et 102 seront physiquement identiques.  It should be noted that in some applications it will be convenient to use the same computing device (operating in multi-tasking mode) for the exchange, i.e. both transmission and reception, of signals according to the invention; in this case, the units 10 and 102 will be physically identical.

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 uvre au sein d'un réseau de télécommunications, auquel cas l'unité 105 par exemple pourrait être un 2869482 21 récepteur adapté à mettre en oeuvre un protocole de transmission de données par paquets sur un canal hertzien.  An application of the invention to the mass storage of data has been described above by way of example, but it is clear that the methods according to the invention can equally well be implemented within a network of data. telecommunications, in which case the unit 105 for example could be a receiver adapted to implement a packet data transmission protocol on a radio channel.

On va à présent décrire à titre d'illustration un exemple de réalisation de l'invention dans le cas d'un code de géométrie algébrique particulier.  An exemplary embodiment of the invention will now be described by way of illustration in the case of a particular algebraic geometry code.

On considère ici un code de géométrie algébrique sur F16 basé sur la courbe algébrique C(2,5) dans F16xF16 représentée par l'équation f(X,Y) = 0 avec f(X,Y) =Y2 +Y +X5 Les points de la courbe C(2,5) (c'est-à-dire les couples (x, y) solutions de l'équation f(X,Y) = 0) constituent donc l'ensemble de localisation du code.  We consider here an algebraic geometry code on F16 based on the algebraic curve C (2.5) in F16xF16 represented by the equation f (X, Y) = 0 with f (X, Y) = Y2 + Y + X5 points of the curve C (2,5) (that is to say the pairs (x, y) solutions of the equation f (X, Y) = 0) thus constitute the set of localization of the code.

Dans le cas présent, l'équation Y2+Y+X5 =0 a trente solutions non triviales dans F16xF16 qui sont les suivantes: (1,a), (1,a10), (a,a), (a,a4), (a2,a), (a2,a), (a3,a5), (a3,a1), (a4,a1), (a4,(y.4), (a5,a) , (a5,(2), (a6,a), (a6,a10), (a7,a), (a7,a4), (a8,(12), (12, a,'), (a9,a5), (a9,a1), (a1o,a), (a10 a4) (a11 a)(a11 a)(a12 a), (a12,a1), (a13,a), (a13 a4) (a14,a2), (a14,a8), où a est l'élément générateur de F16 tel que a4+a+1=0.  In the present case, the equation Y2 + Y + X5 = 0 has thirty non-trivial solutions in F16xF16 which are the following: (1, a), (1, a10), (a, a), (a, a4) , (a2, a), (a2, a), (a3, a5), (a3, a1), (a4, a1), (a4, (y4), (a5, a), (a5, ( 2), (a6, a), (a6, a10), (a7, a), (a7, a4), (a8, (12), (12, a, '), (a9, a5), (a9 , a1), (a1o, a), (a10 a4) (a11a) (a11a) (a12a), (a12, a1), (a13, a), (a13a4) (a14, a2), a14, a8), where a is the generating element of F16 such that a4 + a + 1 = 0.

L'ensemble de localisation peut donc ici être divisé en,u =15 agrégats qui regroupent chacun les points (x, y) ayant une valeur commune de x. Dans le cas présenté ici, le cardinal de chaque agrégat est égal à 2.  The location set can here be divided into, u = 15 aggregates each grouping the points (x, y) having a common value of x. In the case presented here, the cardinal of each aggregate is equal to 2.

En reprenant une formulation plus générale, si xi,...,x sont les valeurs de x associées respectivement à chaque agrégat (ici x, = a'd), le ieme agrégat se compose de 2(x,) éléments (ici /1,(x1) = 2) : (x, , yo (x, )),.  Taking a more general formulation, if xi, ..., x are the values of x associated respectively with each aggregate (here x, = a'd), the ith aggregate consists of 2 (x,) elements (here / 1, (x1) = 2): (x,, yo (x,)) ,.

, (x, , y2(X, )_1 (x, ))...DTD: On peut donc définir un code de géométrie algébrique de longueur n = 30 et de dimension k = 20 par une matrice de parité H de dimensions n = 30,n- k =10 dont les éléments sont définis comme suit: 25),J(I,P) = pour i =1, u, p = 0,..., /1.(x,) -1, j = 0,..., Jmax et z = 0,...,t( j)-1 i-1 où 1(-z-, j) = z+Et(l) pour j>1 etI(z,0) = , f=o et J (i, p) = i + ,u. p. La fonction t utilisée est celle définie plus haut: elle définie le nombre de monômes de la forme Y'XT à j fixé. Par ailleurs, on a supposé pour simplifier les notations que tous les agrégats ont le même cardinal /t(x,) = comme c'est le cas dans l'exemple étudié ici.  , (x,, y2 (X,) _1 (x,)) ... DTD: We can therefore define an algebraic geometry code of length n = 30 and dimension k = 20 by a parity matrix H of dimensions n = 30, n-k = 10 whose elements are defined as follows: 25), J (I, P) = for i = 1, u, p = 0, ..., /1.(x,) -1 , j = 0, ..., Jmax and z = 0, ..., t (j) -1 i-1 where 1 (-z-, j) = z + Et (l) for j> 1 and I ( z, 0) =, f = o and J (i, p) = i +, u. p. The function t used is the one defined above: it defines the number of monomials of the form Y'XT to j fixed. On the other hand, it has been assumed to simplify the notations that all the aggregates have the same cardinal / t (x,) = as is the case in the example studied here.

La matrice de parité H est donc formée par l'évaluation d'un monôme Y'XT associé à chaque ligne sur chaque point de l'ensemble de localisation, chaque point étant associé à une colonne.  The parity matrix H is thus formed by the evaluation of a monomer Y'XT associated with each line on each point of the location set, each point being associated with a column.

Dans la matrice de parité H obtenue précisément selon la formule cidessus, les lignes associées aux monômes Y'XT d'une même puissance j sont avantageusement regroupées et classées suivant l'ordre des puissances z. De même, les colonnes sont regroupées en sous-ensemble de colonnes, de telle manière que chaque sous-ensemble contient une et une seule colonne associée à chaque agrégat; par ailleurs, dans chaque sous-ensemble de colonnes, les colonnes sont classées dans l'ordre des agrégats (x,,...,xp) .  In the parity matrix H obtained precisely according to the formula above, the lines associated with the monomials Y'XT of the same power j are advantageously grouped and classified according to the order of the powers z. Similarly, the columns are grouped into a subset of columns, so that each subset contains one and only one column associated with each aggregate; moreover, in each subset of columns, the columns are classified in the order of the aggregates (x ,, ..., xp).

En utilisant des matrices H de la forme 1 1 1 Ht XI X2.. Xp, la matrice de parité H peut donc s'écrire t-1 t-1 t-1 x1 x2 x -  By using matrices H of the form 1 1 1 Ht XI X2 .. Xp, the parity matrix H can thus be written t-1 t-1 t-1 x1 x2 x -

__

H 0) - Ht(0) Ht(0) Ht(1).Y Ht(').y 1 Ht (Jmax) Y0 max t(lmax) y Jmax Ht(Jmax) ylmax où chaque Yp est une matrice diagonale d'éléments diagonaux (.vp (x1),..., y p (x,) ).  ## EQU1 ## where each Yp is a diagonal matrix of diagonal elements (.vp (x1), ..., yp (x,)).

Dans l'exemple étudié ici, la matrice de parité H peut donc s'écrire H6 H6 avec pour H6 la matrice suivante H4Y0 H4Y H= H1(').Yo H= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a a2 a3 a4 as a6 a7 as a9 a' a" a'2 a'3 a'4 1 a2 a4 a6 a8 a' a'2 a'4 a a3 as a7 a9 a'1 a13 1 a3 a6 a9 a12 1 a3 a6 a9 a12 1 a3 a6 a9 a12 1 a4 a8 a12 a as a9 a'3 a2 ab a' a14 a3 a7 al] 1 a5 a10 1 a5 a10 1 a a5 1 a5 as 1 a5 a5 1 1 H4 la matrice suivante 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a a2 a3 a4 a5 a6 a7 a8 a9 a' a" a'2 a'3 a'4 1 a2 a4 a6 a8 a' a'2 a14 a a3 a5 a7 a9 al' a'3 1 a3 a6 a9 a12 1 a3 a6 a9 a12 1 a3 a6 a9 a12 et les diagonales respectives de Y et y étant (a5, a, a2, a5,a, a2, a5, a a2 5,a, a2 a5 a a2) et (a1 a4 a8 a10 a4 as a10 a4 as a10 a4 a8 a10 a4 as).  In the example studied here, the parity matrix H can thus be written H6 H6 with the following matrix for H6 H4Y0 H4Y H = H1 (') Yo H = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a a2 a3 a4 a6 a7 a9 a aa a2 a3 a4 a2 a4 a6 a8 a2 a4 a3 a7 a9 a1 a13 1 a3 a6 a9 a12 1 a3 a6 a9 a12 1 a3 a6 a9 a12 1 a4 a8 a12 a as a9 a'3 a2 ab a 'a14 a3 a7 al] 1 a5 a10 1 a5 a10 1 a a5 a5 as 1 a5 a5 1 1 H4 following matrix 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a a2 a3 a4 a5 a6 a7 a8 a9 a 'a "a'2 a'3 a'4 1 a2 a4 a6 a8 a' a'2 a14 a a3 a5 a7 a9 to a3 3 a3 a6 a9 a12 1 a3 a6 a9 a12 1 a3 a6 a9 a12 and the respective diagonals of y and y being (a5, a, a2, a5, a, a2, a5, a a2 5, a, a 2 a 5 to a 2) and (a 1 a 4 a 8 a 10 a 4 a 10 a 4 a 10 a 4 a 8 a 10 a 4 a a).

On va à présent décrire les différentes étapes du décodage tel que proposé par l'invention, lorsque l'on souhaite décoder un mot reçu r, et par conséquent retrouver tout d'abord au moins un mot ï" du code de géométrie algébrique associé au mot reçu r.  The different decoding steps as proposed by the invention will now be described, when it is desired to decode a received word r, and consequently to find at least one word of the algebraic geometry code associated with the received word r.

Cette description sera notamment faite en référence à la figure 4 qui décrit schématiquement les différentes étapes du décodage. Le schéma de la figure 4 peut en outre représenter une architecture envisageable pour un dispositif électronique apte à mettre en oeuvre l'invention. L'invention n'est toutefois pas limitée aux dispositifs de ce type.  This description will be made in particular with reference to Figure 4 which schematically describes the different decoding steps. The diagram of FIG. 4 may also represent an architecture that can be envisaged for an electronic device capable of implementing the invention. The invention is however not limited to devices of this type.

Le mot reçu r correspond donc à un mot de code c après transmission dans le canal, et intègre donc éventuellement des erreurs de transmission.  The received word r therefore corresponds to a code word c after transmission in the channel, and thus possibly incorporates transmission errors.

On peut supposer à titre d'exemple que le mot de code c = (a9 a12 a13 a5 a12, a9, 0, 0, 0, 0, 0, 0, 0, a7, a6, a14, a2, 0, 0, 0, 0, 0, 0, 0, 0, 0) ait été transmis dans le canal et que le mot reçu r correspondant comporte trois erreurs indiquées en gras ci-dessous: r = (a9 a12 a13, a8, a12, a9, aO, 0, 0, 0, 0, 0, 0, 0, 0, a7, (16, a14, a 0,0,0,0,0, a12, 0, 0, 0).  By way of example, it can be assumed that the code word c = (a9 a12 a13 a5 a12, a9, 0, 0, 0, 0, 0, 0, 0, a7, a6, a14, a2, 0, 0, 0, 0, 0, 0, 0, 0, 0) has been transmitted in the channel and the corresponding received word r has three errors indicated in bold below: r = (a9 a12 a13, a8, a12, a9, aO, 0, 0, 0, 0, 0, 0, 0, a7, (16, a14, a 0,0,0,0,0, a12,0,0,0).

Comme on l'a vu, le décodage du mot reçu r consiste principalement à rechercher le (ou les) mot(s) de code associé(s) les plus 5 proche du mot reçu r au sens de la distance de Hamming.  As we have seen, the decoding of the received word r consists mainly in finding the code word (s) associated with the word closest to the received word r in the sense of the Hamming distance.

Vu le code utilisé, et notamment la forme particulière de la matrice de parité, on remarque toutefois que la condition d'appartenance du mot de code associé î au code (H. FT = 0) peut s'écrire sous la forme Ht(o) HI(0) Hrro) Ht(1).Y Ht(1) Ht(1).Y-1 (r (xl, y0 (x1)),..., i'-(x p, .y0 (xr))T =0, Hr(imax) yimax Ht(imax) yimax 0 1... Ht(imax) yimax /1 1 (r-(x, ,ya,-1(x1)),..., r (xM, Y 1 (xp))T c'est-à-dire - t 1 Ht (0) .E (r (x1, y (xl)),..., r (xi, , .y p (xa))T P=0 2 1  Given the code used, and in particular the particular form of the parity matrix, we note, however, that the membership condition of the codeword associated with the code (H = FT = 0) can be written in the form Ht (o ) HI (0) Hrro) Ht (1) .Y Ht (1) Ht (1) .Y-1 (r (xl, y0 (x1)), ..., i '- (xp, .y0 (xr) )) T = 0, Hr (imax) yimax Ht (imax) yimax 0 1 ... Ht (imax) yimax / 1 1 (r- (x,, ya, -1 (x1)), ..., r (xM, Y 1 (xp)) T i.e. - t 1 Ht (0) .E (r (x1, y (xl)), ..., r (xi,, .yp (xa) )) TP = 0 2 1

T 2 1T 2 1

j.%t(imax) ypmax,Yp)) (x1,...,?(x,, yp(x))T t p=0 Comme on l'a vu, en définissant pour j = 0,... ,jmax des mots agrégés A 1 associés r i = [ i (x1), i'i (x2),..., ri (xi,) ] = E Yp.(r(xl, y p (xl)),..., (xp, y p (xp))T la p=0 condition d'appartenance au code de géométrie algébrique est ramenée à 15 j,n +1 équations de la forme Ht(i)& =0, qui signifient chacune que le mot agrégé associé ri est un mot du code de Reed-Solomon ayant pour matrice de parité Ht(i) . On ramène ainsi le décodage du mot reçu r au décodage de furax +1 mots agrégés ri définis par la formule 2 1 ri (x) = E [Yp (x)]i r(x,yp (x)) p=0 H .E yp É(r (xl, y p (xl)),..., (xp, Y p (x,)) p=0 =0 Le décodage du mot reçu r pourra être réalisé de manière séparée pour chaque mot agrégé, éventuellement en parallèle, comme représenté symboliquement par la présence de plusieurs (précisément jmax +1) zones de traitement 310,...,320 en figure 4.  j.% t (imax) ypmax, Yp)) (x1, ...,? (x, yp (x)) T tp = 0 As we have seen, defining for j = 0, ... , jmax aggregated words A 1 associated ri = [i (x1), i'i (x2), ..., ri (xi,)] = E Yp. (r (xl, yp (xl)), .. ., (xp, yp (xp)) T the p = 0 condition of belonging to the algebraic geometry code is reduced to 15 j, n +1 equations of the form Ht (i) & = 0, which each mean that the associated aggregated word ri is a word of the Reed-Solomon code having the parity matrix Ht (i), thus reducing the decoding of the received word r to the decoding of furax +1 aggregated words ri defined by the formula 2 1 ri (x ) = E [Yp (x)] ir (x, yp (x)) p = 0H .E yp E (r (x1, yp (x1)), ..., (xp, Y p (x,) ) p = 0 = 0 The decoding of the received word r can be performed separately for each aggregated word, possibly in parallel, as represented symbolically by the presence of several (precisely jmax +1) processing zones 310, ..., 320 in FIG.

La première étape du traitement relatif à chaque mot agrégé rj consiste naturellement à calculer le mot agrégé (c'est-à-dire ses composantes), ce qui revient en pratique à effectuer des sommes de symboles du mot reçu r avec différentes pondérations, comme indiqué sur les blocs 315a,...,315b. Chaque bloc 315a,...,315b génère ainsi un mot agrégé ri.  The first step of the processing relative to each aggregated word rj naturally consists in calculating the aggregated word (ie its components), which amounts in practice to sums of symbols of the received word r with different weights, such as indicated on blocks 315a, ..., 315b. Each block 315a,..., 315b thus generates an aggregated word ri.

Dans le cas présenté ici à titre d'exemple, les mots reçus agrégés sont donc: 13 8 r1= (a', a12,a,a,a12,a9, O,O,O,O,O,O,O,O)+(a,7,a.6,a,14,a 0,0,0,0,0, a12, 0, 0, 0) = (a , a4, a2, a", a12, a9, a , 0, 0,0, a12, 0,0, 0,0) et r2= Yp (a9, a12 al3 a8 al2 a9 a0 O, o, O O O, o, O 0)+ y (a7 a6 a14, a,0,0,0,0,0, a12, 0, o, 0) = (a13, a9, a9, 0(.4 al3, a11, a5, 0, 0, 0, a, 0, 0, 0, 0) Au sein de chaque zone 310,...,320, le traitement de chaque mot agrégé ri se poursuit par son décodage selon une méthode de décodage par liste, qui comprend une phase d'interpolation et une phase de factorisation.  In the case presented here by way of example, the aggregated received words are therefore: ## EQU1 ## (a ', a12, a, a, a12, a9, O, O, O, O, O, O, O, O) + (a, 7, a, 6, a, 14, a 0,0,0,0,0, a12, 0,0,0) = (a, a4, a2, a ", a12, a9, a, 0, 0.0, a12, 0.0, 0.0) and r2 = Yp (a9, a12 al3 a8 al2 a9 0, o, oo, o, o 0) + y (a7 a6 a14, a , 0,0,0,0,0, a12, 0, o, 0) = (a13, a9, a9, 0 (.4 al3, a11, a5, 0, 0, 0, a, 0, 0, , 0) Within each zone 310,..., 320, the processing of each aggregated word ri is continued by its decoding according to a list decoding method, which comprises an interpolation phase and a factorization phase.

La phase d'interpolation, qui va à présent être décrite en détail en référence à la figure 5, consiste à rechercher un polynôme Q sur FqxFq (ici sur F16xF16) qui passe par les points (x,,r](x;)) , pour i =1, u, avec un ordre de multiplicité m.  The interpolation phase, which will now be described in detail with reference to FIG. 5, consists in finding a polynomial Q on FqxFq (here on F16xF16) which passes through the points (x ,, r] (x;)) , for i = 1, u, with an order of multiplicity m.

On rappelle qu'un polynôme P(X,Y) passe par un point (x,y) avec un ordre de multiplicité m si toutes ses dérivées de Hasse d'ordre (m-1) 25 s'annulent en ce point. Si les a. sont les coefficients de chaque monôme X'Y' 00 0o i j ' j-!' au sein du polynôme P, cette condition s'exprime E E i-k x y a -u, k' l' 1=k' J=l' pour tous k' et l' entiers positifs tels que k'+ l'< m.  We recall that a polynomial P (X, Y) passes through a point (x, y) with an order of multiplicity m if all its derivatives of Hasse of order (m-1) cancel each other at this point. If the a. are the coefficients of each monomial X'Y '00 0o i j'! within the polynomial P, this condition is expressed E E-k x y -u, k '1 = k' J = l 'for all k' and the positive integers such that k '+ l' <m.

Dans le cas particulier où m=1 pris à titre illustratif, l'interpolation se ramène à la recherche un polynôme Q(X,Y) qui passe par les points (x,, rj(x; )) , pour i =1, u, c'est-à-dire qui s'annule en ces points.  In the particular case where m = 1 taken for illustrative purposes, the interpolation is reduced to the search for a polynomial Q (X, Y) which passes through the points (x ,, rj (x;)), for i = 1, u, that is to say, which vanishes in these points.

L'algorithme d'interpolation utilisé dans l'invention s'inspire des algorithmes proposés par les documents VLSI Architecture for softdecision decoding of Reed-Solomon Codes de Arshad Amesh, Ralf Koetter et Naresh R. Shanbag, Preprint, in IEEE transaction on VLSI systems, février 2003, et Decoding Hermitian codes with Sudan's algorithm , T. HoHoldt et R. Refsund Nielsen, in Applied Algebra, Algebraic Algorithm and Error Correcting Codes, Lecture notes in computer science, Springer Verlag 1999 Dans la description de l'algorithme qui suit, on utilisera le paramètre T défini par la formule T = Int(1 + 1,\il+8*C)-1 où C = pm2 et Int la fonction 2 n k 1 partie entière.  The interpolation algorithm used in the invention is based on the algorithms proposed by Arshad Amesh's VLSI Architecture for softdecision decoding of Reed-Solomon Codes, Ralf Koetter and Naresh R. Shanbag, Preprint, in IEEE transaction on VLSI systems. , February 2003, and Decoding Hermitian codes with Sudan's algorithm, T. HoHoldt and R. Refsund Nielsen, in Applied Algebra, Algebraic Algorithm and Error Correcting Codes, Reading notes in computer science, Springer Verlag 1999 In the description of the algorithm that follows , we use the parameter T defined by the formula T = Int (1 + 1, \ il + 8 * C) -1 where C = pm2 and Int the function 2 nk 1 integer part.

Comme nous le verrons, ce paramètre T représente le nombre de 15 polynômes candidats obtenus par l'algorithme d'interpolation. On utilisera de plus un indice L qui permettra de désigner l'un des polynômes parmi ces T polynômes candidats.  As we shall see, this parameter T represents the number of candidate polynomials obtained by the interpolation algorithm. We will also use an index L which will make it possible to designate one of the polynomials among these T candidate polynomials.

L'algorithme d'interpolation débute à l'étape E510 où l'on initialise l'indice L (L=0).  The interpolation algorithm starts at step E510 where the index L (L = 0) is initialized.

On passe alors à l'étape E511 où l'on vérifie si l'indice L est inférieur ou égal au nombre de polynômes candidats T. Si l'indice L est inférieur au nombre de candidats T, on passe à l'étape E501 où l'on définit le polynôme ZL par ZL=YL.  We then go to step E511 where it is checked whether the index L is less than or equal to the number of candidate polynomials T. If the index L is smaller than the number of candidates T, we proceed to step E501 where the polynomial ZL is defined by ZL = YL.

On passe alors à l'étape E512 où l'on incrémente la valeur de L. Une fois la valeur L incrémentée, on retourne à l'étape E511 à laquelle on compare l'indice L au nombre total T de polynômes candidats.  We then go to step E512 where the value of L. is incremented. Once the value L is incremented, we return to the step E511 in which we compare the index L to the total number T of candidate polynomials.

Lorsqu'à l'étape E511, on ne vérifie plus que L est inférieur ou égal à T, on passe à l'étape E513 à laquelle on initialise la valeur d'un paramètre i à zéro.  When in step E511, we no longer check that L is less than or equal to T, we go to step E513 to which the value of a parameter i is initialized to zero.

On peut remarquer que les étapes E510, E511, E501 et E512, qui définissent une boucle sur la valeur de l'indice L, permettent de construire une base de polynômes ZL qui est initialisée par la base de polynômes YL.  It may be noted that the steps E510, E511, E501 and E512, which define a loop on the value of the index L, make it possible to construct a base of polynomials ZL which is initialized by the base of polynomials YL.

2869482 27 A l'étape E513, on procède à l'initialisation de l'indice i qui désigne les différents points où l'on souhaite que le polynôme Q(X,Y) s'annule.  At step E513, the index i is initialized, which designates the different points where it is desired for the polynomial Q (X, Y) to vanish.

Après l'étape E513, l'indice i désigne donc un point particulier.  After step E513, the index i therefore denotes a particular point.

On vérifie à l'étape E514 que le dernier point n'a pas été atteint, en comparant l'indice i au nombre p..  It is verified in step E514 that the last point has not been reached, by comparing the index i with the number p.

Si l'indice i a atteint une valeur supérieure à , c'est-à-dire que tous les points ont été précédemment traités, on passe à l'étape E505 qui sera décrite plus loin.  If the index i has reached a value greater than, that is to say that all the points have been previously treated, proceed to the step E505 which will be described later.

Si au contraire l'indice i est inférieur ou égal à , le point courant désigné par cet indice i est traité en passant tout d'abord à l'étape E515.  If, on the other hand, the index i is less than or equal to, the current point designated by this index i is processed by first going to step E515.

A l'étape E515, on initialise à zéro la valeur A qui correspond dans la suite à la puissance selon la variable X du monôme considéré.  In step E515, the value A is initialized to zero, which corresponds subsequently to the power according to the variable X of the monomium in question.

On passe alors à l'étape E516 où l'on compare la valeur courante A à la multiplicité m(i) pour le point d'indice i considéré. Si la puissance A de la variable X dans le monôme considéré est strictement inférieure à la multiplicité m(i), on poursuit le processus pour le point i à l'étape E518. Si au contraire l'exposant A est égal à la multiplicité m(i), on passe à l'étape E517 où l'on incrémente la valeur de i, ce qui revient à passer au traitement du point suivant.  We then go to step E516 where the current value A is compared with the multiplicity m (i) for the index point i considered. If the power A of the variable X in the considered monomial is strictly less than the multiplicity m (i), the process is continued for point i at step E518. If, on the other hand, the exponent A is equal to the multiplicity m (i), we go to the step E517 where the value of i is incremented, which amounts to passing to the processing of the next point.

A l'étape E518, on initialise à zéro la variable B qui correspond à l'exposant en Y du monôme considéré.  In step E518, the variable B is initialized to zero, which corresponds to the exponent at Y of the monomer considered.

Comme précédemment pour la valeur A, on vérifie à l'étape E519 que la valeur B n'est pas strictement inférieure à la multiplicité m(i) pour le point d'indice i diminuée de la valeur courante A de l'exposant du monôme considéré en X. Si l'exposant B est bien inférieur à [m(i)-A], on poursuit le traitement pour le point d'indice i à l'étape E521. Dans le cas contraire, le traitement de tous les exposants B selon la variable Y envisageable pour la valeur A ayant été réalisée, on passe à la valeur A suivante à l'étape E520 (par incrémentation de la valeur A). Une fois la valeur A incrémentée, on retourne à l'étape E516 précédemment décrite.  As previously for the value A, it is verified in step E519 that the value B is not strictly less than the multiplicity m (i) for the index point i minus the current value A of the monomer exponent. Considered in X. If the exponent B is much smaller than [m (i) -A], processing is continued for the index point i at step E521. In the opposite case, the processing of all the exponents B according to the variable Y that can be envisaged for the value A having been carried out, is passed to the following value A in the step E520 (by incrementing the value A). Once the value A has been incremented, we return to the step E516 previously described.

Le traitement se poursuit à l'étape E521 par l'initialisation à 0 de l'indice L qui, comme on l'a vu précédemment, désigne successivement chaque polynôme candidat, et l'initialisation à +oo d'une variable minWd utilisée dans la suite (en pratique, il s'agit naturellement d'une initialisation avec une valeur très importante, par exemple la plus grande valeur entière que peut prendre le registre correspondant).  Processing continues in step E521 by initialization to 0 of the index L which, as we have seen previously, successively designates each candidate polynomial, and the initialization to + oo of a minWd variable used in following (in practice, it is naturally an initialization with a very important value, for example the largest integer value that can take the corresponding register).

On va à présent décrire une boucle sur l'ensemble des polynômes candidats.  We will now describe a loop on all candidate polynomials.

En effet, l'étape E521 est suivie par une étape E522 à laquelle on vérifie si l'indice L a atteint le nombre de polynômes candidats T. Si tous les polynômes candidats ZL ont été traités, on sort de la boucle à l'étape E526 décrite plus loin. Si au contraire l'indice L désigne encore un polynôme à traiter, on passe à l'étape E502.  Indeed, the step E521 is followed by a step E522 to which one verifies whether the index L has reached the number of candidate polynomials T. If all the candidate polynomials ZL have been processed, one leaves the loop at the step E526 described later. If, on the other hand, the index L still denotes a polynomial to be processed, proceed to step E502.

A l'étape E502, on détermine le coefficient D du monôme d'exposant A en X et B en Y dans le polynôme translaté ZL(X+x;, Y+y;).  In step E502, the coefficient D of the exponent monomer A at X and B at Y is determined in the translated polynomial ZL (X + x ;, Y + y;).

On passe alors à l'étape E523 où l'on vérifie si le coefficient D est nul. Si c'est le cas, on passe à l'étape E525 où l'on incrémente l'indice L afin de considérer le polynôme candidat suivant, puis à l'étape E522 où l'on vérifie si le précédent polynôme candidat n'était pas le dernier à considérer. L'étape E522 a été décrite ci-dessus.  We then go to step E523 where we check if the coefficient D is zero. If this is the case, go to step E525 where the index L is incremented so as to consider the next candidate polynomial, then to step E522 where it is checked whether the preceding candidate polynomial was not the last to consider. Step E522 has been described above.

Si l'étape E523 on détermine que le coefficient D n'est pas nul, on passe l'étape E524 où l'on compare le degré pondéré du polynôme candidat ZL courant au minimum minWd des degrés pondérés obtenus jusqu'alors.  If the step E523 determines that the coefficient D is not zero, step E524 is carried out, in which the weighted degree of the candidate polynomial ZL is compared to the minimum minWd of the weighted degrees obtained hitherto.

Si le degré pondéré du polynôme courant ZL est supérieur ou égal au minimum déjà obtenu minWd, on passe au polynôme candidat suivant en procédant à l'étape d'incrémentation de l'indice L E525 précédemment décrite.  If the weighted degree of the current polynomial ZL is greater than or equal to the minimum already obtained minWd, proceed to the next candidate polynomial by proceeding to the step of incrementing the index L E525 previously described.

Si au contraire le poids pondéré du polynôme courant ZL est strictement inférieur au minimum déjà obtenu minWd, le polynôme courant ZL est donc le nouveau polynôme de degré pondéré le plus faible. On passe donc dans ce cas à l'étape E503 de mémorisation de valeurs relative au polynôme courant ZL.  If, on the contrary, the weighted weight of the current polynomial ZL is strictly less than the minimum already obtained minWd, then the current polynomial ZL is the new polynomial of least weighted degree. In this case, therefore, step E503 for storing values relative to the current polynomial ZL is carried out.

En effet, on mémorise à l'étape E503 le polynôme courant ZL comme le polynôme Zm;n. On met également à jour le degré pondéré minimum minWd à la valeur du poids pondéré du polynôme courant ZL. On mémorise également le coefficient D comme coefficient relatif au poids pondéré minimum, noté minD. Enfin, on mémorise l'indice L du polynôme candidat courant ZL sous la valeur minL.  Indeed, in step E503, the current polynomial ZL is stored as the polynomial Zm; n. The minimum weighted degree minWd is also updated to the weighted weight value of the current polynomial ZL. The coefficient D is also memorized as the coefficient relative to the minimum weighted weight, denoted minD. Finally, the index L of the current candidate polynomial ZL is stored under the value minL.

Les données du polynôme courant ZL ayant été mémorisées comme celles dupolynôme de poids pondéré minimum Zmin, on peut passer au polynôme candidat suivant en procédant à l'étape E525 d'incrémentation de l'indice L précédemment décrite.  The data of the current polynomial ZL having been stored as those of the minimum weighted weight polynomial Zmin, it is possible to pass to the next candidate polynomial by proceeding to step E525 for incrementing the index L previously described.

Comme on l'a vu précédemment, lorsque l'ensemble des polynômes candidats ZL a été traité à l'étape E502, on sort de la boucle de traitement à l'étape E522 pour procéder à l'étape E526.  As seen previously, when the set of candidate polynomials ZL has been processed in step E502, the processing loop is released in step E522 to proceed to step E526.

A l'étape E526, on initialise à nouveau l'indice L qui désigne le polynôme candidat courant.  In step E526, the index L, which designates the current candidate polynomial, is initialized again.

On va à présent réaliser une nouvelle boucle sur l'ensemble des polynômes candidats.  We will now perform a new loop on all candidate polynomials.

Pour ce faire, on procède à l'étape E527 à la vérification que le polynôme courant L doit être traité, c'est-à-dire que l'indice L est bien inférieur au nombre total de polynômes candidats T. Si ce n'est pas le cas, on sort de la boucle pour passer à l'étape E530 décrite plus loin. Au contraire, si l'indice L représente un polynôme qui doit être traité, on passe à l'étape E528 où l'on détermine si l'indice courant L est égal à l'indice minL du polynôme de degré minimum, tel qu'il a été déterminé par le passage successif à l'étape E503 précédemment décrite.  To do this, we proceed to step E527 to verify that the current polynomial L must be processed, that is to say that the index L is much lower than the total number of candidate polynomials T. If it is not is not the case, we leave the loop to go to step E530 described below. On the other hand, if the index L represents a polynomial to be processed, proceed to step E528 where it is determined whether the current index L is equal to the minL index of the minimum degree polynomial, such as it was determined by successively following step E503 previously described.

Si l'indice L correspond à l'indice minL du polynôme de degré minimum, on procède à l'étape E504b où l'on multiplie le polynôme Zmin correspondant par le polynôme X+xi. On passe ensuite au polynôme candidat suivant par incrémentation de l'indice L à l'étape E529.  If the index L corresponds to the minL index of the minimum degree polynomial, proceed to step E504b where the corresponding polynomial Zmin is multiplied by the polynomial X + xi. The next candidate polynomial is then incremented by the index L in step E529.

Si l'étape E528 il a été déterminé que l'indice L du polynôme courant 25 était différent de l'indice minL du polynôme de degré pondéré minimal, on procède à l'étape E504 à laquelle on modifie le polynôme courant ZL en le remplaçant par le polynôme suivant: ZL.minD+D.Zmin. On passe alors également à l'étape E529 d'incrémentation de l'indice L, suivie de l'étape E527 précédemment décrite.  If in step E528 it was determined that the index L of the current polynomial 25 was different from the minL index of the minimum weighted degree polynomial, step E504 is carried out at which the current polynomial ZL is modified by replacing it by the following polynomial: ZL.minD + D.Zmin. We then also go to step E529 of incrementation of the index L, followed by step E527 previously described.

Lorsque le traitement des étapes E504a ou 504b a été réalisé pour 30 l'ensemble des polynômes candidats ZL, l'étape E527 conduit à l'étape E530 à laquelle on incrémente l'exposant B selon la variable Y. Une fois l'exposant B incrémenté à l'étape E530, on retourne à l'étape E519 précédemment décrite où l'on détermine si tous les exposants B qui devaient être traités l'on été.  When the processing of the steps E504a or 504b has been performed for all the candidate polynomials ZL, the step E527 leads to the step E530 at which the exponent B is incremented according to the variable Y. Once the exponent B incremented in step E530, we return to the step E519 described above where it is determined whether all the exponents B to be treated were it.

Lorsque tous les points on été traités par le passage de l'indice i de la valeur 1 à la valeur , et que pour chaque point, l'ensemble des exposants A, B envisageables pour les variables X et Y ont été traités, l'étape E514 conduit comme déjà mentionnée à l'étape E505.  When all the points have been treated by the passage of the index i from the value 1 to the value, and for each point, the set of exponents A, B that can be envisaged for the variables X and Y have been treated, the step E514 conducted as already mentioned in step E505.

A l'étape E505, on choisit le polynôme Q(X, Y) qui résulte de l'ensemble de l'algorithme décrit comme étant le polynôme candidat ZL(X,Y) de degré pondéré minimum, et ce notamment pour simplifier les calculs qui suivront. Si plusieurs polynômes candidats ZL ont le même degré pondéré, on considère dans la suite la pluralité de polynômes candidats ZL de même degré.  In step E505, the polynomial Q (X, Y) is chosen which results from the set of the algorithm described as being the candidate polynomial ZL (X, Y) of minimum weighted degree, and in particular to simplify the calculations. who will follow. If several candidate polynomials ZL have the same weighted degree, we consider in the following the plurality of candidate polynomials ZL of the same degree.

L'étape E505 met donc fin à l'algorithme d'interpolation.  Step E505 therefore ends the interpolation algorithm.

La phase d'interpolation génère ainsi au moins un polynôme Q qui 15 s'annule en tous points (x;,ri(x,)) , pour i = l, u.  The interpolation phase thus generates at least one Q polynomial which vanishes in all points (x;, ri (x,)), for i = l, u.

Dans le cas présenté en tant qu'exemple ici, on obtient dans le traitement de r1 le polynôme Q1(X,Y) = a12X +aX4 +a9X5 +aX6 +a6X7 +a3X8 + a4X10,+a5X11 +a13Y +aX2Y +a10X3 +a12XY, et dans le traitement de r2 le polynôme Q2(X,Y) = a12Y +a11XY1-a3X2Y +1 +a11X +a5X2 +a6X4 +0(,2X5 +a5X6 +a10X7 +a5X8 +a8X3 +a3X9 +a2X10 +a14X11 +a14X12 Le traitement du mot agrégé ri se poursuit alors par une phase de factorisation du (ou des) polynôme(s) Q obtenu(s) précédemment en vue 25 d'obtenir au moins un facteur de la forme [Y-f(X)].  In the case presented as an example here, we obtain in the treatment of r1 the polynomial Q1 (X, Y) = a12X + aX4 + a9X5 + aX6 + a6X7 + a3X8 + a4X10, + a5X11 + a13Y + aX2Y + a10X3 + a12XY, and in the treatment of r2 the polynomial Q2 (X, Y) = a12Y + a11XY1-a3X2Y +1 + a11X + a5X2 + a6X4 +0 (, 2X5 + a5X6 + a10X7 + a5X8 + a8X3 + a3X9 + a2X10 + a14X11 + a14X12 The processing of the aggregated word ri then continues with a factorization phase of the Q polynomial (s) obtained previously in order to obtain at least one factor of the form [Yf (X)].

La phase de factorisation est par exemple réalisée conformément à un algorithme du type Roth-Ruckenstein, tel que décrit à la figure 6. Pour plus de détails sur cet algorithme, on peut se référer à l'article Efficient Decoding of Reed Solomon Codes Beyond Half the Minimum Distance , R. Roth and G. Ruckenstein, IEEE Trans. Inform. Theory, vol. 46, n 1, janvier 2000.  The factorization phase is for example carried out in accordance with an algorithm of the Roth-Ruckenstein type, as described in FIG. 6. For more details on this algorithm, one can refer to the article Efficient Decoding of Reed Solomon Codes Beyond Half the Minimum Distance, Roth R. and Ruckenstein G., IEEE Trans. Inform. Theory, vol. 46, No. 1, January 2000.

L'algorithme de factorisation débute par une étape E601 à laquelle le polynôme Q(X,Y) est mémorisé pour son traitement sous forme d'un polynôme M(X,Y).  The factorization algorithm starts with a step E601 to which the polynomial Q (X, Y) is stored for its processing as a polynomial M (X, Y).

L'algorithme de factorisation est un algorithme récursif. Un indice i indique le nombre de boucles effectuées au sein de cet algorithme. On notera par ailleurs v; le nombre de racines trouvé lors de la boucle d'indice i de l'algorithme.  The factorization algorithm is a recursive algorithm. An index i indicates the number of loops performed within this algorithm. Note also v; the number of roots found during the index loop i of the algorithm.

On initialise ainsi à l'étape E610 l'indice i à zéro, ainsi que le nombre vo de racines trouvé lors de la boucle d'indice O. L'algorithme peut alors débuter au sens propre à l'étape E611 à laquelle on initialise à zéro la valeur d'un indice r.  Thus, in step E610, the index i to zero is initialized, as is the number vo of roots found during the loop of index O. The algorithm can then start in the proper sense at the step E611 to which it is initialized. to zero the value of an index r.

On passe ensuite à l'étape E612 à laquelle on détermine si le polynôme Xr divise le polynôme M(X,Y) courant. Si c'est le cas, on va rechercher si une puissance supérieure de X divise également le polynôme M(X,Y). Pour ce faire, on passe à l'étape E613 où l'on incrémente la variable r, puis on retourne à l'étape E612 qui vient d'être décrite.  Next, step E612 is made to determine if the polynomial Xr divides the current M (X, Y) polynomial. If this is the case, we will investigate whether a higher power of X also divides the polynomial M (X, Y). To do this, we go to step E613 where the variable r is incremented, then we return to step E612 which has just been described.

Si on détermine à l'étape E612 que le polynôme Xr ne divise pas le polynôme M(X,Y) courant, on passe à l'étape E602 où l'on divise le polynôme courant M(X,Y) par le polynôme X. Cette division est bien sûr possible vu la détermination effectuée lors de l'avant-dernier passage à l'étape E612.  If it is determined in step E612 that the polynomial Xr does not divide the current polynomial M (X, Y), we proceed to step E602 where the current polynomial M (X, Y) is divided by the polynomial X This division is of course possible given the determination made during the penultimate pass at step E612.

On passe alors à l'étape E615 à laquelle on initialise à zéro une variable t qui permettra de désigner successivement l'ensemble des éléments du corps de Galois Fq considéré.  We then go to step E615 to which a variable t is initialized to zero, which will make it possible to successively designate all the elements of the Galois body Fq considered.

En effet, à l'étape E616 qui suit l'étape E615, on détermine si la valeur du polynôme M(X,Y) pour X=at et Y=0 est nulle. Si ce n'est pas le cas, on passe à l'étape E603 décrite plus loin. Si en revanche c'est le cas, on passe à l'étape E621 d'incrémentation de la variable t, puis à l'étape E622 où l'on vérifie si t atteint le nombre d'éléments du corps de Galois Fq. Dans la négative, on revient à l'étape E616 décrite plus haut; dans l'affirmative, le polynôme M(X,Y) s'annulant sur toutes les valeurs de X du corps de Galois pour Y=O, l'algorithme est terminé et on passe donc à l'étape E606a qui le conclut.  Indeed, in step E616 following step E615, it is determined whether the value of the polynomial M (X, Y) for X = at and Y = 0 is zero. If this is not the case, proceed to step E603 described below. If on the other hand it is the case, one proceeds to step E621 of incrementation of the variable t, then to the step E622 where one verifies if t reaches the number of elements of the Galois body Fq. If not, return to step E616 described above; in the affirmative, the polynomial M (X, Y) being canceled on all the values of X of the Galois field for Y = O, the algorithm is finished and we thus go to the step E606a which concludes it.

En effet, l'étape E606a consiste à définir le polynôme f(X) en fonction des résultats de l'algorithme: f(X)=go+g1X+... +gk_iXk-1.  Indeed, the step E606a consists of defining the polynomial f (X) according to the results of the algorithm: f (X) = go + g1X + ... + gk_iXk-1.

De retour à l'étape E603 précédemment évoquée, on effectue une recherche exhaustive parmi les éléments du corps de Galois Fq des Nr racines du polynôme M(0,Y), qui seront dénommées g,,;.  Returning to step E603 previously mentioned, an exhaustive search is made among the elements of the Galois field Fq of the Nr roots of the polynomial M (0, Y), which will be called g ,,;

On passe alors à l'étape E617 à laquelle on détermine si l'indice v; des racines trouvées lors de la boucle d'indice i atteint le nombre de racines Nr. Si c'est le cas, on peut passer à l'étape E618 d'incrémentation de l'indice de boucle i, c'est-à-dire à la boucle suivante au sens de l'algorithme récursif. On remarque que l'on initialise également à l'étape E618 le nombre de racines v; de la nouvelle boucle à zéro. Après l'étape E618, on débute l'exécution de la nouvelle boucle à l'étape E611 précédemment décrite.  We then go to step E617 to which we determine if the index v; roots found during the index loop i reaches the number of roots Nr. If this is the case, we can proceed to step E618 of incrementation of the index of loop i, that is to say say to the next loop in the sense of the recursive algorithm. It is noted that the number of roots v is also initialized in step E618; from the new loop to zero. After step E618, the execution of the new loop is started in step E611 described above.

Si à l'étape E617 on détermine que l'indice de la racine v; est inférieur ou égal au nombre de racines Nr, on passe à l'étape E619 à laquelle on détermine si l'indice de boucle i a atteint la dimension k du code, lié au degré k-1 du polynôme f(X) recherché.  If in step E617 it is determined that the index of the root v; is less than or equal to the number of roots Nr, proceed to step E619 at which it is determined whether the loop index i has reached the dimension k of the code, related to the degree k-1 of the polynomial f (X) sought.

Si c'est le cas, c'est-à-dire si i=k, on passe à l'étape E606b à laquelle il est déterminé que l'algorithme n'a pas permis de trouver un polynôme f(X) solution. Cette étape conduit naturellement à l'échec du décodage pour le polynôme Q(X,Y) auquel on a appliqué l'algorithme de factorisation.  If this is the case, that is to say if i = k, we go to step E606b at which it is determined that the algorithm did not find a polynomial f (X) solution. This step naturally leads to the failure of decoding for the polynomial Q (X, Y) to which the factorization algorithm has been applied.

Si on détermine à l'étape E619 que l'indice de boucle i n'a pas atteint la dimension du code k, on passe à l'étape E604 où l'on transpose le polynôme courant M(X,Y) par la définition suivante du nouveau polynôme courant: M(X,Y)=M(X,Y+g;).  If it is determined in step E619 that the loop index i has not reached the dimension of the code k, we go to the step E604 where the current polynomial M (X, Y) is transposed by the definition following of the new current polynomial: M (X, Y) = M (X, Y + g;).

L'étape E604 est suivie de l'étape E605 à laquelle on décale le polynôme M(X,Y) : comme précédemment le polynôme courant est remplacé par 25 le nouveau polynôme courant selon la formule: M(X,Y)=M(X,XY).  Step E604 is followed by step E605 to which the polynomial M (X, Y) is shifted: as previously the current polynomial is replaced by the new current polynomial according to the formula: M (X, Y) = M ( X, XY).

Après l'étape E605, on procède à l'étape E620 à laquelle on incrémente l'indice v; qui désigne une racine particulière trouvée lors de la boucle i. L'étape E620 est suivie de l'étape E611 précédemment décrite qui permet la poursuite de l'algorithme.  After step E605, proceed to step E620 to which the index v is incremented; which denotes a particular root found during the loop i. Step E620 is followed by step E611 previously described which allows the continuation of the algorithm.

L'algorithme qui vient d'être décrit a ainsi permis de déterminer un polynôme f(X), défini à l'étape E606a, de telle sorte que [Y-f(X)] est un facteur du polynôme Q(X,Y).  The algorithm which has just been described has thus made it possible to determine a polynomial f (X), defined in step E606a, such that [Y-f (X)] is a factor of the polynomial Q (X, Y).

2869482 33 Le polynôme [Y-f(X)] étant un facteur de Q, il s'annule en au moins une partie des points (x,,r](x,)), pour i=1, u. Aux points (x,,rj (xi)) où [Y- f(X)] s'annule, on peut donc écrire r.)(x;) = f(x,) et le mot agrégé rj a donc autant de composantes communes avec le mot constitué des composantes f(x,) pour i =1, u.  2869482 33 Since the polynomial [Y-f (X)] is a factor of Q, it vanishes in at least a part of the points (x ,, r] (x,)), for i = 1, u. At the points (x ,, rj (xi)) where [Y- f (X)] vanishes, we can write r.) (X;) = f (x,) and the aggregated word rj therefore has as many common components with the word consisting of the components f (x,) for i = 1, u.

Le mot agrégé r tel que ij(x,) = f(x,) pour i = l, u, qui est un mode de code dans le code de Reed-Solomon considéré, est donc un bon candidat pour être un mot agrégé associé au mot reçu agrégé r.  The aggregate word r such that ij (x,) = f (x,) for i = l, u, which is a code mode in the considered Reed-Solomon code, is therefore a good candidate for being an associated aggregated word to the received word aggregated r.

L'application de l'algorithme de factorisation qui vient d'être décrit au 10 polynôme Q1(X,Y) obtenu ci-dessus en relation avec le mot reçu agrégé r1 donne comme facteur du polynôme Q1(X,Y) le polynôme suivant: (Y+a5X9+a 10X8+a4X7+a 12X6+aX5+a3X4+aX3+a13X2+a 14X) L'application du même algorithme au polynôme Q2(X,Y) obtenu à partir du mot reçu agrégé r2 donne comme facteur le polynôme: (Y+a11X10+a13X9+a4X8+a8X7+a7X6+a11 X5+068X4+a13X3+a13X+(13) . Ces polynômes étant effectivement de la forme [Y-f(X)], on obtient le mot de code agrégé associé à chacun en calculant pour chacun, comme indiqué ci- dessus, la valeur prise par le polynôme f sur les points de l'ensemble de localisation (x,,...,x,). On peut de ce fait considérer que cette étape consiste à procéder au ré-encodage du mot.  The application of the factorization algorithm which has just been described to the polynomial Q1 (X, Y) obtained above in relation to the aggregate received word r1 gives as polynomial factor Q1 (X, Y) the following polynomial : (Y + a5X9 + a 10X8 + a4X7 + a 12X6 + aX5 + a3X4 + aX3 + a13X2 + a 14X) The application of the same algorithm to the polynomial Q2 (X, Y) obtained from the aggregated received word r2 gives as a factor the polynomial: (Y + a11X10 + a13X9 + a4X8 + a8X7 + a7X6 + a11 X5 + 068X4 + a13X3 + a13X + (13) .These polynomials are actually of the form [Yf (X)], we obtain the associated aggregated code word to each one by calculating for each, as indicated above, the value taken by the polynomial f on the points of the set of localization (x ,, ..., x,). One can thus consider that this step consists of re-encoding the word.

On obtient ainsi les mots de code agrégés associés: = (a , 064, 062, al, CL12, a9, a0, 0, 0,0, o, 0,0,0,0) et r2 = (a13, 2, a9 2a13, a11, a5, 0 0, 0, 0, 0 0, 0 0,0), où les chiffres en gras mettent en évidence les composantes qui ont été modifiées, c'est-à-dire corrigées, par rapport aux mots reçus agrégés r1 et [2.  The associated aggregated codewords are thus obtained: = (a, 064, 062, a1, CL12, a9, a0, 0, 0,0, o, 0,0,0,0) and r2 = (a13, 2, a9 2a13, a11, a5, 0 0, 0, 0 0, 0 0,0), where the bold numbers highlight the components that have been modified, that is, corrected, with respect to aggregated received words r1 and [2.

Chaque zone 310,...,320 permet ainsi d'obtenir selon une méthode de décodage par liste un mot de code agrégé associé r i à partir du mot agrégé r.  Each zone 310,..., 320 thus makes it possible to obtain, according to a list decoding method, an associated aggregated codeword r i from the aggregated word r.

Les mots agrégés v; correspondant aux mots v du code de géométrie algébrique par la relation générale: Â.(x)-1 v j (x) E [y p (x)]3 v(x,.yp (x)) , p=o on va pouvoir déterminer les composantes du mot de code associé r au mot reçu r en résolvant le système composé des équations suivantes: (x;) = E [y, (x,)}' (xi,Yp (x; )) (pour i =1, u et j = 0,..., max), p=0 puisque les mots agrégés associés r sont à présent connus.  Aggregated words v; corresponding to the words v of the algebraic geometry code by the general relation: Â (x) -1 vj (x) E [yp (x)] 3 v (x, .yp (x)), p = o one will be able to determine the components of the associated codeword r to the received word r by solving the system composed of the following equations: (x;) = E [y, (x,)} '(xi, Yp (x;)) (for i = 1, u and j = 0, ..., max), p = 0 since the aggregated associated words r are now known.

La résolution du système d'équations, représenté schématiquement par le bloc référencé 350 qui reçoit l'ensemble des mots agrégés associés rj des différentes zones 310,...,320, permet ainsi d'obtenir le mot de code r associé au mot reçu r.  The resolution of the system of equations, schematically represented by the block referenced 350 which receives the set of associated aggregated words rj of the different zones 310,..., 320, thus makes it possible to obtain the codeword r associated with the received word r.

Dans l'exemple présenté en détail ici, la résolution du système donne pour résultat le mode de code associé suivant: (a9, a12 a13 a5 a127 a9, a , 0, 0, 0, 0, 0, 0, 0, a7, a6, a14, a2, 0, 0, 0, 0, 0, 0, 0, 0, 0), égal au mot de code initialement envoyé.  In the example presented in detail here, the resolution of the system results in the following associated code mode: (a9, a12 a13 a5 a127 a9, a, 0, 0, 0, 0, 0, 0, a7, a6, a14, a2, 0, 0, 0, 0, 0, 0, 0, 0), equal to the code word initially sent.

La correction d'erreur au moyen du décodage par liste de chacun des mots reçus agrégés a donc été efficace.  The error correction by means of the list decoding of each of the aggregated received words has therefore been effective.

On peut remarquer qu'il est possible en variante de ne résoudre dans le système d'équations que les lignes qui correspondent à des mots reçus agrégés erronés, c'est-à-dire pour lesquelles ij (x;) r; (xi). Le coût calculatoire sera ainsi limité puisque le nombre de composantes erronées est en général faible.  It may be noted that it is possible alternatively to solve in the system of equations only those lines which correspond to erroneous aggregated received words, that is to say for which ij (x;) r; (Xi). The computational cost will thus be limited since the number of erroneous components is generally low.

On a représenté schématiquement à la figure 7 une solution possible dans le cas où le décodage par liste des mots reçus agrégés ri donne plusieurs solutions, par exemple deux polynômes f1 et f2 qui correspondent à deux solutions &,o et il.;, , pour chaque mot reçu agrégé r; Dans le traitement de chaque mot reçu agrégé r; (c'est-à-dire dans chaque zone 310, ..., 320), un multiplexeur 720a, ..., 720b permet de ne transmettre au dispositif de ré-encodage 730a, ..., 730b qu'un seul des polynômes f1, f2 obtenus par l'algorithme de factorisation et stockés en mémoire (comme symboliquement représenté avec les références 710a, ..., 710b).  FIG. 7 schematically shows a possible solution in the case where the list decoding of the aggregated received words ri gives several solutions, for example two polynomials f1 and f2 which correspond to two solutions &, o and il;; each received word aggregated r; In the processing of each aggregate received word r; (that is to say in each zone 310, ..., 320), a multiplexer 720a, ..., 720b makes it possible to transmit to the re-encoding device 730a, ..., 730b only one polynomials f1, f2 obtained by the factorization algorithm and stored in memory (as symbolically represented with references 710a, ..., 710b).

Les polynômes sélectionnés par les multiplexeurs 720a, ..., 720b génèrent donc des mots agrégés associés qui sont utilisés dans la résolution du système représenté comme précédemment par la référence 350, afin d'obtenir un mot de code associé . Pour chaque sélection possible entre différents polynômes f2 réalisée par les multiplexeurs 720a, ..., 720b, on obtient ainsi un mot associé r qui peut être comparé au mot reçu r (référencé 760 sur la figure 7) au sein d'un dispositif comparateur 360.  The polynomials selected by the multiplexers 720a,..., 720b thus generate associated aggregated words which are used in the resolution of the system represented as previously by the reference 350, in order to obtain an associated code word. For each possible selection between different polynomials f2 performed by the multiplexers 720a,..., 720b, an associated word r is obtained which can be compared with the received word r (referenced 760 in FIG. 7) within a comparator device. 360.

En commandant toutes les combinaisons possibles quant aux sélections des différents multiplexeurs, le comparateur 360 peut ainsi déterminer quelle combinaison permet d'obtenir un mot associé F le plus proche du mot reçu r au sens de la distance de Hamming, et de choisir ce mot associé comme résultat du décodage.  By controlling all the possible combinations as to the selections of the various multiplexers, the comparator 360 can thus determine which combination makes it possible to obtain an associated word F closest to the received word r in the Hamming distance sense, and to choose this associated word. as a result of decoding.

On pourra utiliser sans sortir du cadre de l'invention d'autres méthodes de choix du résultat du décodage lorsque la méthode de décodage par liste donne une pluralité de solutions.  It will be possible to use without departing from the scope of the invention other methods of choice of the decoding result when the list decoding method gives a plurality of solutions.

Claims (34)

REVENDICATIONS 1. Procédé de décodage pour code de longueur n et de dimension k sur un corps de Galois Fq, le code étant défini au moyen d'un ensemble de localisation de cardinal n sur Fq x Fq, caractérisé en ce que, l'ensemble de localisation comprenant au moins fu sous-ensembles dits agrégats, où , u 2, chaque agrégat regroupant les éléments (x, y p(x)) de l'ensemble de localisation ayant une valeur commune de x, pour p = 0,...,2(x) l, où ,. (x) est le cardinal de l'agrégat, il comprend les étapes suivantes: calcul (315a,315b), à partir d'un mot reçu r, de mots reçus agrégés r, selon lesdits,u agrégats; - pour chaque mot reçu agrégé r1, obtention (100) d'au moins un 15 mot agrégé associé iL-j dans un code de Reed-Solomon par une méthode de décodage par liste; - calcul (350) d'au moins un mot associé i, dans le code de longueur n et de dimension k, dont les mots agrégés correspondants selon lesdits,u agrégats sont les mots agrégés associés i^ J.  A decoding method for a code of length n and of dimension k on a Galois field Fq, the code being defined by means of a cardinalization set n on Fq x Fq, characterized in that, the set of localization comprising at least fu subsets called aggregates, where, u 2, each aggregate grouping the elements (x, yp (x)) of the localization set having a common value of x, for p = 0, ... , 2 (x) 1, where,. (x) is the cardinal of the aggregate, it comprises the following steps: computation (315a, 315b), from a received word r, of aggregated received words r, according to said, u aggregates; for each aggregated received word r1, obtaining (100) at least one associated aggregated word iL-j in a Reed-Solomon code by a list decoding method; calculating (350) at least one associated word i, in the code of length n and of dimension k, whose corresponding aggregated words according to said, u aggregates are the aggregated associated words i ^ J. 2. Procédé de décodage selon la revendication 1, caractérisé en ce que le code est défini par une matrice de parité H dont les éléments Ha,p pour 1 <_ /3 n sont égaux à la valeur prise par un monôme ha = Y'X' sur les points de l'ensemble de localisation, les monômes ha pour 1 s a n k ayant tous un poids distinct.2. Decoding method according to claim 1, characterized in that the code is defined by a parity matrix H whose elements Ha, p for 1 <_ / 3 n are equal to the value taken by a monomer ha = Y ' X 'on the points of the location set, the monomials ha for 1 sank all having a distinct weight. 3. Procédé de décodage selon la revendication 1 ou 2, caractérisé en ce que le code est un code de géométrie algébrique.  3. Decoding method according to claim 1 or 2, characterized in that the code is a code of algebraic geometry. 2869482 37  2869482 37 4. Procédé de décodage selon l'une des revendications 1 à 3, caractérisé en ce que le calcul d'un mot reçu agrégé ri = [5 (xl), r1(x2),4. Decoding method according to one of claims 1 to 3, characterized in that the calculation of an aggregate received word ri = [5 (x1), r1 (x2), ., r1(xi,) ] est réalisé selon une formule du type ri (x) = A (x)[r(x, y0 (x)),..., r(x, y?(x)_, (x))] , où Ai (x) est une fonction sur Fei pour tout j entre 0 et jmax, où jmax 1...CLMF:  ., r1 (xi,)] is realized according to a formula of the type ri (x) = A (x) [r (x, y0 (x)), ..., r (x, y? (x) _, (x))], where Ai (x) is a function on Fei for all j between 0 and jmax, where jmax 1 ... CLMF: 5. Procédé de décodage selon la revendication 4, caractérisé en ce que, pour tout i entre 1 et,u et pour tout j entre 0 et Lm, la fonction A (x,) 2(x,)-1 est définie par AJ(x,)[zo,...,z2(x,)_,1= E [Yp(x,)fzp. p=05. decoding method according to claim 4, characterized in that, for all i between 1 and, u and for all j between 0 and Lm, the function A (x,) 2 (x,) - 1 is defined by AJ (x,) [zo, ..., z2 (x,) _, 1 = E [Yp (x,) fzp. p = 0 6. Procédé de décodage selon la revendication 4 ou 5, caractérisé en ce que les composantes i(x, y) du mot de code associé sont telles que (x, )[ (x ya (x, )),...,i--(x, , yz(x,)_, (x, ))] = (x,) pour tout i entre 1 et,u et pour tout j entre 0 et jmax  6. Decoding method according to claim 4 or 5, characterized in that the components i (x, y) of the associated code word are such that (x,) [(x ya (x,)), ..., i - (x,, yz (x,) _, (x,))] = (x,) for all i between 1 and, u and for all j between 0 and jmax 7. Procédé de décodage selon l'une des revendications 1 à 6, caractérisé en ce que le mot associé est calculé par la résolution d'un système d'équations.7. decoding method according to one of claims 1 to 6, characterized in that the associated word is calculated by the resolution of a system of equations. 8. Procédé de décodage selon la revendication 7, caractérisé en ce que la résolution du système d'équations est limitée aux lignes qui contiennent des composantes erronées des mots reçus agrégés r, pour lesquelles rf(x;) #ri (x,) .  8. Decoding method according to claim 7, characterized in that the resolution of the system of equations is limited to the lines which contain erroneous components of the aggregated received words r, for which rf (x;) #ri (x,). 9. Procédé de décodage selon l'une des revendications 1 à 8, caractérisé en ce qu'il comprend une étape de sélection d'un mot associé parmi une pluralité de mots associés calculés.9. decoding method according to one of claims 1 to 8, characterized in that it comprises a step of selecting an associated word from a plurality of calculated associated words. 10. Procédé de décodage selon l'une des revendications 1 à 8, caractérisé en ce que la méthode de décodage par liste comprend, pour chaque mot reçu agrégé ri, les étapes suivantes: - recherche d'au moins un polynôme fi sur Fq de degré au plus ki 5 tel que le nombre de composantes ri (x) du mot reçu agrégé ri pour lesquelles ri(x) = f1 (x) est au moins égal à un nombre où ki est un nombre entier prédéterminé et où ris <p et; - calcul du mot agrégé associé r tel que (x1)= f (x,) pour tout i entre 1 et p.  10. Decoding method according to one of claims 1 to 8, characterized in that the list decoding method comprises, for each aggregate received word ri, the following steps: - search for at least one polynomial fi on Fq of degree at most ki 5 such that the number of components ri (x) of the aggregate received word ri for which ri (x) = f1 (x) is at least equal to a number where ki is a predetermined integer and where ris <p and; calculating the associated aggregated word r such that (x1) = f (x,) for all i between 1 and p. 11. Procédé de décodage selon la revendication 10, caractérisé en ce que le nombre est prédéterminé.11. Decoding method according to claim 10, characterized in that the number is predetermined. 12. Procédé de décodage selon la revendication 10, caractérisé en 15 ce que le nombre est le nombre maximum de composantes pour lesquelles r (x) = gJ (x) lorsque g parcourt l'ensemble des polynômes sur Fq de degré au plus ki.  12. A decoding method according to claim 10, characterized in that the number is the maximum number of components for which r (x) = gJ (x) when g traverses the set of polynomials over Fq of degree at most ki. 13. Procédé de décodage selon l'une des revendications 10 à 12, 20 caractérisé en ce que, l'étape de recherche d'au moins un polynôme f générant au mois deux polynômes solutions, il comprend les étapes suivantes: - pour chaque polynôme solution, calcul d'un mot agrégé associé ; - pour chaque polynôme solution, calcul d'au moins un mot associé en fonction dudit mot agrégé associé calculé pour le polynôme solution; comparaison des mots associés calculés pour chaque polynôme solution avec le mot reçu r; - sélection du mot associé parmi les mots associés calculés pour chaque polynôme solution.  13. Decoding method according to one of claims 10 to 12, characterized in that, the step of searching for at least one polynomial f generating at least two polynomials solutions, it comprises the following steps: - for each polynomial solution, calculation of an associated aggregated word; for each solution polynomial, calculating at least one associated word as a function of said associated aggregated word calculated for the solution polynomial; comparing the associated words calculated for each solution polynomial with the received word r; selecting the associated word among the associated words calculated for each solution polynomial. 14. Procédé de décodage selon la revendication 13, caractérisé en ce que le mot associé sélectionné est le mot associé calculé le plus proche du mot reçu r au sens de la distance de Hamming.  14. Decoding method according to claim 13, characterized in that the selected associated word is the closest associated calculated word to the received word r in the sense of the Hamming distance. 15. Procédé de décodage pour code de longueur n et de dimension k sur un corps de Galois Fq, le code étant défini au moyen d'un ensemble de localisation de cardinal n sur Fq x Fq, caractérisé en ce que, l'ensemble de localisation comprenant au moins,u sous-ensembles dits agrégats, où u 2, chaque agrégat regroupant les éléments (x, y p (x)) de l'ensemble de localisation ayant une valeur commune de x, pour p = 0,...,2(x) -1, où /t(x) est le cardinal de l'agrégat, il comprend les étapes suivantes: calcul, à partir d'un mot reçu r, de mots reçus agrégés ri =[ri(xl), ri(x2),...,ri(xp)] pour j = 0,...,jmax, où ,%max ?1, selon la formule Â(x) -I ri (x) = E [y p (x)]' r (x, y p (x)) , p=o - pour chaque mot reçu agrégé ri, recherche d'au moins un polynôme fi sur Fq de degré au plus k. tel que le nombre de composantes r (x) du mot reçu agrégé r pour lesquelles r (x) = f (x) est au moins égal à un nombre ris, où i,u; - pour chaque mot reçu agrégé ri, calcul d'au moins un mot agrégé associé r tel que if(x,) = fj(x,) pour tout i entre 1 et,u; - calcul d'au moins un mot de code associé r dont les composantes 1(x)-I i,(x,y) sont telles que i,(x1)= E [yp(x1)]'ï"(x,,yp(x,)) pour tout i entre 1 et p=0 u et pour tout j entre 0 et Lm.  15. A decoding method for a code of length n and of dimension k on a Galois field Fq, the code being defined by means of a cardinalization set n on Fq x Fq, characterized in that, the set of localization comprising at least u subsets called aggregates, where u 2, each aggregate grouping the elements (x, yp (x)) of the localization set having a common value of x, for p = 0, ... , 2 (x) -1, where / t (x) is the cardinal of the aggregate, it comprises the following steps: computation, from a received word r, of aggregate received words ri = [ri (xl) , ri (x2), ..., ri (xp)] for j = 0, ..., jmax, where,% max? 1, according to the formula  (x) -I ri (x) = E [yp (x)] 'r (x, yp (x)), p = o - for each aggregated received word ri, search for at least one polynomial fi over Fq of degree at most k. such that the number of components r (x) of the aggregated received word r for which r (x) = f (x) is at least equal to a number ris, where i, u; for each received aggregate word ri, calculating at least one associated aggregated word r such that if (x,) = fj (x,) for all i between 1 and u; calculating at least one associated codeword r whose components 1 (x) -I i, (x, y) are such that i, (x1) = E [yp (x1)] 'ï "(x, , yp (x,)) for all i between 1 and p = 0 u and for all j between 0 and Lm. 16. Dispositif de décodage pour code de longueur n et de dimension k sur un corps de Galois Fq, le code étant défini au moyen d'un ensemble de localisation de cardinal n sur Fq x Fq, caractérisé en ce que, l'ensemble de localisation comprenant au 5 moins,u sous-ensembles dits agrégats, où , u 2, chaque agrégat regroupant les éléments (x, y p (x)) de l'ensemble de localisation ayant une valeur commune de x, pour p = 0,...,2(x) l, où Z(x) est le cardinal de l'agrégat, il comprend: - des moyens de calcul, à partir d'un mot reçu r, de mots reçus agrégés r selon lesdits,u agrégats; - des moyens d'obtention, pour chaque mot reçu agrégé r, d'au moins un mot agrégé associé rJ dans un code de Reed-Solomon par une méthode de décodage par liste; - des moyens de calcul d'au moins un mot associé II", dans le code de longueur n et de dimension k, dont les mots agrégés correspondants selon lesdits,u agrégats sont les mots agrégés associés r.  16. A decoding device for a code of length n and of dimension k on a Galois field Fq, the code being defined by means of a cardinalization set n on Fq x Fq, characterized in that, the set of localization comprising at least, u subsets called aggregates, where, u 2, each aggregate grouping the elements (x, yp (x)) of the localization set having a common value of x, for p = 0 ,. .., 2 (x) l, where Z (x) is the cardinal of the aggregate, it comprises: - means of calculation, from a received word r, of aggregated received words r according to said, u aggregates ; means for obtaining, for each aggregated received word r, at least one associated aggregated word rJ in a Reed-Solomon code by a list decoding method; means for calculating at least one associated word II ", in the code of length n and of dimension k, whose corresponding aggregated words according to said, u aggregates are the associated aggregated words r. 17. Dispositif de décodage selon la revendication 16, caractérisé en 20 ce que le code est défini par une matrice de parité H dont les éléments Ha,a pour 1 < Q <_ n sont égaux à la valeur prise par un monôme ha = Y'X' sur les points de l'ensemble de localisation, les monômes ha pour 1 a < n k ayant tous un poids distinct.  17. A decoding device according to claim 16, characterized in that the code is defined by a parity matrix H whose elements Ha, a for 1 <Q <_ n are equal to the value taken by a monomer ha = Y 'X' on the points of the localization set, the monomials ha for 1 a <nk all having a distinct weight. 18. Dispositif de décodage selon la revendication 16 ou 17, caractérisé en ce que le code est un code de géométrie algébrique.  18. Decoding device according to claim 16 or 17, characterized in that the code is a code of algebraic geometry. 19. Dispositif de décodage selon l'une des revendications 16 à 18, caractérisé en ce que les moyens de calcul d'un mot reçu agrégé 30 r1 =[ri(xl),ri(x2),...,r](xp)] incorporent des moyens de calcul du type r (x) = Ai (x)[r(x, yo (x)),..., r(x, y,(x)_1 (x))] , où A; (x) est une fonction sur Fe) pour tout j entre 0 et jmax, où Imax 2_1.  19. Decoding device according to one of claims 16 to 18, characterized in that the means for calculating an aggregate received word r1 = [ri (x1), r1 (x2), ..., r] ( xp)] incorporate calculation means of the type r (x) = Ai (x) [r (x, yo (x)), ..., r (x, y, (x) _1 (x))], where A; (x) is a function on Fe) for all j between 0 and jmax, where Imax 2_1. 20. Dispositif de décodage selon la revendication 19, caractérisé en ce que, pour tout i entre 1 et p et pour tout j entre 0 et j,nax, la fonction %(x; ) 1 Aj(xi) est définie par A1(xi)[z0,...,za,(x)_1]= E [yp(x1)]'zp p=0  20. The decoding device as claimed in claim 19, characterized in that for all i between 1 and p and for all j between 0 and j, nax, the function% (x;) 1 Aj (xi) is defined by A1 ( xi) [z0, ..., za, (x) _1] = E [yp (x1)] 'zp p = 0 21. Dispositif de décodage selon la revendication 19 ou 20, caractérisé en ce que les moyens de calcul du mot de code associé ï^ déterminent les composantes i,-.(x, y) du mot de code associé i de telle sorte que Aj(x;) [r(x;, yo (x; )),..., r(x,, yÂ(x)_I (x; ))] = i'j (x;) pour tout i entre 1 et p et pour tout j entre 0 et jmax21. Decoding device according to claim 19 or 20, characterized in that the means for calculating the associated codeword ï ^ determine the components i, -. (X, y) of the associated code word i such that Aj (x;) [r (x ;, yo (x;)), ..., r (x ,, y? (x)? I (x;))] = i'j (x;) for all i between 1 and p and for all j between 0 and jmax 22. Dispositif de décodage selon l'une des revendications 16 à 21, 15 caractérisé en ce que les moyens de calcul du mot de code associé comprennent des moyens de résolution d'un système d'équations.22. The decoding device according to one of claims 16 to 21, characterized in that the means for calculating the associated codeword include means for solving a system of equations. 23. Dispositif de décodage selon la revendication 22, caractérisé en ce que les moyens de résolution du système d'équations sont limités au traitement des lignes qui contiennent des composantes erronées des mots reçus agrégés r, pour lesquelles (x;) ri (x;) .  23. A decoding device according to claim 22, characterized in that the resolution means of the system of equations are limited to the processing of the lines which contain erroneous components of the aggregated received words r, for which (x;) ri (x; ). 24. Dispositif de décodage selon l'une des revendications 16 à 23, caractérisé en ce qu'il comprend des moyens de sélection d'un mot associé parmi une pluralité de mots associés calculés.24. decoding device according to one of claims 16 to 23, characterized in that it comprises means for selecting an associated word from a plurality of calculated associated words. 25. Dispositif de décodage selon l'une des revendications 16 à 23, caractérisé en ce que les moyens d'obtention du mot agrégé associé L i par une méthode de décodage par liste comprennent: 2869482 42 - des moyens de recherche d'au moins un polynôme fi sur Fq de degré au plus kf tel que le nombre de composantes rf(x) du mot reçu agrégé r f pour lesquelles rf (x) = fi (x) est au moins égal à un nombre il; , où kf est un nombre entier prédéterminé et où 77 f _< ,u et; - des moyens de calcul du mot agrégé associé j tel que (x,) = fi (x,) pour tout i entre 1 et,u.  25. Decoding device according to one of claims 16 to 23, characterized in that the means for obtaining the associated aggregated word L i by a list decoding method include: - search means of at least a polynomial fi over Fq of degree at most kf such that the number of components rf (x) of the aggregate received word rf for which rf (x) = fi (x) is at least equal to a number; where kf is a predetermined integer and where 77 f _ <, u and; means for calculating the associated aggregated word j such that (x,) = fi (x,) for any i between 1 and, u. 26. Dispositif de décodage selon la revendication 25, caractérisé en ce que, les moyens de recherche d'au moins un polynôme fi générant au mois deux polynômes solutions, il comprend: - des moyens de calcul d'un mot agrégé associé pour chaque polynôme solution, ; - des moyens de calcul, pour chaque polynôme solution, d'au moins un mot associé en fonction dudit mot agrégé associé calculé pour le polynôme solution; - des moyens de comparaison des mots associés calculés pour chaque polynôme solution avec le mot reçu r; - des moyens de sélection du mot associé r parmi les mots associés calculés pour chaque polynôme solution.  26. The decoding device as claimed in claim 25, wherein the means for searching for at least one polynomial generating at least two solution polynomials, it comprises: means for calculating an associated aggregated word for each polynomial solution,; calculating means, for each solution polynomial, of at least one associated word as a function of said associated aggregated word calculated for the solution polynomial; means for comparing the associated words calculated for each solution polynomial with the received word r; means for selecting the associated word r from the associated words calculated for each solution polynomial. 27. Dispositif de décodage pour code de longueur n et de dimension k sur un corps de Galois Fq, le code étant défini au moyen d'un ensemble de localisation de cardinal n sur Fq x Fq, caractérisé en ce que, l'ensemble de localisation comprenant au moins,u sous-ensembles dits agrégats, où ,u 2, chaque agrégat regroupant les éléments (x, y p (x)) de l'ensemble de localisation ayant une valeur commune de x, pour p = 0, (x) -1, où 2(x) est le cardinal de l'agrégat, il comprend: - des moyens de calcul, à partir d'un mot reçu r, de mots reçus agrégés r =[r(x1),ri (x2),...,ri(x,)] pour j=0,...,jmax, où .max ?1, selon la 2(x)- 1 formule r i (x) _ E [y p (x)}' r(x, y p (x)) , p=o - des moyens de recherche, pour chaque mot reçu agrégé rj, d'au moins un polynôme fj sur Fq de degré au plus ki tel que le nombre de composantes ri(x) du mot reçu agrégé r pour lesquelles rj(x) = fj(x) est au moins égal à un nombre 77; , où s u; - des moyens de calcul, pour chaque mot reçu agrégé rj, d'au moins un mot agrégé associé r tel que (x,) = fj(x1) pour tout i entre 1 et,u 10 - des moyens de calcul d'au moins un mot de code associé dont 2(x) 1 les composantes i, (x, y) sont telles que t"j(x1) = [yp (x, )] r(x1, y p (x1)) pour p=o tout i entre 1 et,u et pour tout j entre 0 et jm.  27. A decoding device for a code of length n and of dimension k on a Galois field Fq, the code being defined by means of a cardinalization set n on Fq x Fq, characterized in that, the set of a location comprising at least, u subsets called aggregates, where, u 2, each aggregate grouping the elements (x, yp (x)) of the location set having a common value of x, for p = 0, (x ) -1, where 2 (x) is the cardinal of the aggregate, it comprises: - means of calculation, from a received word r, of aggregate received words r = [r (x1), ri (x2 ), ..., ri (x,)] for j = 0, ..., jmax, where .max? 1, according to the 2 (x) - 1 formula ri (x) _ E [yp (x)} r (x, yp (x)), p = o - search means, for each aggregated received word rj, of at least one polynomial fj over Fq of degree at most ki such that the number of components ri (x ) of the aggregated received word r for which rj (x) = fj (x) is at least 77; , where s u; calculating means, for each aggregate received word rj, of at least one associated aggregated word r such that (x,) = fj (x1) for all i between 1 and, u 10 - calculating means from minus one associated codeword whose 2 (x) 1 the components i, (x, y) are such that t "j (x1) = [yp (x,)] r (x1, yp (x1)) for p = o all i between 1 and, u and for all j between 0 and jm. 28. Appareil de lecture de signaux numériques codés comprenant un lecteur de données modulées, des moyens pour démoduler lesdites données modulées en signaux numériques codés, et un dispositif de décodage selon l'une des revendication 16 à 27 pour décoder desdits signaux numériques codés.  An encoded digital signal reading apparatus comprising a modulated data reader, means for demodulating said modulated data into coded digital signals, and a decoder device according to one of claims 16 to 27 for decoding said encoded digital signals. 29. Appareil de réception de signaux numériques codés comprenant un récepteur de données modulées, des moyens pour démoduler lesdites données modulées en signaux numériques codés et un dispositif de décodage selon l'une des revendication 16 à 27 pour décoder desdits signaux numériques codés.  An encoded digital signal receiving apparatus comprising a modulated data receiver, means for demodulating said coded digital signal modulated data, and a decoder device according to one of claims 16 to 27 for decoding said encoded digital signals. 30. Système de stockage de données comprenant au moins un appareil d'enregistrement de signaux numériques codés, au moins un support d'enregistrement et au moins un appareil de lecture de signaux numériques codés selon la revendication 28.  Data storage system comprising at least one coded digital signal recording apparatus, at least one recording medium and at least one coded digital signal reading apparatus according to claim 28. 31. Système de télécommunication de données sous forme de blocs de longueur prédéterminée, comprenant au moins un appareil d'émission de signaux numériques et au moins un appareil de réception de signaux numériques codés selon la revendication 29.  A data communication system in the form of blocks of predetermined length, comprising at least one digital signal transmitting apparatus and at least one coded digital signal receiving apparatus according to claim 29. 32. Moyen de stockage de données inamovible comportant des 10 instructions de code de programme informatique pour l'exécution des étapes d'un procédé de décodage selon l'une des revendications 1 à 15.  32. Non-removable data storage medium comprising computer program code instructions for performing the steps of a decoding method according to one of claims 1 to 15. 33. Moyen de stockage de données partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé de décodage selon l'une des revendications 1 à 15.  33. Partially or fully removable data storage means comprising computer program code instructions for performing the steps of a decoding method according to one of claims 1 to 15. 34. 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 un procédé de décodage selon l'une des revendications 1 à 15.  34. Computer program, containing instructions such that, when said program controls a programmable data processing device, said instructions cause said data processing device to implement a decoding method according to one of claims 1 to 15.
FR0404358A 2004-04-23 2004-04-23 DECODING METHOD AND DEVICES AND APPARATUS FOR CARRYING OUT SAID METHOD Expired - Fee Related FR2869482B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0404358A FR2869482B1 (en) 2004-04-23 2004-04-23 DECODING METHOD AND DEVICES AND APPARATUS FOR CARRYING OUT SAID METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0404358A FR2869482B1 (en) 2004-04-23 2004-04-23 DECODING METHOD AND DEVICES AND APPARATUS FOR CARRYING OUT SAID METHOD

Publications (2)

Publication Number Publication Date
FR2869482A1 true FR2869482A1 (en) 2005-10-28
FR2869482B1 FR2869482B1 (en) 2006-06-23

Family

ID=34944562

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0404358A Expired - Fee Related FR2869482B1 (en) 2004-04-23 2004-04-23 DECODING METHOD AND DEVICES AND APPARATUS FOR CARRYING OUT SAID METHOD

Country Status (1)

Country Link
FR (1) FR2869482B1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GURUSWAMI V ET AL: "IMPROVED DECODING OF REED-SOLOMON AND ALGEBRAIC-GEOMETRY CODES", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE INC. NEW YORK, US, vol. 45, no. 6, September 1999 (1999-09-01), pages 1757 - 1767, XP001009658, ISSN: 0018-9448 *

Also Published As

Publication number Publication date
FR2869482B1 (en) 2006-06-23

Similar Documents

Publication Publication Date Title
FR2860360A1 (en) Improved fidelity digital word communications system transmit/record having reed solomon coder/decoder and error correction block/memory registers
EP0108655B1 (en) System for the detection and correction of transmission errors in a binary message using an error detecting and correcting interleaved reed-solomon cyclic code
FR2849514A1 (en) CODE OF ALGEBRA GEOMETRY ADAPTED TO RAFALE ERRORS
FR2909499A1 (en) Low density parity check code word decoding method for communication apparatus, involves determining messages, from variable node to control node, relative to set of symbols such that minimal value is null
EP0808538B1 (en) Iterative-structure digital signal reception device, and module and method therefor
WO2009095574A2 (en) Method and entity for probabilistic symmetrical encryption
FR2778289A1 (en) ITERATIVE DECODING OF PRODUCT CODES
FR2765749A1 (en) WEIGHTED DECISION SYNDROME-BASED DECODER FOR CONVOLUTION CODES
FR2845220A1 (en) Method and device for decoding the algebraic-geometric codes at a point, comprises the construction of a sequence of syndromes matrices ending with a zero row elements matrix
FR2853976A1 (en) Information symbol encoding method for use in coded image transmission application, involves completing words corresponding to redundancy symbol such that other formed words is orthogonal to one matrix, and forming code word
FR2866998A1 (en) Algebraic geometry code decoding method for encoded digital signal receiving apparatus, involves implementing errors correction algorithm adapted to Reed-Solomon code in order to calculate errors on components of Reed-Solomon code word
FR2790621A1 (en) Interlacing method for coding and decoding of turbo codes of binary symbols representing a physical magnitude using two convolute recursive coders having polynomial divisor with same data period
EP2158720A1 (en) Method of authentication using a decoding of an error correcting code on the basis of a public matrix
FR2865083A1 (en) Fiber product`s algebraic geometry code decoding process for communication system, involves decoding compiled algebraic codes, defined on same algebraic curve represented by equation in X and Z
FR2863794A1 (en) Algebraic geometry code decoding method for e.g. data recoding system, involves applying bi-phase decoding algorithm to syndrome matrix that provides set of polynomials called phase locating candidates
EP0936743A1 (en) Iterative decoding for binary block codes
FR2673341A1 (en) CIRCUIT ARRANGEMENT FOR DETECTING AND CORRECTING DEFECTS IN DATA WORDS.
FR2952252A1 (en) METHOD AND DEVICE FOR DECODING, COMPUTER PROGRAM PRODUCT, CORRESPONDING MEANS OF STORAGE AND CORRESPONDING DESTINATION NODE
FR2867925A1 (en) CANAL ADJUSTMENT TO RAFALE ERRORS
FR2838580A1 (en) Methods and devices of low cost for decoding the codes products
EP0204612A1 (en) Method for transmitting data with a possibility for packet error correction, and coding and decoding apparatus for carrying out said method
FR2858141A1 (en) Information symbol coding process for use in communication system, involves coding information word of preset length of form belonging to Reed-Solomon code of preset size and length
FR2869482A1 (en) Decoding method for e.g. encoded digital signal reading apparatus, involves calculating associated word, whose corresponding aggregated words according to aggregates are associated aggregated words, in code of length n and dimension k
FR2880218A1 (en) DECODING METHOD FOR ALGEBRATIC GEOMETRY CODES AND DEVICE THEREOF
FR2873875A1 (en) Erroneous aggregates locating method for e.g. communication system, involves determining, from polynomial for locating errors in variable, set of values of variable having value of variable labeling erroneous aggregates

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131231