[go: up one dir, main page]

WO2015079168A1 - Data packet encoding by means of convolutional codes and deleted packet recovery - Google Patents

Data packet encoding by means of convolutional codes and deleted packet recovery Download PDF

Info

Publication number
WO2015079168A1
WO2015079168A1 PCT/FR2014/053051 FR2014053051W WO2015079168A1 WO 2015079168 A1 WO2015079168 A1 WO 2015079168A1 FR 2014053051 W FR2014053051 W FR 2014053051W WO 2015079168 A1 WO2015079168 A1 WO 2015079168A1
Authority
WO
WIPO (PCT)
Prior art keywords
packets
packet
erased
polynomial
coded
Prior art date
Application number
PCT/FR2014/053051
Other languages
French (fr)
Inventor
Patrick Tortelier
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Publication of WO2015079168A1 publication Critical patent/WO2015079168A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes

Definitions

  • the invention more particularly relates to a method and a device for coding digital data packets, and a method and a device for correcting any erasures affecting coded packets following their transmission in a channel.
  • Another object of the invention is to be able to recover erased coded packets without first having to decode any coded packet.
  • G 1 is a first generator polynomial different from 1, and of degree K lt G is the coefficient of the power term ⁇ of said first generator polynomial G lt and the input packets of index less than 1 or greater than N are identically zero,
  • bits bits
  • elements of an extension body GF 2 m with m greater than or equal to 2.
  • the coding method according to the invention in no way imposes the use of systematic coding, and therefore does not require the transmission of clear-text input packets in the channel when the context does not lend itself to it.
  • each packet to be processed being a non-erased packet or a null packet representative of an erased packet
  • G 2 (D) G 2J Di different from 1, and where the packets A m and B m are identically zero for m ⁇ 1 or m> N + K,
  • the erasure correction method comprises a step of recovering erased coded packets, which can be implemented independently of the decoding of the received data. In fact, no input packet has to be generated to reconstruct any coded packet that has been erased as a result of its transmission in the channel.
  • the erasure correction method according to the second aspect also operates without any particular algorithmic constraint on the number of coded packets received. It therefore allows great flexibility on the number N of collectively encoded input packets.
  • the coding method according to the first aspect and the method of erasure correction according to the second aspect are very flexible in that they can adapt to a large number of different implementation contexts.
  • a device for encoding digital data packets comprising: a memory module adapted to memorize N input packets (P 1; ..., P N ), and
  • G 1 is a first generator polynomial different from 1, and of degree K lt G is the coefficient of the power term ⁇ of said first generator polynomial G lt and input packets of index less than 1 or greater than N are zero ,
  • G 2 is a second generator polynomial different from 1, and of degree K 2 , G 2 is the coefficient of the power term; said second generator polynomial G 2 , and the input packets of index less than 1 or greater than N are zero,
  • a digital data transmission system comprising at least one transmitting node and at least one receiving node mutually connected by a channel subject to packet erasures, said transmitting node comprising a coding device according to the third aspect, and said receiving node comprising an erasure correction device according to the fourth aspect.
  • FIG. 1 schematically represents a transmission system according to the invention
  • FIG. 4 is a flowchart comprising the steps of a packet coding method according to one embodiment of the invention.
  • the reconstruction unit 244 is furthermore configured to write access to the memory units 22 and 23.
  • the "erase information" thus makes it possible to identify all the packets erased as a result of their passage in the T-channel. Reception, recovery of erased coded packets, and decoding
  • the reception module 21 of the receiving node 2 receives data from the channel T during a step 201.
  • a step 2042 the value of each of the (N + 2K) indexes is examined.
  • the group of undeleted coded packets involved in the parity equation associated with the index n comprises a first set comprising at least a first coded packet Ai delayed or not with respect to the packet An and a second set comprising at least a second coded packet Bi delayed (s) or not with respect to the packet Bn.
  • Said first set of coded packets is associated with the second generator polynomial G 2
  • said second set of coded packets is associated with the first generator polynomial
  • the process of recovering erased packets operates on the Tanner graph introduced above.
  • the index of a parity equation is introduced as being equal to the number of deleted packets involved in this parity equation.
  • the interesting case is of course that of an index parity equation equal to 1 because the erased packet is then computable as the sum (XOR) of the other (undeleted) packets that are involved in this parity equation.
  • the recovery of erased packets can be implemented in two phases: an initialization phase, and a loopback phase, which will now be detailed in the non-limiting case where the XOR operator is chosen to generate the first coded packets and the second convolutionally encoded packets.
  • erasure information we mean that all transmitted packets are numbered (or have an identifier), which allows to know which packets have been lost or erased (their number is missing at the reception level). ).
  • Each first packet of the first set of coded packets involved in this parity equation is multiplied by a non-zero coefficient of the second generator polynomial G 2
  • each second packet of the second set of coded packets involved in this parity equation is multiplied by one. non-zero coefficient of the first generator polynomial G 1 .
  • the iterative phase comprises a succession of iterations, each iteration being performed after verification of a loopback condition 2042 evaluating whether there remain erased packets that can be reconstructed.
  • the packet coding and the corresponding erase correction described above can be used for many applications, such as:

Landscapes

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

Abstract

The invention relates to a method for encoding digital data packets. Said method includes, for N input packets, generating (N+K-1) first encoded packets and (N+K2) second encoded packets, the first encoded packets being obtained by a first convolution associated with a first generating polynomial G1 other than 1, and of degree K-1, and the second encoded packets being obtained by a second convolution associated with a second generating polynomial G2 other than 1, and of degree K2, said generating polynomials being mutually prime. The invention also relates to a method for correcting deletions, including a first phase of recovering deleted encoded packets, and a second phase of decoding non-deleted or recovered encoded packets.

Description

CODAGE DE PAQUETS DE DONNÉES PAR CODES CONVOLUTIFS ET RECOUVREMENT DE PAQUETS EFFACÉS  CODING OF DATA PACKETS BY CONVOLUTIVE CODES AND RECOVERY OF ERASED PACKETS
DOMAINE GENERAL GENERAL AREA
L'invention se rapporte au domaine des codes correcteurs d'effacements.  The invention relates to the field of erase correcting codes.
L'invention concerne plus particulièrement un procédé et un dispositif de codage de paquets de données numériques, ainsi qu'un procédé et un dispositif de correction des éventuels effacements affectant les paquets codés suite à leur transmission dans un canal.  The invention more particularly relates to a method and a device for coding digital data packets, and a method and a device for correcting any erasures affecting coded packets following their transmission in a channel.
ETAT DE L'ART STATE OF THE ART
On connaît de l'état de l'art de nombreux procédés de transmission de données numériques identiques vers un nombre important de récepteurs dans un canal sujet à des pertes ou des « effacements » de paquets. Dans le cas d'une diffusion de type « broadcast » ou « multicast » sur Internet, des pertes de paquets sont souvent causées par des congestions au niveau de routeurs. Dans le cas d'une diffusion de type « broadcast » ou « multicast » sur canaux radio (MBMS, eMBMS), des pertes de paquets peuvent être dues à une mauvaise qualité de certains liens radio, provoquant des erreurs de transmission que le schéma de codage correcteur de couche physique ne peut corriger : les données correspondantes sont alors marquées comme effacées. Dans les deux cas, les différentes routes de transmission entre un émetteur et plusieurs destinataires présentent des qualités de lien différentes et subissent des pertes de paquets différentes après émission de données par l'émetteur.  Numerous methods of transmitting identical digital data to a large number of receivers in a channel subject to losses or "erasure" of packets are known from the state of the art. In the case of "broadcast" or "multicast" broadcast over the Internet, packet losses are often caused by congestions at routers. In the case of broadcast or multicast broadcasting on radio channels (MBMS, eMBMS), packet losses may be due to poor quality of some radio links, causing transmission errors that Physical layer corrector coding can not correct: the corresponding data is then marked as erased. In both cases, the different transmission routes between one transmitter and several recipients have different link qualities and suffer different packet losses after data transmission by the transmitter.
Un schéma classique de retransmission des données non reçues, réalisée destinataire par destinataire, serait peu efficace car impliquerait d'une part autant de voies de retour dans le canal qu'il y a de récepteurs, et d'autre part la retransmission des mêmes paquets à différents utilisateurs, provoquant un sur-débit conséquent dans le canal, et des délais de transmissions rallongés. A conventional scheme for retransmission of non-received data, made recipient by recipient, would be inefficient because it would imply on the one hand as many return channels in the channel as there are receivers, and on the other hand the retransmission of the same packets to different users, causing significant overflow in the channel, and longer transmission delays.
Afin d'éviter la mise en place de telles voies de retour, il a été proposé d'introduire de la redondance dans les données transmises de sorte que tout utilisateur puisse reconstituer les paquets qu'ils n'a pas reçus grâce à ceux qu'il a reçus, sans voie de retour ni retransmission.  In order to avoid the introduction of such return channels, it has been proposed to introduce redundancy in the transmitted data so that any user can reconstruct the packets they did not receive thanks to those that he received, without return way or retransmission.
Cette introduction de redondance est typiquement mise en œuvre au moyen d'un code correcteur d'effacements.  This introduction of redundancy is typically implemented by means of an erasure correction code.
Des codes correcteurs pour corriger des effacements sont connus depuis longtemps, par exemple les codes de « Reed-Solomon », qui présentent cependant des contraintes : en effet, ces codes ont des longueurs peu flexibles, de la forme n = 2m - 1, m≥ 2 , et font intervenir une arithmétique dans des corps d'extension GF(2m ) , arithmétique qui devient difficile à mettre en œuvre (du moins sous forme logicielle) pour des valeurs de m dépassant 10, c'est-à-dire des longueurs de code « > 1023 . Correction codes for correcting erasures have been known for a long time, for example the "Reed-Solomon" codes, which nevertheless have constraints: indeed, these codes have lengths that are not very flexible, of the form n = 2 m -1, m≥ 2, and involve an arithmetic in GF extension bodies (2 m ), arithmetic which becomes difficult to implement (at least in software form) for values of m exceeding 10, that is to say say code lengths "> 1023.
Pour éviter les contraintes des codes de Reed-Solomon, il a été proposé une classe de procédés de codage de paquets (dénommés « procédés selon Arai » ci-après) fondés sur des codes convolutifs opérant sur des paquets de données numériques (cf. M. Arai, A. Yamamoto, A. Yamaguchi, S. Fukumoto et K. Iwasak, « Analysis of using convolutional codes to recover packet losses over burst erasure channels », actes du « 2001 Pacific Rim international symposium on dependable Computing (PRDC '01 ) », pages 258 à 265, et M. Arai, S. Fukumoto et K. Iwasaki, « Extension of coefficients for (n,k,m) convolutional-code-based packet loss recovery », Computers and Mathematics with Applications, vol. 51 , 2006, pages 247 à 256).  To avoid the constraints of Reed-Solomon codes, a class of packet coding methods (hereinafter referred to as "Arai-based methods") has been proposed based on convolutional codes operating on digital data packets (cf. Arai, A. Yamamoto, A. Yamaguchi, S. Fukumoto, and K. Iwasak, "Proceedings of the 2001 Pacific Rim International Symposium on Dependable Computing (PRDC '01). ) ", Pages 258-265, and M. Arai, S. Fukumoto and K. Iwasaki," Expanding coefficients for (n, k, m) convolutional-code-based packet loss recovery, "Computers and Mathematics with Applications, vol. 51, 2006, pp. 247-256).
Dans les procédés selon Arai, on transmet des données sous la forme de groupes de n paquets, chaque groupe \ ( = 1 ' ^ ,2 ' ' ' ' ' ^i.n ) contenant, d'une part, k paquets d'information (on a donc un codage systématique), et d'autre part (n-k) paquets redondants, ce qui est écrit sous la forme In the methods according to Arai, data is transmitted in the form of groups of n packets, each group \ (= 1 ', 2''''' ^ in) containing, on the one hand, k packets of information (so we have a systematic coding), and secondly (nk) redundant packets, which is written in the form
Vi = (Ui î Pi ) = l > ui,2 » · · · » ; » Pi,2 » · · · » Pi -* ). où les Uf sont les paquets d'information et les Pi sont des paquets redondants, obtenus de la manière suivante : V i = ( U i P i) = l> u i, 2 " · · · " ; "Pi 2" · · · "Pi - *). where the Uf's are the information packets and the Pi's are redundant packets, obtained in the following way:
Pi = !ΐ Ηί + * 2 N-l,l + · " + #1+1,1 M*-m,l + Pi =! Ϊ́ Η ί + * 2 Nl, l + · " + # 1 + 1,1 M * -m, l +
S 2 ui, + 82,2 ui- 2 + - + #1+1,2 M/-m,2 +
Figure imgf000005_0001
S 2 u i, + 82.2 u i- 2 + - + # 1 + 1.2 M / -m, 2 +
Figure imgf000005_0001
Cette forme fait apparaître les composantes des vecteurs U, (première colonne), Uj-i (deuxième colonne), et ainsi de suite jusqu'à Ui-m. Si on écrit ces équations pour j=1 , 2, n-k, l'équation ci-dessus prend la forme matricielle suivante This form shows the components of the vectors U, (first column), Uj-i (second column), and so on until Ui -m . If we write these equations for j = 1, 2, nk, the above equation takes the following matrix form
P. = G ) U. + G(2) U. , + - - - + G(m+1) U. P. = G ) U. + G (2) U., + - - - + G (m + 1) U.
où les G(t) sont des matrices binaires de dimensions (n-k) par k. where G (t) are binary matrices of dimensions (nk) by k.
Cependant, ces procédés selon Arai présentent plusieurs inconvénients.  However, these methods according to Arai have several disadvantages.
Un premier inconvénient est qu'il requiert que les effacements se présentent sous forme d'une salve regroupée devant être impérativement précédée et suivie de ce que les auteurs appellent un intervalle de garde (« guard space » en anglais), c'est-à-dire une succession de paquets n'ayant subi aucun effacement sur une longueur supérieure à la mémoire m du codeur. Cette contrainte sur l'intervalle de garde est rendue nécessaire notamment par l'utilisation de matrices génératrices dimensionnées pour corriger des salves de longueur prédéterminée.  A first disadvantage is that it requires the erasures to be in the form of a grouped salvo that must imperatively be preceded and followed by what the authors call a guard space ("guard space" in English), ie say a succession of packets that have not been erased over a length greater than the memory m of the encoder. This constraint on the guard interval is made necessary in particular by the use of generator generatrices sized to correct bursts of predetermined length.
Par ailleurs, dans ces procédés selon Arai, la récupération des paquets effacés se fait par la résolution d'un système linéaire d'équations dont les inconnues sont les paquets effacés. Une telle résolution est toutefois complexe à mettre en œuvre. Moreover, in these processes according to Arai, the recovery of the erased packets is done by solving a linear system of equations whose unknowns are the erased packets. Such a resolution is, however, complex to implement.
Enfin, ces procédés selon Arai mettent en œuvre un codage systématique, ce qui présente l'avantage d'obtenir directement (c'est-à- dire, sans opération de décodage) les paquets d'information suite au recouvrement des paquets effacés. Mais comme le codage systématique consiste par définition à transmettre dans le canal des paquets d'entrée en clair, les procédés selon Arai présentent l'inconvénient d'être inadaptés à la transmission d'informations confidentielles.  Finally, these methods according to Arai implement a systematic coding, which has the advantage of obtaining directly (that is to say, without decoding operation) the information packets following the recovery of the erased packets. But as the systematic coding is by definition to transmit clear input packets in the channel, the methods according to Arai have the disadvantage of being unsuited to the transmission of confidential information.
PRESENTATION DE L'INVENTION PRESENTATION OF THE INVENTION
Un but de l'invention est de mettre en œuvre un codage de paquets et une correction d'effacements dans un canal sujet à des pertes ou effacements de paquets, qui soient chacun simples à mettre en œuvre.  An object of the invention is to implement packet coding and erase correction in a channel subject to packet loss or erasure, each of which is simple to implement.
Un autre but de l'invention est de pouvoir recouvrer des paquets codés effacés sans avoir à décoder au préalable un quelconque paquet codé.  Another object of the invention is to be able to recover erased coded packets without first having to decode any coded packet.
Selon un premier aspect, il est donc proposé un procédé de codage de paquets de données numériques, comprenant les étapes suivantes :  According to a first aspect, it is therefore proposed a method of encoding digital data packets, comprising the following steps:
- la mémorisation de N paquets d'entrée (P1; ... , PN), storing N input packets (P 1; ..., P N ),
- la production de (N + premiers paquets codés (A^ ... , AN+K définis, pour = 1, ... , N + K , par
Figure imgf000006_0001
Gij m—i >
the production of (N + first coded packets (A ^ ..., A N + K defined, for = 1, ..., N + K, by
Figure imgf000006_0001
Gij m-i>
où G1 est un premier polynôme générateur différent de 1 , et de degré Kl t G est le coefficient du terme de puissance ί dudit premier polynôme générateur Gl t et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont identiquement nuls, where G 1 is a first generator polynomial different from 1, and of degree K lt G is the coefficient of the power term ί of said first generator polynomial G lt and the input packets of index less than 1 or greater than N are identically zero,
- la production de (N + K2) premiers paquets codés [B1} ... , BN+K2 ) définis, pour n = 1, ... , N + K2 , par - the production of (N + K 2) first packets encoded [B 1} ..., B N + K2) defined, for n = 1, ..., N + K 2, by
BN
Figure imgf000006_0002
G2iiPn-j , où G2 est un second polynôme générateur différent de 1 , et de degré K2, G2 est le coefficient du terme de puissance ; dudit second polynôme générateur G2 , et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont identiquement nuls,
B N
Figure imgf000006_0002
G 2i iP n -j, where G 2 is a second generator polynomial different from 1, and of degree K 2 , G 2 is the coefficient of the power term; said second generator polynomial G 2 , and the input packets of index less than 1 or greater than N are identically zero,
et où les polynômes générateurs Gi et G2 sont premiers entre eux. and where the generating polynomials G i and G 2 are prime between them.
Il est entendu que les étapes dudit procédé de codage ne se déroulent pas nécessairement dans l'ordre dans lequel elles sont présentées ci-dessus.  It is understood that the steps of said coding method do not necessarily take place in the order in which they are presented above.
On notera que la présente invention n'impose aucune contrainte sur la nature des données numériques composant les paquets. Il peut s'agir par exemple d'éléments binaires (« bits »), ou d'éléments d'un corps d'extension GF 2m), avec m supérieur ou égal à 2. It should be noted that the present invention does not impose any constraints on the nature of the digital data composing the packets. It may be, for example, bits ("bits"), or elements of an extension body GF 2 m ), with m greater than or equal to 2.
On notera également que, contrairement aux procédés selon Arai, le procédé de codage selon l'invention n'impose nullement le recours à un codage systématique, et n'impose donc pas de transmettre dans le canal des paquets d'entrée en clair lorsque le contexte ne s'y prête pas.  It will also be noted that, contrary to the methods according to Arai, the coding method according to the invention in no way imposes the use of systematic coding, and therefore does not require the transmission of clear-text input packets in the channel when the context does not lend itself to it.
Comme expliqué en détail ci-dessous, le fait que les deux polynômes générateurs G1 et G2 servant au codage soient premiers entre eux permet de décoder très simplement les paquets codés (suite au recouvrement des paquets codés effacés). As explained in detail below, the fact that the two generator polynomials G 1 and G 2 used for coding are prime between them makes it possible to very simply decode the coded packets (following the recovery of the erased coded packets).
Selon un deuxième aspect, il est également proposé un procédé de correction d'effacements, ledit procédé comprenant les étapes de :  According to a second aspect, there is also provided a method of erasure correction, said method comprising the steps of:
- mémorisation de (N + K) premiers paquets à traiter {A1} ... , AN+K) et de (N + K) deuxièmes paquets à traiter (Bi ... , BN+K), chaque paquet à traiter étant un paquet non-effacé ou un paquet nul représentatif d'un paquet effacé, storing (N + K) first packets to be processed {A 1} ..., A N + K ) and (N + K) second packets to be processed (B i ..., B N + K ), each packet to be processed being a non-erased packet or a null packet representative of an erased packet,
- calcul de (N + 2K) syndromes ... , SN+2K) définis, pour n = 1, ... , N + 2K, par
Figure imgf000007_0001
où les G1<£ sont K premiers coefficients prédéterminés définissant un premier polynôme
calculating (N + 2K) syndromes ..., S N + 2K ) defined, for n = 1, ..., N + 2K, by
Figure imgf000007_0001
where G 1 <£ are K first predetermined coefficients defining a first polynomial
K j=o  K j = o
différent de 1 , et les G2 i sont K deuxièmes coefficients prédéterminés définissant un deuxième polynôme different from 1, and the G 2 i are K second predetermined coefficients defining a second polynomial
K  K
G2(D) = G2JDi différent de 1 , et où les paquets Am et Bm sont identiquement nuls pour m < l ou m > N + K, G 2 (D) = G 2J Di different from 1, and where the packets A m and B m are identically zero for m <1 or m> N + K,
- recouvrement éventuel de paquets effacés à partir des syndromes, de telle sorte que, lorsque le calcul d'un syndrome fait intervenir un unique paquet nul représentatif d'un paquet effacé, alors le paquet recouvré correspondant à ce paquet effacé est égal à ce syndrome. - Possible recovery of packets deleted from the syndromes, so that when the calculation of a syndrome involves a single zero packet representative of an erased packet, then the recovered packet corresponding to this erased packet is equal to this syndrome .
Le procédé de correction d'effacements selon le deuxième aspect comprend une étape de recouvrement de paquets codés effacés, qui peut être mise en œuvre indépendamment du décodage des données reçues. Aucun paquet d'entrée n'a en effet à être généré pour reconstruire un quelconque paquet codé ayant été effacé suite à sa transmission dans le canal. The erasure correction method according to the second aspect comprises a step of recovering erased coded packets, which can be implemented independently of the decoding of the received data. In fact, no input packet has to be generated to reconstruct any coded packet that has been erased as a result of its transmission in the channel.
Le procédé de correction d'effacements selon le deuxième aspect fonctionne par ailleurs sans aucune contrainte algorithmique particulière sur le nombre de paquets codés reçus. Il autorise donc une grande flexibilité sur le nombre N de paquets d'entrée codés collectivement.  The erasure correction method according to the second aspect also operates without any particular algorithmic constraint on the number of coded packets received. It therefore allows great flexibility on the number N of collectively encoded input packets.
On voit donc que le procédé de codage selon le premier aspect et le procédé de correction d'effacements selon le deuxième aspect sont très flexibles en ce qu'ils peuvent s'adapter à un grand nombre de contextes de mise en œuvre différents.  It can therefore be seen that the coding method according to the first aspect and the method of erasure correction according to the second aspect are very flexible in that they can adapt to a large number of different implementation contexts.
Selon un troisième aspect, il est également proposé un dispositif de codage de paquets de données numériques comprenant : - un module mémoire adapté pour mémoriser N paquets d'entrée (P1; ... , PN), et According to a third aspect, there is also provided a device for encoding digital data packets comprising: a memory module adapted to memorize N input packets (P 1; ..., P N ), and
- un module de traitement de paquets d'entrée,  an input packet processing module,
ledit module de traitement de paquets comprenant des première et deuxième unités de codage convolutif telles que : said packet processing module comprising first and second convolutional coding units such as:
- la première unité de codage convolutif est configurée pour produire (N + premiers paquets codés [A1} ... , AN+K définis, pour m = Ι, .,. , Ν + Kl t pa
Figure imgf000009_0001
Gij m—i >
- the first convolutional coding unit is configured to produce (N + first packets encoded [A 1} ..., A N + K defined for m = Ι,,, Ν + K lt pa..
Figure imgf000009_0001
Gij m-i>
où G1 est un premier polynôme générateur différent de 1 , et de degré Kl t G est le coefficient du terme de puissance ί dudit premier polynôme générateur Gl t et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont nuls, where G 1 is a first generator polynomial different from 1, and of degree K lt G is the coefficient of the power term ί of said first generator polynomial G lt and input packets of index less than 1 or greater than N are zero ,
- la deuxième unité de codage convolutif est configurée pour produire (N + K2) premiers paquets codés [B1} ... , BN+K2 ) définis, pour n = Ι, .,. , Ν + K2 , par the second convolutional coding unit is configured to produce (N + K 2 ) first coded packets [B 1} ..., B N + K 2 ) defined, for n = Ι,.,. , Ν + K 2 , by
Bn =∑y=o ^2,iPn-j > Bn = Σy = o ^ 2, iPn-j>
où G2 est un second polynôme générateur différent de 1 , et de degré K2 , G2 est le coefficient du terme de puissance ; dudit second polynôme générateur G2 , et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont nuls, where G 2 is a second generator polynomial different from 1, and of degree K 2 , G 2 is the coefficient of the power term; said second generator polynomial G 2 , and the input packets of index less than 1 or greater than N are zero,
et les polynômes générateurs G1 et G2 sont premiers entre eux. and the generating polynomials G 1 and G 2 are prime between them.
Selon un quatrième aspect, il est également proposé un dispositif de correction d'effacements, comprenant :  According to a fourth aspect, there is also provided an erasure correction device comprising:
- un module mémoire adapté pour mémoriser (N + K) premiers paquets à traiter (A^ ... , AN+K) et (N + K) deuxièmes paquets à traiter (B1 ... , BN+K) , chaque paquet à traiter étant un paquet non- effacé ou un paquet nul représentatif d'un paquet effacé, a memory module adapted to store (N + K) first packets to be processed (A ^ ..., A N + K ) and (N + K) second packets to be processed (B 1 ..., B N + K ) each packet to be processed being an undeleted packet or a null packet representative of an erased packet,
- un module de traitement de paquets mémorisés adapté pour : o calculer (N + 2K) syndromes ... , SN+2K) définis, pour n = 1, ... , N + 2K, par
Figure imgf000010_0001
a memorized packet processing module adapted to: o calculate (N + 2K) defined syndromes ..., S N + 2K ), for n = 1, ..., N + 2K, by
Figure imgf000010_0001
où les Gl i sont K premiers coefficients prédéterminés définissant un premier polynôme where G li are K first predetermined coefficients defining a first polynomial
G^D) = G1 D )>J G ^ D) = G 1 D)> J
j=0  j = 0
différent de 1 , et les G2 i sont K deuxièmes coefficients prédéterminés définissant un deuxième polynôme different from 1, and the G 2 i are K second predetermined coefficients defining a second polynomial
G2(D) = G2 DJ j différent de 1 , et où les paquets Am et Bm sont identiquement nuls pour m < 1 ou m > N + K, et G 2 (D) = G 2 D J j different from 1, and where the packets A m and B m are identically zero for m <1 or m> N + K, and
o lorsque le calcul d'un syndrome fait intervenir un unique paquet nul représentatif d'un paquet effacé, définir un paquet recouvré correspondant à ce paquet effacé comme étant égal à ce syndrome.  when the calculation of a syndrome involves a single null packet representative of an erased packet, defining a recovered packet corresponding to this erased packet as being equal to this syndrome.
Selon un cinquième aspect, il est également proposé un système de transmission de données numériques comprenant au moins un nœud émetteur et au moins un nœud récepteur mutuellement connectés par un canal sujet à des effacements de paquets, ledit nœud émetteur comprenant un dispositif de codage selon le troisième aspect, et ledit nœud récepteur comprenant un dispositif de correction d'effacements selon le quatrième aspect.  According to a fifth aspect, there is also provided a digital data transmission system comprising at least one transmitting node and at least one receiving node mutually connected by a channel subject to packet erasures, said transmitting node comprising a coding device according to the third aspect, and said receiving node comprising an erasure correction device according to the fourth aspect.
Selon un sixième aspect, il est également proposé un programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé selon le premier et/ou le deuxième aspect, lorsqu'il est exécuté sur un ordinateur According to a sixth aspect, there is also provided a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises instructions for performing the steps of a method according to the first and / or second aspect, when executed on a computer
Selon un septième aspect, il est également proposé un moyen de stockage de données inamovible, ou partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon le premier et/ou le deuxième aspect.  According to a seventh aspect, there is also provided an immovable, partially or totally removable data storage means comprising computer program code instructions for executing the steps of a method according to the first and / or second aspect. .
DESCRIPTION DES FIGURES DESCRIPTION OF THE FIGURES
D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels :  Other features, objects and advantages of the invention will emerge from the description which follows, which is purely illustrative and nonlimiting, and which should be read with reference to the appended drawings in which:
- la figure 1 représente schématiquement un système de transmission selon l'invention,  FIG. 1 schematically represents a transmission system according to the invention,
- la figure 2 représente schématiquement un nœud émetteur compris dans le système de transmission de la figure 1 , selon un mode de réalisation de l'invention,  FIG. 2 diagrammatically represents an emitter node included in the transmission system of FIG. 1, according to one embodiment of the invention,
- la figure 3 représente schématiquement un nœud récepteur compris dans le système de transmission de la figure 1 , selon un mode de réalisation de l'invention,  FIG. 3 diagrammatically represents a receiving node included in the transmission system of FIG. 1, according to one embodiment of the invention,
- la figure 4 est un organigramme comprenant les étapes d'un procédé de codage de paquets selon un mode de réalisation de l'invention,  FIG. 4 is a flowchart comprising the steps of a packet coding method according to one embodiment of the invention,
- la figure 5 est un organigramme comprenant les étapes d'un procédé de traitement de paquets reçus depuis un canal selon un mode de réalisation de l'invention,  FIG. 5 is a flowchart comprising the steps of a method for processing packets received from a channel according to one embodiment of the invention,
- la figure 6 est un organigramme comprenant les étapes d'un procédé de recouvrement de paquets effacés selon un mode de réalisation de l'invention,  FIG. 6 is a flowchart comprising the steps of an erased packet recovery method according to one embodiment of the invention,
- la figure 7 représente un diagramme fonctionnel d'un codage convolutif de paquets selon un mode de réalisation de l'invention, - la figure 8 est un graphe de Tanner associé au code convolutif de la figure 7, FIG. 7 represents a functional diagram of a convolutional coding of packets according to one embodiment of the invention, FIG. 8 is a Tanner graph associated with the convolutional code of FIG. 7,
- la figure 9 représente un schéma d'un décodage du code convolutif de la figure 7, et  FIG. 9 represents a diagram of a decoding of the convolutional code of FIG. 7, and
- chacune des figures 10 à 12 représente respectivement des courbes de performances associée à un procédé de recouvrement de paquets effacés, selon une variante respective de l'invention. Sur l'ensemble des figures, les éléments similaires portent des références identiques.  each of FIGS. 10 to 12 respectively represents performance curves associated with an erased packet recovery method, according to a respective variant of the invention. In all the figures, similar elements bear identical references.
DESCRIPTION DETAILLEE DE L'INVENTION DETAILED DESCRIPTION OF THE INVENTION
En référence à la figure 1 , un système R de transmission de données numériques comprend un nœud émetteur 1 , un canal de transmission à effacements de paquets T et au moins un nœud récepteur 2.  With reference to FIG. 1, a digital data transmission system R comprises a transmitter node 1, a packet-erase transmission channel T and at least one receiver node 2.
Le canal T est adapté pour transmettre des paquets de données émis depuis le nœud émetteur 1 à chaque nœud récepteur 2. Le nœud récepteur 2 comprend des moyens (non-illustrés) pour effacer des paquets présentant des erreurs introduites au cours de la transmission, et des moyens pour générer des informations d'effacement identifiant les paquets effacés par le canal. Ces moyens, connus en eux-mêmes, ne seront pas détaillés dans la suite.  The T-channel is adapted to transmit data packets transmitted from the sending node 1 to each receiving node 2. The receiving node 2 comprises means (not shown) for clearing packets presenting errors introduced during the transmission, and means for generating erasure information identifying the packets erased by the channel. These means, known in themselves, will not be detailed later.
En référence à la figure 2, le nœud émetteur 1 comprend un dispositif de codage de paquets 10 et un module d'émission 16 agencé en sortie du dispositif 10.  With reference to FIG. 2, the transmitter node 1 comprises a packet coding device 10 and a transmission module 16 arranged at the output of the device 10.
Dans le présent mode de réalisation, le dispositif 10 est configuré pour mettre en œuvre un codage convolutif selon l'invention. Il comprend un module mémoire d'entrée 1 1 , deux unités de convolution 12 et 13, et un module de multiplexage 14.  In the present embodiment, the device 10 is configured to implement a convolutional coding according to the invention. It comprises an input memory module 1 1, two convolution units 12 and 13, and a multiplexing module 14.
Le module mémoire 1 1 est raccordé à une entrée du nœud émetteur 1 par laquelle sont reçus des paquets de données. Les deux unités de convolution 12, 13 sont configurées pour encoder des données en paquets mémorisées dans la mémoire 1 1 et délivrer des paquets codés au module de multiplexage 14. The memory module 1 1 is connected to an input of the transmitter node 1 through which data packets are received. Both convolution units 12, 13 are configured to encode stored packet data in the memory 11 and output coded packets to the multiplexing module 14.
Le module de multiplexage 14 est par ailleurs configuré pour délivrer des données codées au module d'émission 16, lequel est configuré pour générer un signal transportant les données codées et émettre ce signal sur le canal T. Optionnellement, le module de multiplexage peut en outre entrelacer ces données codées, afin de remédier aux erreurs de transmission se produisant par bouffées, car ce type d'erreurs de transmission provoque des bouffées de paquets effacés au niveau du récepteur.  The multiplexing module 14 is furthermore configured to deliver coded data to the transmission module 16, which is configured to generate a signal conveying the coded data and transmit this signal on the channel T. Optionally, the multiplexing module can also interleaving these coded data, in order to remedy the transmission errors occurring in puffs, because this type of transmission errors causes puffs of packets erased at the receiver.
En référence à la figure 3, le nœud récepteur 2 comprend un module de réception 21 , un dispositif de recouvrement de paquets effacés 20 et un décodeur 26 en sortie du dispositif de recouvrement 20.  With reference to FIG. 3, the receiving node 2 comprises a reception module 21, an erased packet recovery device 20 and a decoder 26 at the output of the covering device 20.
Le dispositif 20 de recouvrement de paquets effacés comprend une unité mémoire 22, une unité mémoire 23, et un module de correction de paquets 24.  The erased packet recovery device 20 comprises a memory unit 22, a memory unit 23, and a packet correction module 24.
L'unité mémoire 22 est configurée pour recevoir du module de réception 21 des paquets reçus correspondant à des paquets émis par le nœud émetteur.  The memory unit 22 is configured to receive from the reception module 21 received packets corresponding to packets transmitted by the sending node.
L'unité mémoire 23, également raccordée au module récepteur 21 , est configurée pour recevoir de celui-ci les informations d'effacement générées par le canal T.  The memory unit 23, also connected to the receiver module 21, is configured to receive therefrom the erasing information generated by the T channel.
Le module 24 de correction comprend une unité de calcul de syndromes 240, un compteur 241 , et une unité de reconstruction 244.  The correction module 24 comprises a syndromes calculation unit 240, a counter 241, and a reconstruction unit 244.
L'unité de calcul des syndromes 240 est configurée pour identifier, dans les paquets reçus et à partir des informations d'effacement mémorisées dans la deuxième unité mémoire, un groupe de paquets non- effacés intervenant dans des équations de parité, chaque équation de parité faisant intervenir des paquets codés mémorisés dans l'unité mémoire 22. Le compteur 241 est configuré pour compter, à partir des informations d'effacement stockées dans l'unité mémoire 23, un nombre de paquets effacés intervenant dans une équation de parité associée à une paire de paquets codés stockée dans l'unité mémoire 22. The syndromes calculating unit 240 is configured to identify, in the packets received and from the erasure information stored in the second memory unit, a group of non-erased packets involved in parity equations, each parity equation involving coded packets stored in the memory unit 22. The counter 241 is configured to count, from the erasure information stored in the memory unit 23, a number of erased packets involved in a parity equation associated with a pair of coded packets stored in the memory unit 22.
L'unité de reconstruction 244 est configurée pour reconstruire un paquet effacé par une convolution opérée sur les paquets codés non- effacés identifiés qui interviennent dans l'équation de parité associée à une paire mémorisée dans l'unité mémoire 22, si le nombre de paquets effacés décompté par le compteur 241 pour ladite paire est égal à un.  The reconstruction unit 244 is configured to reconstruct an erased packet by a convolution performed on the identified non-erased coded packets involved in the parity equation associated with a pair stored in the memory unit 22, if the number of packets erased counted by the counter 241 for said pair is equal to one.
L'unité de reconstruction 244 est par ailleurs configurée pour accéder en écriture aux unités mémoire 22 et 23.  The reconstruction unit 244 is furthermore configured to write access to the memory units 22 and 23.
Le décodeur 26 est adapté pour recevoir des paquets traités par le dispositif 20 de recouvrement. Le décodeur 26 peut former un module indépendant du dispositif 20 ou bien faire partie intégrante du dispositif 20 de recouvrement.  The decoder 26 is adapted to receive packets processed by the covering device 20. The decoder 26 may form a module independent of the device 20 or be an integral part of the device 20 covering.
Codage et émission Coding and transmission
En référence à la figure 4, un procédé de codage correcteur d'effacement comprend les étapes suivantes.  With reference to FIG. 4, an erasure correction coding method comprises the following steps.
Dans une étape 101 , des données sont mémorisées par le module mémoire 1 1 sous la forme d'une suite de N paquets d'entrée P = (P1; ... , PW) à traiter, présentant tous une même longueur, c'est à dire le même nombre de données (bits ou autres) du paquet. A partir de cette suite P, on produit (N + K- premiers paquets codés Am et (N + K2) deuxièmes paquets codés Bn. In a step 101, data are stored by the memory module 1 1 in the form of a sequence of N input packets P = (P 1; ..., P W ) to be processed, all having the same length, that is to say the same number of data (bits or other) of the packet. From this sequence P, we produce (N + K- first coded packets A m and (N + K 2 ) second coded packets B n .
Dans une étape 102, les premiers paquets codés Am sont produits par le module 12 par la mise en œuvre d'une première convolution opérée sur un premier ensemble de paquets d'entrée présent dans la suite. In a step 102, the first coded packets A m are produced by the module 12 by the implementation of a first convolution operated on a first set of input packets present in the following.
Dans une étape 103, les deuxièmes paquets codés Bn sont produits par le module 13 par la mise en œuvre d'une deuxième convolution opérée sur un deuxième ensemble de paquets d'entrée présent dans la suite. In a step 103, the second coded packets B n are produced by the module 13 by the implementation of a second convolution operated on a second set of input packets present in the suite.
Chaque premier paquet codé Am et chaque deuxième paquet codé Bn sont donc de longueur égale à celle des paquets d'entrée. Each first coded packet A m and each second coded packet B n are therefore of equal length to that of the input packets.
La convolution mise en œuvre par l'unité de codage 1 2 est définie par un premier polynôme générateur G1 de degré K^. Similairement, la deuxième convolution mise en œuvre par l'unité de codage 13 est définie par un deuxième polynôme générateur G2 de degré K2. The convolution implemented by the coding unit 1 2 is defined by a first generating polynomial G 1 of degree K 1 . Similarly, the second convolution implemented by the coding unit 13 is defined by a second generator polynomial G 2 of degree K 2 .
On désigne par K le maximum des degrés K et K2 respectifs du premier et du deuxième polynôme générateur G1 et G2. K denotes the maximum of the respective degrees K and K 2 of the first and second generator polynomials G 1 and G 2 .
Dans le mode de réalisation décrit ci-dessous, on supposera que les degrés K et K2 sont égaux (bien que des polynômes G1 et G2 de degrés différents puissent être utilisés, comme il sera présenté plus loin). In the embodiment described below, it will be assumed that the degrees K and K 2 are equal (although G 1 and G 2 polynomials of different degrees can be used, as will be discussed later).
Dans une étape 1 04, (N + K) premiers paquets codés et (N + K) deuxièmes paquets codés sont mémorisés par le module de multiplexage 14 de façon à générer une suite C de paires (An,Bn) de premiers et deuxièmes paquets codés, de façon à pouvoir transmettre l'ensemble des paquets codées sur une unique route de communication comprise dans le canal T. Le module de multiplexage 14 peut par exemple piloter l'exécution des unités de convolution 1 2 et 13 de façon à recevoir de ces deux unités de convolutions des premiers et deuxièmes paquets codés alternativement. Optionnellement, comme expliqué ci-dessus, le module de multiplexage 14 peut en outre entrelacer les données codées. In a step 104, (N + K) first coded packets and (N + K) second coded packets are stored by the multiplexing module 14 so as to generate a sequence C of pairs (A n , B n ) of first and second coded packets, so as to be able to transmit all the coded packets on a single communication route included in the channel T. The multiplexing module 14 may, for example, control the execution of the convolution units 1 2 and 13 so as to receiving from these two convolution units first and second alternatively coded packets. Optionally, as explained above, the multiplexing module 14 may further interleave the encoded data.
La suite C de paires codées ainsi obtenue comprend par exemple les paquets Ci suivants :  The sequence C of coded pairs thus obtained comprises, for example, the following packets Ci:
Cl = Al, C2 = BX, C^ = A2 , C4 C l = A 1 , C 2 = B X , C 1 = A 2 , C 4
= B · · · C = A C  = B · · · C = A C
= R i ' · " · ·' ' C ^ 2 N+K )-l = A N+K ' C^ 2(N+K) = Fi N+K= R i · · '' C ^ 2 N + K) -l = A N + K 'C ^ 2 (N + K) = F N + K
Dans une étape 1 06, la suite C de paires codées est émise par le module d'émission du nœud émetteur 1 dans le canal de transmission T. Au cours de leur transmission dans le canal T, d'éventuelles erreurs peuvent corrompre le contenu de certains paquets codés de la suite C de paires émise par le nœud émetteur 1 . Lorsque le décodeur de la couche physique (chargé de corriger les erreurs dues à la transmission) n'arrive pas à corriger totalement ces erreurs, il donne une information qui permet de marquer le paquet comme effacé. In a step 106, the sequence C of coded pairs is transmitted by the transmission module of the transmitter node 1 in the transmission channel T. During their transmission in the T-channel, possible errors can corrupt the contents of certain coded packets of the series C of pairs emitted by the sending node 1. When the decoder of the physical layer (responsible for correcting the errors due to the transmission) can not completely correct these errors, it gives information that makes it possible to mark the packet as erased.
Les « informations d'effacement » permettent ainsi d'identifier l'ensemble des paquets effacés suite à leur passage dans le canal T. Réception, recouvrement des paquets codés effacés, et décodage  The "erase information" thus makes it possible to identify all the packets erased as a result of their passage in the T-channel. Reception, recovery of erased coded packets, and decoding
En référence à la figure 5, le module de réception 21 du nœud récepteur 2 reçoit du canal T des données au cours d'une étape 201 .  With reference to FIG. 5, the reception module 21 of the receiving node 2 receives data from the channel T during a step 201.
Les données reçues comprennent des paquets reçus correspondant à la suite C de 2(N + K) paquets codés émis par le nœud émetteur 1 , et les informations d'effacement décrites ci-dessus. Ensuite, au cours de cette étape 201 , le module de réception 21 met en œuvre un démultiplexage des données reçues (et optionnellement désentrelace ces données si elles ont été entrelacées avant d'être émises par le nœud émetteur 1 ), et marque chacun des 2(N + K) paquets codés émis comme présent dans les paquets reçus, ou bien manquant dans les paquets reçus.  The received data comprises received packets corresponding to the sequence C of 2 (N + K) coded packets transmitted by the sending node 1, and the erasing information described above. Then, during this step 201, the reception module 21 implements a demultiplexing of the received data (and optionally deinterleaves these data if they have been interleaved before being transmitted by the transmitter node 1), and marks each of the 2 (N + K) encoded packets sent as present in received packets, or missing in received packets.
On admettra en effet dans ce qui suit que chacune des (N + K) paires de la suite émise par le nœud émetteur 1 est référencée dans les informations d'effacements reçues par le nœud récepteur 2.  It will be admitted in the following that each of the (N + K) pairs of the sequence transmitted by the sending node 1 is referenced in the erasure information received by the receiving node 2.
Dans une étape 202, les paquets reçus dans l'unité mémoire 21 , et dans une étape 202, les informations d'effacement sont mémorisées dans l'unité mémoire 23. Ces deux étapes de mémorisation 202, 203 peuvent être exécutées séquentiellement, ou bien simultanément de façon raccourcir le temps de traitement de ces données.  In a step 202, the packets received in the memory unit 21, and in a step 202, the erasure information is stored in the memory unit 23. These two storing steps 202, 203 can be executed sequentially, or else simultaneously to shorten the processing time of these data.
Les informations d'effacement et les paquets reçus sont ensuite traités par le dispositif 24 au moyen d'un procédé de recouvrement de paquets effacés représenté par une étape 204 sur la figure 5. Enfin, dans une étape 206, les paquets codés correctement transmis dans le canal T et les paquets recouvrés peuvent être décodés par le décodeur 26 (donc, de façon indépendante du recouvrement de paquets effacés opéré au cours de l'étape 204). The erasure information and the received packets are then processed by the device 24 by means of a recovery method of erased packets represented by a step 204 in FIG. 5. Finally, in a step 206, the correctly transmitted coded packets in the T-channel and the recovered packets can be decoded by the decoder 26 (thus, independently of the recovery of erased packets operated in step 204).
En référence à la figure 6, le procédé de recouvrement de paquets effacés 204 comprend les étapes suivantes mises en œuvre pour les 2(N + K) premiers et deuxièmes paquets codés mémorisés au cours de l'étape 203.  With reference to FIG. 6, the erased packet recovery method 204 comprises the following steps implemented for the first 2 (N + K) coded packets stored in step 203.
Dans une étape 2040, l'unité de calcul des syndromes 240 calcule In a step 2040, the syndromes calculation unit 240 calculates
(N + 2K) syndromes à partir des paquets mémorisés. Chaque syndrome Sn d'indice n est le résultat de l'équation de parité suivante :
Figure imgf000017_0001
(N + 2K) syndromes from the stored packets. Each syndrome S n of index n is the result of the following parity equation:
Figure imgf000017_0001
Dans une étape 2041 , le compteur 241 compte, à partir des informations d'effacement, un nombre de paquets effacés intervenant dans chaque équation de parité ; dans ce qui suit, ce nombre compté sera dénommé « index » de l'équation de parité, ou index du syndrome résultant de cette équation de parité.  In a step 2041, the counter 241 counts, from the erase information, a number of erased packets involved in each parity equation; in what follows, this counted number will be called "index" of the parity equation, or index of the syndrome resulting from this parity equation.
Dans une étape 2042, la valeur de chacun des (N + 2K) index est examinée.  In a step 2042, the value of each of the (N + 2K) indexes is examined.
Si l'index ln est égal à 0, cela veut dire qu'aucun paquet effacé n'intervient dans l'équation de parité donnant comme résultat le syndrome Sn ; aucun recouvrement n'est nécessaire. If the index l n is equal to 0, this means that no erased packet intervenes in the parity equation resulting in the syndrome S n ; no recovery is necessary.
Si l'index In est égal à 1 , alors un unique paquet nul représentatif d'un paquet codé effacé intervient dans l'équation de parité. Dans ce cas, dans une étape 2044, la valeur du syndrome Sn est identifiée comme étant la valeur du paquet effacé. If the index I n is equal to 1, then a single null packet representative of an erased coded packet intervenes in the parity equation. In this case, in a step 2044, the value of the syndrome S n is identified as being the value of the erased packet.
Si l'index In est différent de 1 , l'index suivant In+1 est examiné. Les étapes de calcul des syndromes 2040, de calcul des index 2041 et de recouvrement 2044 peuvent être répétées de façon à corriger un maximum d'effacements dans les paquets reçus correspondant à la suite de paires émise. If the index I n is different from 1, the next index I n + 1 is examined. The steps for calculating the 2040 syndromes, calculating the index 2041 and the covering 2044 can be repeated so as to correct a maximum of deletions in the received packets corresponding to the series of transmitted pairs.
Mode de réalisation à base d'opération XOR Embodiment based on XOR operation
Dans un mode de réalisation, chaque convolution opérée au cours des étapes 103 et 104 est une addition bit à bit modulo 2 (XOR) opéré sur les paquets d'entrée correspondants, et chaque convolution opérée par le au cours de l'étape de reconstruction 2044 est également une addition bit à bit modulo 2 (XOR) opéré sur les paquets codés correspondants.  In one embodiment, each convolution performed during steps 103 and 104 is a bit-to-bit addition modulo 2 (XOR) performed on the corresponding input packets, and each convolution operated by the during the reconstruction step. 2044 is also a bit-to-bit addition modulo 2 (XOR) performed on the corresponding coded packets.
Dans le cas général d'un code de polynômes générateurs In the general case of a generator polynomial code
Gi(p) =∑ 0 GiijDJ , i = 1,2 , G i (p) = Σ 0 G ii jDJ, i = 1.2,
dont les coefficients Gi j valent 0 ou 1 , le premier paquet codé et le deuxième paquet codé correspondants sont calculés par les opérations de convolution suivantes dans les unités de convolution 12 et 13 : whose coefficients G ij is 0 or 1, the first coded packet and the corresponding second coded packet are computed by the following convolution operations in convolution units 12 and 13:
Figure imgf000018_0001
Figure imgf000018_0001
de sorte que : so that :
Figure imgf000018_0002
Figure imgf000018_0002
Par conséquent, pour toute valeur de n, les paquets codés sont associés à un syndrome Sn et obéissent à l'équation de parité suivante : Therefore, for any value of n, the coded packets are associated with a syndrome S n and obey the following parity equation:
K K
Figure imgf000018_0003
KK
Figure imgf000018_0003
Ainsi, le groupe de paquets codés non effacés intervenant dans l'équation de parité associée à l'indice n comprend un premier ensemble comprenant au moins un premier paquet codé Ai retardé(s) ou non par rapport au paquet An et un deuxième ensemble comprenant au moins un deuxième paquet codé Bi retardé(s) ou non par rapport au paquet Bn. Ledit premier ensemble de paquets codés est associé au deuxième polynôme générateur G2, tandis que ledit deuxième ensemble de paquets codés est associé au premier polynôme générateur Thus, the group of undeleted coded packets involved in the parity equation associated with the index n comprises a first set comprising at least a first coded packet Ai delayed or not with respect to the packet An and a second set comprising at least a second coded packet Bi delayed (s) or not with respect to the packet Bn. Said first set of coded packets is associated with the second generator polynomial G 2 , while said second set of coded packets is associated with the first generator polynomial
Par convention, dans l'équation ci-dessus relative au syndrome Sn d'indice n, les paquets Am, Bm dont les indices vérifient m<1 ou m>(N+K) sont nuls. By convention, in the equation above relating to the syndrome S n of index n, the packets A m , B m whose indices satisfy m <1 or m> (N + K) are null.
À titre d'exemple, on prendra dans la suite les polynômes générateurs suivants G1 ( ) = 1 + + 2 et G2 (D) = \ + D2 . Le premier paquet et le deuxième paquet d'indice n codés d'après ces polynômes sont alors définis comme suit : As an example, we will take the following generative polynomials G 1 () = 1 + + 2 and G 2 (D) = \ + D 2 . The first packet and the second index packet n coded according to these polynomials are then defined as follows:
A n = P n Θ P n- ,l Θ P n- ,2  A n = P n Θ P n-, l Θ P n-, 2
B n = P n ® P n- ,2  B n = P n ® P n-, 2
où le symbole ® désigne l'addition modulo 2 des bits de même position des paquets intervenant dans les expressions des paquets An, Bn. Le schéma de codage correspondant à cet exemple est illustré en figure 7. where the symbol ® denotes the modulo 2 addition of bits of the same position of the packets involved in the expressions of the packets An, Bn. The coding scheme corresponding to this example is illustrated in FIG.
L'équation de parité d'indice n est alors la suivante :
Figure imgf000019_0001
The index parity equation n is then the following:
Figure imgf000019_0001
pour toute valeur de n. En effet, en considérant les termes successifs suivants :
Figure imgf000019_0002
for any value of n. Indeed, considering the following successive terms:
Figure imgf000019_0002
B n = P n ® P n- -2
Figure imgf000019_0003
on vérifie aisément que © -2 © η θ Βη_χ θ Βη_2 = 0 . Chaque paquet d'entrée Ρη ι apparaît un nombre pair de fois dans la somme ® Ai-2 ® Bn
Figure imgf000020_0001
® Bn-2 qui est donc nulle (un paquet dont tous les bits sont égaux à 0).
B n = P n ® P n -2
Figure imgf000019_0003
we easily check that © -2 © η θ Β η _ χ θ Β η _ 2 = 0. Each input packet Ρ η ι appears an even number of times in the sum ® Ai-2 ® B n
Figure imgf000020_0001
® B n -2 which is therefore zero (a packet whose all bits are equal to 0).
Dans ce qui suit, le symbole © est remplacé par le symbole classique de l'addition (+) étant entendu qu'il s'agit de l'addition du corps à deux éléments GF(2).  In what follows, the symbol © is replaced by the classic symbol of addition (+), it being understood that it is the addition of the body with two elements GF (2).
Cette suite d'équations de parité peut être représentée graphiquement sous la forme d'un graphe de Tanner, qui est un graphe biparti avec deux catégories de sommets : des nœuds représentants les paquets codés, et des nœuds représentants les syndromes (équations de parité), comme illustré sur la figure 8.  This sequence of parity equations can be represented graphically in the form of a Tanner graph, which is a bipartite graph with two categories of vertices: nodes representing coded packets, and nodes representing syndromes (parity equations) , as illustrated in FIG. 8.
Dans ce graphe, tous les nœuds Sn ont le même degré, c'est-à-dire le même nombre de branches incidentes, égal à :  In this graph, all the nodes Sn have the same degree, that is to say the same number of incident branches, equal to:
^ =∑fo, + G2, ) ^ = Σfo, + G 2 ,)
i≥0  i≥0
qui n'est autre que la somme des nombres de coefficients non nuls des deux polynômes générateurs G-i(D) et G2(D). which is none other than the sum of the numbers of non-zero coefficients of the two generating polynomials Gi (D) and G 2 (D).
Les nœuds du graphe de Tanner qui correspondent aux paquets codés An sont de degré db G et ceux correspondants aux paquets
Figure imgf000020_0002
Bn sont de degré db = , les deux sommes étant calculées dans les i≥0
The nodes of the Tanner graph which correspond to the coded packets A n are of degree d b G and those corresponding to the packets
Figure imgf000020_0002
B n are of degree d b =, the two sums being calculated in i≥0
entiers naturels (ce sont simplement les nombres de coefficients non nuls de chacun des deux polynômes générateurs). natural integers (these are simply the numbers of non-zero coefficients of each of the two generating polynomials).
Chaque paquet An intervient dans les syndromes Sn+i, z'| G2,≠ 0 et de la même manière chaque paquet Bn est relié aux syndromes Sn+i, i Gu≠ Les équations de parité permettent de recouvrer des paquets effacés ; en effet, si un seul paquet intervenant dans une équation de parité donnée est effacé, on peut le recalculer comme la somme (XOR) des autres paquets non effacés intervenant dans la même équation de parité. Each packet An intervenes in the syndromes S n + i , z ' | G 2 , ≠ 0 and in the same way each packet Bn is connected to the syndromes S n + i , i G u ≠ Parity equations are used to recover deleted packets; indeed, if a single packet intervening in a given parity equation is erased, it can be recalculated as the sum (XOR) of the other undeleted packets involved in the same parity equation.
Le procédé de recouvrement de paquets effacés opère sur le graphe de Tanner introduit plus haut. On introduit l'index d'une équation de parité comme étant égal au nombre de paquets effacés intervenant dans cette équation de parité. Le cas intéressant est bien entendu celui d'une équation de parité d'index égal à 1 car le paquet effacé est alors calculable comme la somme (XOR) des autres paquets (non effacés) qui interviennent dans cette équation de parité.  The process of recovering erased packets operates on the Tanner graph introduced above. The index of a parity equation is introduced as being equal to the number of deleted packets involved in this parity equation. The interesting case is of course that of an index parity equation equal to 1 because the erased packet is then computable as the sum (XOR) of the other (undeleted) packets that are involved in this parity equation.
Si, dans l'exemple qui précède, le paquet An est le seul paquet effacé dans l'équation de parité S„ = ® _2 ® Bn ® Bn_x ® Bn_2 = 0 , on peut le reconstruire selon = -2 ® Bn ® ¾-i ® ¾-2■ Une fois qu'un paquet est recouvré, l'index des équations de parité dans lesquelles il était impliqué est décrémenté d'une unité (le paquet n'est plus considéré comme effacé), et on cherche une nouvelle équation de parité d'index égal à 1 . If, in the above example, the packet An is the only packet erased in the parity equation S "= ® _ 2 ® B n ® B n _ x ® B n _ 2 = 0, we can reconstruct it according to = - 2 ® B n ® ¾-i ® ¾-2 ■ Once a packet is recovered, the index of the parity equations in which it was involved is decremented by one unit (the packet is no longer considered as erased), and we search for a new index parity equation equal to 1.
On va montrer ci-dessous qu'il est possible d'éviter de mettre œuvre le décodage des bits contenus dans les paquets An, Bn, pour remonter aux paquets d'entrée Pn.  It will be shown below that it is possible to avoid decoding the bits contained in the packets An, Bn, to go back to the input packets Pn.
Dans le présent mode de réalisation, les polynômes générateurs G1 et G2 sont premiers entre eux et vérifient donc l'équation de Bezout, c'est- à-dire qu'il existe deux polynômes U(D),V(D) tels que In the present embodiment, the generating polynomials G 1 and G 2 are prime between them and thus verify the Bezout equation, that is, there are two polynomials U (D), V (D) such as
U(D) G1(D)+V(D) G2(D) = 1 (l'arithmétique étant, dans le présent mode de réalisation, celle du corps à deux éléments, c'est-à-dire modulo 2). Par exemple, les deux polynômes G^D) = Ï + D + D2 et G2(D) = l + D2 déjà pris en exemple respectent bien l'équation de Bezout, puisque D xGl (D) + (l + D) xG2 (D) = l , i.e. U(D)=D et V(D)=1 +D. U (D) G 1 (D) + V (D) G 2 (D) = 1 (the arithmetic being, in the present embodiment, that of the two-element body, that is to say modulo 2 ). For example, the two polynomials G ^ D) = Ï + D + D 2 and G 2 (D) = 1 + D 2 already taken as an example respect the Bezout equation well, since D xG l (D) + (1 + D) xG 2 (D) = 1, i. e . U (D) = D and V (D) = 1 + D.
Recouvrement de paquets effacés à base d'opération XOR Recovery of erased packets based on XOR operation
Dans le mode de réalisation illustré en figure 6, le recouvrement de paquets effacés peut être mis en œuvre en deux phases : une phase d'initialisation, et une phase de bouclage, qui vont maintenant être détaillées dans le cas non-limitatif où l'opérateur XOR est choisi pour générer les premiers paquets codés et les deuxièmes paquets codés par convolution.  In the embodiment illustrated in FIG. 6, the recovery of erased packets can be implemented in two phases: an initialization phase, and a loopback phase, which will now be detailed in the non-limiting case where the XOR operator is chosen to generate the first coded packets and the second convolutionally encoded packets.
A titre préliminaire, on suppose que les 2(N+K) paquets suivants ont mémorisés au cours de l'étape 203 de mémorisation :  As a preliminary, it is assumed that the following 2 (N + K) packets have memorized during the storage step 203:
C1 = A1 , C2 = B1 , C3 = A2 , C4 C 1 = A 1 , C 2 = B 1 , C 3 = A 2 , C 4
— B2 ' " ' ' ^2i-i ~ A ' C2i—B . , · · · , C2(N+K)_1 - B 2 '' '' ^ 2i-i ~ A '2i C -B, · · ·, C 2 (N + K) ~ 1.
= A N+K ' C 2(^+ ^) = E N+K = A N + K 'C 2 (^ + ^) = E N + K
Les paquets Ci sont supposés reçus sans erreur ou bien non reçus (effacés).  Ci packets are assumed to be received without error or not received (erased).
Les informations d'effacement sont un vecteur E = (E1 , E2, ...) tel que :  The erasure information is a vector E = (E1, E2, ...) such that:
ί 1, si le paquet i est effacé ί 1, if the package i is cleared
Figure imgf000022_0001
Figure imgf000022_0001
Avec ces notations, la suite des paquets mémorisés dans l'unité mémoire 23 est
Figure imgf000022_0002
With these notations, the sequence of the packets stored in the memory unit 23 is
Figure imgf000022_0002
L'unité mémoire 23 contient donc des paquets non effacés et des paquets nuls représentatifs chacun d'un paquet effacé. On définit également les deux ensembles I i = l' M = lj et 1 2 = {^2,; = l}. Pour les polynômes générateurs G1 et G2 pris en exemple plus haut, on a I i = {θ,1,2}, I 2 = {0,2} . Phase d'initialisation The memory unit 23 thus contains undeleted packets and null packets each representative of an erased packet. We also define the two sets I i = M = lj and 1 2 = {^ 2 ,; = l}. For the generative polynomials G 1 and G 2 taken as an example above, we have I i = {θ, 1,2}, I 2 = {0,2}. Initialization phase
Au cours d'une étape préliminaire, les paquets reçus et les informations d'effacements peuvent faire l'objet d'un démultiplexage mis en œuvre par le module 21 , de façon à séparer les paquets reçus relatifs aux premiers paquets codés et les paquets reçus relatifs aux deuxièmes paquets codés. Cette étape peut être mise en œuvre par un passage série/parallèle des paquets Ri our former les deux suites de (N+K) paquets A
Figure imgf000023_0001
" et
During a preliminary step, the received packets and the erasure information can be demultiplexed by the module 21, so as to separate the received packets relating to the first coded packets and the packets received. relating to the second coded packets. This step can be implemented by a serial / parallel pass of the packets Ri to form the two suites of (N + K) packets A
Figure imgf000023_0001
" and
Bl = R2, B2 = R4, ■ ■, Bi = R2., - - . De la même manière, le vecteur B l = R 2 , B 2 = R 4 , ■ ■ , B i = R 2. , - -. In the same way, the vector
Ε = (Ει, Ε2, · · ·) des effacements est converti en deux vecteurs stockant respectivement les informations d'effacements sur les premiers aquets codés A, et sur les deuxièmes paquets codés Bi, c'est-à-dire :
Figure imgf000023_0002
= E2i_x et £«' = ¾ .
Ε = (Ε ι , Ε 2 , · · ·) erasures is converted into two vectors respectively storing the erase information on the first coded aquet A, and the second coded packet Bi, that is to say:
Figure imgf000023_0002
= E 2i _ x and £ «'= ¾.
Par « informations d'effacements », on veut dire que tous les paquets transmis sont numérotés (ou ont un identifiant), ce qui permet de savoir quels sont les paquets qui ont été perdus ou effacés (leur numéro est manquant au niveau de la réception).  By "erasure information", we mean that all transmitted packets are numbered (or have an identifier), which allows to know which packets have been lost or erased (their number is missing at the reception level). ).
L'étape de calcul des syndromes 2040 est ensuite mise en œuvre pour les (N + 2K) syndromes par l'unité de calcul de syndromes 240. Au cours de cette étape, est initialisé un vecteur des syndromes ¾ (*Sj , S 2 ·, ' " S N+2K ) ; chaque syndrome étant obtenu selon la formule : κ κ The step of calculating the syndromes 2040 is then implemented for the (N + 2K) syndromes by the unit for calculating syndromes 240. During this step, a vector of the syndromes ¾ (* Sj, S 2) is initialized. ·, '"S N + 2K), each syndrome being obtained according to the formula: κ κ
Sn =∑G2 An_i +∑G1 . Bn_i , n = 1,2, ... S n = ΣG 2 A n _ i + ΣG 1 . B n i , n = 1.2, ...
i=0 i=0  i = 0 i = 0
Chaque premier paquet du premier ensemble de paquets codés intervenant dans cette équation de parité est multiplié par un coefficient non-nul du deuxième polynôme générateur G2, et chaque deuxième paquet du deuxième ensemble de paquets codés intervenant dans cette équation de parité est multiplié par un coefficient non-nul du premier polynôme générateur G1. Each first packet of the first set of coded packets involved in this parity equation is multiplied by a non-zero coefficient of the second generator polynomial G 2 , and each second packet of the second set of coded packets involved in this parity equation is multiplied by one. non-zero coefficient of the first generator polynomial G 1 .
Si tous les paquets R, était reçus, chaque syndrome Sn serait constitué de bits nuls (par définition du syndrome) ; la présence d'effacements fait que certains Sn sont non nuls. If all the packets R, were received, each syndrome S n would consist of null bits (by definition of the syndrome); the presence of erasures makes some S n non-zero.
L'étape de calcul des index 2041 est mise en œuvre par le compteur 241 pour les mêmes (N + 2K) syndromes, de façon à initialiser un vecteur d'index I = ( ' ^2 ' " ' ^V+2^ ) , chaque index comptant le nombre de paquets effacés intervenant dans l'équation de parité associée au syndrome Sn. The step of calculating the indexes 2041 is implemented by the counter 241 for the same (N + 2K) syndromes, so as to initialize an index vector I = ('^ 2'"' ^ V + 2 ^) , each index counting the number of deleted packets involved in the parity equation associated with the Sn syndrome.
Les index .. , N + 2K, par :  The indexes .., N + 2K, by:
Figure imgf000024_0001
Figure imgf000024_0001
où est l'information d'effacement associée au premier paquet mémorisé d'indice i et E^ t est l'information d'effacement associée au deuxième paquet mémorisé d'indice i. where is the erase information associated with the first stored packet of index i and E ^ t is the erase information associated with the stored second packet of index i.
Phase itérative Iterative phase
La phase itérative comporte une succession d'itérations, chaque itération étant réalisée après vérification d'une condition de bouclage 2042 évaluant s'il reste des paquets effacés pouvant être reconstruits.  The iterative phase comprises a succession of iterations, each iteration being performed after verification of a loopback condition 2042 evaluating whether there remain erased packets that can be reconstructed.
La condition de bouclage est vérifiée par l'unité de reconstruction The condition of loopback is verified by the reconstruction unit
244, ou le compteur 241 . Cette condition de bouclage 2042 est vraie s'il existe un indice j tel que l'index /_,- = 1, ce qui veut dire qu'il existe un unique indice i qui indique quel était le paquet effacé intervenant dans l'équation de parité d'indice j. En d'autres termes, cette condition de boucle 2042 est vraie si au moins un des (N + 2K) index calculés est égal à 1 . La condition de bouclage 2042 peut donc être vérifiée dans deux cas : 244, or the counter 241. This loop condition 2042 is true if there exists an index j such that the index / _, - = 1, which means that there exists a unique index i which indicates which was the erased packet intervening in the equation parity index j. In other words, this loop condition 2042 is true if at least one of the calculated (N + 2K) indexes is 1. The loopback condition 2042 can therefore be verified in two cases:
- il existe, dans l'équation de parité d'indice j, un indice i de premier paquet Ai intervenant dans l'équation de parité tel que = 1 (dans ce cas, le paquet effacé est un premier paquet codé), ou bien  there exists, in the index parity equation j, an index i of the first packet Ai intervening in the parity equation such that = 1 (in this case, the erased packet is a first coded packet), or else
- il existe, dans l'équation de parité d'indice j, un indice i de deuxième paquet Bi intervenant dans l'équation de parité d'indice j, tel que there exists, in the index parity equation j, an index i of second packet Bi intervening in the parity equation of index j, such that
En¾ = 1 (dans ce cas, le paquet effacé est un deuxième paquet codé). En¾ = 1 (in this case, the deleted packet is a second encoded packet).
Tant que cette condition est vraie, une nouvelle itération de la boucle est exécutée, en prenant comme données d'entrées à traiter les paquets mémorisés dans l'unité mémoire 23. Chaque itération comprend les étapes suivantes.  As long as this condition is true, a new iteration of the loop is executed, taking as input data to process the packets stored in the memory unit 23. Each iteration comprises the following steps.
Dans l'étape de reconstruction 2044, l'unité de reconstruction 244 remplace, dans les paquets mémorisés dans l'unité mémoire 23, un paquet nul d'indice i représentatif d'un paquet effacé, intervenant dans le syndrome d'indice j, par la valeur 5} de ce syndrome. Plus précisément, l'unique paquet effacé d'indice i intervenant dans l'équation de parité d'indice j est alors reconstruit par Ai=Sj dans le premier cas décrit précédemment, ou bien par Bj=Sj respectivement. In the reconstruction step 2044, the reconstruction unit 244 replaces, in the packets stored in the memory unit 23, a zero packet of index i representative of an erased packet, involved in the index syndrome j, by the value 5} of this syndrome. More precisely, the single erased packet of index i involved in the index parity equation j is then reconstructed by A i = Sj in the first case described above, or else by Bj = Sj respectively.
L'étape de reconstruction réalise donc une simple écriture dans l'unité mémoire 23, le syndrome Sj ayant déjà été calculé au cours de l'étape 2040 mise en œuvre préalablement, sans consommer de mémoire additionnel dans le dispositif de correction 20. Dans une étape 2046, les informations d'effacements sont mises à jour par l'unité de reconstruction 244 afin de marquer le paquet reconstruit comme non-effacé. On positionne ainsi à zéro l'indication d'effacement correspondant E. a) = 0 ou bien E- b) = 0 respectivement. The reconstruction step therefore performs a simple write in the memory unit 23, the syndrome Sj having already been calculated during the step 2040 implemented previously, without consuming additional memory in the correction device 20. In a step 2046, the erase information is updated by the reconstruction unit 244 to mark the reconstructed packet as non-erased. Thus, the corresponding erasure indication E. a) = 0 or E- b) = 0 respectively is set to zero.
L'unité de calcul des syndromes 240 met ensuite en œuvre l'étape de calcul des syndromes S = {S1 , S2 , - - - SN+2K ) sur les (N + 2K) paquets mis à jour contenus dans l'unité mémoire 203. The unit for calculating syndromes 240 then implements the step of calculating the syndromes S = {S 1 , S 2 , - - - S N + 2K ) on the (N + 2K) updated packets contained in the memory unit 203.
L'étape de calcul des index 2041 est également exécutée de façon à mettre à jour le vecteur d'index Ι = {ΐ Ι2, · · ·ΙΝ+2κ )■ Tous les index associés à des syndromes dont la valeur a été modifiée au cours de la mise à jour précédente sont alors décrémentés de 1 . The index calculation step 2041 is also executed in order to update the index vector Ι = {ΐ Ι 2 , · · · Ι Ν + 2 κ) ■ All indexes associated with syndromes whose value has have been modified during the previous update are then decremented by 1.
La condition de bouclage 2042 est ensuite à nouveau examinée. Ainsi, la phase itérative permet de reconstruire des paquets effacés intervenant dans des équations de parité d'index supérieur à 1 à l'issue de la phase d'initialisation.  Loop condition 2042 is then re-examined. Thus, the iterative phase makes it possible to reconstruct deleted packets intervening in index parity equations greater than 1 at the end of the initialization phase.
Dès que la condition de bouclage 2042 est fausse, plus aucun paquet effacé ne peut être reconstruit : la phase itérative se termine alors.  As soon as the loopback condition 2042 is false, no more erased packet can be reconstructed: the iterative phase then ends.
Deux cas de sortie de la phase itérative peuvent se présenter. Dans un premier cas de sortie, les (N + 2K) index sont nuls, ce qui veut dire que tous les paquets effacés ont été reconstruits, et l'étape de décodage 206 peut être ensuite mise en œuvre par le décodeur 26. Dans un deuxième cas de sortie (référencé « fin » sur la figure 6), il ne reste que des index strictement supérieurs à 1 ; la correction de tous les effacements n'est alors pas possible et il reste des effacements résiduels.  Two cases of exit from the iterative phase can occur. In a first output case, the (N + 2K) indexes are zero, which means that all the erased packets have been reconstructed, and the decoding step 206 can then be implemented by the decoder 26. In a second output case (referred to as "end" in FIG. 6), only indexes strictly greater than 1 remain; correction of all erasures is then not possible and residual erasures remain.
Cas de polynômes générateurs de degrés différents Case of polynomials generating different degrees
Le recouvrement est opéré à partir de 2(N + K) paquets mémorisés dans l'unité mémoire 23, chaque paquet mémorisé étant un paquet codé non-effacé (transmis avec succès dans le canal), ou bien un paquet effacé représenté par un paquet nul représentatif d'un paquet codé effacé par le canal. The overlay is operated from 2 (N + K) packets stored in the memory unit 23, each stored packet being a non-erased coded packet (successfully transmitted in the channel), or an erased packet represented by a null packet representative of a coded packet erased by the channel.
On a considéré dans ce qui précède le cas d'un codage au moyen de deux polynômes générateurs G1 et G2 ayant un même degré K. Ces deux polynômes peuvent cependant avoir des degrés différents (l'un peut notamment avoir un degré nul ; les paquets en sortie de l'unité de convolution mettant en œuvre un polynôme de degré nul sont alors en clair). In the foregoing, the case of an encoding by means of two generating polynomials G 1 and G 2 having the same degree K has been considered. These two polynomials may however have different degrees (one may in particular have a zero degree; the packets at the output of the convolution unit implementing a polynomial of zero degree are then in the clear).
Si les degrés respectifs K et K2 des polynômes générateurs G1 et G2 sont différents (K étant alors défini comme le maximum de K et K2), alors seuls (N + K- premiers paquets codés et (N + K2) paquets codés sont produits par les étapes de convolution 102 et 103. Des paquets nuls de bourrage peuvent alors être générés, par le nœud émetteur, ou par le nœud récepteur, dans une étape de bourrage. If the respective degrees K and K 2 for G 1 and G 2 are different generator polynomials (K then being defined as the maximum of K and K 2), then only (N + K first encoded packet and (N + K 2) Coded packets are produced by convolution steps 102 and 103. Blank packets of stuffing can then be generated by the sending node, or the receiving node, in a stuffing step.
Cette étape de bourrage produit :  This stuffing step produces:
- si K > K2, des deuxièmes paquets identiquement nuls Bn, où N + K2 < n ≤ N + Klt complétant les deuxièmes paquets non- effacés et les paquets nuls représentatifs de deuxièmes paquets effacés, pour former les (N + K) deuxièmes paquets traités au cours du recouvrement 204, et if K> K 2 , second identically zero packets B n , where N + K 2 <n ≤ N + K lt completing the second non-erased packets and the null packets representative of second erased packets, to form the (N + K) second packets processed during the overlay 204, and
- si K-L < K2 , des premiers paquets nuls AN , o N + K1 < n ≤ N + K2, complétant les premiers paquets non-effacés et les paquets nuls représentatifs de premiers paquets effacés, pour former les (N + K) premiers paquets traités au cours du recouvrement 204. L'étape de bourrage peut être mise en œuvre par le nœud émetteurif KL <K 2 , first null packets A N , where N + K 1 <n ≤ N + K 2 , completing the first non-erased packets and the null packets representative of first erased packets, to form the (N + K) first packets processed during recovery 204. The stuffing step can be implemented by the sending node
1 après les étapes de codage 102 et 1 03. 1 after the coding steps 102 and 1 03.
En variante, seul (N + K- premiers paquets et (N + K2) sont transmis par le nœud émetteur et les paquets nuls de bourrage sont produits par le nœud récepteur 2 au cours de l'étape de réception 201 . Cette variante présente l'avantage de diminuer le nombre de paquets transmis dans le canal T. Décodage des paquets d'entrée à base d'opération XOR As a variant, only (N + K) first packets and (N + K 2 ) are transmitted by the sending node and the null packets are generated by the receiving node 2 during the reception step 201. the advantage of reducing the number of packets transmitted in the T channel. Decoding XOR-based input packets
L'étape 206 de décodage des paquets peut être mise en œuvre une fois la phase itérative terminée.  Step 206 of decoding packets can be implemented once the iterative phase is completed.
Dans le premier cas de sortie de boucle, le décodage peut être effectué sans erreur. Comme, dans le présent mode de réalisation, les deux polynômes G1 et G2 sont choisis premiers entre eux, le décodage peut être effectué très simplement sur la base de l'équation de Bezout, comme suit :  In the first case of loop output, the decoding can be performed without error. Since, in the present embodiment, the two polynomials G1 and G2 are chosen first among themselves, the decoding can be done very simply on the basis of the Bezout equation, as follows:
PjDi ,
Figure imgf000028_0001
P jD i,
Figure imgf000028_0001
=> U(D) A(D) +V(D) B(D) = [U(D) G1 (D) + V(D) G2 (D)]x P(D) = P(D) Le schéma de décodage associé aux polynômes=> U (D) A (D) + V (D) B (D) = [U (D) G 1 (D) + V (D) G 2 (D)] x P (D) = P (D) ) The decoding scheme associated with polynomials
^(£ = 1 + D + D2 et G2(D) = l+ D2 est illustré en figure 9. Dans cet exemple, les paquets d'entrée sont décodés en calculant A^ + Bn + B^ = Pn ^ (£ = 1 + D + D 2 and G 2 (D) = 1 + D 2 is illustrated in Figure 9. In this example, input packets are decoded by calculating A ^ + B n + B ^ = P n
Dans une variante de réalisation particulière, l'un ou l'autre des deux polynômes générateurs ne comporte qu'un seul terme non nul, par exemple G1 . Dans ce cas, le code réalisé est systématique : chaque premier paquet codé est en réalité un paquet d'entrée transmis en clair, et l'étape suivante mettant en œuvre l'équation de Bezout est inutile puisqu'on dispose déjà des paquets d'information.  In a particular embodiment variant, one or the other of the two generating polynomials has only one non-zero term, for example G1. In this case, the realized code is systematic: each first coded packet is actually an input packet transmitted in clear, and the next step implementing the Bezout equation is useless since there are already packets of information.
Dans le deuxième cas de sortie de boucle, certains paquets d'entrée ne peuvent pas être décodés car certains paquets codés sont manquants suite à leur effacement par le canal T.  In the second case of loop output, some input packets can not be decoded because some coded packets are missing as a result of being erased by the T channel.
Les critères de performance du décodage sont le taux résiduel de paquets effacés après décodage (en anglais PER, « Packet Erasure Rate »), et le taux d'échec de décodage du mot de code (WER, Word Erasure Rate). Sont illustrée sur chacun des figures 10 à 12 deux courbes de performances théoriques de décodage (en termes de WER et PER respectivement), en fonction d'une probabilité p d'effacements indépendants dans un canal T. The decoding performance criteria are the residual rate of packets erased after decoding (in English PER, "Packet Erasure Rate"), and the rate of failure of decoding the code word (WER, Word Erasure Rate). Are illustrated in each of Figures 10 to 12 two curves of theoretical decoding performances (in terms of WER and PER respectively), as a function of a probability p of independent erasures in a T channel.
Les courbes de la figure 10 correspondent aux paramètres suivants :  The curves of Figure 10 correspond to the following parameters:
Gl {D) = \ + D3 + D + D5 + D1 + 8 + D9 G l {D) = \ + D 3 + D + D 5 + D 1 + 8 + D 9
G2 (D) = 1 + D + D3 + D4 + D1 + D9 G 2 (D) = 1 + D + D 3 + D 4 + D 1 + D 9
N = 100  N = 100
Les courbes de la figure 1 1 correspondent aux paramètres suivants :  The curves of FIG. 11 correspond to the following parameters:
(¾ (D) = D ( ¾ (D) = D
G2 (D) = 1 + D2 + D3 + D6 + 8 + D9 G 2 (D) = 1 + D 2 + D 3 + D 6 + 8 + D 9
N = 100  N = 100
Les courbes de la figure 12 correspondent aux paramètres suivants :  The curves of Figure 12 correspond to the following parameters:
(¾ (D) = D ( ¾ (D) = D
G2 (D) = 1 + D2 + D3 + D6 + 8 + D9 G 2 (D) = 1 + D 2 + D 3 + D 6 + 8 + D 9
N = 500  N = 500
Le codage de paquets et la correction d'effacements correspondante décrits précédemment peuvent être utilisés pour de nombreuses applications, telles que :  The packet coding and the corresponding erase correction described above can be used for many applications, such as:
- la distribution de fichiers (« file delivery » en anglais) en mode « multicast/broadcast » sur des canaux à évanouissements, avec retransmission des paquets codés que l'on n'a pas pu décoder : on utilise la propriété que la probabilité de non-correction d'un mot de code (WER) peut être de l'ordre de 10~3, alors que la probabilité d'effacement d'un paquet est de 10 %, de sorte que le taux d'échec du décodage est quasiment égal à 1 pour les grandes valeurs de K, telles que celles proposées en exemple ; - la distribution de fichiers multimédia (« streaming » en anglais) ; on utilise la propriété que le taux résiduel d'effacement (de l'ordre de i () ) est beaucoup plus faible après décodage que celui dans le canal (20%). - file delivery ("delivery delivery" in English) in "multicast / broadcast" mode on fading channels, with retransmission of coded packets that could not be decoded: we use the property that the probability of non-correction of a code word (WER) can be of the order of 10 ~ 3 , while the probability of erasure of a packet is 10%, so that the failure rate of the decoding is almost equal to 1 for large values of K, such as those proposed as examples; - the distribution of multimedia files ("streaming" in English); using the property that the residual erasure rate (in the order of i ()) is much lower than that after decoding in the channel (20%).
Par ailleurs, le procédé de correction décrit précédemment pour 2(N+K) paquets codés peut être généralisé à un mode de fonctionnement en continu, c'est-à-dire à une suite illimitée de paquets, moyennant la définition d'une fenêtre de décodage qui restreint le graphe de Tanner aux syndromes St-w ' " $t+w où (2*W+1 ) est la largeur de la fenêtre. Moreover, the correction method previously described for 2 (N + K) coded packets can be generalized to a continuous mode of operation, that is to say to an unlimited series of packets, by means of the definition of a window decoding algorithm which restricts the Tanner graph to the syndromes S t -w '" $ t + w where (2 * W + 1) is the width of the window.
Il est également possible de tenir compte de la qualité du canal T : lorsque le taux d'effacement dans le canal est faible, il est possible d'introduire des effacements volontaires par la technique classique de poinçonnage (« puncturing » en anglais), ce qui a notamment pour effet d'augmenter avantageusement le rendement du code.  It is also possible to take into account the quality of the T channel: when the erasure rate in the channel is low, it is possible to introduce voluntary erasures by the conventional punching technique ("puncturing" in English). which has the effect of advantageously increasing the efficiency of the code.
Le codage de paquets et la correction d'effacements selon l'invention peuvent par ailleurs être mis en œuvre sous la forme d'un produit programme d'ordinateur comprenant des instructions de code pour l'exécution des étapes correspondantes.  Packet coding and erase correction according to the invention may furthermore be implemented in the form of a computer program product comprising code instructions for the execution of the corresponding steps.

Claims

REVENDICATIONS
1 . Procédé de codage de paquets de données numériques, ledit procédé comprenant les étapes de : 1. A method of encoding digital data packets, said method comprising the steps of:
- mémorisation (1 00) de N paquets d'entrée (P1; ... , PN), storing (1 00) N input packets (P 1; ..., P N ),
- production (101 ) de (N + premiers paquets codés [A1} ... , AN+K définis pour m = 1, ... , N + Kl t par
Figure imgf000031_0001
Gij m—i >
- production (101) of (N + first coded packets [A 1] ..., A N + K defined for m = 1, ..., N + K lt by
Figure imgf000031_0001
Gij m-i>
où G1 est un premier polynôme générateur différent de 1 , et de degré Kl t G est le coefficient du terme de puissance i dudit premier polynôme générateur Gl t et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont identiquement nuls, where G 1 is a first generator polynomial different from 1, and of degree K lt G is the coefficient of the power term i of said first generator polynomial G lt and the input packets of index less than 1 or greater than N are identically zero,
- production (1 02) de (N + K2) deuxièmes paquets codés (#i, définis, pour = 1, ... , N + K2, par - production (1 02) of (N + K 2 ) second encoded packets (#i, defined, for = 1, ..., N + K 2 , by
où G2 est un second polynôme générateur différent de 1 , et de degré K2 , G2 est le coefficient du terme de puissance ; dudit second polynôme générateur G2, et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont identiquement nuls, where G 2 is a second generator polynomial different from 1, and of degree K 2 , G 2 is the coefficient of the power term; said second generator polynomial G 2 , and the input packets of index less than 1 or greater than N are identically zero,
et où les polynômes générateurs G1 et G2 sont premiers entre eux. and where the generating polynomials G 1 and G 2 are prime between them.
2. Procédé de correction d'effacements, ledit procédé comprenant les étapes de : 2. Erasure correction method, said method comprising the steps of:
- mémorisation (203) de (N + K) premiers paquets à traiter ( L, ... , AN+K) et de (N + K) deuxièmes paquets à traiter (B1 ... , BN+K) , chaque paquet à traiter étant un paquet non-effacé ou un paquet nul représentatif d'un paquet effacé, storing (203) (N + K) first packets to be processed (L, ..., A N + K ) and (N + K) second packets to be processed (B 1 ..., B N + K ) each packet to be processed being a non-erased packet or a null packet representative of an erased packet,
- calcul (2040) de (N + 2K) syndromes ... , SN+2K) définis, pour n = 1, ... , N + 2K, par
Figure imgf000032_0001
- calculation (2040) of (N + 2K) syndromes ..., S N + 2K ) defined, for n = 1, ..., N + 2K, by
Figure imgf000032_0001
où les Gl i sont K premiers coefficients prédéterminés définissant un premier polynôme
Figure imgf000032_0002
where G li are K first predetermined coefficients defining a first polynomial
Figure imgf000032_0002
différent de 1 , et les G2 i sont K deuxièmes coefficients prédéterminés définissant un deuxième polynôme
Figure imgf000032_0003
different from 1, and the G 2 i are K second predetermined coefficients defining a second polynomial
Figure imgf000032_0003
différent de 1 , et où les paquets Am et Bm sont identiquement nuls pour m < l ou m > N + K, different from 1, and where the packets A m and B m are identically zero for m <1 or m> N + K,
- recouvrement (2044) éventuel de paquets effacés à partir des syndromes, de telle sorte que, lorsque le calcul d'un syndrome fait intervenir un unique paquet nul représentatif d'un paquet effacé, alors le paquet recouvré correspondant à ce paquet effacé est égal à ce syndrome.  - recovery (2044) possible packets deleted from the syndromes, so that when the calculation of a syndrome involves a single zero packet representative of an erased packet, then the recovered packet corresponding to this erased packet is equal to this syndrome.
3. Procédé selon la revendication 2, comprenant en outre les étapes de : The method of claim 2, further comprising the steps of:
- mémorisation (202) de 2(N + K) informations d'effacement, chaque information d'effacement indiquant si un paquet mémorisé respectif est un paquet non-effacé ou un paquet nul représentatif d'un paquet effacé,  storing (202) 2 (N + K) erase information, each erase information indicating whether a respective stored packet is a non-erased packet or a null packet representative of an erased packet,
- calcul (2041 ) de (N + 2K) index ... , lN+2K) à partir des informations d'effacement, l'index In décomptant le nombre de paquets nuls représentatifs de paquet effacés intervenant dans le calcul du syndrome Sn, ladite étape de recouvrement d'un paquet effacé pouvant être réalisée lorsque l'index ln est égal à 1 . calculating (2041) (N + 2K) index ..., l N + 2K ) from the erasure information, the index I n counting the number of erased packets representing the erased packet involved in the calculation of the syndrome S n, said step of covering an erased packet that can be achieved when the index n is equal to 1.
4. Procédé selon la revendication 3, comprenant plusieurs itérations successives, chaque itération comprenant : 4. Method according to claim 3, comprising several successive iterations, each iteration comprising:
- la mise à jour (2044) des paquets mémorisés, dans laquelle chaque paquet recouvré remplace le paquet nul correspondant dans les paquets mémorisés, et  updating (2044) the stored packets, in which each recovered packet replaces the corresponding null packet in the stored packets, and
- le calcul des syndromes (2040) à partir des paquets mémorisés mis à jour,  calculating the syndromes (2040) from the updated stored packets,
- la mise à jour (2046) des informations d'effacement associées aux paquets mémorisés remplacés, de façon que chaque paquet recouvert soit marqué comme non-effacé dans les données mémorisées,  updating (2046) the erasure information associated with the replaced stored packets, so that each covered packet is marked as non-erased in the stored data,
- le calcul (2041 ) des index à partir des informations d'effacement, une nouvelle itération étant mise en œuvre tant qu'au moins un des index calculés au cours de l'itération précédente est égal à 1 .  the computation (2041) of the indexes from the erasure information, a new iteration being implemented as long as at least one of the indexes calculated during the preceding iteration is equal to 1.
5. Procédé selon l'une des revendications 2 à 4, dans lequel lesdits polynômes G1 et G2 sont premiers entre eux. 5. Method according to one of claims 2 to 4, wherein said polynomials G 1 and G 2 are prime between them.
6. Procédé selon la revendication 5, comprenant en outre une étape de décodage (206) mettant en œuvre le calcul suivant pour obtenir des paquets Pn de données décodées :
Figure imgf000033_0001
The method of claim 5, further comprising a decoding step (206) implementing the following calculation to obtain P n packets of decoded data:
Figure imgf000033_0001
OU  OR
- A(D) est un polynôme représentatif de premier paquets non-effacés ou recouvrés, tel que A(D) =∑JL+( AjD} , - A (D) is a polynomial representative of the first non-erased or recovered packets, such that A (D) = + ΣJL (AJD},
- B(D) est un polynôme représentatif de deuxièmes paquets non- effacés ou recouvrés, tel que B D) = BjDj, et B (D) is a representative polynomial of second undeleted or recovered packets, such that BD) = BjD j , and
- U(D) et V(D) sont deux polynômes tels que U(D)G1 (D) + V{D)G2 {D) = 1. U (D) and V (D) are two polynomials such that U (D) G 1 (D) + V (D) G 2 (D) = 1.
7. Procédé selon l'une des revendications 2 à 6, dans lequel l'entier K est le maximum de deux entiers K et K2, et dans lequel les premiers coefficients G sont identiquement nuls pour i > Kl t et les deuxièmes coefficients G2 i sont identiquement nuls pour i > K2, et comprenant en outre les étapes suivantes mises en œuvre avant l'étape de mémorisation : 7. Method according to one of claims 2 to 6, wherein the integer K is the maximum of two integers K and K 2 , and wherein the first coefficients G are identically zero for i> K lt and the second coefficients G 2 i are identically zero for i> K 2 , and further comprising the following steps implemented before the storage step:
- réception de (N + K^) premiers paquets transmis [A1} ... , AN+K et de (N + K2) deuxièmes paquets transmis [B1} ... , BN+K , - receiving (N + K ^) first transmitted packets [A 1} ..., A N + K and (N + K 2 ) second transmitted packets [B 1} ..., B N + K ,
- si K-L > K2 , production de deuxièmes paquets identiquement nuls BN, où N + K2 < n ≤ N + Kl t complétant les premiers paquets transmis pour former les (N + K) deuxièmes paquets à traiter, etif K- L > K 2 , producing identically zero second packets B N , where N + K 2 <n ≤ N + K lt completing the first packets transmitted to form the (N + K) second packets to be processed, and
- si K-L < K2 , production de premiers paquets identiquement nuls AN, où N + K-L < n < N + K2 , complétant les deuxièmes paquets transmis pour former les (N + K) premiers paquets à traiter. if K- L <K 2 , producing first identically null packets A N , where N + K- L <n <N + K 2 , completing the second transmitted packets to form the (N + K) first packets to be processed.
8. Dispositif (10) de codage de paquets de données numériques comprenant : 8. Device (10) for encoding digital data packets comprising:
- un module mémoire (1 1 ) adapté pour mémoriser N paquets d'entrée et  a memory module (1 1) adapted to store N input packets and
- un module de traitement de paquets d'entrée,  an input packet processing module,
ledit module de traitement de paquets comprenant des première et deuxièmes unités (12, 13) de codage convolutif telles que : said packet processing module comprising first and second convolutional coding units (12, 13) such as:
- la première unité (12) de codage convolutif est configurée pour produire (N + K- premiers paquets codés (A^ ... , AN+K définis, pour m = 1, ... , N +
Figure imgf000034_0001
Gij m—i >
the first convolutional encoding unit (12) is configured to produce (N + K- first coded packets (A ^ ..., A N + K defined, for m = 1, ..., N +
Figure imgf000034_0001
Gij m-i>
où G1 est un premier polynôme générateur différent de 1 , et de degré Kl t G est le coefficient du terme de puissance ί dudit premier polynôme générateur G1 ; et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont nuls, where G 1 is a first generator polynomial different from 1, and of degree K lt G is the coefficient of the power term ί of said first generator polynomial G 1; and input packets of index less than 1 or greater than N are zero,
- la deuxième unité (13) de codage convolutif est configurée pour produire (N + K2) premiers paquets codés [B1} ... , BN+K2 ) définis, pour n = Ι, .,. , Ν + K2, par the second convolutional coding unit (13) is configured to produce (N + K 2 ) first coded packets [B 1} ..., B N + K 2 ) defined, for n = Ι,.,. , Ν + K 2 , by
Bn —∑j=o G2 iPn-j , Bn -Σj = o G 2 iP n -j,
où G2 est un second polynôme générateur différent de 1 , et de degré K2 , G2 est le coefficient du terme de puissance ; dudit second polynôme générateur G2 , et les paquets d'entrée d'indice inférieur à 1 ou supérieur à N sont nuls, where G 2 is a second generator polynomial different from 1, and of degree K 2 , G 2 is the coefficient of the power term; said second generator polynomial G 2 , and the input packets of index less than 1 or greater than N are zero,
et les polynômes générateurs G1 et G2 sont premiers entre eux. and the generating polynomials G 1 and G 2 are prime between them.
Dispositif (20) de correction d'effacements, comprenant : An erasure correction device (20) comprising:
- un module mémoire (22) adapté pour mémoriser (N + K) premiers paquets à traiter (A^ ... , AN+K) et (N + K) deuxièmes paquets à traiter (B1 ... , BN+K) , chaque paquet à traiter étant un paquet non- effacé ou un paquet nul représentatif d'un paquet effacé, - a memory module (22) adapted to store (N + K) first packets to be processed (A ^ ..., A N + K ) and (N + K) second packets to be processed (B 1 ..., B N + K ), each packet to be processed being an undeleted packet or a null packet representative of an erased packet,
- un module (24) de traitement de paquets mémorisés adapté pour :  a module (24) for processing stored packets adapted to:
o calculer (N + 2K) syndromes ... , SN+2K) définis, pour n = 1, ... , N + 2K, par
Figure imgf000035_0001
o calculate (N + 2K) defined syndromes ..., S N + 2K ), for n = 1, ..., N + 2K, by
Figure imgf000035_0001
où les GL I sont K premiers coefficients prédéterminés définissant un premier polynôme
Figure imgf000035_0002
where G LI are K first predetermined coefficients defining a first polynomial
Figure imgf000035_0002
différent de 1 , et les G2 I sont K deuxièmes coefficients prédéterminés définissant un deuxième polynôme κ different from 1, and the G 2 I are K second predetermined coefficients defining a second polynomial κ
G2(D) = G2JDi G 2 (D) = G 2 J Di
j=o  j = o
différent de 1 , et où les paquets Am et Bm sont identiquement nuls pour m < 1 ou m > N + K, et different from 1, and where the packets A m and B m are identically zero for m <1 or m> N + K, and
o lorsque le calcul d'un syndrome fait intervenir un unique paquet nul représentatif d'un paquet effacé, définir un paquet recouvré correspondant à ce paquet effacé comme étant égal à ce syndrome.  when the calculation of a syndrome involves a single null packet representative of an erased packet, defining a recovered packet corresponding to this erased packet as being equal to this syndrome.
10. Dispositif (20) de correction d'effacements selon la revendication 9, dans lequel lesdits polynômes G1 et G2 sont premiers entre eux. An erasure correction device (20) according to claim 9, wherein said G 1 and G 2 polynomials are first to each other.
1 1 . Dispositif (20) de correction d'effacements selon la revendication 10, comprenant en outre un décodeur (26) adapté pour mettre en œuvre le calcul suivant obtenir des paquets Pn de données décodées : 1 1. An erase correcting device (20) according to claim 10, further comprising a decoder (26) adapted to implement the computation according to obtaining packets P n of decoded data:
N+K  N + K
P(D) = ^ PnDn = U{D)A{D) + V{D)B{D) P (D) = P n D n = U (D) A (D) + V (D) B (D)
n=0  n = 0
 OR
- A(D) est un polynôme représentatif de premier paquets non-effacés ou recouvrés, tel que Αφ) =∑JL+ < AjD} , A (D) is a representative polynomial of first non-erased or recovered packets, such that Αφ) = ΣJL + < AjD } ,
- B(D) est un polynôme représentatif de deuxièmes paquets non- effacés ou recouvrés, tel que Βφ)
Figure imgf000036_0001
BjDj , et
B (D) is a representative polynomial of second non-erased or recovered packets, such that Βφ)
Figure imgf000036_0001
BjD j , and
- U(D) et V(D) sont deux polynômes prédéterminés tels que υφ)α1φ) + νφ)α2 φ) = î. - U (D) and V (D) are two predetermined polynomials such that υφ) α 1 φ) + νφ) α 2 φ) = 1.
12. Système de transmission (R) de données numériques comprenant au moins un nœud émetteur (1 ) et au moins un nœud récepteur (2) mutuellement connectés par un canal (T) sujet à des effacements de paquets, ledit nœud émetteur (1 ) comprenant un dispositif de codage de paquets (10) selon la revendication 8, et ledit nœud récepteur (2) comprenant un dispositif de correction d'effacements (20) selon l'une quelconque des revendications 9 à 1 1 . 12. Digital data transmission system (R) comprising at least one transmitting node (1) and at least one receiving node (2) mutually connected by a channel (T) subject to packet erasures, said transmitting node (1) comprising a packet coding device (10) according to claim 8, and said receiving node (2) comprising an erase correction device (20) according to any of claims 9 to 11.
13. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 7, lorsqu'il est exécuté sur un ordinateur. 13. Computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor, characterized in that it comprises instructions for carrying out the steps of a method according to any of claims 1 to 7 when executed on a computer.
14. Moyen de stockage de données inamovible, ou partiellement ou totalement amovible, comportant des instructions de code de programme informatique pour l'exécution des étapes d'un procédé selon l'une quelconque des revendications 1 à 7. A non-removable, or partially or fully removable data storage medium comprising computer program code instructions for performing the steps of a method according to any one of claims 1 to 7.
PCT/FR2014/053051 2013-11-28 2014-11-26 Data packet encoding by means of convolutional codes and deleted packet recovery WO2015079168A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1361787 2013-11-28
FR1361787A FR3013924A1 (en) 2013-11-28 2013-11-28 METHOD AND DEVICE FOR ENCODING DIGITAL DATA PACKETS, AND METHOD AND DEVICE FOR CORRECTING DEPLETIONS

Publications (1)

Publication Number Publication Date
WO2015079168A1 true WO2015079168A1 (en) 2015-06-04

Family

ID=50780538

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2014/053051 WO2015079168A1 (en) 2013-11-28 2014-11-26 Data packet encoding by means of convolutional codes and deleted packet recovery

Country Status (2)

Country Link
FR (1) FR3013924A1 (en)
WO (1) WO2015079168A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170046225A1 (en) * 2015-08-10 2017-02-16 Silicon Motion Inc. Flash memory controller and memory device for accessing flash memory module, and associated method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2282433A1 (en) * 2009-08-04 2011-02-09 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2282433A1 (en) * 2009-08-04 2011-02-09 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ARAI M ET AL: "Extension of coefficients for (n, k, m) convolutional-code-based packet loss recovery", COMPUTERS AND MATHEMATICS WITH APPLICATIONS, PERGAMON PRESS, OXFORD, GB, vol. 51, no. 2, January 2006 (2006-01-01), pages 247 - 256, XP024910306, ISSN: 0898-1221, [retrieved on 20060101], DOI: 10.1016/J.CAMWA.2005.11.010 *
FORNEY G D: "CONVOLUTIONAL CODES I: ALGEBRAIC STRUCTURE", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE PRESS, USA, vol. 16, no. 6, November 1970 (1970-11-01), pages 720 - 738, XP000577350, ISSN: 0018-9448, DOI: 10.1109/TIT.1970.1054541 *
KOHLENBERG A ET AL: "CONVOLUTIONAL CODING FOR CHANNELS WITH MEMORY", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE PRESS, USA, vol. IT-14, no. 5, September 1968 (1968-09-01), pages 618 - 626, XP000760900, ISSN: 0018-9448, DOI: 10.1109/TIT.1968.1054222 *
SASAKI C ET AL: "On Unicast based Recovery for Multicast Content Distribution considering XOR-FEC", COMMUNICATIONS, 2005 ASIA-PACIFIC CONFERENCE ON PERTH, WESTERN AUSTRALIA 03-05 OCT. 2005, PISCATAWAY, NJ, USA,IEEE, 3 October 2005 (2005-10-03), pages 1043 - 1047, XP010860945, ISBN: 978-0-7803-9132-1, DOI: 10.1109/APCC.2005.1554223 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170046225A1 (en) * 2015-08-10 2017-02-16 Silicon Motion Inc. Flash memory controller and memory device for accessing flash memory module, and associated method
KR20170018796A (en) * 2015-08-10 2017-02-20 실리콘 모션 인코포레이티드 Flash memory controller and memory device for accessing flash memory module, and associated method
KR101887557B1 (en) 2015-08-10 2018-08-10 실리콘 모션 인코포레이티드 Flash memory controller and memory device for accessing flash memory module, and associated method
US10089174B2 (en) * 2015-08-10 2018-10-02 Silicon Motion Inc. Flash memory controller and memory device for accessing flash memory module, and associated method
US10324789B2 (en) 2015-08-10 2019-06-18 Silicon Motion Inc. Flash memory controller and memory device for accessing flash memory module, and associated method

Also Published As

Publication number Publication date
FR3013924A1 (en) 2015-05-29

Similar Documents

Publication Publication Date Title
EP0654910B1 (en) Iterative decoding method for concatenated block codes
EP2095512B1 (en) Method and device for decoding ldpc codes and communication apparatus including such device
EP3443678B1 (en) Method of decoding a polar code with inversion of low reliability bits
EP0848501B1 (en) Digital transmission system and method comprising a product code combined with multidimensional modulation
EP0529718B1 (en) Digital signal transmission system using concatenated codes and receiver and decoder used for this system
EP2119095B1 (en) Ciphering method using error correcting codes
FR2905209A1 (en) Information block decoding method for signal receiver of wireless apparatus, involves storing blocks in input memory, and updating current indication for decoding one of blocks based on number of iterations performed to decode current block
EP0848524A1 (en) Punctured, trellis coded QAM, with interative decoding
FR2849514A1 (en) CODE OF ALGEBRA GEOMETRY ADAPTED TO RAFALE ERRORS
EP1959572B1 (en) Decoding method with message passing and forced convergence
EP1905157B1 (en) Method and system for encoding a data sequence
EP2661814A1 (en) Decoding method and decoder
FR2952252A1 (en) METHOD AND DEVICE FOR DECODING, COMPUTER PROGRAM PRODUCT, CORRESPONDING MEANS OF STORAGE AND CORRESPONDING DESTINATION NODE
EP2833555B1 (en) Improved method for decoding a corrector code with message passing, in particular for the decoding of LDPC codes or turbo codes
EP1989807B1 (en) Method and system for transmitting a message expressed by means of a polynomial
WO2012093116A1 (en) Method for correcting messages containing bit stuffing
WO2015079168A1 (en) Data packet encoding by means of convolutional codes and deleted packet recovery
WO2012175589A1 (en) Method for encoding data in bursts
EP1471647B1 (en) Encoding and decoding of trellis codes comprising trellis sections constructed on block codes with good distance.
EP0982866B1 (en) Method for convolutional coding and transmission of a stream of packets of digital data, and a method and apparatus for corresponding decoding
EP3327936A1 (en) Coding/decoding with short quasi-cyclic semi-regular ldpc codes for low consumption applications such as remote meter reading
WO2018115648A1 (en) Encoding and decoding data packets in a galois group
EP2722992B1 (en) Coding method for channel with quasi-periodic fading
WO2018185402A1 (en) Methods for encoding and decoding data packets in a galois field
FR2924288A1 (en) Code-word i.e. data code-word, iterative-decoding method for e.g. wireless mesh communication system, involves comparing symbols of code-word with symbols of copies, and repeating construction stage when compared symbols are not identical

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14814967

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14814967

Country of ref document: EP

Kind code of ref document: A1