FR3022651A1 - METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM. - Google Patents

METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM. Download PDF

Info

Publication number
FR3022651A1
FR3022651A1 FR1455849A FR1455849A FR3022651A1 FR 3022651 A1 FR3022651 A1 FR 3022651A1 FR 1455849 A FR1455849 A FR 1455849A FR 1455849 A FR1455849 A FR 1455849A FR 3022651 A1 FR3022651 A1 FR 3022651A1
Authority
FR
France
Prior art keywords
level
data
coding
permutation
stage
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.)
Pending
Application number
FR1455849A
Other languages
French (fr)
Inventor
Jean-Claude Carlach
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Priority to FR1455849A priority Critical patent/FR3022651A1/en
Priority to PCT/FR2015/051680 priority patent/WO2015197971A1/en
Publication of FR3022651A1 publication Critical patent/FR3022651A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/1505Golay Codes
    • 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Abstract

L'invention concerne un dispositif de codage, apte à mettre en œuvre un code correcteur d'erreurs global associant des données de redondance à des données source. Selon l'invention, un tel dispositif de codage comprend : - deux étages de permutation de premier niveau, dont un premier étage (231) connecté à des variables d'entrée et à des variables internes associées à un premier étage de codage de deuxième niveau (221), et un deuxième étage (232) connecté à des variables de sortie et à des variables internes associées à un deuxième étage de codage de deuxième niveau (222), et - un étage de codage de premier niveau (21) connecté d'une part au premier étage de permutation de premier niveau et d'autre part au deuxième étage de permutation de premier niveau, chaque étage de codage comprenant au moins deux modules de codage de base mettant chacun en œuvre un code de base.The invention relates to a coding device capable of implementing a global error correction code associating redundancy data with source data. According to the invention, such an encoding device comprises: two first-level permutation stages, including a first stage (231) connected to input variables and to internal variables associated with a first level second coding stage (221), and a second stage (232) connected to output variables and internal variables associated with a second second level coding stage (222), and - a first level coding stage (21) connected to firstly to the first level permutation stage and secondly to the first level permutation stage, each coding stage comprising at least two basic coding modules each implementing a basic code.

Description

1 Procédés et dispositifs de codage et de décodage correcteur d'erreurs, et programme d'ordinateur correspondant. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage de données, mettant en oeuvre un code correcteur d'erreurs. Plus précisément, l'invention propose une nouvelle technique de codage de données source, délivrant des paquets de données codées ou un flux de données codées, destiné(s) à être transmis sur un canal de transmission (par exemple de type hertzien, optique ou électrique), ou stocké(s) dans un support matériel. L'invention concerne également une technique de décodage correspondante, permettant notamment de corriger les erreurs de transmission inhérentes au canal de transmission, et en particulier les erreurs de type effacement. L'invention trouve notamment des applications dans les domaines suivants : la transmission d'information par télécommunications filaires électriques, comme dans les normes ADSL, ou optiques, sur fibres optiques ou en espace libre ; - la transmission d'information dans les communications radios spatiales et terrestres sans fil (« wireless » en anglais), comme dans les systèmes de télévision numérique TNT, de radio numérique DAB, de téléphonie GSM ou UMTS, de réseau radio WiFi, et aussi dans les futurs systèmes de communications, comme les futures normes DVB, 4G, LTE, « Internet du futur », ou dans les communications entre véhicules, objets ou machines communicants ... ; la compression et la décompression de source d'informations ; la génération et la détection de séquences dites d'embrouillage (« scrambling » en anglais) dans les systèmes CDMA ; le stockage d'informations dans des mémoires de masse magnétiques, optiques, mécaniques ou électriques pour constituer des disques durs, ou des mémoires vives d'ordinateurs, ou des clés mémoire à interface de type USB... ; la correction d'informations lors des calculs dans un circuit intégré d'un microprocesseur ou dans un ordinateur ; etc. 2. Art antérieur De nombreuses techniques de codage permettent la correction d'erreurs de transmission (au décodage) en générant des données de redondance à partir de données source. Ainsi, un code correcteur d'erreurs est classiquement défini par : une longueur n, correspondant aux données en sortie du codeur (mot de code de longueur n formé de k données source et de (n - k) données de redondance), 3022651 2 un nombre de bits ou de symboles d'information utiles k, correspondant aux données en entrée du codeur, encore appelées données source, et une distance minimale La distance minimale d'un code dmin correspond au minimum de distance entre deux mots 5 de code. Elle permet de déterminer le nombre maximum d'erreurs que le code peut corriger dans un mot de code. Le rendement du code est quant à lui défini par R = k/n Par exemple, un code de Hamming (8, 4, 4) est un code de longueur n = 8, prenant en entrée k = 4 symboles d'information utiles, de distance minimale dmin = 4, et de rendement 1/2. Dans le brevet européen EP 1 101 288, J.C. Carlach et C. Vervoux ont présenté une 10 technique de construction de codes quasi-optimaux, désignés par l'expression « codes Cortex ». De tels codes sont construits en utilisant plusieurs étages de codage, mettant chacun en oeuvre plusieurs modules de codage de base simples, et des étages de brassage entre deux étages de codage. Une telle technique permet de construire des codes auto-duaux de type-I et de tye-II, selon la parité du nombre d'étages.1 Methods and devices for coding and decoding error correction, and corresponding computer program. FIELD OF THE INVENTION The field of the invention is that of coding and decoding data, implementing an error correction code. More specifically, the invention proposes a new source data coding technique, delivering coded data packets or a coded data stream, intended to be transmitted over a transmission channel (for example of the wireless, optical or electrical), or stored in a physical medium. The invention also relates to a corresponding decoding technique, in particular for correcting transmission errors inherent in the transmission channel, and in particular erase-type errors. The invention finds particular applications in the following fields: the transmission of information by wired electrical telecommunications, as in the ADSL standards, or optical, on optical fibers or in free space; - the transmission of information in space and wireless terrestrial radio communications ("wireless"), as in digital television, DAB digital radio, GSM or UMTS telephony, WiFi radio network, and also in future communications systems, such as future DVB, 4G, LTE standards, "Future Internet", or in communications between vehicles, objects or communicating machines ...; information source compression and decompression; the generation and detection of so-called scrambling sequences in CDMA systems; storing information in magnetic, optical, mechanical or electrical mass memories for constituting hard disks, or RAMs of computers, or memory sticks with a USB type interface ...; correcting information during calculations in an integrated circuit of a microprocessor or in a computer; etc. 2. PRIOR ART Many coding techniques allow the correction of transmission errors (at decoding) by generating redundancy data from source data. Thus, an error correction code is conventionally defined by: a length n, corresponding to the output data of the encoder (code word of length n formed of k source data and (n - k) redundancy data), 3022651 2 a number of bits or useful information symbols k corresponding to the input data of the encoder, also called source data, and a minimum distance The minimum distance of a code dmin corresponds to the minimum distance between two codewords. It allows to determine the maximum number of errors that the code can correct in a code word. The code efficiency is defined by R = k / n. For example, a Hamming code (8, 4, 4) is a code of length n = 8, taking as input k = 4 useful information symbols. minimum distance dmin = 4, and output 1/2. In European Patent EP 1,101,288, J. C. Carlach and C. Vervoux have presented a quasi-optimal code construction technique, referred to as "Cortex codes". Such codes are constructed using a plurality of coding stages, each implementing a plurality of simple basic coding modules, and patching stages between two coding stages. Such a technique makes it possible to construct auto-dual type-I and tye-II codes, according to the parity of the number of stages.

15 Un inconvénient d'une telle technique est qu'elle nécessite un grand nombre d'étages de codage pour obtenir des codes de grandes distances minimales dmin par rapport à la longueur n d'un mot de code. De manière générale, la distance minimale dmin n'est donc pas optimale pour ces longueurs n et k, c'est-à-dire que la distance minimale n'est pas la plus proche possible d'une 20 borne pour laquelle le code permet de détecter le nombre maximum d'erreurs (borne de Hamming ou « Sphere-Packing Bound », telle que dmin/n 0,22 pour un code auto-dual de rendement - = 1/2) ou de la borne de Gilbert-Varshamov (telle que dmin/n 0,11 pour un code auto-dual de rendement - = 1/2). Or, plus la distance minimale dmin est grande, meilleur est le code correcteur d'erreurs, 25 puisqu'il permet de détecter (dmin - 1) symboles erronés et d'en corriger 1(dmin - 1)/21 (où l'opérateur L. _I désigne la partie entière). Or les décodeurs de codes Cortex actuels ne fonctionnent pas de façon optimale dès que le nombre d'étages de codage utilisés pour construire le code Cortex dépasse un nombre de trois étages de codage. Ceci est principalement dû au fait que les variables intermédiaires (variables 30 d'état internes) entre les étages de codage ne sont pas transmises et ne possèdent donc pas de valeurs de vraisemblance ou de probabilités a priori avec lesquelles on puisse les initialiser, notamment lors de la mise en oeuvre au décodage d'un algorithme de type propagation des probabilités (en anglais « Belief Propagation » ou BP). Cette difficulté à décoder des codes Cortex construits en utilisant plus de trois étages de 3022651 3 codage rend problématique l'utilisation de codes Cortex plus longs, devant comporter plus d'étages de codage pour obtenir des distances minimales beaucoup plus grandes. Or un nombre supérieur d'étages de codage permet d'obtenir des codes offrant des capacités pratiques importantes de correction d'erreurs.A disadvantage of such a technique is that it requires a large number of coding stages to obtain codes of great minimum distances dmin with respect to the length n of a code word. In general, the minimum distance dmin is therefore not optimal for these lengths n and k, ie the minimum distance is not as close as possible to a terminal for which the code allows to detect the maximum number of errors (Hamming bound or "Sphere-Packing Bound", such as dmin / n 0.22 for an auto-dual performance code - = 1/2) or the Gilbert-Varshamov bound (such as dmin / n 0.11 for an auto-dual yield code - = 1/2). However, the greater the minimum distance dmin, the better the error correction code, since it makes it possible to detect (dmin - 1) erroneous symbols and to correct 1 (dmin - 1) / 21 (where the operator L. _I denotes the integer part). However, the current Cortex code decoders do not function optimally as soon as the number of coding stages used to construct the Cortex code exceeds a number of three coding stages. This is mainly due to the fact that the intermediate variables (internal state variables) between the coding stages are not transmitted and therefore do not have any likelihood values or prior probabilities with which to initialize them, especially when from implementation to decoding of a probabilistic propagation algorithm (in English "Belief Propagation" or BP). This difficulty in decoding Cortex codes constructed using more than three coding stages makes the use of longer Cortex codes problematic, having to have more coding stages to achieve much greater minimum distances. However, a higher number of coding stages makes it possible to obtain codes offering significant practical error correction capabilities.

5 Il existe donc un besoin pour une nouvelle technique de codage correcteur d'erreurs, permettant de générer des mots de code présentant de grandes distances minimales, et pouvant être décodés simplement. 3. Exposé de l'invention L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces 10 inconvénients de l'art antérieur, sous la forme d'un dispositif de codage correcteur d'erreurs, apte à mettre en oeuvre un code correcteur d'erreurs global associant des données de redondance à des données source, le code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage des données source aux données de redondance inversible.There is therefore a need for a new error-correcting coding technique for generating codewords with large minimum distances that can be decoded simply. 3. DISCLOSURE OF THE INVENTION The invention proposes a new solution which does not have all of these drawbacks of the prior art, in the form of an error correction coding device, able to implement a global error-correcting code associating redundancy data with source data, the global correction code being capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and a matrix for passing the source data to Invertible redundancy data.

15 Selon l'invention, le dispositif de codage comprend : deux étages de permutation de premier niveau, dont : o un premier étage de permutation de premier niveau connecté, en entrée, d'une part à des variables d'entrée associées à un premier ensemble des données source et/ou de redondance, et d'autre part à des variables internes associées à 20 des données d'entrée et des données de sortie d'un premier étage de codage de deuxième niveau, et o un deuxième étage de permutation de premier niveau connecté, en sortie, d'une part à des variables de sortie associées à un deuxième ensemble des données source et/ou de redondance, et d'autre part à des variables internes associées à 25 des données d'entrée et des données de sortie d'un deuxième étage de codage de deuxième niveau, le premier ensemble et le deuxième ensemble formant un mot de code, un étage de codage de premier niveau connecté d'une part aux variables associées aux données de sortie du premier étage de permutation de premier niveau et d'autre part aux 30 variables associées aux données d'entrée du deuxième étage de permutation de premier niveau, chaque étage de codage comprenant au moins deux modules de codage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de 35 données d'entrée aux données de sortie inversible.According to the invention, the coding device comprises: two first-level permutation stages, of which: a first level first-level permutation stage connected, on the one hand, to input variables associated with a first level; together source and / or redundancy data, and secondly to internal variables associated with input data and output data of a first second level coding stage, and o a second permutation stage. the first level connected, on the output side, on the one hand to output variables associated with a second set of source and / or redundancy data, and on the other hand to internal variables associated with input data and data. output data of a second second level coding stage, the first set and the second set forming a code word, a first level coding stage connected on the one hand to the variables associated with the output data of the first level r first level permutation stage and secondly to the variables associated with the input data of the second level of first level permutation, each coding stage comprising at least two basic coding modules each implementing a code of coding. This base may be represented by a generator matrix comprising, in its systematic form, an identity matrix and a matrix for passing input data to the invertible output data.

3022651 4 L'invention propose ainsi un nouveau dispositif de codage correcteur d'erreurs, dont la structure particulière permet de construire un code global performant avec une grande distance minimale, même si le nombre d'étage de codage est faible (trois étages de codage par exemple). De ce fait, les mots de code obtenus en utilisant un code global ainsi construit peuvent 5 être décodés en utilisant les décodeurs de codes Cortex actuels, basés sur des décodages itératifs de type « Belief Propagation » performants, ou un décodeur selon l'invention. Selon l'invention, on considère que la matrice de passage des données source aux données de redondance est inversible. Aucune autre contrainte n'est imposée sur le code correcteur d'erreurs, et notamment sur la longueur de ce code ou la longueur des cycles. On peut 10 donc considérer que le code correcteur d'erreurs mis en oeuvre est quasi-aléatoire. En particulier, le codeur proposé permet de construire un code global auto-dual avec une grande distance minimale quelque soit la longueur du code, et notamment pour un code assez court (de l'ordre de n < 1000). L'invention permet ainsi un décodage plus simple et plus performant que les techniques 15 de l'art antérieur, notamment pour les codes présentant de petites longueurs et/ou des cycles courts. Pour ce faire, on considère au moins trois étages de codage, comprenant chacun au moins deux modules de codage de base fonctionnant indépendamment, chaque module de codage de base mettant en oeuvre un code de base. Seul l'étage de codage de premier niveau est connecté à 20 des variables d'entrée et à des variables de sortie correspondant aux données source et aux données de redondance, après permutation. Les autres étages de codage sont connectés uniquement à des variables internes, qui sont des variables d'état, non transmises au décodeur. La structure est donc récursive et fermée. En particulier, les codes de base appartiennent au groupe comprenant : 25 - un code de Hamming ; un code identité ; un code de Golay ; un code à répétition simple ; 30 Par exemple, un code de base est un code de Hamming (8,4,4), ou un code définit sur un alphabet quaternaire Z4, ou un code de Golay (24, 12, 8) .... On choisit avantageusement un code de base présentant une grande distance minimale. Ainsi, les codes de base ont la propriété de mettre en oeuvre des codes auto-duaux. Cette propriété d'auto-dualité permet un décodage optimal avec une complexité de décodage réduite.The invention thus proposes a new error-correcting coding device, the particular structure of which makes it possible to construct an efficient overall code with a large minimum distance, even if the number of coding stages is small (three coding stages). for example). As a result, the codewords obtained using a global code thus constructed can be decoded using current Cortex code decoders, based on efficient "Belief Propagation" iterative decoding, or a decoder according to the invention. According to the invention, it is considered that the matrix of passage of the source data to the redundancy data is invertible. No other constraint is imposed on the error correction code, and in particular on the length of this code or the length of the cycles. It can therefore be considered that the error correction code implemented is quasi-random. In particular, the proposed coder makes it possible to construct a global self-dual code with a large minimum distance regardless of the length of the code, and in particular for a rather short code (of the order of n <1000). The invention thus makes decoding simpler and more efficient than the techniques of the prior art, particularly for codes having short lengths and / or short cycles. To do this, at least three coding stages are considered, each comprising at least two basic coding modules operating independently, each basic coding module implementing a basic code. Only the first level coding stage is connected to input variables and output variables corresponding to the source data and the redundancy data after permutation. The other coding stages are connected only to internal variables, which are state variables, not transmitted to the decoder. The structure is therefore recursive and closed. In particular, the basic codes belong to the group comprising: a Hamming code; an identity code; a Golay code; a simple repetition code; For example, a base code is a Hamming code (8.4.4), or a code defined on a quaternary alphabet Z4, or a Golay code (24, 12, 8). a basic code with a large minimum distance. Thus, the basic codes have the property of implementing auto-dual codes. This self-duality property allows for optimal decoding with reduced decoding complexity.

35 Elle garantit notamment un rendement de codage égal à 1/2.It guarantees in particular a coding efficiency equal to 1/2.

3022651 5 Selon une caractéristique particulière de l'invention, le dispositif de codage comprend au moins deux étages de permutation de q-ème niveau, avec q un entier supérieur ou égal à 2, dont : un premier étage de permutation de q-ème niveau connecté, en entrée, à des variables internes associées aux données d'entrée et aux données de sortie d'un premier étage de 5 codage de (q+1)-ème niveau, et, en sortie, à des variables internes associées aux données d'entrée et aux données de sortie d'un premier étage de codage de q-ème niveau ; un deuxième étage de permutation de q-ème niveau connecté, en entrée, à des variables internes associées aux données d'entrée et aux données de sortie d'un deuxième étage de codage de q-ème niveau et, en sortie, à des variables internes associées aux données 10 d'entrée et aux données de sortie d'un deuxième étage de codage de (q+1)-ème niveau. Selon un exemple de réalisation, chaque module de codage de base du ou des étages de codage de i-ème niveau comprend c entrées et c sorties, et chaque étage de permutation de ième niveau met en oeuvre une permutation de type c-cyclique, avec i et c des entiers supérieurs ou égaux à 1. En particulier, c est égal à 4.According to one particular characteristic of the invention, the coding device comprises at least two stages of permutation of q-th level, with q an integer greater than or equal to 2, of which: a first stage of permutation of q-th level connected, as input, to internal variables associated with the input data and the output data of a first (q + 1) -st level encoding stage, and, at the output, to internal variables associated with the data input and output data of a first level coding level q-th level; a second stage of permutation of q-th level connected, at the input, to internal variables associated with the input data and the output data of a second stage of coding of q-th level and, at the output, with variables embedded in the input data and the output data of a second (q + 1) -th level coding stage. According to an exemplary embodiment, each basic coding module of the i-th level coding stage (s) comprises c inputs and c outputs, and each level of permutation of the ith level implements a permutation of the c-cyclic type, with i and c are integers greater than or equal to 1. In particular, c is equal to 4.

15 Une permutation de type c-cyclique est une permutation selon laquelle un même motif de permutation est appliqué pour chaque bloc de longueur c. En particulier, de telles permutations cycliques par bloc sont faciles à implémenter. L'utilisation de permutations c-cycliques permet notamment de minimiser le nombre d'opérations d'accès mémoire (lecture/écriture), et d'éviter les problèmes de conflit d'accès 20 mémoire. Par exemple, une telle permutation de type c-cyclique s'écrit sous la forme : { Ir 4k(i) - Ac-1 + i(mod k) si i E (c - 1)(mod c) Irpm(i) = i(mod k) si i E 1(mod = Do + i(mod k) si i E 0(mod c) avec, pour conditions, que D = {Do, Al, ... , AC-1 ) soit un ensemble de paramètres entiers tels que : les paramètres (00, doivent prendre au moins trois valeurs différentes, ou 25 si les paramètres (00, ne prennent que deux valeurs différentes, alors chacune des deux valeurs est au moins présente deux fois dans l'ensemble D. Selon un autre exemple de réalisation, chaque étage de permutation de i-ème niveau met en oeuvre une permutation affine, avec i un entier supérieur ou égal à 1. Selon un aspect spécifique de l'invention, le ou les étages de codage de i-ème niveau 30 comprennent chacun au moins deux modules de permutation locale, chaque module de Vi = 0,1, ... (k - 1) 3022651 6 permutation locale permutant les variables internes obtenues en sortie d'un module de codage de base. De telles permutations locales permettent notamment d'obtenir des mots de code de base présentant de bonnes distances minimales.A permutation of c-cyclic type is a permutation according to which the same permutation pattern is applied for each block of length c. In particular, such block cyclic permutations are easy to implement. The use of c-cyclic permutations makes it possible in particular to minimize the number of memory access operations (read / write), and to avoid problems of memory access contention. For example, such a permutation of c-cyclic type is written in the form: {Ir 4k (i) - Ac-1 + i (mod k) if i E (c-1) (mod c) Irpm (i) = i (mod k) if i E 1 (mod = Do + i (mod k) if i E 0 (mod c) with, for conditions, that D = {Do, Al, ..., AC-1) be a set of integer parameters such that: the parameters (00, must take at least three different values, or if the parameters (00, take only two different values, then each of the two values is at least twice present in the In another exemplary embodiment, each level of i-th level permutation implements an affine permutation, with i an integer greater than or equal to 1. According to a specific aspect of the invention, the stage or stages of i-th level coding 30 each comprise at least two local permutation modules, each module of Vi = 0.1, ... (k-1) local permutation permutating the internal variables obtained at the output of a module of basic coding Such local permutations make it possible in particular to obtain basic code words having good minimum distances.

5 Selon une caractéristique particulière, le dispositif de codage présente une structure symétrique. Ainsi, les deux étages de codage de q-ième niveau sont localisés de part et d'autre de l'étage de codage de premier niveau (q 2), et comprennent un même nombre d'entrées et de sorties.According to one particular characteristic, the coding device has a symmetrical structure. Thus, the two levels of q-th level coding are located on either side of the first level coding stage (q 2), and include the same number of inputs and outputs.

10 De la même façon, les deux étages de permutation de (q-1)-ième niveau, inséré chacun entre un des étages de codage de (q-1)-ième niveau et un des étages de codage de q-ième niveau sont symétriques. Par exemple, si l'on note n la permutation insérée entre le premier étage de codage de deuxième niveau et l'étage de codage de premier niveau, alors la permutation insérée entre le deuxième étage de codage de deuxième niveau et l'étage de codage de premier niveau, 15 notée mi, sera telle que mi = rco-1. En particulier, une symétrie entre les données source et les données de redondance permet de concevoir des algorithmes de type « Belief-Propagation » plus rapides à converger, car travaillant sur des couples (xi, ri) pour i = 0,1, ..., k - 1. Selon une caractéristique particulière de l'invention, le nombre de variables internes est 20 deux fois supérieur au nombre de variables associées aux données source. Selon un mode de réalisation particulier, tous les modules de codage de base mettent en oeuvre un code de base identique. Ainsi, le dispositif de codage selon l'invention est simplifié par l'utilisation de modules de codage de base mettant en oeuvre des codes de base identiques.Similarly, the two (q-1) -th level permutation stages, each inserted between one of the (q-1) -th level coding stages and one of the q-th level coding stages are symmetrical. For example, if n is the permutation inserted between the first second level coding stage and the first level coding stage, then the permutation inserted between the second second level coding stage and the coding stage first level, noted 15 mi, will be such that mi = rco-1. In particular, a symmetry between the source data and the redundancy data makes it possible to design "Belief-Propagation" type algorithms faster to converge, because working on pairs (xi, ri) for i = 0.1, .. According to one particular characteristic of the invention, the number of internal variables is twice the number of variables associated with the source data. According to a particular embodiment, all basic coding modules implement an identical basic code. Thus, the coding device according to the invention is simplified by the use of basic coding modules implementing identical basic codes.

25 Selon un aspect particulier de l'invention, le dispositif comprend un module de forçage à zéro, mettant à la valeur nulle au moins une des données source et/ou au moins une des données de redondance. Ce « forçage » à zéro de certaines données permet notamment d'obtenir, de façon très flexible, des codes de rendement différent de 1/2 et dont les distances minimales restent bonnes, 30 même lorsque le rendement tend vers 1. De même, on peut construire des codes quasi-optimaux avec des rendements tendant vers zéro. En effet, les données forcées à zéro au moment du codage représentent à la réception des informations nulles parfaites non-bruitées. Il est également possible d'obtenir un rendement différent de 1/2 en utilisant une structure non symétrique.According to a particular aspect of the invention, the device comprises a zero forcing module, setting to zero at least one of the source data and / or at least one of the redundancy data. This "forcing" to zero of certain data makes it possible in particular to obtain, in a very flexible manner, yield codes different from 1/2 and whose minimum distances remain good, even when the yield tends to 1. Similarly, can build quasi-optimal codes with yields tending toward zero. Indeed, the data forced to zero at the time of the coding represent on the reception of the information null perfect non-noisy. It is also possible to obtain a yield different from 1/2 using a non-symmetrical structure.

3022651 7 En particulier, l'ensemble des étages de codage et de permutation forme un graphe de Tanner, dont les entrées sont les variables d'entrée associées au premier ensemble de données source et/ou de redondance, et les sorties sont les variables de sortie associées au deuxième ensemble de données source et/ou de redondance.In particular, the set of coding and permutation stages form a Tanner graph, the inputs of which are the input variables associated with the first set of source and / or redundancy data, and the outputs are the variables of output associated with the second set of source data and / or redundancy.

5 Par exemple, les deux étages de codage de (q+1)-ème niveau et les deux étages de permutation de q-ème niveau sont symétriques l'un de l'autre par rapport à l'axe du milieu du graphe de Tanner. Dans un autre mode de réalisation, l'invention concerne un procédé de codage correcteur d'erreurs, apte à mettre en oeuvre un code correcteur d'erreurs global associant des données de 10 redondance à des données source, le code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage des données source aux données de redondance inversible. Selon l'invention, un tel procédé de codage met en oeuvre : deux étapes de permutation de premier niveau, dont : 15 o une première étape de permutation de premier niveau recevant, en entrée, d'une part un premier ensemble des données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une première étape de codage de deuxième niveau, et o une deuxième étape de permutation de premier niveau délivrant, en sortie, d'une 20 part un deuxième ensemble des données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une deuxième étape de codage de deuxième niveau, le premier ensemble et le deuxième ensemble formant un mot de code, et une étape de codage de premier niveau recevant les données de sortie de la première 25 étape de permutation de premier niveau et délivrant des données d'entrée à la deuxième étape de permutation de premier niveau, chaque étape de codage mettant en oeuvre au moins deux modules de codage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de 30 données d'entrée aux données de sortie inversible. Un tel procédé peut notamment être mis en oeuvre par un dispositif de codage correcteur d'erreurs tel que décrit précédemment. Ce procédé pourra bien sûr comporter les différentes caractéristiques relatives au dispositif de codage selon l'invention, qui peuvent être combinées ou prises isolément. Ainsi, les caractéristiques et avantages de ce procédé sont les mêmes que ceux 35 du dispositif de codage, et ne sont pas détaillés plus amplement.For example, the two coding stages of (q + 1) -th level and the two levels of permutation of q-th level are symmetrical to each other with respect to the middle axis of the Tanner graph. . In another embodiment, the invention relates to an error correction coding method capable of implementing a global error correction code associating redundancy data with source data, the global correction code being able to to be represented by a generator matrix comprising, in its systematic form, an identity matrix and a matrix for passing the source data to the invertible redundancy data. According to the invention, such a coding method implements: two first-level permutation steps, of which: a first step of first-level permutation receiving, on the input side, on the one hand a first set of source data and and / or redundancy, and secondly input data and output data obtained from a first second-level coding step, and o a second first-level permutation step delivering, at the output, on the one hand a second set of source and / or redundancy data, and on the other hand input data and output data obtained from a second second level coding step, the first set and the second set forming a code word, and a first level coding step receiving the output data of the first first level permutation step and outputting input data to the second first level permutation step, each coding step implementing at least two basic coding modules each implementing a basic code that can be represented by a generating matrix comprising, in its systematic form, an identity matrix and a data transfer matrix input to the invertible output data. Such a method may in particular be implemented by an error correction coding device as described above. This method may of course include the various characteristics relating to the coding device according to the invention, which can be combined or taken in isolation. Thus, the features and advantages of this method are the same as those of the coding device, and are not detailed further.

3022651 8 En particulier, chaque étape correspond avantageusement à un étage de la structure du dispositif de codage correspondant, et peut être implémentée sous la forme d'un circuit intégré, ou dans un composant électronique de type microprocesseur. Cette structure permet une compréhension plus aisée de l'invention. Cependant, le procédé de l'invention peut être mis en 5 oeuvre sous tout autre forme adéquate, et notamment sous forme essentiellement logicielle, un ou plusieurs processeurs effectuant le traitement correspondant. L'invention concerne par ailleurs un dispositif de décodage correcteur d'erreurs, apte à retrouver des données source à partir d'un mot de code reçu, les données source ayant été codées par un code correcteur d'erreurs global associant des données de redondance aux 10 données source, le code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage des données source aux données de redondance inversible. Selon l'invention, un tel dispositif de décodage comprend : deux étages de permutation de premier niveau, dont : 15 o un premier étage de permutation de premier niveau connecté, en entrée, d'une part à des variables d'entrée associées à un premier ensemble des données source et/ou de redondance, et d'autre part à des variables internes associées à des données d'entrée et des données de sortie d'un premier étage de décodage de deuxième niveau, et 20 o un deuxième étage de permutation de premier niveau connecté, en sortie, d'une part à des variables de sortie associées à un deuxième ensemble des données source et/ou de redondance, et d'autre part à des variables internes associées à des données d'entrée et des données de sortie d'un deuxième étage de décodage de deuxième niveau, 25 le premier ensemble et le deuxième ensemble formant le mot de code, et un étage de décodage de premier niveau connecté d'une part aux variables associées aux données de sortie du premier étage de permutation de premier niveau et d'autre part aux variables associées aux données d'entrée du deuxième étage de permutation de premier niveau, 30 chaque étage de décodage comprenant au moins deux modules de décodage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de données d'entrée aux données de sortie inversible. Un tel dispositif de décodage présente une structure similaire à celle du dispositif de 35 codage décrit ci-dessus. Il présente donc les mêmes caractéristiques que le dispositif de codage 3022651 9 selon l'invention, qui peuvent être combinées ou prises isolément. En particulier, un tel dispositif peut être utilisé pour décoder des mots de code obtenus à partir du dispositif de codage décrit ci-dessus. Dans un autre mode de réalisation, l'invention concerne un procédé de décodage 5 correcteur d'erreurs, apte à retrouver des données source à partir d'un mot de code reçu, les données source ayant été codées par un code correcteur d'erreurs global associant des données de redondance aux données source, le code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage des données source aux données de redondance inversible.In particular, each step advantageously corresponds to a stage of the structure of the corresponding coding device, and can be implemented in the form of an integrated circuit, or in an electronic component of the microprocessor type. This structure allows an easier understanding of the invention. However, the method of the invention can be implemented in any other suitable form, and especially in essentially software form, one or more processors performing the corresponding processing. The invention also relates to an error correction decoding device, able to retrieve source data from a received code word, the source data having been coded by a global error correction code associating redundancy data. to the source data, the global correcting code being capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and a matrix for passing the source data to the invertible redundancy data. According to the invention, such a decoding device comprises: two first-level permutation stages, of which: a first level first-level permutation stage connected, on the one hand, to input variables associated with a second one; first set of source and / or redundancy data, and secondly to internal variables associated with input data and output data of a first second level decoding stage, and 20 o a second stage of first-level switching connected, on the output, on the one hand to output variables associated with a second set of source and / or redundancy data, and on the other hand to internal variables associated with input data and output data of a second second level decoding stage, the first set and the second set forming the codeword, and a first level decoding stage connected on the one hand to the variables associated with the data the output of the first first level permutation stage and secondly the variables associated with the input data of the first level first permutation stage, each decoding stage comprising at least two basic decoding modules each implementing a base code capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and an input data passing matrix to the invertible output data. Such a decoding device has a structure similar to that of the coding device described above. It therefore has the same characteristics as the coding device 3022651 9 according to the invention, which can be combined or taken in isolation. In particular, such a device can be used to decode code words obtained from the coding device described above. In another embodiment, the invention relates to an error correction decoding method capable of retrieving source data from a received code word, the source data having been coded by an error correction code. global code associating redundancy data with source data, the global correction code being capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and a matrix for passing the source data to the invertible redundancy data.

10 Selon l'invention, un tel procédé de décodage met en oeuvre : deux étapes de permutation de premier niveau, dont : o une première étape de permutation de premier niveau recevant, en entrée, d'une part un premier ensemble des données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une 15 première étape de décodage de deuxième niveau, et o une deuxième étape de permutation de premier niveau délivrant, en sortie, d'une part un deuxième ensemble des données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une deuxième étape de décodage de deuxième niveau, 20 le premier ensemble et le deuxième ensemble formant le mot de code, et une étape de décodage de premier niveau recevant les données de sortie de la première étape de permutation de premier niveau et délivrant des données d'entrée à la deuxième étape de permutation de premier niveau, chaque étape de décodage mettant en oeuvre au moins deux modules de décodage de base 25 mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de données d'entrée aux données de sortie inversible. Un tel procédé peut notamment être mis en oeuvre par un dispositif de décodage correcteur d'erreurs tel que décrit précédemment. Ce procédé pourra bien sûr comporter les 30 différentes caractéristiques relatives au dispositif de décodage correcteur d'erreurs selon l'invention, qui peuvent être combinées ou prises isolément. Ainsi, les caractéristiques et avantages de ce procédé sont les mêmes que ceux du dispositif de décodage correcteur d'erreurs, et ne sont pas détaillés plus amplement. En particulier, chaque étape correspond avantageusement à un étage de la structure du 35 dispositif de décodage correspondant ; et peut être implémentée sous la forme d'un circuit 3022651 10 intégré, ou dans un composant électronique de type microprocesseur. Cette structure permet une compréhension plus aisée de l'invention. Cependant, le procédé de l'invention peut être mis en oeuvre sous tout autre forme adéquate, et notamment sous forme essentiellement logicielle, un ou plusieurs processeurs effectuant le traitement correspondant.According to the invention, such a decoding method implements: two first-level permutation steps, including: a first-level first-level permutation step receiving, on the input side, on the one hand a first set of source data and and / or redundancy, and secondly input data and output data obtained from a first second-level decoding step, and o a second first-level permutation step outputting, on the one hand a second set of source and / or redundancy data, and on the other hand input data and output data obtained from a second second level decoding step, the first set and the second set forming the code word, and a first-level decoding step receiving the output data of the first-level first permutation step and outputting input data to the second premutation-permutation step first level, each decoding step implementing at least two basic decoding modules 25 each implementing a basic code that can be represented by a generating matrix comprising, in its systematic form, an identity matrix and a matrix of passing input data to the invertible output data. Such a method may in particular be implemented by an error correction decoding device as described above. This method may of course include the various characteristics relating to the error correction decoding device according to the invention, which can be combined or taken in isolation. Thus, the features and advantages of this method are the same as those of the error correction decoding device, and are not detailed further. In particular, each step advantageously corresponds to a stage of the structure of the corresponding decoding device; and can be implemented as an integrated circuit, or in a microprocessor type electronic component. This structure allows an easier understanding of the invention. However, the method of the invention can be implemented in any other suitable form, and especially in substantially software form, one or more processors performing the corresponding processing.

5 Ainsi, l'invention concerne également un ou plusieurs programmes d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé de codage et/ou d'un procédé de décodage lorsque le ou les programmes sont exécutés par un processeur. De tels programmes peuvent être stockés sur un support de stockage. Finalement, l'invention concerne un dispositif apte à mettre en oeuvre les opérations de 10 codage et de décodage correspondantes. 4. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : 15 - la figure 1 présente les principales étapes mises en oeuvre par un procédé de codage selon un mode de réalisation de l'invention ; la figure 2 illustre la structure d'un codeur et/ou d'un décodeur à trois étages de (dé)codage selon un mode de réalisation de l'invention ; la figure 3 présente les principales étapes mises en oeuvre par un procédé de décodage 20 selon un mode de réalisation de l'invention ; la figure 4 illustre la structure d'un codeur et/ou d'un décodeur à sept étages de (dé)codage selon un mode de réalisation de l'invention ; les figures 5A et 5B présentent un exemple de construction et d'utilisation du code Golay (24, 12, 8) selon un mode de réalisation de l'invention ; 25 - les figures 6A et 6B présentent un exemple de construction et d'utilisation d'un code auto-dual (72,36,12) de type Il selon un mode de réalisation de l'invention. 5. Description d'un mode de réalisation de l'invention 5.1 Principe général Le principe général de l'invention repose sur une structure particulière d'un code 30 correcteur d'erreurs, basée sur une alternance d'étages de codage et d'étages de permutation. En particulier, la structure de codage proposée permet de construire des codes correcteurs d'erreurs auto-duaux avec seulement trois étages de codage et un nombre minimum de variables internes « cachées » (i.e. non-transmises), encore appelées variables intermédiaires ou variables d'état, et ayant de grandes distances minimales. Elle fournit notamment une solution 35 pratique pour protéger le mieux possible de petits paquets d'information (n < 1000 bits) contre 3022651 11 les bruits et les interférences inhérents à tout canal de transmission. Elle simplifie en outre le décodage, du fait du faible nombre d'étages de codage utilisé. En particulier, on rappelle que parmi les techniques de codage permettant la correction d'erreurs de transmission, les turbo-codes et les codes LDPC (en anglais « Low-Density Parity 5 Check ») présentent de très bonnes performances en termes de correction d'erreurs pour des codes de grande longueur n, avec n de l'ordre de quelques milliers de bits au moins (n > 1000). En revanche, les turbo-codes et les codes LDPC présentent des performances plus faibles pour des codes de plus petite longueur. La solution proposée permet d'obtenir des codes performants mêmes assez courts 10 (n<1000), présentant une grande distance minimale, où par exemple dmin est une faction de n, et permet donc notamment de concurrencer ces turbo-codes et ces codes LDPC. On présente, en relation avec la figure 1, les principales étapes mises en oeuvre par un procédé de codage correcteur d'erreurs selon l'invention. Un tel procédé est notamment apte à mettre en oeuvre un code correcteur d'erreurs 15 global auto-dual, c'est-à-dire susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage des données source (X) aux données de redondance (R) inversible. Comme illustré en figure 1, le procédé de codage met en oeuvre : une étape de codage de premier niveau 11, notée CN1, recevant par exemple en entrée 20 des données source X, après permutations, et délivrant par exemple en sortie des données de redondance R, après permutations. Une telle étape de codage de premier niveau met en oeuvre au moins deux modules de codage de base, connectés d'une part à toutes les variables associées aux données source et aux données de redondance, et d'autre part à des variables internes ; 25 - une première 121 et une deuxième 122 étapes de codage de deuxième niveau, notées respectivement CN2,1 et CN2,2/ mettant chacune en oeuvre au moins deux modules de codage de base connectés uniquement aux variables internes de l'étape de codage de premier niveau 11 CN1, après permutations ; une première 131 et une deuxième 132 étapes de permutation de premier niveau, notées 30 respectivement n et Tri. La première étape de permutation 131 n est mise en oeuvre entre l'étape de codage de premier niveau 11 CN1 et la première étape de codage de deuxième niveau 121 CN2,1, et reçoit donc, en entrée, d'une part les données source X et d'autre part les données d'entrée et des données de sortie obtenues à partir de la première étape de codage de deuxième niveau 121 CN2,1- La deuxième étape de 35 permutation 132 n est mise en oeuvre entre l'étape de codage de premier niveau 11 CN1 3022651 12 et la deuxième étape de codage de deuxième niveau 122 CN2,2 et délivre donc, en sortie, d'une part les données de redondance R et d'autre part des données d'entrée et des données de sortie à la deuxième étape de codage de deuxième niveau 122 CN2,2- En particulier, on note que chaque module de codage de base met en oeuvre un code de 5 base auto-dual, susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de données d'entrée aux données de sortie inversible. On considère ici une définition générale de la dualité, encore appelée iso-dualité, telle qu'exprimée notamment dans le document « Handbook of coding theory », V.S. Pless et W.C.Thus, the invention also relates to one or more computer programs comprising instructions for implementing an encoding method and / or a decoding method when the program or programs are executed by a processor. Such programs can be stored on a storage medium. Finally, the invention relates to a device adapted to implement the corresponding coding and decoding operations. 4. List of Figures Other features and advantages of the invention will appear more clearly on reading the following description of a particular embodiment, given as a simple illustrative and non-limiting example, and the accompanying drawings, among which: - Figure 1 shows the main steps implemented by a coding method according to one embodiment of the invention; FIG. 2 illustrates the structure of an encoder and / or decoder with three stages of (de) coding according to one embodiment of the invention; FIG. 3 presents the main steps implemented by a decoding method 20 according to one embodiment of the invention; FIG. 4 illustrates the structure of an encoder and / or decoder with seven stages of (de) coding according to one embodiment of the invention; FIGS. 5A and 5B show an example of construction and use of the Golay code (24, 12, 8) according to one embodiment of the invention; FIGS. 6A and 6B show an example of construction and use of a type II auto-dual code (72, 36, 12) according to one embodiment of the invention. 5. DESCRIPTION OF AN EMBODIMENT OF THE INVENTION 5.1 GENERAL PRINCIPLE The general principle of the invention is based on a particular structure of an error correction code, based on an alternation of coding stages and permutation stages. In particular, the proposed coding structure makes it possible to construct auto-dual error correcting codes with only three coding stages and a minimum number of "hidden" (ie non-transmitted) internal variables, also called intermediate or variable variables. state, and having great minimum distances. In particular, it provides a practical solution for protecting as much as possible small information packets (n <1000 bits) against the noise and interference inherent in any transmission channel. It also simplifies decoding, because of the small number of coding stages used. In particular, it is recalled that among the coding techniques allowing the correction of transmission errors, turbo codes and LDPC codes (in English "Low-Density Parity Check") have very good performances in terms of correction of transmission errors. errors for codes of great length n, with n of the order of a few thousand bits at least (n> 1000). In contrast, turbo codes and LDPC codes have lower performance for shorter codes. The proposed solution makes it possible to obtain even very short performance codes (n <1000), having a large minimum distance, where for example dmin is a fraction of n, and thus makes it possible in particular to compete with these turbo-codes and these LDPC codes. . In relation to FIG. 1, the main steps implemented by an error correction coding method according to the invention are presented. Such a method is particularly suitable for implementing a global self-dual error correction code, that is to say capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and a matrix of passage of the source data (X) to the data of redundancy (R) invertible. As illustrated in FIG. 1, the coding method implements: a first-level coding step 11, denoted CN1, for example receiving, at input 20, source data X, after permutations, and for example outputting redundancy data; R, after permutations. Such a first-level coding step implements at least two basic coding modules, connected on the one hand to all the variables associated with the source data and the redundancy data, and on the other hand to internal variables; A first 121 and a second 122 second-level coding steps, denoted respectively CN2,1 and CN2,2 / each implementing at least two basic coding modules connected only to the internal variables of the coding step of first level 11 CN1, after permutations; a first 131 and a second 132 first level permutation steps, denoted respectively n and Tri. The first permutation step 131 n is implemented between the first level coding step 11 CN1 and the first second level coding step 121 CN2,1, and thus receives, on the one hand, the source data on the one hand. X and on the other hand the input data and output data obtained from the first second level coding step 121 CN2,1- The second permutation step 132 n is implemented between the step of CN1 3022651 12 and the second second level coding step 122 CN2,2 and therefore outputs, on the one hand, the redundancy data R and on the other hand input data and data. In particular, it should be noted that each basic coding module implements an auto-dual basic code, capable of being represented by a generator matrix comprising: , in its systematic form, an identity matrix and an input data passing matrix to the invertible output data. We consider here a general definition of duality, also called iso-duality, as expressed in particular in the document "Handbook of coding theory", V.S. Pless and W.C.

10 Huffman - Volume I - Chapitre 3 - pages 177 et 199. Cette définition impose pour seule contrainte l'inversibilité de la matrice de passage des données d'entrée aux données de sortie. La figure 2 illustre plus spécifiquement la structure d'un dispositif de codage correspondant, sous la forme d'un graphe de Tanner comprenant trois étages de codage, dit « Cortex-Compact ».10 Huffman - Volume I - Chapter 3 - pages 177 and 199. This definition imposes the only constraint on the invertibility of the matrix of passage of the input data to the output data. FIG. 2 more specifically illustrates the structure of a corresponding coding device, in the form of a Tanner graph comprising three coding stages, called "Cortex-Compact".

15 Un tel dispositif reçoit en entrée des données sources X, organisées par exemple en blocs de m bits. Le premier bloc de données source comprend par exemple les bits d'information xo à xm_i, le deuxième bloc les bits d'information x7r, à x2,,_1, ..., le (k+1)-ième bloc les bits d'information xk_,, à xk_i, avec k un multiple de m. Un tel dispositif délivre en sortie des données de redondance R, organisées également en blocs de m bits. Le premier bloc de données 20 de redondance comprend par exemple les bits de redondance ro à rm_i, le deuxième bloc les bits de redondance rin à r2,,_1, ..., le (k+1)-ième bloc les bits de redondance rk_,, à rk_i, avec k un multiple de m. On note que selon l'exemple illustré en figure 2, les données source sont associées à des variables d'entrée et placées à gauche du graphe de Tanner représentatif du dispositif de codage, 25 et les données de redondance sont associées à des variables de sortie et sont placées à droite du graphe de Tanner. Il ne s'agit ici que d'un choix de représentation, et une partie des données de redondance (voire l'ensemble des données de redondance) pourraient être placée à gauche du graphe de Tanner, et donc associées à des variables d'entrée du graphe de Tanner. De même, le nombre de bits d'information k n'est pas nécessairement égal au nombre de bits de redondance 30 (n-k). Un tel dispositif de codage comprend au moins : un étage de codage de premier niveau 21 comprenant au moins deux modules de codage de base Cb, connectés d'une part à toutes les variables associées aux données source xi et aux données de redondance ri, pour i allant de 0 à k-1, et d'autre part à des variables 3022651 13 internes d1 et fj, par exemple pour j allant de 0 à 2k-1, par l'intermédiaire d'un premier 231 ou d'un deuxième 232 étage de permutation de premier niveau ; un premier 221 et un deuxième 222 étages de codage de deuxième niveau, connectés chacun à l'étage de codage de premier niveau 21 respectivement par l'intermédiaire du 5 premier 231 ou du deuxième 232 étage de permutation de premier niveau. Chaque étage de codage de deuxième niveau comprend au moins deux modules de codage de base Cb, connectés uniquement aux variables internes de l'étage de codage de premier niveau 21, par l'intermédiaire d'un premier 231 ou d'un deuxième 232 étage de permutation de premier niveau.Such a device receives as input source data X, organized for example in blocks of m bits. The first source data block comprises for example the information bits xo to xm_i, the second block the information bits x7r, to x2 ,, _ 1, ..., the (k + 1) th block the bits of information. 'information xk_ ,, to xk_i, with k a multiple of m. Such a device outputs redundancy data R, also organized in blocks of m bits. The first redundancy data block 20 comprises for example the redundancy bits ro to rm_i, the second block the redundancy bits r1 to r2 ,, _ 1, ..., the (k + 1) -th block the redundancy bits. rk_ ,, to rk_i, with k a multiple of m. It should be noted that according to the example illustrated in FIG. 2, the source data are associated with input variables and placed to the left of the Tanner graph representative of the coding device, and the redundancy data are associated with output variables. and are placed to the right of the Tanner graph. This is only a choice of representation, and some of the redundancy data (or even all the redundancy data) could be placed to the left of the Tanner graph, and therefore associated with input variables. of the Tanner graph. Similarly, the number of information bits k is not necessarily equal to the number of redundancy bits 30 (n-k). Such a coding device comprises at least: a first level coding stage 21 comprising at least two basic coding modules Cb, connected on the one hand to all the variables associated with the source data xi and the redundancy data ri, for i ranging from 0 to k-1, and secondly to internal variables d1 and fj, for example for j ranging from 0 to 2k-1, via a first 231 or a second 232 first level permutation stage; a first 221 and a second 222 second level coding stages, each connected to the first level coding stage 21 respectively via the first 231 or second 232 first level permutation stage. Each second level coding stage comprises at least two basic coding modules Cb, connected only to the internal variables of the first level coding stage 21, via a first 231 or a second 232 stage. first level permutation.

10 Les seules variables auxquelles on a accès sont donc les variables d'entrée et de sortie du graphe de Tanner, auxquelles sont associées des données source et/ou de redondance. Les autres variables internes ne sont pas transmises au décodeur. Selon l'exemple illustré, chaque module de codage de base met en oeuvre un même code de base noté Cb. Bien entendu, les modules de codage de base peuvent mettre en oeuvre 15 différents codes de base, au sein d'un même dispositif de codage. En effet, les différents modules de codage sont indépendants. De préférence, le nombre d'entrées (respectivement le nombre de sorties) de chaque module de codage de base est identique. On considère par exemple que m = 4 et que chaque module de codage de base met en oeuvre un code de Hamming (8, 4, 4). Un tel code est optimal pour sa longueur n = 8 et sa 20 dimension k = 4 avec une distance minimale dmin = 4. Ce code de base de Hamming (8,4,4) est auto-dual et a tous ses mots de code de poids multiples de 4. Il est donc dit par définition auto-dual de type-II. Selon un autre exemple, on considère que m = 1 et que chaque module de codage de base met en oeuvre un code à répétition simple, dont un mot de code est obtenu à partir d'une 25 répétition d'une donnée source. Par exemple, on obtient le bit de redondance ro = xo à partir du bit source x0. Ce code de base est auto-dual de type-I. Selon d'autres exemples, les modules de codage de base mettent en oeuvre des codes de Golay (comme le code (24, 12, 8), avec m = 12), des codes définis sur des alphabets quaternaires Z4, des codes identités, des codes à répétition simple, etc.The only variables to which we have access are therefore the input and output variables of the Tanner graph, associated with source and / or redundancy data. Other internal variables are not transmitted to the decoder. According to the illustrated example, each basic coding module implements the same basic code noted Cb. Of course, the basic coding modules can implement different basic codes within the same coding device. Indeed, the different coding modules are independent. Preferably, the number of inputs (respectively the number of outputs) of each basic coding module is identical. For example, it is considered that m = 4 and that each basic coding module implements a Hamming code (8, 4, 4). Such a code is optimal for its length n = 8 and its dimension k = 4 with a minimum distance dmin = 4. This basic Hamming code (8.4.4) is auto-dual and has all its codewords. multiple weight of 4. It is therefore said by definition auto-dual type-II. According to another example, it is considered that m = 1 and that each basic coding module implements a simple repetition code, a code word of which is obtained from a repetition of a source data item. For example, the redundancy bit ro = xo is obtained from the source bit x0. This base code is auto-dual type-I. According to other examples, the basic coding modules use Golay codes (such as the code (24, 12, 8), with m = 12), codes defined on quaternary alphabets Z4, identity codes, simple repetition codes, etc.

30 En revenant à la figure 2, et en considérant que chaque module de codage de base met en oeuvre un code de Hamming (8, 4, 4), le premier étage de permutation de premier niveau 231, mettant en oeuvre une permutation 70, reçoit d'une part des bits d'information par paquets de quatre bits, notés par exemple x0_3 pour le paquet de bits d'information (xo, xi, x2, x3), d'autre part des variables internes d'entrée et de sortie des modules de codage du premier étage de 35 codage de deuxième niveau 221, également par paquets de quatre bits.Returning to FIG. 2, and considering that each basic coding module implements a Hamming code (8, 4, 4), the first first level permutation stage 231, implementing a permutation 70, receives, on the one hand, bits of information in packets of four bits, noted for example x0_3 for the information bit packet (xo, xi, x2, x3), on the other hand internal variables of input and of output of the coding modules of the second level coding second level 221, also in packets of four bits.

3022651 14 Ainsi, chaque module de codage de base Cb du premier étage de codage de deuxième niveau 221 est connecté à quatre variables internes, notées par exemple d0_3 pour le paquet (do, di, d2, d3). Ces quatre variables internes sont transformées linéairement, modulo 2, en quatre variables images, notées par exemple f0_3 pour le paquet (f0,f1,f2,f3), conformément au 5 code de base de Hamming (8, 4, 4), telles que : f0-3 = d0-3. P où P est la matrice de passage des données d'entrée c/0_3 aux données de sortie f0_3 correspondant à la matrice identité de dimension 4, inversée modulo 2 : 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 On note que les sorties de chaque module de codage de base des différents étages de codage peuvent être permutées localement pour obtenir des codes « locaux » de bonne distance 10 minimale dmin. Par exemple, il est possible de permuter les quatre bits f0_3 pour obtenir un code « local » de grande distance minimale. On note qu'il y a !4 = 24 permutations possibles pour un vecteur de quatre bits. Le premier étage de permutation de premier niveau 231 est donc connecté en entrée à k variables correspondant aux k bits d'information (x0_(k_1)) et à 2k variables internes 15 (c120_(k_i),f0_(k_i)). Ces 3k variables, après permutations, sont connectées à l'étage de codage de premier niveau 21. L'étage de codage de premier niveau 21 met en oeuvre 3k/4 modules de codage de base de type Hamming (8,4,4), délivrant k bits de redondance (r0_(k_1)) et 2k variables internes (dk-(2k-1), fk-(2k-1)).Thus, each basic coding module Cb of the first second level coding stage 221 is connected to four internal variables, denoted for example d0_3 for the packet (do, di, d2, d3). These four internal variables are transformed linearly, modulo 2, into four image variables, noted for example f0_3 for the packet (f0, f1, f2, f3), in accordance with the Hamming base code (8, 4, 4), such that: f0-3 = d0-3. P where P is the matrix of passage of the input data c / 0_3 to the output data f0_3 corresponding to the identity matrix of dimension 4, inverted modulo 2: 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 It will be noted that the outputs of each basic coding module of the different coding stages can be switched locally to obtain "local" codes of good minimum distance dmin. For example, it is possible to switch the four bits f0_3 to obtain a "local" code of great minimum distance. Note that there are! 4 = 24 possible permutations for a vector of four bits. The first first level permutation stage 231 is thus inputted to k variables corresponding to the k information bits (x0_ (k_1)) and 2k internal variables 15 (c120_ (k_i), f0_ (k_i)). These 3k variables, after permutations, are connected to the first level coding stage 21. The first level coding stage 21 implements 3k / 4 basic Hamming type coding modules (8.4.4). , delivering k redundancy bits (r0_ (k_1)) and 2k internal variables (dk- (2k-1), fk- (2k-1)).

20 Si l'on considère une structure symétrique, le deuxième étage de permutation de premier niveau 232 reçoit ces 3k variables, met en oeuvre une permutation mi = rr0 -1 et délivre d'une part des bits de redondance par paquets de quatre bits, notés par exemple r0_3 pour le paquet de bits de redondance (r0, r1, r2, r3), d'autre part des variables internes d'entrée et de sortie des modules de codage du deuxième étage de codage de deuxième niveau 222, également par 25 paquets de quatre bits. On note qu'il est possible de trouver de très bons codes correcteurs globaux en gardant la contrainte de la symétrie miroir entre les données source et les données de redondance sur cette structure, par rapport à l'axe du milieu du graphe de Tanner. Une telle symétrie permet un repliement par rapport à cet axe et donc un décodage par couples de variables symétriques. La 30 conséquence en est la possibilité de concevoir des algorithmes à propagation de probabilités (BP) 3022651 15 performants et plus rapides à converger car travaillant sur des couples (xi, ri) pour i = 0, 1, , k - 1. Ainsi, si le nombre de bits d'information est égal à k comme présenté dans l'exemple ci-dessus, alors la longueur totale du code global est de n = 2k et la taille des permutations n et 5 n est égale à l = 3k pour un code de base de Hamming (8,4,4) par paquet de 4 bits d'information, ce qui fait aussi 2k variables internes di, soit un bit associé à une variable interne par bit de code. On note qu'une telle structure symétrique n'est cependant pas obligatoire. Notamment, il est possible de définir une structure dissymétrique en utilisant des permutations non symétriques 10 dans les premier et deuxième étages de permutation de i-ème niveau (i.e. n # 70-1), un nombre de modules de codage différents dans les premier et deuxième étages de codage de i-ème niveau, et/ou des modules de codage mettant en oeuvre des codes de base différents dans les premier et deuxième étages de codage de i-ème niveau, pour i > 1. Il est également possible de généraliser la structure en prenant un plus grand nombre de 15 variables internes, et donc de modules de codage de base, au niveau des étages de codage de q- ème niveau, avec a > 2. La figure 3 illustre ainsi un exemple de dispositif de codage mettant en oeuvre : un étage de codage de premier niveau 31, comprenant des modules de codage de base BO, Bl, etc ; 20 deux étages de permutation de premier niveau 321, 322, de part et d'autre de l'étage de codage de premier niveau 31 ; deux étages de codage de deuxième niveau 331, 332, de part et d'autre de l'ensemble de premier niveau formé par l'étage de codage de premier niveau 31 et les deux étages de permutation de premier niveau 321, 322, dont un premier étage comprenant des modules de 25 codage de base AO, Al, etc, et un deuxième étage comprenant des modules de codage de base CO, Cl, etc ; deux étages de permutation de deuxième niveau 341, 342, de part et d'autre de l'ensemble formé par l'ensemble de premier niveau et les deux étages de codage de deuxième niveau 331, 332 ; 30 deux étages de codage de troisième niveau 351, 352 de part et d'autre de l'ensemble de deuxième niveau formé par l'ensemble de premier niveau, les deux étages de codage de deuxième niveau 331, 332, et les deux étages de permutation de deuxième niveau 341, 342, dont un premier étage comprenant des modules de codage de base DO, D1, etc, et un deuxième étage comprenant des modules de codage de base E0, El, etc; 3022651 16 deux étages de permutation de troisième niveau 361, 362, de part et d'autre de l'ensemble formé par l'ensemble de deuxième niveau et les deux étages de codage de troisième niveau 351, 352 ; deux étages de codage de quatrième niveau 371, 372 de part et d'autre de l'ensemble de 5 troisième niveau formé par l'ensemble de deuxième niveau, les deux étages de codage de troisième niveau 351, 352, et les deux étages de permutation de troisième niveau 361, 362. On note toutefois qu'une telle augmentation du nombre de variables internes complexifie la structure et rend moins performant un éventuel décodage itératif par propagation de probabilités.If we consider a symmetrical structure, the first level first permutation stage 232 receives these 3k variables, implements a permutation mi = rr0 -1 and delivers on the one hand four-bit packet redundancy bits, noted for example r0_3 for the redundancy bit packet (r0, r1, r2, r3), on the other hand internal input and output variables of the coding modules of the second second level coding stage 222, also by 25 packets of four bits. It is noted that it is possible to find very good global correcting codes by keeping the mirror symmetry constraint between the source data and the redundancy data on this structure, with respect to the middle axis of the Tanner graph. Such symmetry allows a folding with respect to this axis and therefore a decoding by pairs of symmetrical variables. The consequence of this is the possibility of designing efficient and faster convergence algorithms (BP) to converge because they work on pairs (xi, ri) for i = 0, 1,, k - 1. if the number of information bits is equal to k as shown in the example above, then the total length of the global code is n = 2k and the size of the permutations n and 5 n is equal to l = 3k for a basic Hamming code (8.4.4) per packet of 4 information bits, which also makes 2k internal variables di, ie a bit associated with an internal variable per bit of code. It should be noted that such a symmetrical structure is however not mandatory. In particular, it is possible to define an asymmetrical structure by using non-symmetric permutations in the first and second stages of i-th level permutation (ie n # 70-1), a number of different coding modules in the first and second level coding level i-th level, and / or coding modules implementing different basic codes in the first and second stages of coding level i-th, for i> 1. It is also possible to generalize the structure by taking a larger number of internal variables, and thus basic coding modules, at the level of the q-th level coding stages, with a> 2. FIG. 3 thus illustrates an example of a coding device. implementing: a first level coding stage 31, comprising basic coding modules BO, B1, etc .; Two first level permutation stages 321, 322, on either side of the first level coding stage 31; two second level coding stages 331, 332, on either side of the first level set formed by the first level coding stage 31 and the two first level permutation stages 321, 322, one of which first stage comprising basic coding modules A0, A1, etc., and a second stage comprising basic coding modules CO, C1, etc .; two second level switching stages 341, 342, on either side of the set formed by the first level set and the two second level coding stages 331, 332; Two third level coding stages 351, 352 on either side of the second level set formed by the first level set, the two second level coding stages 331, 332, and the two stages of second level swapping 341, 342, a first stage of which includes basic coding modules DO, D1, etc., and a second stage comprising basic coding modules E0, El, etc .; Two third-level permutation stages 361, 362, on either side of the set formed by the second-level set and the two third-level coding stages 351, 352; two fourth level coding stages 371, 372 on either side of the third level set formed by the second level set, the two third level coding stages 351, 352, and the two stages of However, such an increase in the number of internal variables makes the structure more complex and renders a possible iterative decoding by probability propagation less efficient.

10 On note par ailleurs, en revenant à la figure 2, que comme les modules de codage de base de l'étage de codage de premier niveau 21 mettent chacun en oeuvre un code de Hamming (8, 4, 4) de poids tous multiples de 4, le code équivalent de l'étage de codage de premier niveau 21 est de poids multiple de 4. Par soustraction, l'ensemble des variables internes do_2k et fo-2k formant aussi un code de poids multiple de 4, chaque mot de code formé par les bits 15 d'information xo_(k_i) et les bits de redondance ro_(k_1) est de poids multiple de 4 et donc le code global obtenu, dit Cortex-Compact, est aussi auto-dual de type-Il. On note finalement que l'existence d'un code global n'est assurée que si l'on peut résoudre le système d'équations liant toutes les variables entre-elles, par l'intermédiaire des codes de base. De façon équivalente, cela signifie que l'on peut déterminer une matrice 20 génératrice du code global dont le déterminant est non nul (par exemple égal à 1 (modulo 2) dans le cas binaire), ou encore que la matrice génératrice comprend, sous sa forme systématique, une matrice identité et une matrice de passage des données source aux données de redondance inversible. A partir de la structure illustrée en figure 2, il est ainsi possible de déterminer un système 25 d'équations. En effet, un tel graphe de Tanner comprend des variables d'entrée, correspondant par exemple aux bits d'information, et des variables de sortie, correspondant par exemple aux bits de redondance, les bits de redondance étant liés aux bits d'information par l'intermédiaire de contraintes et de permutations. Ces contraintes peuvent être de deux types : 30 - les contraintes de type égalité, correspondant à une répétition de la variable connectée à cette contrainte ; - les contraintes de type addition modulo 2, correspondant à une contrainte logique de type « ou-exclusif ». Ces contraintes et permutations permettent de définir des relations algébriques, et de 3022651 17 calculer une matrice génératrice permettant de réaliser le codage. En particulier, le calcul des données de redondance doit se faire par le pré-calcul de la matrice de passage, qui peut être construite à partir du système d'équations. Ainsi, un codeur selon l'invention prend en entrée des données source X, sous la forme de 5 paquets ou d'un flux continu, et délivre en sortie au moins un mot de code, comprenant les données source X et des données de redondance R. Ces mots de code peuvent être véhiculés dans un canal de transmission ou stockées sur un support, puis décodées par un décodeur selon l'invention. En particulier, un tel décodeur peut également utiliser un graphe de Tanner tel qu'illustré 10 en figure 2, pour corriger des erreurs de type effacement notamment. Par exemple, comme illustré en figure 4, le décodeur reçoit en entrée au moins un mot de code, comprenant les données source X et des données de redondance R éventuellement entachées d'erreur, et délivre une estimation des données source X. Un tel procédé de décodage met en oeuvre, de façon symétrique au codage : 15 - une étape 41 de décodage de premier niveau, notée DCN1, recevant en entrée un mot de code formé de données source X et/ou de redondance R, après permutations, et délivrant en sortie une estimation des données source g, après permutations. Une telle étape de décodage de premier niveau met en oeuvre au moins deux modules de décodage de base, connectés d'une part à toutes les variables associées aux données source et aux données 20 de redondance du mot de code, et d'autre part à des variables internes ; une première 421 et une deuxième 422 étapes de décodage de deuxième niveau, notées respectivement DCN2,1 et DCN2,2/ mettant chacune en oeuvre au moins deux modules de décodage de base connectés uniquement aux variables internes de l'étape 41 de décodage de premier niveau DCN1, après permutations ; 25 - une première 431 et une deuxième 432 étapes de permutation de premier niveau, notées respectivement mo et mi. La première étape de permutation 431 mo est mise en oeuvre entre l'étape de décodage de premier niveau 41 DCN1 et la première étape de décodage de deuxième niveau 421 DCN2,1, et reçoit donc, en entrée, d'une part le mot de code formé des données source X et/ou de redondance R et d'autre part les données d'entrée 30 et des données de sortie obtenues à partir de la première étape de décodage de deuxième niveau 421 DCN2,1- La deuxième étape de permutation 432 n est mise en oeuvre entre l'étape de décodage de premier niveau 41 DCN1 et la deuxième étape de décodage de deuxième niveau 422 DCN2,2 et délivre donc, en sortie, d'une part une estimation des données source et d'autre part des données d'entrée et des données de 35 sortie à la deuxième étape de décodage de deuxième niveau 422 DCN2,2- 3022651 18 En particulier, on note que chaque module de décodage met en oeuvre un code de base auto-dual, susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de données d'entrée aux données de sortie inversible.On the other hand, referring to FIG. 2, it will be noted that since the basic coding modules of the first level coding stage 21 each implement a Hamming code (8, 4, 4) of all-different weights by 4, the equivalent code of the first level coding stage 21 is of weight multiple of 4. By subtraction, the set of internal variables do_2k and fo-2k also forming a weight code multiple of 4, each word of The code formed by the information bits xo_ (k_i) and the redundancy bits ro_ (k_1) is of multiple weight of 4 and therefore the overall code obtained, called Cortex-Compact, is also auto-dual type-II. Finally, we note that the existence of a global code is ensured only if we can solve the system of equations linking all the variables together, through the basic codes. Equivalently, this means that it is possible to determine a generator matrix of the global code whose determinant is non-zero (for example equal to 1 (modulo 2) in the binary case), or that the generator matrix comprises, under its systematic form, an identity matrix, and a matrix from source data to invertible redundancy data. From the structure illustrated in FIG. 2, it is thus possible to determine a system of equations. Indeed, such a Tanner graph comprises input variables, corresponding for example to the information bits, and output variables, corresponding for example to the redundancy bits, the redundancy bits being linked to the information bits by through constraints and permutations. These constraints can be of two types: the constraints of the equality type, corresponding to a repetition of the variable connected to this constraint; the modulo 2 addition type constraints, corresponding to a "or exclusive" type logic constraint. These constraints and permutations make it possible to define algebraic relations, and to calculate a generator matrix making it possible to perform the coding. In particular, the calculation of the redundancy data must be done by the pre-calculation of the transition matrix, which can be constructed from the system of equations. Thus, an encoder according to the invention takes as input source data X, in the form of packets or a continuous stream, and outputs at least one code word, comprising the source data X and redundancy data. A. These code words can be conveyed in a transmission channel or stored on a medium, and then decoded by a decoder according to the invention. In particular, such a decoder can also use a Tanner graph as illustrated in FIG. 2, in particular to correct erase-type errors. For example, as illustrated in FIG. 4, the decoder receives as input at least one codeword, comprising the source data X and redundancy data R possibly corrupted with error, and delivers an estimate of the source data X. Such a method The decoding method implements, in a symmetrical manner to the coding: a first level decoding step 41, denoted DCN1, receiving as input a code word formed of source data X and / or redundancy R, after permutations, and delivering at the output an estimate of the source data g, after permutations. Such a first-level decoding step uses at least two basic decoding modules, connected on the one hand to all the variables associated with the source data and the redundancy data of the code word, and on the other hand to internal variables; a first 421 and a second 422 second level decoding steps, denoted respectively DCN2,1 and DCN2,2 / each implementing at least two basic decoding modules connected only to the internal variables of the first decoding step 41 level DCN1, after permutations; A first 431 and a second 432 first level permutation steps, denoted respectively mo and mi. The first permutation step 431 mo is implemented between the first level decoding step 41 DCN1 and the first second level decoding step 421 DCN2,1, and thus receives, on the input side, on the one hand the word of code formed of the source data X and / or redundancy R and on the other hand the input data 30 and output data obtained from the first second level decoding step 421 DCN2,1- The second permutation step 432 n is implemented between the first level decoding step 41 DCN1 and the second second level decoding step 422 DCN2,2 and therefore delivers, on the one hand, an estimation of the source data and the other In particular, it should be noted that each decoding module implements a basic code which is self-dual, and which is capable of being used in the second decoding step 422 DCN2.2. to be represented by a generic matrix trice comprising, in its systematic form, an identity matrix and an input data passing matrix to the invertible output data.

5 Le fonctionnement de ce décodeur est similaire à celui du codeur décrit ci-dessus. Il n'est donc pas expliqué plus en détails. En particulier, le décodage peut être mis en oeuvre en utilisant un algorithme de type « Belief Propagation », selon lequel les données reçues sont celles du mot de code reçu c = (x,r), éventuellement bruité, sous forme d'un vecteur de probabilités ou de P métriques (par exemple de type logarithme de rapport de vraisemblance ou LLR: Log (H). Les 1-p 10 valeurs de ce vecteur associées aux variables d'entrée et de sorties du graphe de Tanner sont propagées entre les noeuds du graphe, qui sont les codes de base de la structure. 5.2 Construction et mise en oeuvre du code de Golay (24, 12, 8) On présente désormais, en relation avec les figures 5A et 5B, la construction et l'utilisation d'un code de Golay (24, 12, 8) sous forme Cortex-Compact selon l'invention.The operation of this decoder is similar to that of the encoder described above. It is therefore not explained in more detail. In particular, the decoding can be implemented using a "Belief Propagation" type algorithm, according to which the received data are those of the received codeword c = (x, r), possibly noisy, in the form of a vector probabilities or metric P (for example log likelihood ratio or LLR: Log (H).) The 1-p 10 values of this vector associated with the input and output variables of the Tanner graph are propagated between nodes of the graph, which are the basic codes of the structure 5.2 Construction and implementation of the Golay code (24, 12, 8) With reference to Figures 5A and 5B, the construction and use of a Golay code (24, 12, 8) in Cortex-Compact form according to the invention.

15 Le graphe de Tanner représentatif du dispositif de codage illustré en figure 5A comprend : un étage de codage de premier niveau 51, comprenant neuf modules de codage de base notés BO à B8 ; un premier étage de codage de deuxième niveau 521, comprenant trois modules de codage de base notés AO à A2 ; 20 un deuxième étage de codage de deuxième niveau 522, comprenant trois modules de codage de base notés CO à C2 ; un premier étage de permutation de premier niveau 531 ; un deuxième étage de permutation de premier niveau 532. Chaque module de codage de base met en oeuvre un code de Hamming (8,4,4), suivi 25 d'une permutation locale prenant par exemple en entrée un paquet de quatre bits aux positions d'indice {0,1,2,3}, et délivrant en sortie ces mêmes bits aux positions d'indice (0,2,1,3) respectivement. On note qu'une autre permutation locale pourrait être mise en oeuvre, comme la permutation locale prenant en entrée un paquet de quatre bits aux positions d'indice (0,1,2,31 et délivrant en sortie ces mêmes bits aux positions d'indice [0,3,1,2) respectivement.The Tanner graph representative of the coding device illustrated in FIG. 5A comprises: a first level coding stage 51, comprising nine basic coding modules denoted BO to B8; a first level second coding stage 521, comprising three basic coding modules denoted AO to A2; A second second level coding stage 522, comprising three basic coding modules denoted CO to C2; a first stage of first level permutation 531; a second first-level permutation stage 532. Each basic coding module implements a Hamming code (8.4.4), followed by a local permutation for example taking a four-bit packet at the positions of index {0,1,2,3}, and outputting these same bits at index positions (0,2,1,3) respectively. Note that another local permutation could be implemented, such as the local permutation taking a four-bit packet at index positions (0,1,2,31) and outputting these same bits to the positions of index [0.3,1,2) respectively.

30 Par ailleurs, les douze bits d'information (source), notés xo à x11, sont associés à des variables d'entrée du graphe de Tanner, et les douze bits de redondance, notés ro à r11 sont associés à des variables de sortie du graphe de Tanner. Les bits d'information entrent par paquets de quatre bits sur le premier étage de permutation de premier niveau 531. Le premier étage de permutation de premier niveau 531 est 3022651 19 donc connecté à des variables d'entrée associées à un premier ensemble des données source et de redondance, ici les bits d'information xo à x11. Le premier étage de permutation de premier niveau 531 est également connecté, en entrée, aux entrées et aux sorties du premier étage de codage de deuxième niveau 521. Plus précisément, chacun des trois modules de codage de base 5 AO, Al, A2 du premier étage de codage de deuxième niveau 521 reçoit en entrée un paquet de quatre bits, notés respectivement do à d3, d4 à d7, et d8 à d11, et délivre en sortie un paquet de quatre bits, notés respectivement fo à f3, f4 à f7, et f8 à f11 conformément au code de base de Hamming (8, 4, 4). Chaque paquet de quatre bits fo à f3, f4 à f7, et f8 à f11, subit une permutation locale [0,1,2,3) [0,2,1,31 comme illustré en figure 5A. Le premier étage de permutation de 10 premier niveau 531 est donc connecté, en entrée, aux 12 bits d'information xo à x11 et à 24 bits internes do à d11 et fo à f11 associés à des variables internes. Selon cet exemple, on dispose donc d'un module de codage de base pour chaque paquet de quatre bits associés à des variables d'entrée. Le premier étage de permutation de premier niveau 531 met en oeuvre une permutation 15 4-cyclique de longueur / = 36, telle que, en notant i la position d'un bit en entrée et mo(i) la position de ce même bit en sortie, on a : i E 0 (mod 4): mo(i) = i - 2(mod I) i E 1 (mod 4): mo(i) = i - 2(mod I) i E 2 (mod 4): mo(i) = i + 2(mod I) i E 3 (mod 4): mo(i) = i + 2(mod I) En variante, d'autres permutations pourraient être mises en oeuvre, comme des permutations affines associant à un bit/symbole d'entrée à la position i, un même bit/symbole à la position a * i + b, avec a un nombre premier avec la longueur (ou l'ordre) / de la permutation 20 mise en oeuvre par le premier ou le deuxième étage de permutation de premier niveau, et b un entier tel que b < a. De ce fait, le premier étage de permutation de premier niveau 531 délivre les 12 bits d'information xo à x11 et les 24 bits internes do à d11 et fo à f11 permutés à l'étage de codage de premier niveau.Furthermore, the twelve information bits (source), denoted x0 to x11, are associated with input variables of the Tanner graph, and the twelve redundancy bits, denoted ro to r11, are associated with output variables. of the Tanner graph. The information bits enter in four-bit packets on the first level first permutation stage 531. The first level first changeover stage 531 is therefore connected to input variables associated with a first set of source data. and redundancy, here the information bits xo to x11. The first level first permutation stage 531 is also connected, at the input, to the inputs and outputs of the first second level coding stage 521. More specifically, each of the three basic coding modules AO, A1, A2 of the first second level coding stage 521 receives as input a packet of four bits, denoted respectively do to d3, d4 to d7, and d8 to d11, and outputs a packet of four bits, respectively denoted fo to f3, f4 to f7 , and f8 to f11 according to the Hamming base code (8, 4, 4). Each four-bit packet fo to f3, f4 to f7, and f8 to f11, undergoes local permutation [0,1,2,3) [0,2,1,31 as illustrated in FIG. 5A. The first level first permutation stage 531 is thus connected, as input, to the 12 information bits x 0 to x 11 and to the 24 internal bits do to d 11 and fo to f 11 associated with internal variables. According to this example, there is therefore a basic coding module for each four-bit packet associated with input variables. The first level first permutation stage 531 implements a 4-cyclic permutation of length / = 36, such that, by noting i the position of an input bit and mo (i) the position of this same bit in output, we have: i E 0 (mod 4): mo (i) = i - 2 (mod I) i E 1 (mod 4): mo (i) = i - 2 (mod I) i E 2 (mod 4): mo (i) = i + 2 (mod I) i E 3 (mod 4): mo (i) = i + 2 (mod I) Alternatively, other permutations could be implemented, such as affine permutations associating a bit / input symbol with the position i, the same bit / symbol at the position a * i + b, with a prime number with the length (or order) / permutation 20 set implemented by the first or second stage of first level permutation, and b an integer such that b <a. As a result, the first level first permutation stage 531 outputs the 12 information bits x 0 to x 11 and the 24 internal bits do to d 11 and f 1 to f 11 permuted to the first level coding stage.

25 Plus précisément, chaque module de codage de base de l'étage de codage de premier niveau 531 reçoit deux bits d'information, et deux bits d'entrée ou de sortie d'un module de codage de base du premier étage de codage de deuxième niveau 521, par l'intermédiaire du premier étage de permutation de premier niveau 531. Par exemple, le premier module de codage de base BO reçoit les bits d'entrée do et d1, et 30 les bits de sortie f9 et f11, le deuxième module de codage de base B1 reçoit les bits de sortie fo et f2' et les bits d'information x2 et x3, le troisième module de codage de base B2 reçoit les bits 3022651 20 d'entrée d2 et d3 et les bits d'information x4 et xs, le quatrième module de codage de base B3 reçoit les bits de sortie f1 et f3, et les bits d'entrée d4 et d5, le cinquième module de codage de base B4 reçoit les bits de sortie f4 et f6, et les bits d'information x6 et x7, le sixième module de codage de base B5 reçoit les bits d'entrée d6 et d7, et les bits d'information xo et x9, le septième 5 module de codage de base B6 reçoit les bits de sortie f5 et f7, et les bits d'entrée d8 et d9, le huitième module de codage de base B7 reçoit les bits d'information x10 et x11, le les bits de sortie f8 et f10, et le neuvième module de codage de base B8 reçoit les bits d'information x0 et x1, et les bits d'entrée d10 et d11. Chaque module de codage de base de l'étage de codage de premier niveau 51 reçoit en 10 entrée un paquet de quatre bits et délivre en sortie un paquet de quatre bits conformément au code de base de Hamming (8,4,4). Les bits en sortie du module de codage subissent une permutation locale, dans un module de permutation locale non illustré, selon la permutation [0,1,2,31 [0,2,1,31. Les sorties de l'étage de codage de premier niveau 51 sont connectées au deuxième étage 15 de permutation de premier niveau 532. Ce deuxième étage de permutation de premier niveau 532 met en oeuvre une permutation n inverse à la permutation mise en oeuvre par le premier étage de permutation de premier niveau 531, telle que n = mo-1. Ce deuxième étage de permutation de premier niveau 532 est connecté, en sortie, d'une part à des variables de sortie associées à un deuxième ensemble des données source et de redondance, ici les bits de 20 redondance ro à r11, et d'autre part aux entrées et aux sorties du deuxième étage de codage de deuxième niveau 522. Plus précisément, chacun des trois modules de codage de base CO, Cl, C2 du deuxième étage de codage de deuxième niveau 522 reçoit en entrée un paquet de quatre bits, notés respectivement d12 à dis, d16 à d19, et d20 à d23, et délivre en sortie un paquet de quatre bits, notés respectivement f12 à fis' fio à f19, et f20 à f23, conformément au code de base de 25 Hamming (8,4,4). Chaque paquet de quatre bits f12 à f1s, fio à f19, et f20 à f23 subit une permutation locale [0,1,2,31 [0,2,1,31. Le deuxième étage de permutation de premier niveau 532 est donc connecté, en sortie, aux 12 bits de redondance ro à r11 et à 24 bits internes d12 à d23 et f12 à f23 associés à des variables internes. En particulier, si l'on considère le module de codage de base B8 par exemple, les variables 30 internes associées aux bits d10, d11, d22 et d23 sont liées par des contraintes aux bits d'information x0 et xi et aux bits de redondance ro et ri, et disposent donc d'informations relatives au canal, ce qui permet de favoriser le décodage. A partir d'un tel graphe de Tanner, il est possible d'écrire un système d'équations tenant compte des contraintes que doivent respecter les bits d'information et de redondance d'un mot 35 pour être un mot du code global.More specifically, each basic coding module of the first level coding stage 531 receives two information bits, and two input or output bits of a basic coding module of the first coding stage of the first coding stage. second level 521, via the first level first permutation stage 531. For example, the first basic encoding module BO receives the input bits do and d1, and the output bits f9 and f11, the second basic coding module B1 receives the output bits fo and f2 'and the information bits x2 and x3, the third basic coding module B2 receives the input bits d2 and d3 and the bits of information x4 and xs, the fourth basic coding module B3 receives the output bits f1 and f3, and the input bits d4 and d5, the fifth basic coding module B4 receives the output bits f4 and f6, and the information bits x6 and x7, the sixth basic coding module B5 receives the input bits d6 and d7, and the In the information bits x 0 and x 9, the seventh basic coding module B 6 receives the output bits f 5 and f 7, and the input bits d 8 and d 9, the eighth basic coding module B 7 receives the bit bits. information x10 and x11, the output bits f8 and f10, and the ninth basic encoding module B8 receives the information bits x0 and x1, and the input bits d10 and d11. Each basic coding module of the first level coding stage 51 receives a four bit packet input and outputs a four bit packet in accordance with the Hamming base code (8.4.4). The bits at the output of the coding module undergo a local permutation, in a local permutation module not shown, according to the permutation [0,1,2,31 [0,2,1,31. The outputs of the first level coding stage 51 are connected to the second first level permutation stage 532. This second first level permutation stage 532 implements a permutation n which is the inverse of the permutation implemented by the first level switching stage 532. first level permutation stage 531, such that n = mo-1. This second level of first level permutation 532 is connected, on the output, on the one hand to output variables associated with a second set of source and redundancy data, here the redundancy bits ro to r11, and on the other hand at the inputs and outputs of the second second level coding stage 522. More specifically, each of the three basic coding modules CO, C1, C2 of the second second level coding stage 522 receives as input a four bit packet, denoted respectively d12-d1, d16-d19, and d20-d23, and outputting a four-bit packet, respectively denoted f12 through f19 to f19, and f20 through f23, in accordance with the Hamming base code (8 , 4.4). Each four-bit packet f12 to f1s, fio to f19, and f20 to f23 undergoes local permutation [0,1,2,31 [0,2,1,31. The first level first permutation stage 532 is therefore connected, at the output, to the 12 redundancy bits r1 to r11 and to the 24 internal bits d12 to d23 and f12 to f23 associated with internal variables. In particular, if we consider the basic coding module B8 for example, the internal variables associated with the bits d10, d11, d22 and d23 are linked by constraints to the information bits x0 and xi and to the redundancy bits. ro and ri, and therefore have information about the channel, which promotes decoding. From such a Tanner graph, it is possible to write a system of equations taking into account the constraints that the information and redundancy bits of a word 35 must meet to be a word of the global code.

3022651 21 En particulier, on rappelle qu'un code global peut être représenté par une telle structure si le pré-calcul du déterminant de la matrice génératrice obtenue à partir du système d'équations réunissant toutes les équations booléennes de la structure est non-nul. Ainsi, à partir du graphe de Tanner illustré en figure 5A, il est possible d'écrire et de 5 résoudre un système de 60 équations (4 équations obtenues à partir de chaque module de codage de base), dans lequel les inconnues sont les données associées aux variables internes et les données de redondance Par exemple, les équations obtenues à partir du module de codage de base AO du premier étage de codage de deuxième niveau sont telles que : d1 + d2 + d3 + fo = 0, do + d2 + d3 + 10 f2 = 0, do + dl + d3 + f1 = 0 et do + d1 + d2 + f3 = O. Les équations obtenues à partir du module de codage de base BO de l'étage de codage de premier niveau sont telles que : f9 + f11 + f21 + x3 f9 f11 f23 + x2 d12 f11 + x2 + x3 = 0 et d13 + f9 x2 + x3 = O. Les équations obtenues à partir du module de codage de base CO du deuxième étage de codage de deuxième niveau sont telles que : d11 + d13 d15 + d + f - + f12 = 0, d11 d12 d15 f14 15 d12 + d13 + d1s + f13 = 0 et d11 d12 + d + d - + d13 + + , f 15 = O. On peut ainsi « pré-calculer » une matrice de passage permettant de déterminer les bits de redondance à partir des bits d'information (également appelée « matrice de transfert »). Lors de la construction du code, on définit par exemple le code de base que l'on souhaite utiliser dans les modules de codage de base, ce qui permet de définir le nombre de variables 20 internes. On note que plus le nombre de variables internes est élevé, plus le code global obtenu est puissant. En ajoutant à ces variables internes le nombre de variables d'entrée associées à des données source, on obtient le nombre d'entrées de l'étage de codage de premier niveau. On peut ainsi définir le nombre de modules de codage de base à utiliser dans l'étage de codage de premier niveau.In particular, it is recalled that a global code can be represented by such a structure if the pre-calculation of the determinant of the generating matrix obtained from the system of equations combining all the Boolean equations of the structure is non-zero. . Thus, from the Tanner graph illustrated in FIG. 5A, it is possible to write and solve a system of 60 equations (4 equations obtained from each basic coding module), in which the unknowns are the data. associated with the internal variables and the redundancy data For example, the equations obtained from the basic coding module AO of the first level of second level coding are such that: d1 + d2 + d3 + fo = 0, do + d2 + d3 + 10 f2 = 0, do + d1 + d3 + f1 = 0 and do + d1 + d2 + f3 = 0. The equations obtained from the basic coding module BO of the first level coding stage are such that that: f9 + f11 + f21 + x3 f9 f11 f23 + x2 d12 f11 + x2 + x3 = 0 and d13 + f9 x2 + x3 = O. The equations obtained from the basic coding module CO of the second coding stage of second level are such that: d11 + d13 d15 + d + f - + f12 = 0, d11 d12 d15 f14 15 d12 + d13 + d1s + f13 = 0 and d11 d12 + d + d - + d13 + +, f 15 = O. It is thus possible to "pre-calculate" a pass matrix for determining the redundancy bits from the information bits (also called "transfer matrix"). When constructing the code, for example, the basic code which one wishes to use in the basic coding modules is defined, which makes it possible to define the number of internal variables. Note that the higher the number of internal variables, the more powerful the overall code obtained. By adding to these internal variables the number of input variables associated with source data, the number of entries of the first-level coding stage is obtained. It is thus possible to define the number of basic coding modules to be used in the first level coding stage.

25 La matrice génératrice du code de Golay obtenue à partir du graphe de la figure 5A, composée d'une matrice identité et de la matrice de passage des données source aux données de redondance, est illustrée en figure 5B, où les ronds blancs correspondent à 0 et les ronds noirs correspondent à 1. 5.3 Construction et mise en oeuvre d'un code auto-dual (72, 36, 12) 30 On présente désormais, en relation avec les figures 6A et 6B, la construction et l'utilisation d'un code auto-dual (72, 36, 12) de type-Il sous forme Cortex-Compact selon l'invention. Le graphe de Tanner représentatif du dispositif de codage illustré en figure 6A comprend : - un étage de codage de premier niveau 61, comprenant 27 modules de codage de base 35 notés BO à B26 ; 3022651 22 un premier étage de codage de deuxième niveau 621, comprenant 9 modules de codage de base notés AO à A8 ; un deuxième étage de codage de deuxième niveau 622, comprenant 9 modules de codage de base notés CO à C8 ; 5 un premier étage de permutation de premier niveau 631 ; - un deuxième étage de permutation de premier niveau 632. Selon l'exemple illustré, chaque module de codage de base met en oeuvre un code de Hamming (8,4,4), suivi : pour les modules de codage de base du premier étage de codage de deuxième niveau 10 621, pas de permutation locale (ou une permutation locale identité ({0,1,2,3} {0,1,2,3}), pour les modules de codage de base de l'étage de codage de premier niveau 61, d'une permutation locale prenant en entrée un paquet de quatre bits aux positions d'indice {0,1,2,3}, et délivrant en sortie ces mêmes bits aux positions d'indice [0,1,3,2} 15 respectivement ({0,1,2,3} [0,1,3,2}), pour les modules de codage de base du deuxième étage de codage de deuxième niveau 622, d'une permutation locale prenant en entrée un paquet de quatre bits aux positions d'indice {0,1,2,3}, et délivrant en sortie ces mêmes bits aux positions d'indice {0,2,1,3} respectivement ({0,1,2,3} [0,2,1,3}).The generating matrix of the Golay code obtained from the graph of FIG. 5A, composed of an identity matrix and the matrix of the transition from the source data to the redundancy data, is illustrated in FIG. 5B, where the white circles correspond to 0 and the black circles correspond to 1. 5.3 Construction and implementation of an auto-dual code (72, 36, 12) With reference to FIGS. 6A and 6B, the construction and use of an auto-dual code (72, 36, 12) of type II in Cortex-Compact form according to the invention. The Tanner graph representative of the coding device illustrated in FIG. 6A comprises: a first level coding stage 61, comprising 27 basic coding modules labeled BO to B26; A first level second coding stage 621, comprising 9 basic coding modules denoted A0 to A8; a second second level coding stage 622, comprising 9 basic coding modules denoted CO to C8; A first level of first level permutation 631; a first level switching stage 632. According to the illustrated example, each basic coding module implements a Hamming code (8.4.4), followed by: for the basic coding modules of the first stage second-level coding method 10 621, no local permutation (or a local permutation identity ({0,1,2,3} {0,1,2,3}), for the basic coding modules of the stage first-level coding 61, a local permutation taking an input of a four-bit packet at the index positions {0,1,2,3}, and outputting these same bits at the index positions [0, 1,3,2} respectively ({0,1,2,3} [0,1,3,2}), for the basic coding modules of the second second-level coding stage 622, of a permutation inputting a four-bit packet at positions of index {0,1,2,3}, and outputting these same bits at positions of index {0,2,1,3} respectively ({0, 1,2,3} [0,2,1,3}).

20 Selon un deuxième exemple, non illustré, chaque module de codage de base met en oeuvre un code de Hamming (8,4,4), suivi d'une permutation locale prenant en entrée un paquet de quatre bits aux positions d'indice {0,1,2,3}, et délivrant en sortie ces mêmes bits aux positions d'indice {3,0,2,1} respectivement. Par ailleurs, les 36 bits d'information (source), notés xo à x35, sont associés à des 25 variables d'entrée du graphe de Tanner, et les 36 bits de redondance, notés ro à r35 sont associés à des variables de sortie du graphe de Tanner. Les bits d'information entrent par paquets de quatre bits sur le premier étage de permutation de premier niveau 631. Le premier étage de permutation de premier niveau 631 est également connecté, en entrée, aux entrées et aux sorties du premier étage de codage de 30 deuxième niveau 621. Le premier étage de permutation de premier niveau 631 est donc connecté, en entrée, aux 36 bits d'information et à 72 bits internes. Selon l'exemple illustré, le premier étage de permutation de premier niveau 631 met en oeuvre une permutation 4-cyclique, telle que, en notant i la position d'un bit en entrée et 70(0 la position de ce même bit en sortie : 3022651 23 Vi = 0,1, ... 107 {70(0 = 5 + i (mod 108) si i E 0(mod 4) 70(0 = -18 + i (mod 108) si i E 1(mod 4) 70(i) = 18 + i (mod 108) si i E 2(mod 4) 70(i) = -5 + i (mod 108) si i E 3(mod 4) Les bits obtenus après permutations sont délivrés à l'étage de codage de premier niveau 61. Selon le deuxième exemple, non illustré, le premier étage de permutation de premier niveau 631 met en oeuvre une permutation affine de longueur / = 108, telle que, en notant i la 5 position d'un bit en entrée et ir0(i) la position de ce même bit en sortie, on a ir0(i) = 7i(mod 108), et délivre les bits permutés à l'étage de codage de premier niveau 61. Selon l'exemple illustré, chaque module de codage de base de l'étage de codage de premier niveau 61 reçoit en entrée un paquet de quatre bits et délivre en sortie un paquet de quatre bits conformément au code de base de Hamming (8,4,4), après permutation locale 10 [0,1,2,31 [0,1,3,21. Les sorties de l'étage de codage de premier niveau 61 sont connectées au deuxième étage de permutation de premier niveau 632. Ce deuxième étage de permutation de premier niveau 632 met en oeuvre une permutation n inverse à la permutation mise en oeuvre par le premier étage de permutation de premier niveau 631, telle que n = mo-1. Ce deuxième étage de 15 permutation de premier niveau 532 est connecté, en sortie, d'une part aux bits de redondance ro à r35, et d'autre part aux entrées et aux sorties du deuxième étage de codage de deuxième niveau 622. A partir d'un tel graphe de Tanner, il est possible d'écrire un système d'équations tenant compte des contraintes que doivent respecter les bits d'information et de redondance d'un mot 20 pour être un mot du code global. Ainsi, à partir du graphe de Tanner illustré en figure 6A, il est possible d'écrire et de résoudre un système de 180 équations (4 équations par module de codage de base). La matrice génératrice du code auto-dual (72,36,12) de type-Il obtenue à partir du graphe de la figure 6A, composée d'une matrice identité et de la matrice de passage des données source 25 aux données de redondance, est illustrée en figure 6B, où les ronds blancs correspondent à 0 et les ronds noirs correspondent à 1.According to a second example, not illustrated, each basic coding module implements a Hamming code (8.4.4), followed by a local permutation taking as input a four-bit packet at the index positions. 0.1,2,3}, and outputting these same bits at index positions {3,0,2,1} respectively. Moreover, the 36 information bits (source), denoted x 0 to x 35, are associated with input variables of the Tanner graph, and the 36 redundancy bits, denoted ro to r 35, are associated with output variables. of the Tanner graph. The information bits are in four-bit packets on the first-level first-pass 631 stage. The first-level first-pass 631 stage is also connected, at the input, to the inputs and outputs of the first code-level stage 631. Second level 621. The first level of first level permutation 631 is thus connected, as input, to the 36 information bits and to the internal 72 bits. According to the illustrated example, the first level first permutation stage 631 implements a 4-cyclic permutation, such that, by noting i the position of an input bit and 70 (0 the position of this same bit at the output : Vi = 0,1, ... 107 {70 (0 = 5 + i (mod 108) if i E 0 (mod 4) 70 (0 = -18 + i (mod 108) if i E 1 ( mod 4) 70 (i) = 18 + i (mod 108) if i E 2 (mod 4) 70 (i) = -5 + i (mod 108) if i E 3 (mod 4) The bits obtained after permutations are delivered to the first level coding stage 61. According to the second example, not shown, the first level first permutation stage 631 implements an affine permutation of length / = 108, such that, by noting i the position of an input bit and ir0 (i) the position of this same bit at the output, ir0 (i) = 7i (mod 108), and delivers the permutated bits to the first level coding stage 61. According to In the illustrated example, each basic coding module of the first level coding stage 61 receives as input a four-bit packet and outputs a four-bit packet in accordance with the Hamming base code (8.4.4), after local permutation [0.1.2.31 [0.1.3.21. The outputs of the first level coding stage 61 are connected to the second first level permutation stage 632. This second first level permutation stage 632 implements a permutation n that is the inverse of the permutation implemented by the first stage. first-level permutation 631, such that n = mo-1. This first level first changeover stage 532 is connected, at the output, firstly to the redundancy bits ro to r35, and secondly to the inputs and outputs of the second second level coding stage 622. From of such a Tanner graph, it is possible to write a system of equations taking into account the constraints that the information and redundancy bits of a word 20 must meet to be a word of the global code. Thus, from the Tanner graph illustrated in FIG. 6A, it is possible to write and solve a system of 180 equations (4 equations per basic coding module). The generator matrix of the auto-dual code (72,36,12) of the type-II obtained from the graph of FIG. 6A, composed of an identity matrix and the matrix of transition from the source data 25 to the redundancy data, is illustrated in FIG. 6B, where the white circles correspond to 0 and the black circles correspond to 1.

Claims (15)

REVENDICATIONS1. Dispositif de codage correcteur d'erreurs, apte à mettre en oeuvre un code correcteur d'erreurs global associant des données de redondance à des données source, ledit code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage desdites données source auxdites données de redondance inversible, caractérisé en ce que ledit dispositif de codage comprend : deux étages de permutation de premier niveau, dont : o un premier étage de permutation de premier niveau (231; 321 ; 531 ; 631) connecté, en entrée, d'une part à des variables d'entrée associées à un premier ensemble desdites données source et/ou de redondance, et d'autre part à des variables internes associées à des données d'entrée et des données de sortie d'un premier étage de codage de deuxième niveau (221 ; 331 ; 521 ; 621), et o un deuxième étage de permutation de premier niveau (232 ; 322 ; 532 ; 632) connecté, en sortie, d'une part à des variables de sortie associées à un deuxième ensemble desdites données source et/ou de redondance, et d'autre part à des variables internes associées à des données d'entrée et des données de sortie d'un deuxième étage de codage de deuxième niveau (222 ; 332 ; 522 ; 622), ledit premier ensemble et ledit deuxième ensemble formant un mot de code, et - un étage de codage de premier niveau (21 ; 31 ; 51 ; 61) connecté d'une part aux variables associées aux données de sortie dudit premier étage de permutation de premier niveau et d'autre part aux variables associées aux données d'entrée dudit deuxième étage de permutation de premier niveau, chaque étage de codage comprenant au moins deux modules de codage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de données d'entrée aux données de sortie inversible.REVENDICATIONS1. An error correction coding device capable of implementing a global error correction code associating redundancy data with source data, said global correction code being capable of being represented by a generating matrix comprising, in its systematic form , an identity matrix and a matrix for passing said source data to said invertible redundancy data, characterized in that said coding device comprises: two first level permutation stages, of which: a first level first permutation stage (231; 321; 531; 631) connected, as input, firstly to input variables associated with a first set of said source and / or redundancy data, and secondly to internal variables associated with data of inputting and outputting data of a first second-level coding stage (221; 331; 521; 621), and oa second first-level permutation stage (232; 322; 532; 632) connected, on output, firstly to output variables associated with a second set of said source and / or redundancy data, and secondly to internal variables associated with input data and output data of a second second level coding stage (222; 332; 522; 622), said first set and said second set forming a code word, and - a first level coding stage (21; 31; 51; 61) connected on the one hand to the variables associated with the output data of said first stage of first-level permutation and secondly to the variables associated with the input data of said second first-level permutation stage, each coding stage comprising at least two basic coding modules each implementing a basic code capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and an input data passing matrix to the invertible output data. 2. Dispositif de codage correcteur d'erreurs selon la revendication 1, caractérisé en ce qu'il comprend au moins deux étages de permutation de q-ème niveau, avec q un entier supérieur ou égal à 2, dont : un premier étage de permutation de q-ème niveau (341, 361) connecté, en entrée, à des variables internes associées aux données d'entrée et aux données de sortie d'un premier étage de codage de (q+1)- ème niveau (351, 371), et, en sortie, à des variables internes associées aux données d'entrée et aux données de sortie d'un premier étage de codage de q-ème niveau (331, 351); 3022651 25 un deuxième étage de permutation de q-ème niveau connecté (342, 362), en entrée, à des variables internes associées aux données d'entrée et aux données de sortie d'un deuxième étage de codage de q-ème niveau (332, 352) et, en sortie, à des variables internes associées aux données d'entrée et aux données de sortie d'un deuxième étage 5 de codage de (q+1)-ème niveau (352, 372).2. An error correcting coding device according to claim 1, characterized in that it comprises at least two permutation stages of q-th level, with q an integer greater than or equal to 2, including: a first permutation stage level signal (341, 361) connected, as input, to internal variables associated with the input data and the output data of a first coding stage of (q + 1) - th level (351, 371 ), and, at the output, internal variables associated with the input data and the output data of a first level q-th level coding stage (331, 351); A second level of permutation of q-th level connected (342, 362), input, to internal variables associated with the input data and the output data of a second stage of encoding of q-th level ( 332, 352) and, at the output, to internal variables associated with the input data and output data of a second (q + 1) -th level coding stage (352, 372). 3. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 et 2, caractérisé en ce que chaque module de codage de base du ou desdits étages de codage de ième niveau comprend c entrées et c sorties, et en ce que chaque étage de permutation de i-ème niveau met en oeuvre une permutation de type c-cyclique, avec i et c des entiers supérieurs ou 10 égaux à 1.An error correcting coding device according to any of claims 1 and 2, characterized in that each basic coding module of said one or more level coding stages comprises c inputs and outputs, and in that each level of permutation of i-th level implements a permutation of the c-cyclic type, with i and c of integers greater than or equal to 1. 4. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 et 2, caractérisé en ce que chaque étage de permutation de i-ème niveau met en oeuvre une permutation affine, avec i un entier supérieur ou égal à 1.4. error correcting coding device according to any one of claims 1 and 2, characterized in that each i-th level permutation stage implements an affine permutation, with i an integer greater than or equal to 1. 5. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 à 4, 15 caractérisé en ce que le ou lesdits étages de codage de i-ème niveau comprennent chacun au moins deux modules de permutation locale, chaque module de permutation locale permutant les variables internes obtenues en sortie d'un module de codage de base, avec i un entier supérieur ou égal à 1.5. An error correcting coding device according to any one of claims 1 to 4, characterized in that the at least one i-th level coding stage each comprise at least two local permutation modules, each permutation module. local permutating internal variables obtained at the output of a basic coding module, with i an integer greater than or equal to 1. 6. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 à 5, 20 caractérisé en ce que ledit dispositif présente une structure symétrique.6. Error correcting coding device according to any one of claims 1 to 5, characterized in that said device has a symmetrical structure. 7. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 à 6, caractérisé en ce que le nombre de variables internes est deux fois supérieur au nombre de variables associées aux données source.7. Error-correcting coding device according to any one of claims 1 to 6, characterized in that the number of internal variables is twice the number of variables associated with the source data. 8. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 à 7, 25 caractérisé en ce que lesdits codes de base appartiennent au groupe comprenant : un code de Hamming ; un code identité ; un code de Golay ; un code à répétition simple. 308. An error correcting coding device according to any one of claims 1 to 7, characterized in that said basic codes belong to the group comprising: a Hamming code; an identity code; a Golay code; a simple repetition code. 30 9. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 à 8, caractérisé en ce que tous les modules de codage de base mettent en oeuvre un code de base identique.9. An error correcting coding device according to any one of claims 1 to 8, characterized in that all basic coding modules implement an identical basic code. 10. Dispositif de codage correcteur d'erreurs selon l'une quelconque des revendications 1 à 9, caractérisé en ce que l'ensemble desdits étages de codage et de permutation forme un graphe de 35 Tanner, dont les entrées sont lesdites variables d'entrée associées à un premier ensemble 3022651 26 desdites données source et de redondance, et les sorties sont lesdites variables de sortie associées à un deuxième ensemble desdites données source et de redondance.Error correction coding device according to any one of Claims 1 to 9, characterized in that all of said coding and permutation stages form a Tanner graph whose inputs are said input variables. associated with a first set of said source and redundancy data, and the outputs are said output variables associated with a second set of said source and redundancy data. 11. Procédé de codage correcteur d'erreurs, apte à mettre en oeuvre un code correcteur d'erreurs global associant des données de redondance à des données source, 5 ledit code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage desdites données source auxdites données de redondance inversible, caractérisé en ce que ledit procédé de codage met en oeuvre : deux étapes de permutation de premier niveau, dont : 10 o une première étape de permutation de premier niveau (131) recevant, en entrée, d'une part un premier ensemble desdites données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une première étape de codage de deuxième niveau (121), et o une deuxième étape de permutation de premier niveau (132) délivrant, en sortie, 15 d'une part un deuxième ensemble desdites données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une deuxième étape de codage de deuxième niveau (122), ledit premier ensemble et ledit deuxième ensemble formant un mot de code, et une étape de codage de premier niveau (11) recevant les données de sortie de ladite 20 première étape de permutation de premier niveau et délivrant des données d'entrée à ladite deuxième étape de permutation de premier niveau, chaque étape de codage mettant en oeuvre au moins deux modules de codage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de 25 données d'entrée aux données de sortie inversible.11. A method for error correction coding capable of implementing a global error correction code associating redundancy data with source data, said global correction code being capable of being represented by a generator matrix comprising, under its systematic form, an identity matrix and a matrix for passing said source data to said invertible redundancy data, characterized in that said coding method implements: two first-level permutation steps, of which: a first permutation step first-level receiver (131) receiving, on the one hand, a first set of said source and / or redundancy data, and on the other hand input data and output data obtained from a first step second level coding (121), and o a second step of first level switching (132) delivering, on the one hand, a second set of said data points and / or redundancy, and on the other hand input data and output data obtained from a second second-level coding step (122), said first set and said second set forming a word of code, and a first level coding step (11) receiving the output data of said first first level permutation step and outputting input data to said second first level permutation step, each coding step at least two basic coding modules, each implementing a basic code that can be represented by a generating matrix comprising, in its systematic form, an identity matrix and a matrix for passing data input to the data. Invertable output. 12. Dispositif de décodage correcteur d'erreurs, apte à retrouver des données source à partir d'un mot de code reçu, lesdites données source ayant été codées par un code correcteur d'erreurs global associant des données de redondance auxdites données source, ledit code correcteur global étant susceptible 30 d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage desdites données source auxdites données de redondance inversible, caractérisé en ce que ledit dispositif de décodage comprend : deux étages de permutation de premier niveau, dont : 3022651 27 o un premier étage de permutation de premier niveau connecté, en entrée, d'une part à des variables d'entrée associées à un premier ensemble desdites données source et/ou de redondance, et d'autre part à des variables internes associées à des données d'entrée et des données de sortie d'un premier étage de décodage 5 de deuxième niveau, et o un deuxième étage de permutation de premier niveau connecté, en sortie, d'une part à des variables de sortie associées à un deuxième ensemble desdites données source et/ou de redondance, et d'autre part à des variables internes associées à des données d'entrée et des données de sortie d'un deuxième étage 10 de décodage de deuxième niveau, ledit premier ensemble et ledit deuxième ensemble formant ledit mot de code, et un étage de décodage de premier niveau connecté d'une part aux variables associées aux données de sortie dudit premier étage de permutation de premier niveau et d'autre part aux variables associées aux données d'entrée dudit deuxième étage de permutation de 15 premier niveau, chaque étage de décodage comprenant au moins deux modules de décodage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de passage de données d'entrée aux données de sortie inversible. 20An error correction decoding device adapted to retrieve source data from a received code word, said source data having been coded by a global error correction code associating redundancy data with said source data, said source code being global correction code being capable of being represented by a generator matrix comprising, in its systematic form, an identity matrix and a matrix for passing said source data to said invertible redundancy data, characterized in that said decoding device comprises: two stages first level switching device, including: a first level switching stage connected firstly to input variables associated with a first set of said source and / or redundancy data, and on the other hand internal variables associated with input data and output data of a first decoding stage 5 of two xth level, and o a second stage of permutation of first level connected, on the output, on the one hand to output variables associated with a second set of said source data and / or redundancy, and on the other hand to internal variables associated with input data and output data of a second second level decoding stage, said first set and said second set forming said code word, and a first level decoding stage connected on the one hand to the variables associated with the output data of said first first level permutation stage and secondly with the variables associated with the input data of said first level first permutation stage, each decoding stage comprising at least two decoding modules of base each implementing a basic code capable of being represented by a generating matrix comprising, in its systematic form, an identity matrix and a no matrix of input data pass to the invertible output data. 20 13. Procédé de décodage correcteur d'erreurs, apte à retrouver des données source à partir d'un mot de code reçu, lesdites données source ayant été codées par un code correcteur d'erreurs global associant des données de redondance auxdites données source, ledit code correcteur global étant susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une 25 matrice identité et une matrice de passage desdites données source auxdites données de redondance inversible, caractérisé en ce que ledit procédé de décodage met en oeuvre : deux étapes de permutation de premier niveau, dont : o une première étape de permutation de premier niveau (431) recevant, en entrée, 30 d'une part un premier ensemble desdites données source et/ou de redondance, et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une première étape de décodage de deuxième niveau (421), et o une deuxième étape de permutation de premier niveau (432) délivrant, en sortie, d'une part un deuxième ensemble desdites données source et/ou de redondance, 3022651 28 et d'autre part des données d'entrée et des données de sortie obtenues à partir d'une deuxième étape de décodage de deuxième niveau (432), ledit premier ensemble et ledit deuxième ensemble formant ledit mot de code, et une étape de décodage de premier niveau (41) recevant les données de sortie de ladite 5 première étape de permutation de premier niveau et délivrant des données d'entrée à ladite deuxième étape de permutation de premier niveau, chaque étape de décodage mettant en oeuvre au moins deux modules de décodage de base mettant chacun en oeuvre un code de base susceptible d'être représenté par une matrice génératrice comprenant, sous sa forme systématique, une matrice identité et une matrice de 10 passage de données d'entrée aux données de sortie inversible.An error correction decoding method adapted to retrieve source data from a received code word, said source data having been encoded by a global error correction code associating redundancy data with said source data, said source code being global correction code being capable of being represented by a generator matrix comprising, in its systematic form, an identity matrix and a matrix for passing said source data to said invertible redundancy data, characterized in that said decoding method implements: two steps of first-level permutation, including: o a first step of first-level permutation (431) receiving, as input, on the one hand a first set of said source and / or redundancy data, and on the other hand input data and output data obtained from a first second level decoding step (421), and o a second permutate step first-level ion (432) outputting on the one hand a second set of said source and / or redundancy data, 3022651 28 and on the other hand input data and output data obtained from a second second-level decoding step (432), said first set and said second set forming said code word, and a first-level decoding step (41) receiving the output data of said first permutation step; level and delivering input data to said second step of first level switching, each decoding step implementing at least two basic decoding modules each implementing a basic code that can be represented by a generator matrix comprising, in its systematic form, an identity matrix and an input data pass matrix to the invertible output data. 14. Programme d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé de codage selon la revendication 11 ou d'un procédé de décodage selon la revendication 13 lorsque ledit programme est exécuté par un processeur.A computer program comprising instructions for carrying out an encoding method according to claim 11 or a decoding method according to claim 13 when said program is executed by a processor. 1515
FR1455849A 2014-06-24 2014-06-24 METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM. Pending FR3022651A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1455849A FR3022651A1 (en) 2014-06-24 2014-06-24 METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM.
PCT/FR2015/051680 WO2015197971A1 (en) 2014-06-24 2015-06-23 Methods and devices for error corrector coding and decoding, and corresponding computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1455849A FR3022651A1 (en) 2014-06-24 2014-06-24 METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM.

Publications (1)

Publication Number Publication Date
FR3022651A1 true FR3022651A1 (en) 2015-12-25

Family

ID=52130328

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1455849A Pending FR3022651A1 (en) 2014-06-24 2014-06-24 METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM.

Country Status (2)

Country Link
FR (1) FR3022651A1 (en)
WO (1) WO2015197971A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109889232B (en) * 2019-03-19 2022-01-07 无锡中科维智数据科技有限公司 Android smart phone low-code-rate close-range magnetic communication system and method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110289367A1 (en) * 2009-01-30 2011-11-24 France Telecom Method and device for flexible error correction encoding and corresponding computer program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2782425B1 (en) 1998-07-31 2000-10-13 France Telecom ERROR CORRECTING CODING METHOD AND DEVICE AND CORRESPONDING DECODING METHOD AND DEVICE

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110289367A1 (en) * 2009-01-30 2011-11-24 France Telecom Method and device for flexible error correction encoding and corresponding computer program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PEREZ-CHAMORRO J ET AL: "Decoding a family of dense codes using the Sum-Product Algorithm", INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS, ISCAS 2009, IEEE, PISCATAWAY, NJ, USA, 20 April 2009 (2009-04-20) - 25 April 2009 (2009-04-25), pages 2685 - 2688, XP031479797, ISBN: 978-1-4244-3827-3 *

Also Published As

Publication number Publication date
WO2015197971A1 (en) 2015-12-30

Similar Documents

Publication Publication Date Title
FR2815199A1 (en) Cyclic turbo coding scheme improves minimum Hamming distance
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
WO2009044031A1 (en) Method and device for encoding symbols with a code of the parity check type and corresponding decoding method and device
EP1974472B1 (en) Fast encoding and decoding methods and related devices
EP1905157B1 (en) Method and system for encoding a data sequence
FR3006133A1 (en) METHOD OF DECODING A CORRECTIVE CODE, FOR EXAMPLE A TURBO-CODE, BY ANALYZING THE EXTENDED SPECTRUM OF THE WORDS OF THE CODE
EP1959572B1 (en) Decoding method with message passing and forced convergence
WO2008059160A2 (en) Encoding and decoding of a data signal according to a correcting code
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
EP2833555B1 (en) Improved method for decoding a corrector code with message passing, in particular for the decoding of LDPC codes or turbo codes
EP2766996B1 (en) Error correction coding and decoding
FR3022651A1 (en) METHODS AND DEVICES FOR ENCODING AND DECODING ERROR CORRECTING, AND CORRESPONDING COMPUTER PROGRAM.
EP2384547A1 (en) Method and device for flexible error correction encoding and corresponding computer program product
WO2003088504A1 (en) Method for coding and/or decoding error correcting codes, and corresponding devices and signal
Grospellier Constant time decoding of quantum expander codes and application to fault-tolerant quantum computation
EP1471647B1 (en) Encoding and decoding of trellis codes comprising trellis sections constructed on block codes with good distance.
FR3037746A1 (en) METHOD FOR CONSTRUCTING INTERLACER FOR TURBO-ENCODER
WO2008129195A1 (en) Coding and decoding of data signals with variable rates
Alfandary et al. Two-dimensional tail-biting convolutional codes
FR3064138A1 (en) METHODS AND DEVICES FOR COMPATIBLE YIELD CODING
WO2015107315A1 (en) Encoding and decoding linear code from lattices
FR3037457A1 (en) CODING AND DECODING METHODS AND DEVICES BASED ON A SET OF LATTICE CONSTRUCTED WITH SELF-ADDITIONAL 4-STATE SECTIONS AND CORRESPONDING COMPUTER PROGRAMS
FR2829329A1 (en) Locked interlaced turbocoding system has shared divisor permutation
FR2944167A1 (en) RE-ENCODING DECODING METHOD, CORRESPONDING DEVICE AND COMPUTER PROGRAM
FR2805103A1 (en) Interleaving method e.g. for turbocoding of data, involves considering a matrix having r rows and m columns, filled row by row by the successive numbers from 0 to r tom-1

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20151225