WO2018115648A1 - Codage et de décodage de paquets de données dans un corps de galois - Google Patents

Codage et de décodage de paquets de données dans un corps de galois Download PDF

Info

Publication number
WO2018115648A1
WO2018115648A1 PCT/FR2017/053586 FR2017053586W WO2018115648A1 WO 2018115648 A1 WO2018115648 A1 WO 2018115648A1 FR 2017053586 W FR2017053586 W FR 2017053586W WO 2018115648 A1 WO2018115648 A1 WO 2018115648A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
binary
bits
packets
dimension
Prior art date
Application number
PCT/FR2017/053586
Other languages
English (en)
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 WO2018115648A1 publication Critical patent/WO2018115648A1/fr

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • 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
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Definitions

  • the present invention relates to communication or data recording systems in which, in order to improve the fidelity of transmission or storage, the data is subjected to channel coding.
  • the invention relates more particularly to the transmission of data packets on a channel affected by packet losses.
  • a channel On such a channel, some packets are received perfectly (thanks to properly defined modulation and coding at the physical layer); however, other packets are not received, either because these packets are deleted due to congestion in a router, or because they are received in bad conditions (noise, interference) and can not be decoded correctly.
  • Such a transmission channel is called “erasing channel”, and lost packets are said to be "erased”.
  • Systems for transmitting packets on channels causing erasures include, for example:
  • eMBMS evolved Multimedia Broadcast Multicast Services
  • LTE Long Term Evolution
  • VoLTE Voice over LTE
  • WebRTC Web Real-Time Communication
  • packets are called "blocks”, but the term “packets” will be used uniformly below.
  • the channel coding consists, when forming code words sent to a receiver or recorded on a data medium, to introduce some redundancy into the data.
  • the associated decoding method then judiciously uses this redundancy to detect possible transmission errors and if possible correct them; this approach applies to both the recovery of individual data and the recovery of erased packets.
  • codeword initially contained in a predetermined number k of symbols taken from a finite-size alphabet q; from these k information symbols are computed a number n> k of symbols belonging to this alphabet, which constitute the components of a code word.
  • the set of code words obtained when each information symbol takes any value in the alphabet constitutes a kind of dictionary called "code" of "dimension” k and "length” n.
  • the minimum distance d of a code is the smallest Hamming distance between two different words of this code, the Hamming distance being, by definition, the number of locations where two words of the same length have a different symbol.
  • the minimum distance d, as well as the "yield" are important parameters of the code; in particular, a minimum distance code d makes it possible to correct
  • linear codes are such that any linear combination of codewords (with the coefficients taken from the alphabet) is still a codeword.
  • codes can, conveniently, be associated with a matrix H of dimension called parity matrix: a word
  • n is a codeword if, and only if, it verifies the relation: (where the exponent T indicates the transposition).
  • the Galois body is also a Galois body
  • binary extension body Currently, packet-sending systems on erasable channels often implement coding / decoding methods operating at the data packet level, especially when time constraints prohibit the retransmission of lost packets: in these systems, an transmitter sends to a receiver, on the one hand, a set of original data packets, and on the other hand a set of redundancy packets that will be used to recover the lost packets. These additional packages are called “repair packages”; their number is such that the receiver will be able to retrieve useful packets with high probability.
  • n packets ⁇ including original data packets and repair packets
  • each column of symbols is a word of a linear code of length n and dimension k.
  • Packet-level coding / decoding allows a single operation (involving n packets) to be executed instead of L operations (the symbols forming these packets), which is a great reduction in complexity, particularly for decoding.
  • the recovery of lost packets in an erasing channel consists in solving a set of parity equations involving packets, which can be achieved in at least two ways:
  • BP BP
  • Belief Propagation Propagation of Belief
  • this method requires having, at each iteration, at least one parity equation involving a single lost packet, otherwise the decoding fails.
  • multiplication is classically based on a multiplication table consultation mechanism, a mechanism that is typically complex and slow.
  • the present invention thus relates, according to a first aspect, to a method of coding data packets, comprising the following steps:
  • each payload packet containing L ⁇ 1 symbols each consisting of a sequence of m> 1 bits, and encoding said payload packets to obtain n> k coded packets each containing L symbols consisting of a sequence of m bits, said coding being performed by means of a linear code of length n and dimension k operating on the binary extension body defined by means of a chosen primitive polynomial.
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements by obtaining the rows of said matrix Y at
  • the conventional multiplication table consultation mechanism can be replaced by a set of binary operations carried out vectorially at the level of the symbols of said data packet P.
  • the present invention is therefore particularly advantageous because, if it allows a software implementation of coding or decoding as the state-of-the-art techniques, it makes it possible to efficiently use an electronic circuit at the same time, or completely instead, of software means.
  • said matrices M (a), for are extracted from a reference matrix T of dimension m ()
  • the invention relates to a method for decoding data packets, comprising the following steps:
  • each coded data packet containing L ⁇ 1 symbols consisting of a sequence of m> 1 bits, said data packets having been coded by means of a linear code C (n, k) of length n and dimension k, where operating on the extension body
  • the binary matrix is calculated of dimension mxL, where the matrix M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements obtaining the rows of said matrix Y by means of binary additions of rows of the matrix X in patterns determined by the rows of the matrix ; and
  • the invention relates to various devices.
  • a device for coding data packets comprising means for:
  • each payload packet containing L ⁇ 1 symbols each consisting of a sequence of m> 1 bits
  • coding said payload packets to obtain n> k coded packets each containing L symbols consisting of a sequence of m bits, said coding being performed by means of a linear code C (n, k) of length n and of dimension k operating on the binary extension body GF (2 m ) defined by means of a selected primitive polynomial.
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements by obtaining the rows of said matrix Y at
  • symbol y ; , for j is composed of m bits>, located on the jth column of said matrix Y.
  • said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
  • the invention also relates, secondly, to a device for decoding data packets, comprising means for:
  • each coded data packet containing L ⁇ 1 symbols consisting of a sequence of m> 1 bits, said data packets having been coded by means of a linear code C (n, k ) of length n and dimension h, where l ⁇ k ⁇ n, operating on the binary extension body GF (2 TM), and decoding said coded data packets to obtain k user data packets each containing L symbols consisting of a sequence of m bits.
  • Said decoding device is remarkable in that it further comprises, in order to perform a multiplication for decoding encoded data packets, all symbols of a data packet () in which xjl L is a symbol composed of a
  • M (a) is the binary matrix of dimensions mxm whose respective columns contain the binary coordinates of the respective elements ⁇ by obtaining the rows of said matrix Y at
  • said coding device further comprises means for extracting said matrices M (a), for a reference matrix T of dimension
  • the invention relates to:
  • an emitter node comprising a coding device as briefly described above, and a receiver node comprising a decoding device as briefly described above.
  • the invention relates to a data transmission system, comprising at least one transmitting node as briefly described above and at least one receiving node as briefly described above, mutually connected by a channel subject to packet erasures.
  • said transmitting node and said receiving node must, in order to be mutually compatible, use not only the same binary extension body, ie the same
  • the invention also relates to a computer program downloadable from a communication network and / or stored on a computer readable medium and / or executable by a microprocessor.
  • This computer program is notable in that it includes instructions for executing the steps of the data packet coding method succinctly set forth above, or the method of decoding data packets succinctly set forth above, when run on a computer.
  • FIG. 2 diagrammatically represents a transmission system according to the invention
  • FIG. 3 diagrammatically represents an emitter node included in the transmission system of FIG. 2, according to one embodiment of the invention
  • FIG. 4 diagrammatically represents a receiving node included in the transmission system of FIG. 2, according to one embodiment of the invention
  • FIG. 5 represents the representation of a vector of L symbols belonging to GF (2 m ) in the form of a binary matrix m ⁇ L,
  • FIG. 6 represents a binary "block” image of a parity matrix of a code operating on G and
  • FIG. 7 represents a "flattened" binary image of the same parity matrix as for FIG. 6.
  • a data transmission system R according to one embodiment of the invention will now be described with reference to FIG. 2.
  • the data transmission system R comprises a transmitting node 1, a packet-erasing transmission channel T and at least one receiving node 2.
  • the T channel is adapted to transmit data packets transmitted from the sending node 1 to the receiving node 2.
  • the receiving node 2 comprises means (not shown) for clearing packets with errors introduced during the transmission, and means for generating erase information identifying packets erased by the channel. These means, known in themselves, will not be detailed later.
  • the transmitter node 1 comprises an input memory module 11, a packet coding device 10 and a transmission module 12 arranged at the output of the device 10.
  • the memory module 11 is connected to an input of the transmitter node 1 through which data packets are received.
  • the coding device of packets 10 is configured to encode the packets stored in the memory 11 and to deliver coded packets to the transmission module 12.
  • the transmission module 12 is configured to generate a signal transporting the coded data and transmit this signal on the channel T.
  • the transmission module 12 inserts a number into the header of each transmitted packet, which allows you to identify the packets not received, or received in the disorder.
  • the receiver node 2 comprises a reception module 21, an erased packet recovery device 20 and a decoder 25 at the output of the covering device 20.
  • the erased packet recovery device 20 comprises a first memory unit 22, a second memory unit 23, and a packet correction module 24.
  • the first memory unit 22 is configured to receive from the reception module 21 received packets corresponding to packets transmitted by the sending node.
  • the second memory unit 23, also connected to the receiver module 21, is configured to receive therefrom the erasing information provided by the T channel.
  • the correction module 24 comprises an identification unit 240 and a reconstruction unit 241.
  • the identification unit 240 is configured to identify, in the received packets stored in the first memory unit 22, and from the erasure information stored in the second memory unit 23, a group of non-erased packets operating in parity equations, each parity equation involving coded packets.
  • the reconstruction unit 241 is configured to reconstruct deleted packets from the non-erased coded packets stored in the first memory unit 22 and erase information stored in the second memory unit 23.
  • the decoder 25 is adapted to receive packets processed by the overlay device, and to output decoded packets. Note that the decoder 25 may form a module independent of the device of overlap 20, or be an integral part of the covering device 20.
  • coding and decoding are performed in a binary extension body , or By this we mean that at any given symbol composed of m bits we associate
  • a is a root of a predetermined primitive polynomial.
  • X is the column vector containing the m binary coordinates ⁇ d
  • Y is the column vector containing the m binary coordinates of y
  • bit matrix Y of dimension mxL, is calculated using the matrix product:
  • each operation ⁇ x i j in GF arithmetic (2 m) is replaced by a binary matrix product of a mxm by a binary matrix mx L when parallelizing the treatments on packets of L symbols of GF (2 m ).
  • the invention may be implemented within the nodes, for example a transmitting node or a receiving node, of communication networks, by means of software and / or hardware components.
  • the present invention also relates to a computer system.
  • This computer system conventionally comprises a central processing unit controlling signals by a memory, as well as an input unit and an output unit.
  • this computer system may be used to execute a computer program comprising instructions for implementing any of the methods of encoding, or decoding, data packets according to the invention.
  • the invention also relates to a downloadable computer program from a communication network comprising instructions for executing the steps of a method of encoding, or decoding, data packets according to the invention, when it is run on a computer.
  • This computer program may be stored on a computer readable medium and may be executable by a microprocessor.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form.
  • the invention also relates to an information carrier, irremovable, or partially or completely removable, readable by a computer, and comprising instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, such as a hard disk, or a USB key. (“USB flash drive" in English).
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the computer program according to the invention can in particular be downloaded to an Internet type network.
  • the information carrier may be an integrated circuit in which the program is embedded, the circuit being adapted to execute or to be used in performing any of the methods of encoding, or decoding, packets data according to the invention.

Landscapes

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

Abstract

La présente invention concerne un procédé de codage de paquets de données, comprenant les étapes suivantes : réception de k ≥1 paquets de données utiles, chaque paquet de données utiles contenant L ≥1 symboles constitués chacun d'une suite de m > 1 bits; et codage desdits paquets de données utiles de manière à obtenir n > k paquets codés contenant chacun L symboles constitués d'une suite de m bits, ledit codage étant réalisé au moyen d'un code linéaire C(n, k) de longueur n et de dimension k opérant sur le corps d'extension binaire GF (2m ) défini au moyen d'un polynôme primitif choisi. Ledit procédé de codage est remarquable en ce que ladite étape de codage des paquets de données utiles comprend au moins une sous-étape de multiplication Q = a. P de tous les symboles d'un paquet de données P par un même nombre a appartenant à GF (2m ), et en ce que ladite multiplication est réalisée au moyen d'opérations binaires effectuées de manière vectorielle au niveau des symboles dudit paquet de données P. Application à la transmission de paquets de données binaires sur des canaux à effacements.

Description

CODAGE ET DE DECODAGE DE PAQUETS DE DONNEES DANS UN CORPS DE GALOIS
La présente invention concerne les systèmes de communication ou d'enregistrement de données dans lesquels, afin d'améliorer la fidélité de la transmission ou du stockage, on soumet les données à un codage de canal.
L'invention concerne plus particulièrement la transmission de paquets de données sur un canal affecté par des pertes de paquets. Sur un tel canal, certains paquets sont reçus parfaitement (grâce à une modulation et un codage convenablement définis au niveau de la couche physique) ; en revanche, d'autres paquets ne sont pas reçus, soit parce que ces paquets sont supprimés en raison d'une congestion dans un routeur, soit parce qu'ils sont reçus dans de mauvaises conditions (bruit, interférences) et ne peuvent être décodés correctement. Un tel canal de transmission est appelé « canal à effacements », et les paquets perdus sont dits « effacés ». Les systèmes de transmission de paquets sur des canaux provoquant des effacements comprennent par exemple :
- le stockage de masse, ainsi que le stockage distribué, systèmes dans lesquels les pertes de données sont dues à des pannes de disques durs ou de serveurs ;
- la diffusion en broadcast ou en multicast eMBMS (evolved Multimedia Broadcast Multicast Services) en LTE (Long Term Evolution), pour la transmission de fichiers ou de programmes audiovisuels en continu {streaming) ; et
- la transmission en temps réel de la Voix ou de la Vidéo sur des canaux à pertes, tels que VoLTE (Voice over LTE) ou WebRTC (Web Real-Time Communication).
On notera que, dans certains de ces systèmes, les paquets sont appelés « blocs », mais on utilisera uniformément le terme de « paquets » ci-dessous.
On rappelle que le codage de canal consiste, quand on forme des mots de code envoyés à un récepteur ou enregistrés sur un support de données, à introduire une certaine redondance dans les données. Au niveau du récepteur, le procédé de décodage associé exploite alors judicieusement cette redondance pour détecter d'éventuelles erreurs de transmission et si possible les corriger ; cette approche s'applique aussi bien au recouvrement de données individuelles qu'au recouvrement de paquets effacés.
Plus précisément, on transmet, au moyen de chaque mot de code, des informations initialement contenues dans un nombre prédéterminé k de symboles prélevés dans un alphabet de taille finie q ; on calcule à partir de ces k symboles d'information un nombre n > k de symboles appartenant à cet alphabet, qui constituent les composantes d'un mot de code. L'ensemble des mots de code obtenus quand chaque symbole d'information prend une valeur quelconque dans l'alphabet, constitue une sorte de dictionnaire appelé « code » de « dimension » k et de « longueur » n.
On appelle distance minimale d d'un code la plus petite distance de Hamming entre deux mots différents de ce code, la distance de Hamming étant, par définition, le nombre d'emplacements où deux mots de même longueur possèdent un symbole différent. La distance minimale d , ainsi que le « rendement »
Figure imgf000004_0008
sont des paramètres importants du code ; en particulier, un code de distance minimale d permet de corriger
Figure imgf000004_0009
effacements en utilisant un décodage optimal.
Certains codes, appelés codes linéaires, sont tels que toute combinaison linéaire de mots de code (avec les coefficients pris dans l'alphabet) est encore un mot de code. Ces codes peuvent, de façon commode, être associés à une matrice H de dimension dite matrice de parité : un mot
Figure imgf000004_0007
Figure imgf000004_0001
de longueur n donné est un mot de code si, et seulement si, il vérifie la relation :
Figure imgf000004_0002
(où l'exposant T indique la transposition).
Lorsque la taille q de l'alphabet est une puissance d'un nombre premier, on peut donner à cet alphabet une structure de corps, appelé corps de Galois et noté GF(q) , dont les éléments non-nuls peuvent être commodément identifiés comme étant chacun égal à
Figure imgf000004_0004
pour une valeur correspondante de j, où
Figure imgf000004_0003
et où a est une racine {
Figure imgf000004_0005
primitive de l'unité dans GF{q) .
Lorsque, en particulier, le corps de Galois est également
Figure imgf000004_0006
appelé « corps d'extension binaire ». Actuellement, les systèmes de transmission de paquets sur des canaux provoquant des effacements mettent souvent en œuvre des procédés de codage/décodage opérant au niveau des paquets de données, notamment lorsque les contraintes de délais interdisent la retransmission des paquets perdus : dans ces systèmes, un émetteur envoie à un récepteur, d'une part, un ensemble de paquets de données originaux, et d'autre part un ensemble de paquets de redondance qui seront utilisés pour récupérer les paquets perdus. Ces paquets supplémentaires sont appelés « paquets de réparation » ; leur nombre est tel que le récepteur pourra récupérer les paquets utiles avec une haute probabilité.
Il est en effet plus efficace de coder/décoder au niveau de paquets de données qu'au niveau de données individuelles, et ce, pour les raisons suivantes.
Considérons, comme illustré sur la figure 1 , un ensemble de paquets de données ayant la même longueur et contenant chacun L symboles appartenant à (chaque symbole est donc composé de m bits).
Figure imgf000005_0003
En supposant que l'on utilise un code linéaire, le codage est effectué sur n paquets
Figure imgf000005_0001
{ } (incluant les paquets de données originaux et les paquets de réparation), de manière à ce que chaque colonne de symboles constitue un mot d'un code linéaire de longueur n et de dimension k .
Figure imgf000005_0002
L'on a ainsi L mots de code à coder ou à décoder pour chaque ensemble de n paquets. Un codage/décodage au niveau des paquets permet d'exécuter une seule opération (portant sur les n paquets) au lieu de L opérations (les symboles formant ces paquets), ce qui est une grande réduction de la complexité, particulièrement pour le décodage.
En particulier, la récupération de paquets perdus dans un canal à effacements consiste à résoudre un ensemble d'équations de parité faisant intervenir des paquets, ce qui peut être réalisé au moins de deux façons :
- une approche optimale, appelée méthode de « maximum de vraisemblance », consistant à résoudre un système linéaire ; et
- une approche moins performante, mais moins complexe, appelée méthode BP (initiales des mots anglais « Belief Propagation » signifiant « Propagation de Croyance »), consistant en une solution itérative, ligne par ligne, du système linéaire ; cette méthode exige d'avoir, à chaque itération, au moins une équation de parité faisant intervenir un seul paquet perdu, sinon le décodage échoue.
On connaît divers codes adaptés aux canaux à effacements. Ces codes sont efficaces, à condition de travailler sur une longue séquence de paquets (quelques milliers au moins).
En particulier, certains de ces codes, tels que les codes « RaptorQ » définis dans le document RFC 6330 de l'IETF (Internet Engineering Task Force), opèrent dans des corps d'extension binaires GF (2m) . En effet, de tels codes (où, rappelons-le, m > 1 ) sont plus avantageux que les codes binaires
Figure imgf000006_0010
( ) sur le plan du rendement et de la distance minimale relative ô
Figure imgf000006_0005
Figure imgf000006_0009
L'arithmétique de ces corps d'extension met en œuvre l'addition bit à bit, et la multiplication d'éléments dans G L'addition bit à bit est simple à mettre en
Figure imgf000006_0008
œuvre, mais la multiplication repose classiquement sur un mécanisme logiciel de consultation de table de multiplication, mécanisme typiquement complexe et lent.
Par ailleurs, de simples considérations d'algèbre linéaire permettent de montrer que la résolution d'un système d'équations de parité dans
Figure imgf000006_0007
faisant intervenir des paquets de données peut être ramenée à des additions de paquets, et à des multiplications d'un paquet par un même élément de
Figure imgf000006_0006
c'est-à-dire des combinaisons linéaires de paquets avec des coefficients pris dans
Figure imgf000006_0004
Or, lorsqu'il faut multiplier tous les éléments d'un vecteur donné composé d'éléments de par un même élément a de
Figure imgf000006_0001
Figure imgf000006_0003
on ne peut pas consulter ladite table de multiplication de façon
Figure imgf000006_0002
vectorielle ; autrement dit, il faut consulter la table pour chaque élément x, du vecteur, ce qui est d'autant plus lent que le vecteur est plus long.
La présente invention concerne donc, selon un premier aspect, un procédé de codage de paquets de données, comprenant les étapes suivantes :
- réception de k≥ 1 paquets de données utiles, chaque paquet de données utiles contenant L≥l symboles constitués chacun d'une suite de m > l bits, et - codage desdits paquets de données utiles de manière à obtenir n > k paquets codés contenant chacun L symboles constitués d'une suite de m bits, ledit codage étant réalisé au moyen d'un code linéaire
Figure imgf000007_0012
de longueur n et de dimension k opérant sur le corps d'extension binaire
Figure imgf000007_0011
défini au moyen d'un polynôme primitif choisi.
Ledit procédé de codage est remarquable en ce que ladite étape de codage des paquets de données utiles comprend au moins une sous-étape de multiplication Q = a P de tous les symboles d'un paquet de données p dans
Figure imgf000007_0010
lequel , pour est un symbole composé d'une suite de m bits
Figure imgf000007_0001
Figure imgf000007_0002
Figure imgf000007_0014
où i 0 1 par un même nombre a appartenant à GF (2m) , et en ce que
Figure imgf000007_0013
ladite multiplication est effectuée de la manière suivante :
a) on remplit une matrice binaire X de dimension mxL en plaçant les bits χϋ composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
b) on calcule la matrice binaire
Figure imgf000007_0009
de dimension mxL , où M (a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs en obtenant les lignes de ladite matrice Y au
Figure imgf000007_0003
moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice
Figure imgf000007_0005
; et
c) on obtient le paquet de données dans lequel
Figure imgf000007_0004
chaque symbole yj t pour est composé des m bits où
Figure imgf000007_0006
Figure imgf000007_0008
situés sur la
Figure imgf000007_0007
j -ième colonne de ladite matrice Y .
Grâce à ces dispositions, on peut remplacer le mécanisme classique de consultation de table de multiplication par un ensemble d'opérations binaires effectuées de manière vectorielle au niveau des symboles dudit paquet de données P . La présente invention est donc particulièrement avantageuse car, si elle permet une mise en œuvre logicielle du codage ou du décodage comme les techniques de l'état de l'art, elle permet d'utiliser efficacement un circuit électronique en même temps, ou complètement à la place, de moyens logiciels.
Selon des caractéristiques particulières, lesdites matrices M (a) , pour
Figure imgf000008_0002
sont extraites d'une matrice de référence T de dimension m ( )
Figure imgf000008_0001
Grâce à ces dispositions, on peut aisément obtenir les matrices M (a) sans aucun calcul, par simple lecture dans une unique matrice T construite et stockée préalablement à la mise en œuvre dudit procédé de codage.
Corrélativement, l'invention concerne un procédé de décodage de paquets de données, comprenant les étapes suivantes :
- réception de n > 1 paquets de données codés, chaque paquet de données codé contenant L≥ 1 symboles constitués d'une suite de m > l bits, lesdits paquets de données ayant été codés au moyen d'un code linéaire C(n, k) de longueur n et de dimension k , où opérant sur le corps d'extension
Figure imgf000008_0011
binaire GF (2™ ) , et
- décodage desdits paquets de données codés de manière à obtenir k paquets de données utiles contenant chacun L symboles constitués d'une suite de m bits.
Ledit procédé de décodage est remarquable en ce que ladite étape de décodage des paquets de données codés comprend au moins une sous-étape de multiplication Q = a P de tous les symboles d'un paquet de données dans lequel t pour est un symbole composé d'une
Figure imgf000008_0003
Figure imgf000008_0004
Figure imgf000008_0005
suite de m bits où par un même nombre a appartenant à
Figure imgf000008_0006
Figure imgf000008_0007
GF (2m ) , et en ce que ladite multiplication est effectuée de la manière suivante : a) on remplit une matrice binaire X de dimension mxL en plaçant les bits composant chaque symbole X le long de la j -ième colonne de
Figure imgf000008_0009
Figure imgf000008_0010
ladite matrice X ;
b) on calcule la matrice binaire
Figure imgf000008_0008
de dimension mxL, où la matrice M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs
Figure imgf000009_0001
en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice
Figure imgf000009_0008
; et
c) on obtient le paquet de données
Figure imgf000009_0002
dans lequel chaque symbole pour est composé des m bits t
Figure imgf000009_0010
Figure imgf000009_0003
Figure imgf000009_0009
, situés sur la j -ième colonne de ladite matrice Y .
Figure imgf000009_0007
Les avantages offerts par ce procédé de décodage sont essentiellement les mêmes que ceux offerts par le procédé de codage corrélatif succinctement exposé ci-dessus.
Selon des caractéristiques particulières, lesdites matrices pour
Figure imgf000009_0006
Figure imgf000009_0005
sont extraites d'une matrice de référence T de dimension
Figure imgf000009_0004
Grâce à ces dispositions, on peut aisément obtenir les matrices M (a) sans aucun calcul, par simple lecture dans une unique matrice T construite et stockée préalablement à la mise en œuvre dudit procédé de décodage.
Selon un deuxième aspect, l'invention concerne divers dispositifs.
Elle concerne ainsi, premièrement, un dispositif de codage de paquets de données, comprenant des moyens pour :
- recevoir k≥l paquets de données utiles, chaque paquet de données utiles contenant L≥ 1 symboles constitués chacun d'une suite de m > l bits, et
- coder lesdits paquets de données utiles de manière à obtenir n > k paquets codés contenant chacun L symboles constitués d'une suite de m bits, ledit codage étant réalisé au moyen d'un code linéaire C(n, k) de longueur n et de dimension k opérant sur le corps d'extension binaire GF (2m ) défini au moyen d'un polynôme primitif choisi.
Ledit dispositif de codage est remarquable en ce qu'il comprend en outre, dans le but d'effectuer une multiplication Q = a P , requise pour le codage des paquets de données utiles, de tous les symboles d'un paquet de données p = (x,,— ,xL) dans lequel X est un symbole composé d'une suite de m bits
Figure imgf000010_0001
χ , où par un même nombre a appartenant à GF (2m ) , des
Figure imgf000010_0002
moyens pour :
- remplir une matrice binaire X de dimension mxL en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne de ladite matrice
X ;
- calculer la matrice binaire
Figure imgf000010_0003
de dimension mxL, où M (a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs en obtenant les lignes de ladite matrice Y au
Figure imgf000010_0004
moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M
Figure imgf000010_0007
; et
- obtenir le paquet de données dans lequel chaque
Figure imgf000010_0006
symbole y ; , pour j est composé des m bits > ,
Figure imgf000010_0008
Figure imgf000010_0005
situés sur la j -ième colonne de ladite matrice Y .
Selon des caractéristiques particulières, ledit dispositif de codage comprend en outre des moyens pour extraire lesdites matrices M (a) , pour d'une matrice de référence T de dimension
Figure imgf000010_0009
Figure imgf000010_0010
(
L'invention concerne aussi, deuxièmement, un dispositif de décodage de paquets de données, comprenant des moyens pour :
- recevoir n > 1 paquets de données codés, chaque paquet de données codé contenant L≥l symboles constitués d'une suite de m > l bits, lesdits paquets de données ayant été codés au moyen d'un code linéaire C(n,k) de longueur n et de dimension h , où l≤k < n , opérant sur le corps d'extension binaire GF (2™ ) , et - décoder lesdits paquets de données codés de manière à obtenir k paquets de données utiles contenant chacun L symboles constitués d'une suite de m bits.
Ledit dispositif de décodage est remarquable en ce qu'il comprend en outre, dans le but d'effectuer une multiplication
Figure imgf000011_0003
requise pour le décodage des paquets de données codés, de tous les symboles d'un paquet de données ( ) dans lequel x j l L est un symbole composé d'une
Figure imgf000011_0001
Figure imgf000011_0002
suite de m bits où par un même nombre a appartenant à
Figure imgf000011_0013
Figure imgf000011_0014
, des moyens pour :
Figure imgf000011_0004
- remplir une matrice binaire X de dimension mxL en plaçant les bits xtj composant chaque symbole Xj le long de la j -ième colonne de ladite matrice
X ;
- calculer la matrice binaire
Figure imgf000011_0005
de dimension mxL, où M (a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs { } en obtenant les lignes de ladite matrice Y au
Figure imgf000011_0006
moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M
Figure imgf000011_0009
et
- obtenir le paquet de données Q dans lequel chaque
Figure imgf000011_0008
symbole est composé des m bits
Figure imgf000011_0007
Figure imgf000011_0010
situés sur la j -ième colonne de ladite matrice Y .
Selon des caractéristiques particulières, ledit dispositif de codage comprend en outre des moyens pour extraire lesdites matrices M (a) , pour
Figure imgf000011_0011
d'une matrice de référence T de dimension
Figure imgf000011_0012
Selon un troisième aspect, l'invention concerne :
- un nœud émetteur comprenant un dispositif de codage tel qu'exposé succinctement ci-dessus, et - un nœud récepteur comprenant un dispositif de décodage tel qu'exposé succinctement ci-dessus.
Les avantages offerts par ces dispositifs et ces nœuds sont essentiellement les mêmes que ceux offerts par les procédés corrélatifs succinctement exposés ci-dessus.
On notera qu'il est possible de réaliser ces dispositifs dans le contexte d'instructions logicielles et/ou dans le contexte de circuits électroniques.
Selon un quatrième aspect, l'invention concerne un système de transmission de données, comprenant au moins un nœud émetteur tel que décrit succinctement ci-dessus et au moins un nœud récepteur tel que décrit succinctement ci-dessus, mutuellement connectés par un canal sujet à des effacements de paquets.
On notera que dans un tel système de transmission, ledit nœud émetteur et ledit nœud récepteur doivent, pour être mutuellement compatibles, utiliser non seulement le même corps d'extension binaire , c'est-à-dire la même
Figure imgf000012_0001
valeur de m , mais en outre la même représentation de ce corps, c'est-à-dire le même polynôme primitif.
L'invention vise également 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. Ce programme d'ordinateur est remarquable en ce qu'il comprend des instructions pour l'exécution des étapes du procédé de codage de paquets de données succinctement exposé ci- dessus, ou du procédé de décodage de paquets de données succinctement exposé ci-dessus, lorsqu'il est exécuté sur un ordinateur.
Les avantages offerts par ce programme d'ordinateur sont essentiellement les mêmes que ceux offerts par lesdits procédés.
D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée ci-dessous de modes de réalisation particuliers, donnés à titre d'exemples non limitatifs. La description se réfère aux figures qui l'accompagnent, dans lesquelles :
- la figure 1, décrite ci-dessus, représente le codage de n paquets de données {ρ,, Ρ2, ··· , où chaque paquet contient L symboles appartenant à GF (2M) , sous la forme de L mots de code, où chaque mot de code contient n symboles appartenant à GF (2m) ,
- la figure 2 représente schématiquement un système de transmission selon l'invention,
- la figure 3 représente schématiquement un nœud émetteur compris dans le système de transmission de la figure 2, selon un mode de réalisation de l'invention,
- la figure 4 représente schématiquement un nœud récepteur compris dans le système de transmission de la figure 2, selon un mode de réalisation de l'invention,
- la figure 5 représente la représentation d'un vecteur de L symboles appartenant à GF (2m) sous la forme d'une matrice binaire mx L ,
- la figure 6 représente une image binaire « en blocs » d'une matrice de parité d'un code opérant sur G et
Figure imgf000013_0001
- la figure 7 représente une image binaire « aplatie » de la même matrice de parité que pour la figure 6.
On va décrire à présent, en référence à la figure 2, un système R de transmission de données selon un mode de réalisation de l'invention.
Le système R de transmission de données comprend un nœud émetteur 1 , un canal de transmission à effacements de paquets T et au moins un nœud récepteur 2.
Le canal T est adapté pour transmettre des paquets de données émis depuis le nœud émetteur 1 au 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.
En référence à la figure 3, le nœud émetteur 1 comprend un module mémoire d'entrée 11 , un dispositif de codage de paquets 10 et un module d'émission 12 agencé en sortie du dispositif 10.
Le module mémoire 11 est raccordé à une entrée du nœud émetteur 1 par laquelle sont reçus des paquets de données. Le dispositif de codage de paquets 10 est configuré pour encoder les paquets mémorisés dans la mémoire 11 et délivrer des paquets codés au module d'émission 12.
Le module d'émission 12 est configuré pour générer un signal transportant les données codées et émettre ce signal sur le canal T. En particulier, le module d'émission 12 insère un numéro dans l'en-tête de chaque paquet transmis, ce qui permet de repérer les paquets non reçus, ou reçus dans le désordre.
En référence à la figure 4, 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 25 en sortie du dispositif de recouvrement 20.
Le dispositif 20 de recouvrement de paquets effacés comprend une première unité mémoire 22, une deuxième unité mémoire 23, et un module de correction de paquets 24.
La première 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.
La deuxième unité mémoire 23, également raccordée au module récepteur 21 , est configurée pour recevoir de celui-ci les informations d'effacement fournies par le canal T.
Le module 24 de correction comprend une unité d'identification 240 et une unité de reconstruction 241.
L'unité d'identification 240 est configurée pour identifier, dans les paquets reçus mémorisés dans la première unité mémoire 22, et à partir des informations d'effacement mémorisées dans la deuxième unité mémoire 23, un groupe de paquets non-effacés intervenant dans des équations de parité, chaque équation de parité faisant intervenir des paquets codés.
L'unité de reconstruction 241 est configurée pour reconstruire des paquets effacés à partir des paquets codés non-effacés stockés dans la première unité mémoire 22 et des informations d'effacement stockées dans la deuxième unité mémoire 23.
Le décodeur 25 est adapté pour recevoir des paquets traités par le dispositif 20 de recouvrement, et émettre en sortie des paquets décodés. On notera que le décodeur 25 peut former un module indépendant du dispositif de recouvrement 20, ou bien faire partie intégrante du dispositif de recouvrement 20.
Dans le cadre de la présente invention, le codage et le décodage sont réalisés dans un corps d'extension binaire
Figure imgf000015_0019
, où
Figure imgf000015_0013
On entend par là qu'à tout symbole donné composé de m bits on associe
Figure imgf000015_0012
l'élément de
Figure imgf000015_0021
, noté
Figure imgf000015_0020
t dont les coordonnées binaires sur une base canonique choisie sont précisément lesdits bits
Figure imgf000015_0001
Figure imgf000015_0014
autrement dit :
Figure imgf000015_0002
où a est une racine d'un polynôme primitif prédéterminé.
On va expliquer à présent comment on peut effectuer la multiplication dans
Figure imgf000015_0015
uniquement au moyen d'additions binaires (on rappelle que l'addition binaire est également appelée « OU exclusif », et notée
Figure imgf000015_0011
Prenons un exemple dans le corps construit à partir du
Figure imgf000015_0010
polynôme primitif
Figure imgf000015_0003
où a vérifie l'équation :
Figure imgf000015_0004
Le résultat de la multiplication de l'élément
Figure imgf000015_0005
de coordonnées binaires par l'élément , de
Figure imgf000015_0009
Figure imgf000015_0006
coordonnées binaires
Figure imgf000015_0008
est l'élément dont
Figure imgf000015_0007
les coordonnées binaires sont obtenues comme suit :
Figure imgf000015_0018
20
Figure imgf000015_0016
par définition de la matrice
Figure imgf000015_0022
dont les colonnes successives sont constituées par les coordonnées binaires des éléments d
Figure imgf000015_0023
Figure imgf000015_0017
e GF(24) successivement. Pour calculer ces colonnes, on notera, par exemple, que
Figure imgf000016_0001
On procède de la même façon pour
Figure imgf000016_0009
Le résultat final est :
Figure imgf000016_0002
Dans le cas général d'un corps pour m quelconque, on calcule :
Figure imgf000016_0014
Figure imgf000016_0003
ou :
• X est le vecteur colonne contenant les m coordonnées binaires { } d
Figure imgf000016_0004
• Y est le vecteur colonne contenant les m coordonnées binaires de y , et
Figure imgf000016_0005
• la matrice est la matrice binaire
Figure imgf000016_0008
mxm dont les colonnes contiennent les coordonnées binaires des éléments
, soit
Figure imgf000016_0007
M
Figure imgf000016_0006
On dira que la matrice est « l'équivalent binaire » de l'élément a pour la
Figure imgf000016_0013
multiplication dans G .
Figure imgf000016_0012
Comme tous les éléments non-nuls de peuvent être écrits sous
Figure imgf000016_0011
la forme a = ak pour un certain entier on peut se contenter de
Figure imgf000016_0010
considérer les matrices
Figure imgf000017_0001
associées aux puissances consécutives de a .
On notera que toutes ces matrices peuvent être obtenues en consultant une « grande » matrice binaire
Figure imgf000017_0002
de dimension construite préalablement, dont les colonnes
Figure imgf000017_0003
contiennent les coordonnées de a
Figure imgf000017_0017
pour
Figure imgf000017_0018
Dans cette matrice T , que l'on appellera « matrice de référence », les
Figure imgf000017_0004
dernières colonnes sont une simple copie des premières colonnes. est alors la sous-matrice
Figure imgf000017_0016
Figure imgf000017_0005
obtenue en extrayant les colonnes
Figure imgf000017_0006
de la matrice de référence T , ce que l'on notera ainsi :
Figure imgf000017_0007
Par définition, le produit de deux éléments a
Figure imgf000017_0009
est égal à de sorte que la matrice associée au
produit que l'on peut lire directement dans la matrice de
Figure imgf000017_0015
référence T ; on peut ainsi obtenir très simplement le produit des matrices
Figure imgf000017_0010
.
De la même manière, la matrice associée à l'inverse d'un élément
Figure imgf000017_0012
est qui
Figure imgf000017_0011
est la matrice identité.
Si l'on prend le même exemple sur (construit à partir du
Figure imgf000017_0014
polynôme primitif la matrice de référence T est donnée
Figure imgf000017_0013
par :
Figure imgf000018_0010
de sorte que, par exemple :
Figure imgf000018_0011
On vérifie facilement, par exemple, que le produit des matrices binaires est bien égal à comme prévu.
Figure imgf000018_0003
Figure imgf000018_0004
En poursuivant le même exemple, on trouve :
Figure imgf000018_0013
de sorte que M ou encore [
Figure imgf000018_0001
Figure imgf000018_0002
Comme autre exemple, la multiplication par a dans
Figure imgf000018_0005
Figure imgf000018_0006
est donnée par le produit matriciel :
Figure imgf000018_0012
On notera que cette expression n'utilise que des XORs des coordonnées binaires x. e {0,1} de l'élément x .
On peut ainsi commodément effectuer la multiplication de tout élément x de par tout élément a sur la base de l'équation (1) ci-dessus
Figure imgf000018_0008
Figure imgf000018_0007
et des sous-matrices de la matrice de référence T , ce qui ne fait intervenir que des XORs des coordonnées de x .
On va expliquer à présent comment on peut utiliser cette méthode pour effectuer la multiplication par tout élément au niveau des paquets.
Figure imgf000018_0009
Le produit matriciel de l'équation (1) peut être aisément parallélisé lorsque chaque x{ est un vecteur binaire de longueur L . Par exemple, la multiplication par un élément a dans
Figure imgf000019_0010
devient :
Figure imgf000019_0016
où, avantageusement, toutes les opérations sont effectuées dans GF(2) .
On utilisera ci-après la notation pour dénoter la
Figure imgf000019_0009
ligne n° i d'une matrice binaire X de dimension mxL ; le produit matriciel ci- dessus peut alors être commodément vu comme mettant en œuvre des XORs de ces lignes *(/',:). Par exemple, la multiplication par présentée ci-
Figure imgf000019_0011
dessus peut être commodément écrite sous la forme :
Figure imgf000019_0017
Les considérations ci-dessus expliquent comment on peut, au cours du codage ou du décodage dans un corps de Galois où défini au
Figure imgf000019_0008
Figure imgf000019_0007
moyen d'un polynôme primitif prédéterminé, calculer un paquet , où le
Figure imgf000019_0006
nombre a appartient à
Figure imgf000019_0001
et P est un paquet de données ( )
Figure imgf000019_0005
dans lequel pour avec L > 1 , est un symbole composé d'une
Figure imgf000019_0003
Figure imgf000019_0002
suite de m bits x
Figure imgf000019_0004
Selon le présent mode de réalisation, on met en œuvre les sous-étapes suivantes.
a) On remplit une matrice binaire de dimension en plaçant
Figure imgf000019_0015
Figure imgf000019_0014
les bits xv composant chaque symbole le long de la j -ième colonne, comme
Figure imgf000019_0013
illustré schématiquement sur la figure 5. On désigne par la i -ème ligne, où
Figure imgf000019_0012
de cette matrice X . Autrement dit, si l'on regarde le paquet P
Figure imgf000020_0002
comme une ligne de bits numérotés de 1 à mx L , la ligne *(*,:) est définie par :
Figure imgf000020_0001
b) On calcule la matrice binaire Y , de dimension mxL , au moyen du produit matriciel :
Y
Figure imgf000020_0009
où la matrice M (a) est l'équivalent binaire, défini ci-dessus, de l'élément a . Comme expliqué ci-dessus, effectuer ce produit matriciel revient à calculer les lignes de la matrice Y par des XORs de lignes de la matrice X , selon des motifs binaires déterminés par les lignes de la matrice M (a) . On opère ainsi, avantageusement, de manière vectorielle sur les L symboles du paquet P . c) On obtient finalement le paquet dans lequel
Figure imgf000020_0004
chaque symbole pour est composé des bits où
Figure imgf000020_0013
Figure imgf000020_0003
Figure imgf000020_0011
Figure imgf000020_0010
situés sur la j -ième colonne de la matrice Y obtenue
Figure imgf000020_0005
précédemment. Autrement dit, il suffit de lire la matrice Y colonne par colonne.
On va, pour terminer, expliquer comment on peut utiliser cette méthode pour effectuer, toujours au niveau des paquets, la multiplication par n'importe quelle matrice A dont les éléments at j appartiennent à G Î ) .
Figure imgf000020_0007
En effet, une telle matrice peut être aisément transformée en une matrice binaire, que l'on appellera « image binaire » de la matrice A , en remplaçant tous ses éléments ( ) par leurs équivalents binaires définis ci-
Figure imgf000020_0006
Figure imgf000020_0014
dessus. Cela est notamment le cas pour la matrice de parité d'un code linéaire.
Considérons par exemple un code de Reed-Solomon défini sur
Figure imgf000020_0012
(pour la définition de ces codes, fréquemment utilisés, cf. l'article de I. Reed et G. Solomon intitulé « Polynomial codes over certain finite fields », J. Soc. Indust. Appl. Math, vol. 8, pages 300 à 304, 1960). Sa matrice de parité est :
Figure imgf000020_0008
On obtient une image binaire « en blocs » de la matrice H en remplaçant chaque élément ak par son équivalent binaire M (or*) de dimension 4x4, comme illustré sur la figure 6. En enlevant les parenthèses internes, on obtient une image binaire « aplatie » de la matrice H , comme illustré sur la figure 7.
La forme de la figure 6 est plus adaptée au procédé selon l'invention, chaque opération a{ j xi dans l'arithmétique de GF(2m) étant remplacée par un produit d'une matrice binaire mxm par une matrice binaire mx L lorsque l'on parallélise les traitements sur des paquets de L symboles de GF(2m).
L'invention peut être mise en œuvre au sein des nœuds, par exemple un nœud émetteur ou un nœud récepteur, de réseaux de communication, au moyen de composants logiciels et/ou matériels.
Les composants logiciels pourront être intégrés à un programme d'ordinateur classique de gestion de nœud de réseau. C'est pourquoi, comme indiqué ci-dessus, la présente invention concerne également un système informatique. Ce système informatique comporte de manière classique une unité centrale de traitement commandant par des signaux une mémoire, ainsi qu'une unité d'entrée et une unité de sortie. De plus, ce système informatique peut être utilisé pour exécuter un programme d'ordinateur comportant des instructions pour la mise en œuvre de l'un quelconque des procédés de codage, ou de décodage, de paquets de données selon l'invention.
En effet, l'invention vise aussi un programme d'ordinateur téléchargeable depuis un réseau de communication comprenant des instructions pour l'exécution des étapes d'un procédé de codage, ou de décodage, de paquets de données selon l'invention, lorsqu'il est exécuté sur un ordinateur. Ce programme d'ordinateur peut être stocké sur un support lisible par ordinateur et peut être exécutable par un microprocesseur.
Ce programme peut utiliser n'importe quel langage de programmation, et se présenter sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations, inamovible, ou partiellement ou totalement amovible, lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou un moyen d'enregistrement magnétique, tel qu'un disque dur, ou encore une clé USB (« USB flash drive » en anglais).
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme d'ordinateur selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
En variante, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution de l'un quelconque des procédés de codage, ou de décodage, de paquets de données selon l'invention.

Claims

R E V E N D I C A T I O N S
1. Procédé de codage de paquets de données, comprenant les étapes suivantes :
- réception de k≥ 1 paquets de données utiles, chaque paquet de données utiles contenant L≥\ symboles constitués chacun d'une suite de m > l bits, et
- codage desdits paquets de données utiles de manière à obtenir n > k paquets codés contenant chacun L symboles constitués d'une suite de m bits, ledit codage étant réalisé au moyen d'un code linéaire
Figure imgf000023_0005
de longueur n et de dimension k opérant sur le corps d'extension binaire G ) défini au
Figure imgf000023_0004
moyen d'un polynôme primitif choisi,
caractérisé en ce que ladite étape de codage des paquets de données utiles comprend au moins une sous-étape de multiplication de tous les
Figure imgf000023_0003
symboles d'un paquet de données dans lequel pour
Figure imgf000023_0002
Figure imgf000023_0009
Figure imgf000023_0001
est un symbole composé d'une suite de m bits où
Figure imgf000023_0010
Figure imgf000023_0013
par un même nombre a appartenant à et en ce que
Figure imgf000023_0011
ladite multiplication est effectuée de la manière suivante :
a) on remplit une matrice binaire X de dimension mxL en plaçant les bits composant chaque symbole le long de la j -ième colonne de
Figure imgf000023_0014
Figure imgf000023_0012
ladite matrice X ;
b) on calcule la matrice binaire
Figure imgf000023_0006
de dimension mxL, où M (a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs
Figure imgf000023_0007
en obtenant les lignes de ladite matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M ; et
Figure imgf000023_0008
c) on obtient le paquet de données Q dans lequel
Figure imgf000024_0003
chaque symbole pour est composé des m bits où
Figure imgf000024_0018
Figure imgf000024_0002
Figure imgf000024_0022
Figure imgf000024_0001
situés sur la j -ième colonne de ladite matrice Y .
2. Procédé de codage selon la revendication 1 , caractérisé en ce que lesdites matrices
Figure imgf000024_0016
pour
Figure imgf000024_0017
; , sont extraites d'une matrice de référence T de dimension
Figure imgf000024_0004
3. Procédé de décodage de paquets de données, comprenant les étapes suivantes :
- réception de n > \ paquets de données codés, chaque paquet de données codé contenant L≥l symboles constitués d'une suite de m
Figure imgf000024_0021
bits, lesdits paquets de données ayant été codés au moyen d'un code linéaire
Figure imgf000024_0020
de longueur n et de dimension k , où , opérant sur le corps d'extension
Figure imgf000024_0019
binaire GF (2™ ) , et
- décodage desdits paquets de données codés de manière à obtenir k paquets de données utiles contenant chacun L symboles constitués d'une suite de m bits,
caractérisé en ce que ladite étape de décodage des paquets de données codés comprend au moins une sous-étape de multiplication
Figure imgf000024_0010
de tous les symboles d'un paquet de données dans lequel pour
Figure imgf000024_0008
Figure imgf000024_0009
Figure imgf000024_0006
est un symbole composé d'une suite de m bits où
Figure imgf000024_0011
Figure imgf000024_0007
par un même nombre a appartenant à , et en ce que
Figure imgf000024_0012
ladite multiplication est effectuée de la manière suivante :
a) on remplit une matrice binaire X de dimension
Figure imgf000024_0014
en plaçant les bits composant chaque symbole le long de la j -ième colonne de
Figure imgf000024_0015
Figure imgf000024_0013
ladite matrice X ;
b) on calcule la matrice binaire
Figure imgf000024_0005
de dimension mx L , où la matrice M (a) est la matrice binaire de dimensions m x m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs en obtenant les lignes de ladite
Figure imgf000025_0003
matrice Y au moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice ; et
Figure imgf000025_0005
c) on obtient le paquet de données
Figure imgf000025_0004
dans lequel chaque symbole t pour est composé des m bits yij t
Figure imgf000025_0001
Figure imgf000025_0002
situés sur la j -ième colonne de ladite matrice Y .
Figure imgf000025_0008
4. Procédé de décodage selon la revendication 3, caractérisé en ce que lesdites matrices M(a) , pour
Figure imgf000025_0006
sont extraites d'une matrice de référence T de dimension m
Figure imgf000025_0007
5. Dispositif de codage de paquets de données, comprenant des moyens pour :
- recevoir k≥l paquets de données utiles, chaque paquet de données utiles contenant L≥\ symboles constitués chacun d'une suite de m > l bits, et
- coder lesdits paquets de données utiles de manière à obtenir n > k paquets codés contenant chacun L symboles constitués d'une suite de m bits, ledit codage étant réalisé au moyen d'un code linéaire
Figure imgf000025_0013
de longueur n et de dimension k opérant sur le corps d'extension binaire défini au
Figure imgf000025_0014
moyen d'un polynôme primitif choisi,
caractérisé en ce qu'il comprend en outre, dans le but d'effectuer une multiplication requise pour le codage des paquets de données utiles,
Figure imgf000025_0009
de tous les symboles d'un paquet de données dans lequel xj t
Figure imgf000025_0012
pour j est un symbole composé d'une suite de m bits où
Figure imgf000025_0010
Figure imgf000025_0015
Figure imgf000025_0011
par un même nombre a appartenant à des moyens
Figure imgf000025_0016
pour : - remplir une matrice binaire X de dimension mxL en plaçant les bits xv composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
- calculer la matrice binaire
Figure imgf000026_0001
de dimension où est la matrice binaire de dimensions mxm dont
Figure imgf000026_0010
Figure imgf000026_0011
les colonnes respectives contiennent les coordonnées binaires des éléments respectifs en obtenant les lignes de ladite matrice Y au
Figure imgf000026_0002
moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice M (a) ; et
- obtenir le paquet de données
Figure imgf000026_0003
dans lequel chaque symbole y ; , pour est composé des m bits
Figure imgf000026_0004
Figure imgf000026_0008
situés sur la j -ième colonne de ladite matrice Y .
6. Dispositif de codage selon la revendication 5, caractérisé en ce qu'il comprend en outre des moyens pour extraire lesdites matrices
Figure imgf000026_0009
pour
Figure imgf000026_0007
et
Figure imgf000026_0006
d'une matrice de référence T de dimension
Figure imgf000026_0005
7. Dispositif de décodage de paquets de données, comprenant des moyens pour :
- recevoir n > \ paquets de données codés, chaque paquet de données codé contenant L≥\ symboles constitués d'une suite de m > l bits, lesdits paquets de données ayant été codés au moyen d'un code linéaire C(n,k) de longueur n et de dimension k , où l≤k < n , opérant sur le corps d'extension binaire GF (2™ ) , et
- décoder lesdits paquets de données codés de manière à obtenir k paquets de données utiles contenant chacun L symboles constitués d'une suite de m bits, caractérisé en ce qu'il comprend en outre, dans le but d'effectuer une multiplication Q = a P , requise pour le décodage des paquets de données codés, de tous les symboles d'un paquet de données p = (xl t—,xL) dans lequel Xj , pour j =i,- - -,L, est un symbole composé d'une suite de m bits xv , où i =0,- - -,m-l, par un même nombre a appartenant à GF (2m) , des moyens pour :
- remplir une matrice binaire X de dimension mxL en plaçant les bits xv composant chaque symbole Xj le long de la j -ième colonne de ladite matrice X ;
- calculer la matrice binaire
Figure imgf000027_0001
de dimension mxL, où M (a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs en obtenant les lignes de ladite matrice Y au
Figure imgf000027_0002
moyen d'additions binaires de lignes de la matrice X selon des motifs déterminés par les lignes de la matrice
Figure imgf000027_0007
( ) et
- obtenir le paquet de données ( ) dans lequel chaque
Figure imgf000027_0006
symbole t pour est composé des m bits
Figure imgf000027_0003
Figure imgf000027_0004
Figure imgf000027_0005
situés sur la j -ième colonne de ladite matrice Y .
8. Dispositif de décodage selon la revendication 7, caractérisé en ce qu'il comprend en outre des moyens pour extraire lesdites matrices M (α) , pour
Figure imgf000027_0009
et d'une matrice de référence T de dimension
Figure imgf000027_0010
Figure imgf000027_0008
9. Nœud émetteur, caractérisé en ce qu'il comprend un dispositif de codage selon la revendication 5 ou la revendication 6.
10. Nœud récepteur, caractérisé en ce qu'il comprend un dispositif de décodage selon la revendication 7 ou la revendication 8.
11. Système de transmission (R) de données, comprenant au moins un nœud émetteur (1) selon la revendication 9 et au moins un nœud récepteur (2) selon la revendication 10, mutuellement connectés par un canal (T) sujet à des effacements de paquets.
12. 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é de codage de paquets de données selon la revendication 1 ou la revendication 2, ou d'un procédé de décodage de paquets de données selon la revendication 3 ou la revendication 4.
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é de codage de paquets de données selon la revendication 1 ou la revendication 2, ou d'un procédé de décodage de paquets de données selon la revendication 3 ou la revendication 4, lorsqu'il est exécuté sur un ordinateur.
PCT/FR2017/053586 2016-12-23 2017-12-14 Codage et de décodage de paquets de données dans un corps de galois WO2018115648A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1663339 2016-12-23
FR1663339A FR3061393B1 (fr) 2016-12-23 2016-12-23 Procedes de codage et de decodage de paquets de donnees dans un corps de galois

Publications (1)

Publication Number Publication Date
WO2018115648A1 true WO2018115648A1 (fr) 2018-06-28

Family

ID=58609545

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2017/053586 WO2018115648A1 (fr) 2016-12-23 2017-12-14 Codage et de décodage de paquets de données dans un corps de galois

Country Status (2)

Country Link
FR (1) FR3061393B1 (fr)
WO (1) WO2018115648A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366074A (zh) * 2023-03-17 2023-06-30 武汉大学 基于二元扩域及提高满度比的lt码混合编解码方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080377A1 (en) * 2004-10-13 2006-04-13 Hung-Ming Chien Galois field multiplier and multiplication method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080377A1 (en) * 2004-10-13 2006-04-13 Hung-Ming Chien Galois field multiplier and multiplication method thereof

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
I. REED; G. SOLOMON: "Polynomial codes over certain finite fields", J. SOC. INDUST. APPL. MATH, vol. 8, 1960, pages 300 - 304, XP000607949, DOI: doi:10.1137/0108018
JAMES S PLANK, KEVIN M GREENAN EECS DEPARTMENT UNIVERSITY OF TENNESSEE , EMC BACKUP RECOVERY SYSTEMS DIVISION: "Screaming Fast Galois Field Arithmetic Using Intel SIMD Instructions", USENIX, ADVANCED COMPUTING SYSTEMS ASSOCIATION, 11 April 2013 (2013-04-11), pages 1 - 8, XP061014071 *
NICOLA PETRA ET AL: "High speed galois fields GF(2m) multipliers", 18TH EUROPEAN CONFERENCE ON CIRCUIT THEORY AND DESIGN (ECCTD), 2007, IEEE, PISCATAWAY, NJ, USA, 27 August 2007 (2007-08-27), pages 468 - 471, XP031257785, ISBN: 978-1-4244-1341-6 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366074A (zh) * 2023-03-17 2023-06-30 武汉大学 基于二元扩域及提高满度比的lt码混合编解码方法及系统
CN116366074B (zh) * 2023-03-17 2024-02-09 武汉大学 基于二元扩域及提高满度比的lt码混合编解码方法及系统

Also Published As

Publication number Publication date
FR3061393B1 (fr) 2019-08-23
FR3061393A1 (fr) 2018-06-29

Similar Documents

Publication Publication Date Title
EP0891656B1 (fr) Procede et dispositif de codage convolutif de blocs de donnees, et procede et dispositif de decodage correspondants
Fritzmann et al. Analysis of error-correcting codes for lattice-based key exchange
FR2905210A1 (fr) Procede et dispositif de decodage par couches d&#39;une succession de blocs encodes avec un code ldpc
FR2905209A1 (fr) Procede et dispositif de decodage de blocs encodes avec un code ldpc
WO2008095784A1 (fr) Procede de codage de donnees
FR2785743A1 (fr) Dispositif et procede d&#39;adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
TWI392267B (zh) 提供線性消除碼之方法與裝置
EP1959572B1 (fr) Procédé de décodage à passage de messages et à convergence forcée
EP1905157B1 (fr) Procede et systeme d&#39;encodage d&#39;une sequence de donnees
US9071277B1 (en) Correction of structured burst errors in data
EP2833555B1 (fr) Procede ameliore de decodage d&#39;un code correcteur avec passage de message, en particulier pour le decodage de codes ldpc ou codes turbo
WO2018115648A1 (fr) Codage et de décodage de paquets de données dans un corps de galois
EP1527521B1 (fr) Dispositif et procede de decodage robuste de codes arithmetiques
FR3035286A1 (fr) Procedes de codage et decodage a protection differenciee
EP2766996B1 (fr) Codage et decodage correcteur d&#39;erreurs
FR2995162A1 (fr) Methode d&#39;optimisation de l&#39;efficacite spectrale d&#39;une transmission de donnees et dispositif mettant en oeuvre la methode
JP5952971B2 (ja) 通信路復号方法及び通信路復号装置
FR2972878A1 (fr) Procede d&#39;encodage correcteur d&#39;erreur, procede de decodage et dispositifs associes.
FR3064858B1 (fr) Procedes de codage et de decodage de paquets de donnees dans un corps de galois
EP1471647A2 (fr) Codage et décodage utilisant un code construit sur un treillis dont les sections sont basées sur des codes en bloc à bonne distance
FR3013924A1 (fr) Procede et dispositif de codage de paquets de donnees numeriques, et procede et dispositif de correction d&#39;effacements
FR2847398A1 (fr) Codes sesqui-rs doubles et leur decodage
FR2871311A1 (fr) Correction d&#39;effacements de demodulation pour le decodage par agregats
WO2015107315A1 (fr) Codage et décodage de code linéaire à partir de treillis
FR2944167A1 (fr) Procede de decodage par re-encodage, dispositif et programme d&#39;ordinateur correspondants

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: 17822428

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: 17822428

Country of ref document: EP

Kind code of ref document: A1