FR2782424A1 - Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing - Google Patents

Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing Download PDF

Info

Publication number
FR2782424A1
FR2782424A1 FR9810316A FR9810316A FR2782424A1 FR 2782424 A1 FR2782424 A1 FR 2782424A1 FR 9810316 A FR9810316 A FR 9810316A FR 9810316 A FR9810316 A FR 9810316A FR 2782424 A1 FR2782424 A1 FR 2782424A1
Authority
FR
France
Prior art keywords
coding
decoding
data
stages
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.)
Withdrawn
Application number
FR9810316A
Other languages
French (fr)
Inventor
H Jean Claude Carlac
Cyril Vervoux
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
France Telecom 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
Priority claimed from FR9810089A external-priority patent/FR2782423A1/en
Application filed by France Telecom SA filed Critical France Telecom SA
Priority to FR9810316A priority Critical patent/FR2782424A1/en
Priority to FR9816788A priority patent/FR2782425B1/en
Priority to DE69914767T priority patent/DE69914767T2/en
Priority to PCT/FR1999/001912 priority patent/WO2000008766A1/en
Priority to EP99936670A priority patent/EP1101288B1/en
Priority to US09/744,849 priority patent/US6745362B1/en
Priority to AU51684/99A priority patent/AU5168499A/en
Publication of FR2782424A1 publication Critical patent/FR2782424A1/en
Withdrawn 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

The system provides coding which may be readily fitted into VSLI circuits. The procedure for error correction coding uses a data source series associated with a coded data block to be transmitted to at least one receiver. The procedure includes at least two coding stages (21i), each comprising at least two basic coding modules (22i,j). Each of the coding stages receives a series of data to be processed which is distributed between the basic coding modules, and delivers a series of processed data. There is also at least one branching stage (23i) inserted between two successive coding stages, distributing the processed data derived from each basic coding module of the first coding stage between at least two basic coding modules of the second stage. The resulting coded data block for transmission comprises at least a quantity of the source data, and a quantity of the processed data emerging from the last coding stage.

Description

Procédé et dispositif de codage correcteur d'erreurs etMethod and device for error correction coding and

procédé et dispositif de décodage correspondant.  method and corresponding decoding device.

Le domaine de l'invention est celui du codage de données numériques.  The field of the invention is that of coding digital data.

Plus précisément, l'invention concerne les codes correcteurs d'erreurs.  More specifically, the invention relates to error correcting codes.

L'invention s'applique notamment, mais non exclusivement, aux codages de données source organisés en blocs de données, indépendants les uns des autres, et devant donc être codés, et décodés, unitairement, ainsi qu'au codage de flux de  The invention applies particularly, but not exclusively, to source data encodings organized in data blocks, independent of each other, and therefore to be coded, and decoded, individually, as well as to the coding of data streams.

données (codages convolutifs).data (convolutional encodings).

De nombreuses techniques de codage permettant la correction d'erreurs de  Numerous coding techniques allowing the correction of errors of

transmission sont déjà connues. On peut notamment se référer aux documents F.J.  transmission are already known. In particular, reference can be made to F.J.

McWilliams et N.J.A. Sloane [1], S.B.Wicker [2], et V.Pless et al [3] (toutes les références citées dans la présente demande ont été regroupées, pour simplifier la lecture, en annexe. Les codes correcteurs d'erreurs permettent de corriger les erreurs de transmission inhérentes à tout canal de communication. Ainsi, ils sont abondamment utilisés en télécommunications, en télédiffusion et en stockage  McWilliams and N.J.A. Sloane [1], SBWicker [2], and V.Pless et al [3] (all references cited in this application have been grouped together for ease of reading in an appendix. transmission errors inherent in any communication channel, so they are widely used in telecommunications, broadcasting and storage

d'informations, par exemple dans les disques laser et les disques magnétiques...  information, for example in laser disks and magnetic disks ...

Ces erreurs sont causées, par exemple, par le bruit thermique des composants électroniques du récepteur, des brouillages électromagnétiques (intentionnels ou non), des échos ou des propagations multiples dans le cas de la propagation hertzienne (par exemple dans le cadre de systèmes de radiotéléphonie tel que le GSM, de radiodiffusion numérique tel que le DAB ou de télévision numérique tel que DVB) ou dans un réseau d'énergie électrique (par exemple pour  These errors are caused, for example, by the thermal noise of the electronic components of the receiver, electromagnetic interference (intentional or not), echoes or multiple propagations in the case of radio propagation (for example in the context of radiotelephone systems such as GSM, digital broadcasting such as DAB or digital television such as DVB) or in an electrical energy network (for example to

les télécommunications sur le réseau électrique)...  telecommunications on the electricity grid) ...

Les premières études sur les codes correcteurs d'erreurs datent des années 1940. Dans ses articles de 1948, Claude Shannon [4] a fondé la théorie de l'information suivant laquelle sont conçus encore actuellement (et pour toujours ?)  The first studies of error-correcting codes date back to the 1940s. In his 1948 papers, Claude Shannon [4] founded the information theory that is still being designed (and forever?)

les systèmes de communications numériques.  digital communications systems.

L'un des résultats de Shannon est son théorème concernant la limite de la capacité d'un canal de communication dont la fameuse formule est: C= BLog (l+) o la capacité C du canal est un débit d'information s'exprimant en bit/s, B la bande passante du canal en Hz, et S/N le rapport des puissances du signal et du  One of the results of Shannon is his theorem concerning the limit of the capacity of a communication channel whose famous formula is: C = BLog (l +) o the capacity C of the channel is a flow of information expressed in bit / s, B the bandwidth of the channel in Hz, and S / N the ratio of the power of the signal and the

bruit dans la bande passante.noise in the bandwidth.

Ce théorème peuts'énoncer de la façon suivante: "A tout canal est associé une capacité C de transmission (en bit/s). I1 existe des codes correcteurs d'erreurs tels que l'information peut être transmise à travers un canal à un débit inférieur à sa capacité C avec un taux d'erreurs binaires arbitrairement petit en prenant un code  This theorem can be stated in the following way: "Any channel is associated with a transmission capacity C (in bit / s) .There are error correcting codes such that the information can be transmitted through a channel to a channel. rate less than its capacity C with an arbitrarily small bit error rate by taking a code

correcteur d'erreurs de longueur suffisamment grande".  error corrector of sufficiently large length ".

Le théorème de Shannon est malheureusement seulement une preuve d'existence. Sa publication a donné le coup d'envoi de la recherche sur les "bons" codes qui dure maintenant depuis 50 ans. Les principaux codes qui ont retenus l'attention de la communauté des télécommunications ont d'abord été les codes en bloc pour transmettre des paquets de bits: les codes de Hamming, les codes de  Shannon's theorem is unfortunately only a proof of existence. Its publication kicked off the search for "good" codes that has been going on for 50 years now. The main codes that caught the attention of the telecommunications community were first the bulk codes for transmitting bit packets: the Hamming codes, the codes of

Golay, les codes de Reed-Muller, les codes BCH, les codes de ReedSolomon,...  Golay, Reed-Muller codes, BCH codes, ReedSolomon codes, ...

Le principe des codes correcteurs d'erreurs en bloc a été inventé par R. W.  The principle of bulk error correcting codes was invented by R. W.

Hamnming en 1950: à partir de k bits d'information utile, on calcule (nk) bits de redondance au moyen d'additions modulo 2 des k bits d'information. la longueur totale de chaque bloc, appelé aussi mot de code, est donc de n bits. A la réception, si des erreurs sont présentes dans le mot de n bits reçus, la présence de (n-k) bits de redondance au côté des k bits d'informations utiles permettra de corriger  Hamnming in 1950: from k bits of useful information, one computes (nk) redundancy bits by means of modulo 2 additions of the k information bits. the total length of each block, also called codeword, is therefore n bits. On reception, if errors are present in the word of n received bits, the presence of (n-k) redundancy bits beside the k bits of useful information will make it possible to correct

certaines des erreurs présentes.some of the errors present.

Si le rapport des puissances signal/bruit est supérieur à une certaine valeur, alors le coût du débit d'information occupé par les bits de redondance du codage est plus que compensé par la réduction, voire la quasi annulation, du taux d'erreurs binaires (TEB) après décodage. Ce gain en performance est appelé gain de codage, pour un TEB fixé, et est donné en décibels (dB). Un gain de codage de 3dB signifie que l'on peut diviser par 2 la puissance du signal émis avec codage  If the ratio of the signal / noise powers is greater than a certain value, then the cost of the information rate occupied by the coding redundancy bits is more than compensated by the reduction, or even the virtual cancellation, of the bit error rate. (TEB) after decoding. This gain in performance is called coding gain, for a fixed BER, and is given in decibels (dB). A coding gain of 3dB means that the power of the signal transmitted with coding can be divided by 2

pour obtenir le même TEB que sans codage (3 dB - 10.Log10(2)).  to obtain the same BER as without coding (3 dB - 10.Log10 (2)).

Une autre grande famille de codages, plus récente, est celle des codes convolutifs introduite par P.Elias [5] en 1955. Ces codages transforment une suite infinie de symboles d'information en plusieurs autres suites infinies de symboles d'information. Ces codes ont été inventé pour transmettre des flux continus d'information. A.J.Viterbi [6] (en 1967) et G.D.Forney [7] (en 1973) ont démontré les possibilités de décoder les " petits " codes convolutifs de façon efficace avec l'algorithme dit de Viterbi (un algorithme issu de la théorie de la  Another larger family of encodings, more recent, is that of the convolutional codes introduced by P. Elias [5] in 1955. These encodings transform an infinite series of information symbols into several other infinite sequences of information symbols. These codes have been invented to transmit continuous flows of information. A.J.Viterbi [6] (in 1967) and G.D.Forney [7] (in 1973) demonstrated the possibilities of decoding "small" convolutional codes efficiently with the so-called Viterbi algorithm (an algorithm derived from the theory of

programmation dynamique de Cf; Bellmann [8] (1957).  dynamic programming of Cf; Bellmann [8] (1957).

Les codes (correcteurs d'erreurs) en bloc et les codes convolutifs peuvent  Bulk error codes and convolutional codes can be

être traiter avec les mêmes outils théoriques et les mêmes méthodes de décodage.  be treated with the same theoretical tools and the same methods of decoding.

On peut représenter les codes en bloc et les codes convolutifs par des graphes un peu particulier appelés "treillis" à partir desquels on peut calculer leurs  Block codes and convolutional codes can be represented by rather special graphs called "lattices" from which we can calculate their

distributions des poids et effectuer un décodage selon 1' algorithme de Viterbi (Cf.  weight distributions and decoding according to the Viterbi algorithm (cf.

Fomey [7] et McEliece [9]).Fomey [7] and McEliece [9]).

Chaque mot de code est représenté par un chemin différent dans le treillis et un décodage selon l'algorithme de Viterbi permet de trouver le meilleur chemin c'est-à-dire le mot de code le plus proche du mot reçu. Mais, pour un code en bloc comme pour un code convolutif, la complexité de décodage "explose" de façon exponentielle en 2(n- k) pour un code en bloc, et en 2v pour un code convolutif (v est la taille de la mémoire du codeur convolutif). Le dilemme est que plus un code est long et puissant, plus il corrige d'erreurs, mais plus il est coûteux en temps ou  Each code word is represented by a different path in the trellis and decoding according to the Viterbi algorithm makes it possible to find the best path that is to say the code word closest to the received word. But, for a block code as for a convolutional code, the decoding complexity "explodes" exponentially in 2 (n-k) for a block code, and in 2v for a convolutional code (v is the size of the convolutional encoder memory). The dilemma is that the longer and more powerful a code is, the more errors it corrects, but the more expensive or time consuming it is.

en matériel à décoder.in hardware to decode.

Récemment, en 1993, C. Berrou et A. Glavieux [10] ont présenté un nouveau schéma de codage couramment appelé "turbo-code". On peut souligner quatre idées présentes dans les turbo-codes: 1) Utiliser un codage convolutif récursif, c'est-à-dire ayant une réponse impulsionnelle infinie (et non pas une réponse  Recently, in 1993, C. Berrou and A. Glavieux [10] presented a new coding scheme commonly called "turbo-code". We can underline four ideas present in turbo-codes: 1) Use a recursive convolutional coding, that is to say having an infinite impulse response (and not an answer)

impulsionnelle finie comme classiquement).  impulse finished as classically).

2) Coder une fois les bits d'information utile dans leur ordre initial, puis coder une 2ème fois ces mêmes données utiles mais dans un ordre différent, c'est-à-dire permutées. On n'émet qu'une seule  2) Code once the useful information bits in their initial order, then code a second time these same useful data but in a different order, that is to say permuted. One emits only one

fois les bits utiles, et les codeurs n'émettent que leurs redondances.  times the useful bits, and the encoders only emit their redundancies.

La permutation, appelée aussi entrelacement, est "magique", car plus sa taille est grande plus le code peut corriger d'erreurs. En effet, l'entrelacement permet de décorréler les erreurs dues au canal  The permutation, also called interlacing, is "magic", because the bigger the size, the more the code can correct errors. Indeed, the interleaving makes it possible to decorrelate the errors due to the channel

de transmission.of transmission.

3) Utiliser les techniques de décodage à décision douce (en anglais: "soft-decoding") introduite par Bahl et al. (algoritme BCJR) [11], G.Battail [12], ou Hagenauer (algoritme SOVA ("Soft-Output  3) Use Soft Decoding (soft-decoding) techniques introduced by Bahl et al. (BCJR algorithm) [11], G.Battail [12], or Hagenauer (SOVA algoritm ("Soft-Output

Viterbi Algorithm")) [13]...Viterbi Algorithm ")) [13] ...

4) Poser par définition que la sortie Ai (de chaque décodeur i à décision douce élémentaire, recevant "l'information" A.() à l'itération i) est la somme de "l'information" initiale A0 reçue et  4) Set by definition that the output Ai (of each soft decision decoder i, receiving "information" A. () at iteration i) is the sum of the initial "information" A0 received and

d'une information extraite ou extrinsèque Wi telle que: Ai=A0O+Wi.  extracted or extrinsic information Wi such that: Ai = A0O + Wi.

A l'itération suivante (i+1), on ne réinjecte qu'une partie de l'information extrinsèque telle que: A+l(0)=A0+ai+lWi, avec les coefficients oi variant de 0 à la lère itération et pouvant atteindre 1,0 pour la dernière. Ces coefficients (xi sont optimisés pour minimiser le TEB à partir d'un certain rapport signal/bruit. En toute rigueur, les quantités A sont des logarithmes de rapport de  At the next iteration (i + 1), only a part of the extrinsic information such as: A + l (0) = A0 + ai + lWi is reinjected, with the coefficients oi varying from 0 to the first iteration and up to 1.0 for the last one. These coefficients (xi) are optimized to minimize the BER from a certain signal-to-noise ratio and, strictly speaking, the quantities A are logarithms of

vraisemblance et non pas des quantités d'information.  likelihood and not amounts of information.

Les premiers turbo-codes de Berrou et Glavieux étaient des codes convolutifs basés sur une matrice de permutation de grande taille (256 x 256 = 65536) donnant des performances proches de la limite de Shannon, pour de faibles rapports signal à bruit. Mais, certains des plus récents systèmes de télécommunications et télédiffusion nécessitent de transmettre de petits paquets d'information (ex: rétrodiffusion hertzienne, téléphone mobile, ATM sans-fil, Internet...). De plus, l'inconvénient d'une permutation de grande taille est un retard de traitement incompressible qui peut être très gênant, dans un service temps réel, comme par exemple dans une conversation téléphonique. C'est pourquoi des recherches ont été menées pour trouver de bons "turbo- codes" en bloc. En particulier, R. Pyndiah et al. [14] ont adapté le concept du décodage itératif aux codes produits d'Elias [5] pour de petits codes en bloc (n<1024). Et récemment, en 1997, Berrou et al. [17] ont adapté leurs turbo-codes (en refermant les treillis) à la construction de codes en bloc performants de cette ordre de taille (n<2048),  The first turbo-codes of Berrou and Glavieux were convolutional codes based on a large permutation matrix (256 x 256 = 65536) giving performances near the Shannon limit, for low signal-to-noise ratios. But some of the newer telecommunication and broadcast systems require the transmission of small packets of information (eg, back-air broadcast, mobile phone, wireless ATM, Internet, etc.). In addition, the disadvantage of a large permutation is an incompressible processing delay which can be very troublesome, in a real-time service, such as for example in a telephone conversation. This is why research has been conducted to find good "turbo codes" en bloc. In particular, R. Pyndiah et al. [14] adapted the concept of iterative decoding to Elias product codes [5] for small block codes (n <1024). And recently, in 1997, Berrou et al. [17] adapted their turbo-codes (by closing the lattices) to the construction of efficient block codes of this size order (n <2048),

appelés FOTC (en anglais: "Frame Oriented Turbo Codes").  called FOTC (in English: "Frame Oriented Turbo Codes").

Les codes en bloc présentés par Berrou et Pyndiah sont parmi les meilleurs codes connus dans leurs catégories de taille et de rendement (0.5<r<1) et ce pour une complexité de décodage permettant une réalisation matérielle d'un excellent  The bulk codes presented by Berrou and Pyndiah are among the best known codes in their size and yield categories (0.5 <r <1) and this for a decoding complexity allowing a material realization of an excellent

rapport qualité/prix.quality / price ratio.

Pour une longueur n de bloc donnée et pour une capacité de correction: t = L(d - 1)/2] donnée (d est la distance de Hamming minimale entre deux mots du code), il existe des bornes supérieures (plus ou moins sévères) des performances que l'on peut espérer atteindre. La meilleure des bornes supérieures connue est la borne de McEliece et al. [1,2], représentée (11) en trait plein sur la figure 1. On a fait  For a given block length n and for a correction capacity: t = L (d - 1) / 2] given (d is the minimum Hamming distance between two words in the code), there are upper bounds (more or less severe) performance that can be expected. The best known upper bound is McEliece et al. [1,2], shown (11) in solid lines in Figure 1. We made

également apparaître, en pointillés, la borne 12 de Gilbert-Varshamov.  also appear, in dotted lines, Gilbert-Varshamov marker 12.

Pour une distance relative d/n fixée, on ne peut trouver un code ayant un rendement k/n supérieur à la borne de McEliece. De plus, on dit qu'une famille de code est bonne si: lim(d / n): 0 n -.o Par exemple, pour un rendement de k/n = 0,5, la borne de McEliece sur la distance minimale relative est d/n < 0,18. Si n=1024 bits, on peut donc au plus  For a fixed relative distance d / n, one can not find a code having a yield k / n higher than the limit of McEliece. Moreover, we say that a family of code is good if: lim (d / n): 0 n -.o For example, for a yield of k / n = 0.5, the McEliece bound on the minimal distance relative is d / n <0.18. If n = 1024 bits, then we can at most

espérer corriger 91 erreurs.hope to correct 91 errors.

Actuellement, les "turbo-codes" sont les codes correcteurs les plus efficaces, pour un TEB de l'ordre de 10-4. Lorsque ce TEB est très faible, par exemple de l'ordre de 10-10, le gain par rapport aux autres techniques est moins important. Par ailleurs, les rendements obtenus (classiquement 1/2) ne semblent pas optimaux. L'invention a notamment pour objectif de pallier ces différents  Currently, the "turbo-codes" are the most effective correction codes, for a BER of the order of 10-4. When this BER is very low, for example of the order of 10-10, the gain compared to other techniques is less important. Moreover, the yields obtained (typically 1/2) do not seem optimal. The aim of the invention is in particular to overcome these different

inconvénients de l'état de l'art.disadvantages of the state of the art.

Plus précisément, un objectif de l'invention est de fournir un procédé de codage correcteur d'erreurs offrant des performances meilleures que les codes connus. Notamment, un objectif de l'invention est de fournir un tel procédé,  More precisely, an object of the invention is to provide an error correction coding method offering better performances than known codes. In particular, an object of the invention is to provide such a method,

permettant de se rapprocher fortement de la borne de McEliece.  allowing to get closer to McEliece's terminal.

Un autre objectif de l'invention est de fournir un tel procédé de codage, qui permette un gain très important en particulier lorsque les taux d'erreurs sont très  Another object of the invention is to provide such a coding method, which allows a very large gain, especially when the error rates are very high.

faibles, de l'ordre de 10-10.weak, of the order of 10-10.

L'invention a également pour objectif de fournir un tel procédé, qui permette un gain de rendement, par rapport aux techniques de codage connues (par  Another object of the invention is to provide such a method, which allows a gain in efficiency, compared with known coding techniques (for example

exemple, un passage d'une rendement de 1/2 à 1/4 ou 1/8).  example, a passage of a yield of 1/2 to 1/4 or 1/8).

Un autre objectif de l'invention est de fournir un tel procédé de codage, qui soit adapté au codage de blocs de données de longueur n moyenne, par exemple  Another object of the invention is to provide such a coding method, which is suitable for coding data blocks of average length n, for example

comprise entre 128 et 2048 bits.between 128 and 2048 bits.

Encore un autre objectif de l'invention est de fournir un tel procédé de  Yet another object of the invention is to provide such a method of

codage, qui puisse être facilement implanté en VLSI.  coding, which can be easily implemented in VLSI.

L'invention a également pour objectif de fournir un procédé de décodage correspondant, qui soit de complexité raisonnable, et notamment qui offre un rapport ou performance/complexité compétitif par rapport aux meilleurs codes connus. Ces objectifs ainsi que d'autres qui apparaitront par la suite sont atteints selon l'invention à l'aide d'un dispositif de codage correcteur d'erreurs, du type associant à une série de données source un bloc de données codées, destiné à être transmis vers au moins un récepteur, comprenant: - au moins deux étages de codage comprenant chacun au moins deux modules de codage de base, chacun desdits étages de codage recevant une série de données à traiter, réparties entre lesdits modules de codage de base, et délivrant une série de données traitées, issues desdits modules de codage de base; - et au moins un étage de brassage, ledit étage de brassage étant inséré entre deux étages de codage successifs, un premier étage de codage et un second étage de codage, et répartissant les données traitées issues de chaque module de codage de base dudit premier étage de codage entre au moins deux modules de codage de base  The invention also aims to provide a corresponding decoding method, which is of reasonable complexity, and in particular which offers a ratio or performance / complexity competitive with the best known codes. These objectives as well as others which will appear later are achieved according to the invention by means of an error correction coding device, of the type associating with a series of source data a block of coded data, intended to be transmitted to at least one receiver, comprising: - at least two coding stages each comprising at least two basic coding modules, each of said coding stages receiving a series of data to be processed, distributed between said basic coding modules, and providing a series of processed data from said basic coding modules; and at least one brewing stage, said brewing stage being inserted between two successive coding stages, a first coding stage and a second coding stage, and distributing the processed data from each base coding module of said first stage coding between at least two basic coding modules

dudit second étage.said second floor.

Un tel dispositif de codage permet d'obtenir, pour un rendement donné, une distance minimale importante. Un tel code (192, 96) de rendement 1/2, construit sur la base de l'exemple décrit par la suite, présente ainsi une distance  Such a coding device makes it possible to obtain, for a given yield, a minimum important distance. Such a code (192, 96) of output 1/2, built on the basis of the example described later, thus presents a distance

minimale proche de 30. De plus, la distribution des poids est proche de l'optimale.  The minimum distribution is close to 30. In addition, the weight distribution is close to optimal.

Comme cela apparaîtra par la suite, ce procédé peut aisément être implanté  As will become apparent later, this method can easily be implanted

sous la forme d'une machine pipe-line, notamment dans un VLSI.  in the form of a pipe-line machine, especially in a VLSI.

De façon avantageuse, le code mis en oeuvre est systématique, ou pseudo-  Advantageously, the code implemented is systematic, or pseudo-

systématique. Ainsi, ledit bloc de données codées à transmettre comprend avantageusement au moins certaines desdites données source et au moins certaines des données traitées issues du dernier étage de codage, et préférentiellement  systematic. Thus, said coded data block to be transmitted advantageously comprises at least some of said source data and at least some of the processed data from the last coding stage, and preferentially

l'ensemble desdites données source.  all of said source data.

Selon un mode de réalisation avantageux de l'invention, ledit bloc de données codées comprend des données traitées issues d'au moins deux étages de codage. En d'autres termes, on peut prendre en compte les données calculées par le dernier étage, ainsi que des derniers étages. On choisira le compromis adéquat, en fonction des besoins, entre la qualité du décodage (prise en compte du plus  According to an advantageous embodiment of the invention, said coded data block comprises processed data from at least two coding stages. In other words, one can take into account the data calculated by the last floor, as well as the last stages. We will choose the appropriate compromise, depending on the needs, between the quality of the decoding (taking into account the more

grand nombre d'informations possible) et le rendement.  large amount of information possible) and performance.

Dans un mode de réalisation particulier, au moins un desdits étages de brassage comprend au moins une matrice de permutation. On peut également prévoir qu'au moins un desdits étages de brassage distribue des données traitées vers au moins deux étages de codage distincts. Les deux aspects peuvent bien sûr  In a particular embodiment, at least one of said brewing stages comprises at least one permutation matrix. It can also be provided that at least one of said brewing stages distributes processed data to at least two distinct coding stages. Both aspects can of course

être réunis dans un même dispositif.  to be united in the same device.

De même, au moins une desdites données source et/ou au moins une desdites données traitées peut être dupliquée au moins une fois, de façon à former  Likewise, at least one of said source data and / or at least one of said processed data can be duplicated at least once, so as to form

au moins deux données à traiter.at least two data to be processed.

On peut encore prévoir qu'au moins une desdites données source alimente  It can also be expected that at least one of said source data feeds

directement un autre étage de codage que le premier étage de codage.  directly another coding stage than the first coding stage.

Ces différents aspects sont bien sûr cumulables, et choisis préférentiellement de façon à obtenir le meilleur codage, avec un décodage restant  These different aspects are of course cumulative, and preferentially chosen so as to obtain the best coding, with a decoding remaining

suffisamment simple et efficace.simple enough and effective.

Selon un mode de réalisation particulier de l'invention, le dispositif de codage comprend au moins deux unités de codage comprenant chacun au moins deux desdits étages de codage et au moins un étage de brassage inséré entre deux étages de codage successifs, lesdites données source alimentant chacune desdites  According to a particular embodiment of the invention, the coding device comprises at least two coding units each comprising at least two of said coding stages and at least one mixing stage inserted between two successive coding stages, said source data feeding each of said

unités de codage, dans des ordres d'alimentation différents.  coding units, in different feed orders.

Il peut notamment comprendre au moins une unité de brassage, assurant une modification de l'ordre d'alimentation desdites données source dans l'une  It may in particular comprise at least one brewing unit, ensuring a modification of the feed order of said source data in one

desdites unités de codage.said coding units.

On obtient ainsi deux (ou plus) jeux distincts de données de redondance.  This gives two (or more) separate sets of redundancy data.

Selon un mode de réalisation avantageux, le dispositif de codage comprend des moyens de poinçonnage, mis en oeuvre sur au moins certaines desdites  According to an advantageous embodiment, the coding device comprises punching means, implemented on at least some of said

données à traiter et/ou sur au moins certaines desdites traitées.  data to be processed and / or on at least some of said processed.

Avantageusement, lesdits modules de codage mettent en oeuvre un code de  Advantageously, said coding modules implement a code of

redondance de longueur n-k inférieure ou égale à 12.  redundancy of length n-k less than or equal to 12.

Comme déjà mentionné, l'invention s'applique notamment au codage de  As already mentioned, the invention applies in particular to the coding of

blocs de données de taille relativement limitée.  relatively small data blocks.

Selon un premier mode de réalisation, particulièrement aisé à mettre en oeuvre, tous lesdits modules de codage sont identiques. Lesdits modules de  According to a first embodiment, particularly easy to implement, all said coding modules are identical. Said modules of

codage peuvent par exemple mettre en oeuvre un code de Reed-Mtiller.  coding can for example implement a Reed-Mtiller code.

Selon un second mode de réalisation, au moins deux desdits modules de  According to a second embodiment, at least two of said modules of

codage sont différents.coding are different.

De façon avantageuse, ledit dispositif comprend des moyens de contrôle et/ou de réglage d'au moins un des éléments suivants: - type et/ou caractéristique du codage mis en oeuvre par au moins un des modules de codage de base; - brassage mis en oeuvre par au moins un desdits étages de brassage; - poinçonnage mis en oeuvre sur au moins certaines desdites données à traiter et/ou au moins certaines desdites données traitées;  Advantageously, said device comprises means for controlling and / or adjusting at least one of the following elements: type and / or characteristic of the coding implemented by at least one of the basic coding modules; - Brewing implemented by at least one of said brewing stages; - Punching implemented on at least some of said data to be processed and / or at least some of said processed data;

- nombre d'étages de codage.- number of coding stages.

Ledit contrôle et/ou ledit réglage peuvent agir systématiquement, sur une période donnée, et/ou en fonction d'au moins une information représentative d'au moins un des aspects appartenant au groupe comprenant: - au moins une caractéristique du canal de transmission; - au moins une caractéristique du récepteur;  Said control and / or said adjustment can act systematically, over a given period, and / or according to at least one piece of information representative of at least one of the aspects belonging to the group comprising: at least one characteristic of the transmission channel; at least one characteristic of the receiver;

- au moins une caractéristique du signal source.  at least one characteristic of the source signal.

L'invention concerne également le procédé de codage correcteur d'erreurs mis en oeuvre par le dispositif décrit ci-dessus. Selon ce procédé,on associe à une série de données source un bloc de données codées, destiné à être transmis vers au moins un récepteur, à partir de: - au moins deux étapes de codage mettant en oeuvre chacune au moins deux codages de base, chacune desdits étapes de codage recevant une série de données à traiter, réparties entre lesdits codages de base, et délivrant une série de données traitées, correspondant auxdits codage de base; - et au moins une étape de brassage, ladite étage de brassage étant insérée entre deux étapes de codage successives, une première étape de codage et une seconde étape de codage, et répartissant les données traitées correspondant à chaque codage de base de ladite première étape de codage entre au moins deux codages de base de  The invention also relates to the error correction coding method implemented by the device described above. According to this method, a series of source data is associated with a block of coded data, intended to be transmitted to at least one receiver, from: at least two coding steps each implementing at least two basic codings, each of said coding steps receiving a series of data to be processed, distributed between said basic codings, and delivering a series of processed data, corresponding to said basic coding; and at least one stirring step, said stirring stage being inserted between two successive coding steps, a first coding step and a second coding step, and distributing the processed data corresponding to each basic coding of said first step of coding. encoding between at least two basic encodings of

ladite seconde étape.said second step.

L'invention concerne également les procédés et les dispositifs de décodage  The invention also relates to methods and decoding devices

correspondant. Avantageusement, un tel procédé de décodage est itératif.  corresponding. Advantageously, such a decoding method is iterative.

De façon préférentielle, ledit procédé de décodage met en oeuvre au moins une des techniques appartenant au groupe comprenant: - décodage à l'aide d'une structure symétrique de celle mise en oeuvre lors du codage; décodage exhaustif, selon lequel on considère tous les mots de code possibles et on sélectionne le meilleur selon un critère de sélection prédéterminé;  Preferably, said decoding method implements at least one of the techniques belonging to the group comprising: decoding using a structure symmetrical to that implemented during coding; exhaustive decoding, according to which all the possible code words are considered and the best is selected according to a predetermined selection criterion;

- décodage de type Viterbi, mettant en oeuvre un treillis de décodage.  Viterbi-type decoding, implementing a decoding trellis.

L'invention concerne bien sûr également un dispositif de décodage d'un  The invention also relates of course to a device for decoding a

bloc de données, mettant en oeuvre ce procédé de décodage.  block of data, implementing this decoding method.

Avantageusement, un tel dispositif de décodage met en oeuvre au moins deux étages de décodage, comprenant au moins deux modules de décodage, et au moins un étage de permutation inséré entre deux étages de décodage consécutifs, lesdits étages étant symétriques à ceux du codage correspondant, chacun desdits modules de décodage comprenant deux fois plus d'entrées et de sorties que le module de codage correspondant, de façon à assurer la propagation de valeurs de vraisemblance d'une part de l'amont vers l'aval dudit dispositif, et d'autre part de  Advantageously, such a decoding device implements at least two decoding stages, comprising at least two decoding modules, and at least one permutation stage inserted between two consecutive decoding stages, said stages being symmetrical to those of the corresponding coding, each of said decoding modules comprising twice as many inputs and outputs as the corresponding coding module, so as to ensure the propagation of likelihood values on the one hand from the upstream to the downstream of said device, and of other hand

l'aval vers l'amont dudit dispositif.  downstream upstream of said device.

On obtient ainsi, progressivement, une convergence des données décodées  This gives a gradual convergence of the decoded data

dans les deux sens de décodage.in both directions of decoding.

De façon préférentielle, dans au moins un desdits étages de décodage, on met en oeuvre une étape de normalisation, de façon à conserver constante la  Preferably, in at least one of said decoding stages, a normalization step is implemented so as to maintain constant the

vraisemblance ou l'énergie.likelihood or energy.

Cette étape de normalisation peut par exemple maintenir constante la somme des valeurs absolues desdites valeurs de vraisemblance ou la racine carrée  This normalization step can for example keep constant the sum of the absolute values of said likelihood values or the square root

de la somme des carrés desdites valeurs de vraisemblance.  the sum of squares of said likelihood values.

Selon une autre caractéristique avantageuse de l'invention, on met en oeuvre, dans au moins un desdits étages de permutation, une étape de mixage associant à un couple (x, y) de valeurs de vraisemblance, venant respectivement de l'amont et de l'aval dudit dispositif, un couple (x', y') de valeurs de vraisemblance telles que: x' = a(x + (1- cL)y y' = (1 a)x + (ay  According to another advantageous characteristic of the invention, at least one of said permutation stages is implemented with a mixing step associating, with a pair (x, y), likelihood values coming respectively from the upstream and the downstream of said device, a pair (x ', y') of likelihood values such that: x '= a (x + (1- cL) yy' = (1 a) x + (ay

a étant un réel compris entre 1 et 1/2.  a being a real between 1 and 1/2.

n est ainsi possible d'accélérer la convergence.  It is thus possible to accelerate convergence.

Préférentiellement, ax varie progressivement de 1 vers 1/2, au fur à mesure  Preferably, ax varies progressively from 1 to 1/2, as and when

desdites itérations.said iterations.

Selon un autre mode de mise en oeuvre, plus simple, a peut valoir systématiquement 1/2 (ce qui revient à imposer l'égalité entre la valeur de  According to another mode of implementation, simpler, a can be worth systematically 1/2 (which amounts to imposing equality between the value of

vraisemblance amont et la valeur de vraisemblance aval).  upstream likelihood and downstream likelihood value).

Dans un autre mode de réalisation d'un dispositif de décodage selon l'invention, ce dernier met en oeuvre au moins une itération des opérations suivantes: - propagation complète dans le sens amont dudit dispositif desdites valeurs de vraisemblance, délivrant un premier jeu de valeurs estimées; propagation complète dans le sens aval dudit dispositif desdites valeurs de vraisemblance, délivrant un second jeu de valeurs estimées. Il peut alors avantageusement effectuer la sommation des valeurs estimées de chacun desdits jeux de valeurs estimées, l'itération suivante étant effectuée sur les résultats de ladite sommation. Selon un autre mode de mise en oeuvre, le dispositif de décodage associe à chaque sortie d'un desdits modules de décodage une fonction booléenne impliquant au moins deux entrées dudit module de codage correspondant, une contrainte de décodage imposant qu'une sortie aval d'un étage de décodage donné  In another embodiment of a decoding device according to the invention, the latter implements at least one iteration of the following operations: complete propagation in the upstream direction of said device of said likelihood values, delivering a first set of values estimated; complete propagation in the downstream direction of said device of said likelihood values, delivering a second set of estimated values. It can then advantageously summing the estimated values of each of said sets of estimated values, the next iteration being performed on the results of said summation. According to another embodiment, the decoding device associates with each output of one of said decoding modules a Boolean function involving at least two inputs of said corresponding coding module, a decoding constraint imposing a downstream output of a given decoding stage

soit égal à la sortie amont correspondante de l'étage de décodage suivant.  equal to the corresponding upstream output of the next decoding stage.

Une valeur partielle de vraisemblance a posteriori est alors calculée pour chaque entrée, en fonction des vraisemblances a posteriori affectées aux sorties aval et amont associées à une même variable booléenne interne du module de codage correspondant, et en fonction de la vraisemblance a posteriori de l'entrée  A partial posterior likelihood value is then calculated for each input, as a function of the posterior likelihoods assigned to the downstream and upstream outputs associated with the same internal Boolean variable of the corresponding coding module, and as a function of the posterior likelihood of the Entrance

correspondante.corresponding.

D'autres caractéristiques apparaitront plus clairement à la lecture de la  Other characteristics will appear more clearly on reading the

description suivante d'un mode de réalisation préférentiel, donné à titre de simple  following description of a preferred embodiment, given as a simple

exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels: - la figure 1 illustre les bornes de McEliece et de Gilbert -Varshamov; - la figure 2 illustre le principe général d'un dispositif de codage selon l'invention; - la figure 3 est un exemple particulier de dispositif de codage selon la figure 2; - la figure 4 illustre d'autres aspects pouvant être mis en oeuvre dans  illustrative and nonlimiting example, and appended drawings, among which: - Figure 1 illustrates the boundaries of McEliece and Gilbert -Varshamov; FIG. 2 illustrates the general principle of a coding device according to the invention; FIG. 3 is a particular example of a coding device according to FIG. 2; FIG. 4 illustrates other aspects that can be implemented in

un dispositif de codage selon l'invention.  a coding device according to the invention.

La technique de l'invention permet donc la construction de codes quasi-  The technique of the invention thus allows the construction of quasi-identical codes.

optimaux (désignés par l'expression "Codes cortex"), auxquels une méthode de  optimal (referred to as "cortex codes"), to which a method of

décodage spécifique à décision douce est avantageusement associée.  Specific decoding with soft decision is advantageously associated.

Les résultats obtenus sont de meilleure qualité que ceux des "turbocodes".  The results obtained are of better quality than those of "turbocodes".

En effet, la distance minimum d des turbo-codes actuels est relativement petite. En effet, par exemple un turbo-code en bloc de Pyndiah qui est un code produit (32,26,4)x(32,26,4)=(1024,676,16), est donc un code de longueur n=1024 pour k=676 bits utiles et une distance minimale d=16. Avec ce code en bloc, on ne peut  Indeed, the minimum distance d of current turbo-codes is relatively small. Indeed, for example a Pyndiah block turbo-code which is a product code (32,26,4) x (32,26,4) = (1024,676,16), is therefore a length code n = 1024 for k = 676 useful bits and a minimum distance d = 16. With this code en bloc, you can not

donc corriger au plus t= [ (d - 1) / 2 = 7 erreurs en décision dure.  therefore correct at most t = [(d - 1) / 2 = 7 errors in hard decision.

Autre exemple, un turbo-code en bloc de Berrou de longueur 192 bits (Cf. Jung et al. [19]) et de rendement 1/3, a une distance minimale estimée de 8 avec un entrelaceur optimisé. Un code "cortex" (192,96) de rendement 1/2 a en revanche une distance minimale proche de 30. La distribution des poids des codes "cortex" semblent aussi tendre vers la distribution binômiale qui est celle du codage  As another example, a 192-bit Berrou block turbo-code (see Jung et al., [19]) with a 1/3 efficiency, has an estimated minimum distance of 8 with an optimized interleaver. On the other hand, a "cortex" code (192,96) of yield 1/2 has a minimal distance close to 30. The distribution of the weights of the "cortex" codes also seems to tend towards the binomial distribution which is that of the coding

aléatoire optimal (Cf. G. Battail [16]).  optimal randomness (see G. Battail [16]).

Le principe général de l'invention repose sur la mise en oeuvre de  The general principle of the invention lies in the implementation of

plusieurs modules de codage, organisés selon le schéma de principe de la figure 2.  several coding modules, organized according to the block diagram of FIG.

Ces modules de codage sont regroupés en au moins deux étages 211 à 21n.  These coding modules are grouped into at least two stages 211 to 21n.

Chaque étage de codage 21 i comprend au moins deux modules de codage 22j, j  Each coding stage 21 i comprises at least two coding modules 22j, j

fonctionnant indépendamment.operating independently.

Entre chaque étage de codage 21 i et 21j + 1 est inséré un étage de brassage 231 à 23n. 1. Les données sortant de chaque module de codage de l'étage 22i sont  Between each coding stage 21 i and 21j + 1 is inserted a stirring stage 231 to 23n. 1. The data coming out of each coding module of stage 22i are

ainsi réparties entre plusieurs modules de codage de l'étage 22i+1.  thus distributed between several coding modules of the stage 22i + 1.

Cette répartition est effectuée de préférence de façon à répartir au mieux les  This distribution is preferably carried out so as to distribute the best

bits reçus d'un même module de codage.  bits received from the same coding module.

Dans le mode de réalisation décrit, le code mis en oeuvre est un code en blocs systématiques. Le paquet de bits transmis comprend donc les bits utiles 24, ou bits source, et les bits de redondance 25 issus du codeur. Bien sûr, un  In the embodiment described, the code implemented is a systematic block code. The transmitted bit packet therefore comprises the useful bits 24, or source bits, and the redundancy bits 25 coming from the coder. Of course, a

poinçonnage peut être mis en oeuvre.  punching can be implemented.

Selon un mode de réalisation particulier de l'invention, illustré par la figure 3, les modules de codage 22ij sont tous identiques, et mettent en oeuvre un code  According to a particular embodiment of the invention, illustrated by FIG. 3, the coding modules 22ij are all identical, and implement a code

de Reed-M ller (8, 4, 4). On obtient ainsi un code "cortex" (48, 24).  from Reed-Mler (8, 4, 4). This gives a "cortex" code (48, 24).

La matrice génératrice du code de Reed-Miller utilisé est la suivante: (I O O 001 1 l1  The matrix generating the Reed-Miller code used is as follows: (I O O 001 1 l1

0 1 0 0 1 0 1 10 1 0 0 1 0 1 1

G=0 0 1 0 1 1 0 1G = 0 0 1 0 1 1 0 1

O 0 0 1 1 1 10O 0 0 1 1 1 10

Si les quatre bits utiles entrant sont (x0, xl, x2, x3), les quatre bits de redondance sont (x4, X5, x6, x7)tels que {X4 = Xi +X +X3 X--x4 -X0+24x3 X4 =Xo +X2 +X3  If the four incoming useful bits are (x0, x1, x2, x3), the four redundancy bits are (x4, x5, x6, x7) such that {X4 = Xi + X + X3 X-x4 -X0 + 24x3 X4 = Xo + X2 + X3

X4 = XO +XI + X3X4 = XO + XI + X3

X4 =X- +X1 +X2X4 = X- + X1 + X2

Chaque étage de codage 211, 212 et 213 comprend six modules de codage de base (8, 4, 4) 22 1, à 223,6. Les bits de redondance du premier étage de codage 211 sont soumis à une permutation rIl1 (231). Cette permutation peut être considérée comme une "jungle de fils" qui permet d'obtenir une bonne capacité de correction, si elle est choisie de façon adéquate (par exemple par essais successifs  Each coding stage 211, 212 and 213 comprises six basic coding modules (8, 4, 4) 22 1, at 223.6. The redundancy bits of the first coding stage 211 are subjected to a permutation rI1 (231). This permutation can be considered as a "jungle of son" which makes it possible to obtain a good correction capacity, if it is appropriately chosen (for example by successive tests

et simulation).and simulation).

Le deuxième étage de codage 212 effectue un nouveau calcul de 24 nouveaux bits de redondance intermédiaires, qui sont à nouveau permutés par l'étage de brassage n 2 (232). Le processus peut mettre en oeuvre de cette façon  The second coding stage 212 performs a new calculation of 24 new intermediate redundancy bits, which are again switched by the brewing stage n 2 (232). The process can implement this way

plusieurs étages de codage.several stages of coding.

On peut bien sûr transmettre tous les bits calculés avec les bits utiles.  It is of course possible to transmit all the bits calculated with the useful bits.

Cependant, le code obtenu a alors un rendement faible. On pourra préférer ne transmettre que les bits utiles de départ 24 et les bits de redondance 25 du dernier étage. On a constaté que ces codes ont des distances minimales très bonnes, et  However, the code obtained then has a low yield. It may be preferred to transmit only the start useful bits 24 and the redundancy bits 25 of the last stage. These codes have been found to have very good minimum distances, and

des distributions de poids ayant des "queues de distribution binômiales", c'est-à-  weight distributions having "binomial distribution tails", i.e.

dire un très petit nombre de voisins après cette distance minimale. De nombreuses variantes et adaptations de ce principe peuvent être envisagées. la figure 4 illustre schématiquement et fictivement (c'est-àdire de façon simplifiée dans un but illustratif) certaines d'entre elles. Elles peuvent bien  say a very small number of neighbors after this minimum distance. Many variations and adaptations of this principle can be envisaged. Figure 4 illustrates schematically and fictitiously (i.e., simplified for illustrative purposes) some of them. They may well

sûr être mises en oeuvre indépendamment, ou selon toute combinaison adéquate.  sure to be implemented independently, or in any suitable combination.

Sur cette figure 4, on a représenté un premier étage de codage 41 comprenant plusieurs codeurs identiques Cl 411. Ces codeurs sont alimentés par les données source 42. Ils peuvent également prendre en compte des données intermédiaires 43 "réinjectés" depuis un emplacement quelconque de la chaîne de traitement. Les données codées par ces modules de codage 411 alimentent une matrice de permutation 44, qui répartit les données entre une pluralité de codeurs d'un deuxième étage de codage 45. Contrairement au premier étage de codage 41, ce second étage de codage 45 met en oeuvre plusiurs codeurs distincts C2, C3, C4 452 à 454. Ces différents codespeuvent être de tous types adéquats. Ils seront par exemple choisis en raison de leur efficacité de codage et/ou de la facilité du  FIG. 4 shows a first coding stage 41 comprising a plurality of identical coders C1411. These coders are fed by the source data 42. They can also take into account intermediate data 43 "reinjected" from any location in the processing chain. The data coded by these coding modules 411 feed a permutation matrix 44, which distributes the data between a plurality of coders of a second coding stage 45. Unlike the first coding stage 41, this second coding stage 45 Several different encoders C2, C3, C4 452 to 454 are used. These different codes can be of any suitable type. For example, they will be chosen because of their coding efficiency and / or the ease of

décodage correspondant.corresponding decoding.

L'étage de permutation suivant est constitué de plusieurs modules de brassage 461, 462, dans lesquels la répartition des données intermédiaires reçues de l'étage de codage 45 sont distribués de façon variable vers les différents modules de codage 471 de l'étage de codage suivant 47. Ce brassage 461, 462  The next permutation stage consists of several patching modules 461, 462, in which the distribution of the intermediate data received from the coding stage 45 is distributed in a variable manner to the different coding modules 471 of the coding stage. next 47. This brewing 461, 462

peut être régulier, aléatoire ou contrôlé en fonction d'une information 481.  may be regular, random or controlled based on information 481.

La chaîne de transmission peut encore comprendre un ou plusieurs codages C6 49 (assurant un codage et/ou un cryptage, par exemple), qui agit sur  The transmission chain may further comprise one or more C6 encodings 49 (providing coding and / or encryption, for example), which acts on

l'ensemble des données qu'il reçoit des modules de codage précédent.  all the data it receives from previous coding modules.

Un poinçonnage 410 peut être effectué en différents points de la chaîne et sur différentes données. Dans l'exemple illustré, le poinçonnage 410 est effectué sur un ensemble de données comprenant: - les données source 42; les données issues du dernier étage de codage 491;  Punching 410 can be performed at different points of the chain and on different data. In the example illustrated, the punching 410 is performed on a set of data comprising: the source data 42; data from the last coding stage 491;

- au moins certaines des données intermédiaires 4101.  at least some of the intermediate data 4101.

Plus généralement, les données, qu'il s'agisse des données source 42 ou des donnnées intermédiaires 4101, peuvent être réparties de façon très variée à  More generally, the data, whether it is the source data 42 or the intermediate data 4101, can be distributed in a very different way to

l'intérieur de la chaîne de traitement.  inside the processing chain.

A titre d'exemple, on a illustré les cas suivants: - une donnée intermédiaires 51 est dirigée vers deux étages de codage distincts 45 et 47 simultanément; - une donnée source 52 subit le même "découplage" entre un module de codage du premier l'étage de de codage 41 et de l'étage de codage45; - une donnée 53 alimente simultanément deux (ou plus) modules de codage 453 et 454 d'un même étage de codage 45; - une donnée 54 issue de l'étage de permutation 44 alimente directement l'étage de codage 47 (et non l'étage le plus proche 45); - une donnée 55 est sélectivement dirigée vers un premier module de codage 452 ou un second module de codage 453; une donnée 56 reçue par un module de codage 454 correspond sélectivement à deux (ou plusieurs) données intermédiaires; - des données source 57 sont introduites dans un étage de codage 45  By way of example, the following cases have been illustrated: an intermediate data item 51 is directed to two distinct coding stages 45 and 47 simultaneously; a source data item 52 undergoes the same "decoupling" between an encoding module of the first coding stage 41 and the coding stage; a data item 53 simultaneously supplies two (or more) coding modules 453 and 454 of the same coding stage 45; a data item 54 from the permutation stage 44 directly supplies the coding stage 47 (and not the nearest stage 45); data 55 is selectively directed to a first coding module 452 or a second coding module 453; a data item 56 received by a coding module 454 corresponds selectively to two (or more) intermediate data; source data 57 are introduced into a coding stage 45

autre que le premier étage de codage 41 de la chaîne.  other than the first coding stage 41 of the chain.

On peut également prévoir que tout ou partie des données source alimentent d'une part, en direct, une première unité de codage, formée d'au moins deux étages de codage et d'au moins un étage de brassage intercalé, et d'autre part, après brassage (par exemple une permutation), une seconde unité de codage, formé également d'au moins deux étages de codage et d'au moins un étage de brassage intercalé. On obtient ainsi deux jeux de données de redondance (sur  Provision may also be made for all or part of the source data to supply, on the one hand, a first coding unit, consisting of at least two coding stages and at least one intercalated stirring stage, and on the other hand after stirring (for example a permutation), a second coding unit, also formed of at least two coding stages and at least one intercalated stirring stage. This gives two sets of redundancy data (on

lesquels un poinçonnage est bien sûr possible).  which punching is of course possible).

Il ne s'agit ici bien sûr que d'exemples qui peuvent être adaptés et généralisés. Par ailleurs, de nombreux aspects du traitement peuvent être variables ou contrôlés en fonction d'informations variées telles que, par exemple: - des informations sur le canal de transmission (niveau de bruit, types de bruits,...); - informations sur le décodeur (capacité de traitement, capacité de mémorisation,...); - une information sur le type de données transmises (structure et/ou caractéristiques des blocs de données, type d'informations (images, sons, données,...), qualité de codage requis,...); - une instruction donnée par un utilisateur; 15.. . Ainsi le module 48 de contrôle peut piloter: - les permutations ou brassage effectués (481); - les codages mis en oeuvre (type de codes et/ou caractéristiques du code) (482);  These are of course only examples that can be adapted and generalized. Moreover, many aspects of the processing can be variable or controlled according to various information such as, for example: information on the transmission channel (noise level, types of noise, etc.); - information on the decoder (processing capacity, storage capacity, ...); information on the type of data transmitted (structure and / or characteristics of the data blocks, type of information (images, sounds, data, etc.), coding quality required, etc.); an instruction given by a user; 15 ... Thus the control module 48 can control: the permutations or mixing done (481); the encodings used (type of codes and / or characteristics of the code) (482);

- le poinçonnage (483).punching (483).

Le choix des codes mis en oeuvre dans les modules de codage tient notamment compte de l'efficacité et de la facilité de décodage. Classiquement, on choisira un code de base tel que la valeur n - k soit petite. Le choix des permutations (ou des brassages) est de préférence effectué de façon à assurer une grande diversité entre les fonctions booléennes de chaque sortie. Plus précisément, on fait en sorte que, finalement, la fonction booléenne de chaque bit de sortie de redondance soit composée d'un ensemble de bits d'information le plus différent  The choice of codes implemented in the coding modules takes into account in particular the efficiency and the ease of decoding. Classically, we will choose a base code such that the value n - k is small. The choice of permutations (or shuffling) is preferably carried out so as to ensure a great diversity between the Boolean functions of each output. More specifically, it is ensured that, finally, the Boolean function of each redundancy output bit is composed of a most different set of information bits.

possible de ceux des autres bits de sorite de redondance.  possible from those of other redundancy output bits.

On peut par exemple chercher des matrices et des codes de base permettant  We can for example look for matrices and basic codes allowing

de recréer un code connu tel que par exemple le code de Golay (24, 12, 8).  to recreate a known code such as for example the Golay code (24, 12, 8).

L'invention concerne également le procédé et le dispositif de décodage des données produites par le procédé de codage décrit ci-dessus. ce décodage est relativement simple et peu coûteux à mettre en oeuvre. Il est avantageusement  The invention also relates to the method and device for decoding the data produced by the coding method described above. this decoding is relatively simple and inexpensive to implement. It is advantageous

itératif, ce qui le rend aisément implémentable et adaptable.  iterative, which makes it easily implementable and adaptable.

La plupart des techniques de décodage classiques peuvent être mises en oeuvre. Ainsi, on peut mettre en oeuvre un décodage exhaustif, selon lequel on considère tous les mots de code possibles et on sélectionne le meilleur selon un critère de sélection prédéterminé. On peut également utilisé un décodage de type Viterbi, mettant en oeuvre un treillis de décodage (par exemple selon les  Most conventional decoding techniques can be implemented. Thus, it is possible to implement exhaustive decoding, according to which all the possible codewords are considered and the best is selected according to a predetermined selection criterion. It is also possible to use a Viterbi type decoding, implementing a decoding trellis (for example according to

algorithmes SOVA ou BJCR).SOVA or BJCR algorithms).

Avantageusement, on met en oeuvre un décodage dont la structure est calquée sur la structure du codeur décrite précédemment. En d'autres termes, le décodeur comprend plusieurs étages de décodage comprenant chacun plusieurs  Advantageously, a decoding is implemented whose structure is modeled on the structure of the encoder described above. In other words, the decoder comprises several decoding stages each comprising several

modules de décodage, et séparés par des étages de permutation.  decoding modules, and separated by permutation stages.

Cette structure s'implante aisément sous la forme d'une machine pipeline,  This structure is easily implemented in the form of a pipeline machine,

en VLSI.in VLSI.

La figure 5B illustre un module de décodage, correspondant au module de codage illustré à la figure SA (mettant un oeuvre un codage de ReedMuller  FIG. 5B illustrates a decoding module, corresponding to the coding module illustrated in FIG. 1A (implementing a ReedMuller coding

(8,4,4).(8,4,4).

Ce module de décodage est un décodeur à entrées pondérées et à sorties pondérées, réalisé par exemple à partir de techniques connues, telle que la méthode SOVA. Il met en oeuvre des additions et des soustractions. De plus, selon  This decoding module is a weighted-input and weighted-output decoder, made for example from known techniques, such as the SOVA method. It implements additions and subtractions. In addition, according to

l'invention, il met en oeuvre des multiplications de normalisation des sorties.  the invention, it implements normalization multiplications outputs.

Cette normalisation peut notamment consister à conserver constante la somme des valeurs absolues des vraisemblances, ou la racine carrée de la somme des carrés des vraisemblances. En d'autres termes, on travaille, selon l'invention,  This normalization can consist in particular of keeping constant the sum of the absolute values of the likelihoods, or the square root of the sum of the squares of the likelihoods. In other words, we work, according to the invention,

à vraisemblance ou à énergie constante.  likelihood or constant energy.

Chaque fil (entrée ou sortie) du module de codage de la figure 5A, correspondant à un bit du codeur, est dédoublé en deux fils dans le module de décodage de la figure 5B. Ces fils permettent de communiquer, ou de propager, les valeurs de vraisemblance de l'amont vers l'aval du décodeur, ou de l'aval vers l'amont. Les calculs dans le décodeur s'effectuent suivant un séquencement particulier afin de minimiser ces derniers. On commence par introduire les valeurs reçues sur les fils d'entrée de vraisemblance des données et des bits de redondance. La valeur de vraisemblance est égale au rapport log(probabilité (bit=0)/probabilité (bit=l)), qui est, dans le cas d'un canal gaussien, proportionnelle à la valeur reçue, dans le cas d'une modulation à 2 états, (0, 1)  Each wire (input or output) of the coding module of FIG. 5A, corresponding to one bit of the coder, is split into two wires in the decoding module of FIG. 5B. These wires make it possible to communicate or propagate the likelihood values from upstream to downstream of the decoder, or from downstream to upstream. The calculations in the decoder are carried out according to a particular sequencing in order to minimize these. We first introduce the received values on the data likelihood input wires and the redundancy bits. The likelihood value is equal to the ratio log (probability (bit = 0) / probability (bit = 1)), which is, in the case of a Gaussian channel, proportional to the value received, in the case of a modulation 2-state, (0, 1)

associant (+1, -1).associating (+1, -1).

Les valeurs non définies à l'initialisation du réseau sont par défaut fixée à  Values that are not defined when the network is initialized are by default set to

une valeur prédéterminée, avantageusement zéro.  a predetermined value, advantageously zero.

En se référant à la structure du codeur de la figure 2, qui est similaire à celle du décodeur, le décodage s'effectue de la façon suivante: - on introduit les valeurs de vraisemblance reçues à traiter dans les étages de décodage d'extrémité (premier et dernier étages); - les nouvelles valeurs de vraisemblance calculées alimentent les étages voisins, et ainsi de suite jusqu'à l'étage central (si le nombre d'étages de décodage est impair) ou les étages centraux (si le nombre d'étages de décodage est pair); - ensuite, le processus suit le trajet inverse, des étages centraux vers  Referring to the structure of the encoder of FIG. 2, which is similar to that of the decoder, the decoding is carried out as follows: the received likelihood values to be processed are introduced into the end decoding stages ( first and last floors); the new calculated likelihood values feed the neighboring stages, and so on up to the central stage (if the number of decoding stages is odd) or the central stages (if the number of decoding stages is even ); - Then, the process follows the reverse path, from central stages to

les étages d'extrémité, jusqu'au premier et dernier étages.  the end stages, up to the first and last floors.

Ces étapes correspondent à une itération du traitement. Elles sont répétées soit jusqu'à un nombre d'itérations donné, soit avec un arrêt des itérations en fonction d'un critère de minimisation de la somme des valeurs absolues ou la racine carrée des carrés des différences des vraisemblances entrantes et sortantes  These steps correspond to an iteration of the processing. They are repeated either up to a given number of iterations, or with a stop of the iterations according to a criterion of minimization of the sum of the absolute values or the square root of the squares of the differences of the incoming and outgoing likelihoods

pour chaque fil, pour au moins un étage.  for each wire, for at least one floor.

On vérifie en effet que l'on tend au fur et à mesure des itérations vers une égalité entre les deux signaux de vraisemblance entrant et sortant d'un même bit  In fact, it is verified that, as iterations are progressing towards an equality between the two likelihood signals entering and leaving the same bit,

dans un module de décodage.in a decoding module.

De façon avantageuse, les étages de permutation mettent en oeuvre une étape de mixage, associant à un couple de données entrantes (x, y) un couple de données sortantes (x',y') tel que: x' =x + ( l-a)y Y'=(1-a)x + ay Il est ainsi possible, entre deux étages de décodage, d'accélérer la convergence. Préférentiellement, le coefficient de mixage a varie progressivement, au fur et à mesure des itérations, de 1 vers 1/2, afin de  Advantageously, the permutation stages implement a mixing step, associating with a pair of incoming data (x, y) a pair of outgoing data (x ', y') such that: x '= x + (the ) y Y '= (1-a) x + ay It is thus possible, between two decoding stages, to accelerate the convergence. Preferably, the mixing coefficient a varies gradually, as iterations, from 1 to 1/2, in order to

commencer avec un mixage faible et de terminer avec un mixage fort, voire total.  start with a weak mix and finish with a strong mix, even total.

Selon un mode de réalisation simplifié, on peut fixer la valeur de at à 1/2.  According to a simplified embodiment, one can set the value of at to 1/2.

On force ainsi l'égalité entre les vraisemblances amont et aval (x' = y').  This forces the equality between the upstream and downstream likelihoods (x '= y').

Un autre mode de mise en oeuvre du décodage, toujours basé sur une structure similaire à celle du codeur de la figure 2, consiste à faire effectuer aux données une propagation complète dans le sens amont du codeur (du début à la  Another embodiment of the decoding, still based on a structure similar to that of the encoder of FIG. 2, consists in having the data carry out a complete propagation in the upstream direction of the coder (from the beginning to the

fin, étage après étage), puis dans le sens aval, selon un principe du type "forward-  end, floor after floor), then in the downstream direction, according to a principle of the "forward-

backward" ("en avant-en arrière"). On ajoute alors les valeurs estimées obtenues dans chaque sens amont et aval, puis on réitère les mêmes opérations, sur ces  backward "(" forward-backward "), the estimated values obtained in each upstream and downstream direction are then added, and then the same operations are repeated on these

sommes de valeurs estimées.sums of estimated values.

Dans une autre variante de mise en oeuvre, basée sur le même principe de parcours "forward-backward" du décodeur, on prend en compte l'équation booléenne associée à chaque fil (chaque sortie d'un module de décodage). On attribue à la valeur portée par ce fil une vraisemblance a posteriori au prorata de la vraisemblance reçue et/ou au prorata de la similitude des vraisemblance a posteriori amont et aval. En d'autres termes, si le bit considéré est présent dans l'équation booléenne, on lui associe une vraisemblance tenant compte de la vraisemblance  In another implementation variant, based on the same principle of forward-backward travel of the decoder, the Boolean equation associated with each wire (each output of a decoding module) is taken into account. The value carried by this wire is assigned a posterior likelihood in proportion to the likelihood received and / or in proportion to the similarity of the upstream and downstream posterior likelihoods. In other words, if the bit considered is present in the Boolean equation, it is associated with a likelihood taking into account the likelihood

associée aux autres bits de cette équation.  associated with the other bits of this equation.

ANNEXEANNEX

[1] F.J. MacWilliams, N.J.A. Sloane, "The Theory of Error-Correcting Codes ",  [1] F.J. MacWilliams, N.J.A. Sloane, "The Theory of Error-Correcting Codes,"

North-Holland, 3rd edition, 1981.North-Holland, 3rd edition, 1981.

[2] S.B. Wicker, "Error Control Systems for Digital Communication and  [2] S.B. Wicker, "Error Control Systems for Digital Communication and

Storage", Prentice Hall, 1995.Storage ", Prentice Hall, 1995.

[3] V. Pless et al. "The Handbook of Coding Theory ", Elsevier, 1998.  [3] V. Pless et al. "The Handbook of Coding Theory", Elsevier, 1998.

[4] C.E. Shannon, "A Mathematical Theory of Communication ", Bell System  [4] C. E. Shannon, "A Mathematical Theory of Communication," Bell System

Technical Journal, pp. 379423 et 623-656, no 27, 1948.  Technical Journal, pp. 379423 and 623-656, No. 27, 1948.

[5] P. Elias, "Coding for Noisy Channels ", IRE Conv. Record, Part 4, pp.  [5] P. Elias, "Coding for Noisy Channels", IRE Conv. Record, Part 4, pp.

37-47, 1955.37-47, 1955.

[6] A.J. Viterbi, "Error bounds for convolutional codes and an asymtotically  [6] A.J. Viterbi, "Error bounds for convolutional codes and an asymtotically

optimum decoding algorithmin ", IEEE, IT13, pp. 260-269, 1967.  optimum decoding algorithm ", IEEE, IT13, pp. 260-269, 1967.

[7] G.D. Fomrney Jr.," The Viterbi algorithm ", Proceedings of the IEEE, Vol.61,  [7] G.D. Fomrney Jr., "The Viterbi algorithm", Proceedings of the IEEE, Vol.61,

pp. 268-276, Marchl969.pp. 268-276, Marchl969.

[8] R.E. Bellman, " Dynamic programming ", Princeton University Press, 1965.  [8] R. E. Bellman, "Dynamic programming", Princeton University Press, 1965.

[9] R.J. McEliece, " On the BCJR Trellis for linear block codes ", IEEE, IT  [9] R.J. McEliece, "On the BCJR Trellis for linear block codes", IEEE, IT

*Vol.42, pp. 1072-1092, July 1996.* Vol.42, pp. 1072-1092, July 1996.

[10] C. Berrou, A. Glavieux, P.Thitimajshima, " Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes ", Proceedings of the  [10] C. Berrou, A. Glavieux, P.Thitimajshima, "Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes", Proceedings of the

ICC' 93,Geneva,Switzerland,May 1993,pp.1064-1070.  ICC '93, Geneva, Switzerland, May 1993, pp.1064-1070.

[11] L.R. Bahl, J. Cocke, F. Jelinek, J. Raviv: "Optimal decoding of linear codes for minimizing symbol error rate ", IEEE, Vol. IT20, pp.284287, March 1974. [12] G. Battail, " Pondération des symboles décodés par l'algorithme de Viterbi", Annales des télécommunications, Vol. 31, no 1-2, pp. 31-38, Janvier-Février 1987. [13] J. Hagenauer, P. Robertson, L. Papke, " Iterative turbo decoding of systematic convolutional codes with the MAP and the SOVA algorithms ", in  [11] L. R. Bahl, J. Cocke, F. Jelinek, J. Raviv: "Optimal decoding of linear codes for minimizing symbol error rate", IEEE, Vol. IT20, pp.284287, March 1974. [12] G. Battail, "Weighting of symbols decoded by the Viterbi algorithm", Annals of Telecommunications, Vol. 31, No. 1-2, pp. 31-38, January-February 1987. [13] J. Hagenauer, P. Robertson, L. Papke, "Iterative turbo decoding of systematic convolutional codes with the MAP and the SOVA algorithms", in

Proc.ITG'94, 1994.Proc.ITG'94, 1994.

[14] R. Pyndiah, A. Glavieux, A.Picart, S. Jacq, "Near optimum decoding of products codes ", Proc. GLOBECOM'94, San Francisco, CA, Dec. 94, pp.  [14] R. Pyndiah, A. Glavieux, A. Picart, S. Jacq, "Near optimum decoding of products codes", Proc. GLOBECOM 94, San Francisco, CA, Dec. 94, pp.

339-343.339-343.

[15] C. Berrou, A. Glavieux, "Near Optimum Error Correcting Coding and Decoding: turbo-Codes ", IEEE, Vol. IT44, no. 10, October 1996, pp.  [15] C. Berrou, A. Glavieux, "Near Optimum Error Correcting Coding and Decoding: Turbo Codes," IEEE, Vol. IT44, no. 10, October 1996, pp.

1261-1271.1261-1271.

[16] G. Battail, " A conceptual framework for understanding turbo-codes ", International Symposium on turbo-codes, ENST-Brest, Septembre 1997, pp. -62. [17] C. Berrou, M. Jézéquel, "Frame-oriented convolutional turbo-codes ",  [16] G. Battail, "A conceptual framework for understanding turbo-codes", International Symposium on turbo-codes, ENST-Brest, September 1997, pp. -62. [17] C. Berrou, M. Jézéquel, "Frame-oriented convolutional turbo-codes",

Electronics letters, 18th July 1996, Vol.32, no. 15, pp. 1362-1364.  Electronics letters, 18th July 1996, Vol.32, no. 15, pp. 1362-1364.

[18] P. Adde, R. Pyndiah, C. Berrou, " Performance of hybrid turbo codes ",  [18] Adde P., R. Pyndiah, C. Berrou, "Performance of Hybrid Turbo Codes,"

Electronics letters, 21th November 1996, Vol.32, no. 24, pp. 2209-2210.  Electronics letters, 21th November 1996, Vol.32, no. 24, pp. 2209-2210.

[19] P. Jung, M. NaBan " Performance evaluation of turbo codes for short frame transmission systems", Electronics letters, 20th January 1994, Vol.30, no 2, pp.  [19] P. Jung, M. NaBan "Performance evaluation of turbo codes for short frame transmission systems", Electronics Letters, 20th January 1994, Vol.30, No. 2, pp.

111-113.111-113.

Claims (27)

REVENDICATIONS 1. Dispositif de codage correcteur d'erreurs, du type associant à une série de données source un bloc de données codées, destiné à être transmis vers au moins un récepteur, caractérisé en ce qu'il comprend: - au moins deux étages de codage comprenant chacun au moins deux modules de codage de base, chacun desdits étages de codage recevant une série de données à traiter, réparties entre lesdits modules de codage de base, et délivrant une série de données traitées, issues desdits modules de codage de base; et au moins un étage de brassage, ledit étage de brassage étant inséré entre deux étages de codage successifs, un premier étage de codage et un second étage de codage, et répartissant les données traitées issues de chaque module de codage de base dudit premier étage de codage entre au moins deux modules de codage de base dudit  An error correction coding device, of the type associating a block of coded data with a series of source data, intended to be transmitted to at least one receiver, characterized in that it comprises: at least two coding stages each comprising at least two basic coding modules, each of said coding stages receiving a series of data to be processed, distributed between said basic coding modules, and delivering a series of processed data, originating from said basic coding modules; and at least one brewing stage, said brewing stage being inserted between two successive coding stages, a first coding stage and a second coding stage, and distributing the processed data from each base coding module of said first stage of coding. coding between at least two basic coding modules of said second étage.second floor. 2. Dispositif de codage selon la revendication 1, caractérisé en ce que ledit bloc de données codées à transmettre comprend au moins certaines desdites données source et au moins certaines des données traitées issues du dernier étage  2. Encoding device according to claim 1, characterized in that said coded data block to be transmitted comprises at least some of said source data and at least some of the processed data from the last stage. de codage.coding. 3. Dispositif de codage selon la revendication 2, caractérisé en ce que ledit bloc de données codées à transmettre comprend l'ensemble desdites données source.  3. Encoding device according to claim 2, characterized in that said block of coded data to be transmitted comprises all of said source data. 4. Dispositif de codage selon l'une quelconque des revendications 1 à 3,  4. Encoding device according to any one of claims 1 to 3, caractérisé en ce ledit bloc de données codées comprend des données traitées  characterized in that said coded data block comprises processed data issues d'au moins deux étages de codage.  from at least two coding stages. 5. Dispositif de codage selon l'une quelconque des revendications 1 à 4,  Coding device according to one of Claims 1 to 4, caractérisé en ce qu'au moins un desdits étages de brassage comprend au moins  characterized in that at least one of said brewing stages comprises at least une matrice de permutation.a permutation matrix. 6. Dispositif de codage selon l'une quelconque des revendications 1 à 5,  Coding device according to one of Claims 1 to 5, caractérisé en ce qu'au moins un desdits étages de brassage distribue des données  characterized in that at least one of said brewing stages distributes data traitées vers au moins deux étages de codage distincts.  processed to at least two distinct coding stages. 7. Dispositif de codage selon l'une quelconque des revendications 1 à 6,  Coding device according to one of Claims 1 to 6, caractérisé en ce qu'au moins une desdites données source et/ou au moins une desdites données traitées est dupliquée au moins une fois, de façon à former au  characterized in that at least one of said source data and / or at least one of said processed data is duplicated at least once, so as to form at least one moins deux données à traiter.minus two data to process. 8. Dispositif de codage selon l'une quelconque des revendications 1 à 7,  Coding device according to one of Claims 1 to 7, caractérisé en ce qu'au moins une desdites données source alimente directement un  characterized in that at least one of said source data feeds directly a autre étage de codage que le premier étage codage.  other coding stage than the first stage coding. 9. Dispositif de codage selon l'une quelconque des revendications 1 à 8,  Coding device according to one of Claims 1 to 8, caractérisé en ce qu'il comprend au moins deux unités de codage comprenant chacun au moins deux desdits étages de codage et au moins un étage de brassage inséré entre deux étages de codage successifs, et en ce que lesdites données source alimentent chacune desdites unités de codage,  characterized in that it comprises at least two coding units each comprising at least two of said coding stages and at least one mixing stage inserted between two successive coding stages, and in that said source data feed each of said coding units , dans des ordres d'alimentation différents.  in different feeding orders. 10. Dispositif de codage selon la revendication 9, caractérisé en ce qu'il comprend au moins une unité de brassage, assurant une modification de l'ordre  10. Encoding device according to claim 9, characterized in that it comprises at least one mixing unit, ensuring a modification of the order d'alimentation desdites données source dans l'une desdites unités de codage.  supplying said source data in one of said coding units. 11. Dispositif de codage selon l'une quelconque des revendications 1 à 10,  Coding device according to one of Claims 1 to 10, caractérisé en ce qu'il comprend des moyens de poinçonnage, mis en oeuvre sur au moins certaines desdites données à traiter et/ou sur au moins certaines desdites traitées.  characterized in that it comprises punching means, implemented on at least some of said data to be processed and / or on at least some of said processed. 12. Dispositif de codage selon l'une quelconque des revendications 1 à 11,  Coding device according to one of Claims 1 to 11, caractérisé en ce que lesdits modules de codage mettent en oeuvre un code de  characterized in that said coding modules implement a code of redondance de longueur n-k inférieure ou égale à 12.  redundancy of length n-k less than or equal to 12. 13. Dispositif de codage selon l'une quelconque des revendications 1 à 12,  Coding device according to any one of claims 1 to 12, caractérisé en ce que tous lesdits modules de codage sont identiques.  characterized in that all said coding modules are identical. 14. Dispositif de codage selon la revendication 13, caractérisé en ce que lesdits  Coding device according to claim 13, characterized in that said modules de codage mettent en oeuvre un code de Reed-Muller.  Coding modules implement a Reed-Muller code. 15. Dispositif de codage selon l'une quelconque des revendications 1 à 12,  Coding device according to one of Claims 1 to 12, caractérisé en ce qu'au moins deux desdits modules de codage sont différents.  characterized in that at least two of said coding modules are different. 16. Dispositif de codage selon l'une quelconque des revendications 1 à 15,  Coding device according to any one of claims 1 to 15, caractérisé en ce qu'il comprend des moyens de contrôle et/ou de réglage d'au moins un des éléments suivants: - type et/ou caractéristique du codage mis en oeuvre par au moins un des modules de codage de base; brassage mis en oeuvre par au moins un desdits étages de brassage; poinçonnage mis en oeuvre sur au moins certaines desdites données à traiter et/ou au moins certaines desdites données traitées;  characterized in that it comprises means for controlling and / or adjusting at least one of the following elements: - type and / or characteristic of the coding implemented by at least one of the basic coding modules; brewing implemented by at least one of said brewing stages; punching implemented on at least some of said data to be processed and / or at least some of said processed data; - nombre d'étages de codage.- number of coding stages. 17. Dispositif de codage selon la revendication 16, caractérisé en ce que ledit contrôle et/ou ledit réglage agissant systématiquement, sur une période donnée, et/ou en fonction d'au moins une information représentative d'au moins un des aspects appartenant au groupe comprenant: - au moins une caractéristique du canal de transmission; - au moins une caractéristique du récepteur;  Coding device according to claim 16, characterized in that said control and / or said setting systematically acts, over a given period, and / or according to at least one piece of information representative of at least one of the aspects belonging to the group comprising: - at least one characteristic of the transmission channel; at least one characteristic of the receiver; - au moins une caractéristique du signal source.  at least one characteristic of the source signal. 18. Procédé de codage correcteur d'erreurs, du type associant à une série de données source un bloc de données codées, destiné à être transmis vers au moins un récepteur, caractérisé en ce qu'il comprend: - au moins deux étapes de codage mettant en oeuvre chacune au moins deux codages de base, chacune desdits étapes de codage recevant une série de données à traiter, réparties entre lesdits codages de base, et délivrant une série de données traitées, correspondant auxdits codage de base; - et au moins une étape de brassage, ladite étage de brassage étant insérée entre deux étapes de codage successives, une première étape de codage et une seconde étape de codage, et répartissant les données traitées correspondant à chaque codage de base de ladite première étape de codage entre au moins deux codages de base de  18. A method for error correction coding, of the type associating a block of coded data with a series of source data, intended to be transmitted to at least one receiver, characterized in that it comprises: at least two coding steps each implementing at least two basic encodings, each of said coding steps receiving a series of data to be processed, distributed between said basic encodings, and delivering a series of processed data, corresponding to said basic coding; and at least one stirring step, said stirring stage being inserted between two successive coding steps, a first coding step and a second coding step, and distributing the processed data corresponding to each basic coding of said first step of coding. encoding between at least two basic encodings of ladite seconde étape.said second step. 19. Procédé de décodage d'un bloc de données codées par un dispositif de  19. A method of decoding a coded data block by a device codage selon l'une quelconque des revendications 1 à 17.  coding according to any one of claims 1 to 17. 20. Procédé de décodage selon la revendication 19, caractérisé en ce qu'il est itératif.  20. Decoding method according to claim 19, characterized in that it is iterative. 21. Procédé de décodage selon l'une quelconque des revendications 19 et 20,  21. Decoding method according to any one of claims 19 and 20, caractérisé en ce qu'il met en oeuvre au moins une des techniques appartenant au groupe comprenant: - décodage à l'aide d'une structure symétrique de celle mise en oeuvre lors du codage; - décodage exhaustif, selon lequel on considère tous les mots de code possibles et on sélectionne le meilleur selon un critère de sélection prédéterminé;  characterized in that it implements at least one of the techniques belonging to the group comprising: decoding using a structure symmetrical to that implemented during coding; exhaustive decoding, according to which all the possible codewords are considered and the best is selected according to a predetermined selection criterion; - décodage de type Viterbi, mettant en oeuvre un treillis de décodage.  Viterbi-type decoding, implementing a decoding trellis. 2 2. Dispositif de décodage d'un bloc de données, mettant en oeuvre le procédé  2. Device for decoding a data block, implementing the method de décodage selon l'une quelconque des revendications 19 à 21.  decoding device according to any one of claims 19 to 21. 23. Dispositif de décodage selon la revendication 22, caractérisé en ce qu'il met en oeuvre au moins deux étages de décodage, comprenant au moins deux modules de décodage, et au moins un étage de permutation inséré entre deux étages de décodage consécutifs, lesdits étages étant symétriques à ceux du codage correspondant, et en ce que chacun desdits modules de décodage comprend deux fois plus d'entrées et de sorties que le module de codage correspondant, de façon à assurer la propagation de valeurs de vraisemblance d'une part de l'amont vers l'aval dudit  23. Decoding device according to claim 22, characterized in that it implements at least two decoding stages, comprising at least two decoding modules, and at least one permutation stage inserted between two consecutive decoding stages, said stages being symmetrical to those of the corresponding coding, and in that each of said decoding modules comprises twice as many inputs and outputs as the corresponding coding module, so as to ensure the propagation of likelihood values on the one hand the upstream downstream of the said dispositif, et d'autre part de l'aval vers l'amont dudit dispositif.  device, and secondly from the downstream upstream of said device. 24. Dispositif de décodage selon la revendication 23, caractérisé en ce que, dans au moins un desdits étages de décodage, on met en oeuvre une étape de  24. The decoding device as claimed in claim 23, characterized in that, in at least one of said decoding stages, a step of normalisation, de façon à conserver constante la vraisemblance ou l'énergie.  normalization, so as to keep the likelihood or the energy constant. 25. Dispositif de décodage selon la revendication 24, caractérisé en ce que ladite étape de normalisation maintient constante la somme des valeurs absolues desdites valeurs de vraisemblance ou la racine carrée de la somme des carrés  25. Decoding device according to claim 24, characterized in that said normalization step keeps constant the sum of the absolute values of said likelihood values or the square root of the sum of the squares. desdites valeurs de vraisemblance.said likelihood values. 26. Dispositif de décodage selon l'une quelconque des revendications 23 à 25,  26. Decoding device according to any one of claims 23 to 25, caractérisé en ce que, dans au moins un desdits étages de permutation, on met en oeuvre une étape de mixage, associant à un couple (x, y) de valeurs de vraisemblance, venant respectivement de l'amont et de l'aval dudit dispositif, un couple (x', y') de valeurs de vraisemblance telles que: x' = ctx + (1- co)y {' = (1 - a)x + ay  characterized in that, in at least one of said permutation stages, a mixing step is implemented, associating a pair (x, y) of likelihood values, coming respectively from the upstream and the downstream of said device. , a pair (x ', y') of likelihood values such that: x '= ctx + (1- co) y {' = (1 - a) x + ay ac étant un réel compris entre 1 et 1/2.  ac being a real between 1 and 1/2. 27. Dispositif de décodage selon la revendication 26, caractérisé en ce que a  27. Decoding device according to claim 26, characterized in that varie progressivement de 1 vers 1/2, au fur à mesure desdites itérations.  varies gradually from 1 to 1/2, as said iterations. 2 8. Dispositif de décodage selon la revendication 26, caractérisé en ce que a  The decoding device according to claim 26, characterized in that vaut 1/2.worth 1/2. 2 9. Dispositif de décodage selon l'une quelconque des revendications 23 à 28,  The decoding device according to any one of claims 23 to 28, caractérisé en ce qu'il met en oeuvre au moins une itération des opérations suivantes: - propagation complète dans le sens amont dudit dispositif desdites valeurs de vraisemblance, délivrant un premier jeu de valeurs estimées; - propagation complète dans le sens aval dudit dispositif desdites valeurs de vraisemblance, délivrant un second jeu de valeurs estimées. 30. Dispositif de décodage selon la revendication 29, caractérisé en ce qu'il effectue la sommation des valeurs estimées de chacun desdits jeux de valeurs  characterized in that it implements at least one iteration of the following operations: complete propagation in the upstream direction of said device of said likelihood values, delivering a first set of estimated values; complete propagation in the downstream direction of said device of said likelihood values, delivering a second set of estimated values. 30. Decoding device according to claim 29, characterized in that it performs the summation of the estimated values of each of said sets of values. estimées, l'itération suivante étant effectuée sur les résultats de ladite sommation.  estimated, the next iteration being performed on the results of said summation. 31. Dispositif de décodage selon la revendication 29, caractérisé en ce qu'il tient compte, pour chaque sortie d'un desdits modules de décodage, d'une fonction booléenne impliquant au moins deux entrées dudit module de codage correspondant, et en ce qu'une contrainte de décodage impose qu'une sortie aval d'un étage de décodage donné soit égal à la sortie amont correspondante de l'étage de décodage suivant.  31. The decoding device as claimed in claim 29, characterized in that it takes into account, for each output of one of said decoding modules, a Boolean function involving at least two inputs of said corresponding coding module, and in that a decoding constraint imposes that a downstream output of a given decoding stage is equal to the corresponding upstream output of the next decoding stage.
FR9810316A 1998-07-31 1998-08-07 Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing Withdrawn FR2782424A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR9810316A FR2782424A1 (en) 1998-07-31 1998-08-07 Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing
FR9816788A FR2782425B1 (en) 1998-07-31 1998-12-31 ERROR CORRECTING CODING METHOD AND DEVICE AND CORRESPONDING DECODING METHOD AND DEVICE
DE69914767T DE69914767T2 (en) 1998-07-31 1999-08-02 METHOD AND DEVICE FOR ERROR CORRECTION CODING AND DECODING
PCT/FR1999/001912 WO2000008766A1 (en) 1998-07-31 1999-08-02 Method and device for error correction coding and corresponding decoding method and device
EP99936670A EP1101288B1 (en) 1998-07-31 1999-08-02 Method and device for error correction coding and corresponding decoding method and device
US09/744,849 US6745362B1 (en) 1998-07-31 1999-08-02 Method and device for error correction coding and corresponding decoding method and device
AU51684/99A AU5168499A (en) 1998-07-31 1999-08-02 Method and device for error correction coding and corresponding decoding method and device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9810089A FR2782423A1 (en) 1998-07-31 1998-07-31 Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing
FR9810316A FR2782424A1 (en) 1998-07-31 1998-08-07 Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing

Publications (1)

Publication Number Publication Date
FR2782424A1 true FR2782424A1 (en) 2000-02-18

Family

ID=26234483

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9810316A Withdrawn FR2782424A1 (en) 1998-07-31 1998-08-07 Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing

Country Status (1)

Country Link
FR (1) FR2782424A1 (en)

Similar Documents

Publication Publication Date Title
EP1101288B1 (en) Method and device for error correction coding and corresponding decoding method and device
US20020174401A1 (en) Area efficient parallel turbo decoding
EP2478680B1 (en) Method for transmitting a digital signal for a marc system with a full-duplex relay, and corresponding program product and relay device
US6360345B1 (en) Decoding method of turbo codes using a weighted parallel type and device for the same
EP1362447A1 (en) Method and system for the iterative encoding-decoding of streams of digital data encoded by spatio-temporal combinations, in multiple transmission and reception
FR2815199A1 (en) Cyclic turbo coding scheme improves minimum Hamming distance
EP0891656A1 (en) Data block convolutional coding device and method, and corresponding decoding method and device
FR2804260A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
EP1230736B1 (en) Method for decoding data coded with an entropic code, corresponding decoding device and transmission system
JP3674851B2 (en) Scaling feedback turbo decoder
EP1128589B1 (en) Interruption criterion for a turbo decoder
FR2912574A1 (en) METHOD FOR DECODING MESSAGE PASSAGE AND FORCED CONVERGENCE.
FR2807895A1 (en) Methods and devices for coding and decoding and systems implementing them, for use in protected wireless communications
FR2802735A1 (en) Coding/decoding digital word mechanism having padding providing polynomial division with interspersion sequence/second padding operation and recursive coding operation output
WO2011033239A1 (en) Method for transmitting a digital signal for a marc system with a half-duplex relay, and corresponding program product and relay device
FR2838581A1 (en) Method for coding and/or decoding of the error-correction codes, corresponding devices and signal representative of coded data block
FR2805418A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
EP3311495B1 (en) Interleaver design for turbo codes in dependence on the puncturing pattern
FR2782424A1 (en) Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing
FR2806177A1 (en) DIGITAL CORRECTIVE ERROR-TYPE CODING TRANSMITTING METHOD
FR2782423A1 (en) Error correction coding procedure for data transmission includes combined transmission of source and processed data following several stages of processing
FR2972878A1 (en) ERROR CORRECTING ENCODING METHOD, DECODING METHOD AND ASSOCIATED DEVICES
EP1094612B1 (en) SOVA Turbo decoder with decreased normalisation complexity
Zhu et al. Window decoding of braided convolutional codes
Knickenberg et al. Non-iterative joint channel equalisation and channel decoding

Legal Events

Date Code Title Description
ST Notification of lapse