FR3061393A1 - Procedes de codage et de decodage de paquets de donnees dans un corps de galois - Google Patents
Procedes de codage et de decodage de paquets de donnees dans un corps de galois Download PDFInfo
- Publication number
- FR3061393A1 FR3061393A1 FR1663339A FR1663339A FR3061393A1 FR 3061393 A1 FR3061393 A1 FR 3061393A1 FR 1663339 A FR1663339 A FR 1663339A FR 1663339 A FR1663339 A FR 1663339A FR 3061393 A1 FR3061393 A1 FR 3061393A1
- Authority
- FR
- France
- Prior art keywords
- matrix
- bits
- binary
- data packets
- dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 92
- 229940050561 matrix product Drugs 0.000 claims description 13
- 238000004590 computer program Methods 0.000 description 9
- 238000007792 addition Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/158—Finite field arithmetic processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
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 paquets. Application à la transmission de paquets de données binaires sur des canaux à effacements.
Description
Titulaire(s) :
ORANGE Société anonyme.
O Demande(s) d’extension :
(® Mandataire(s) : ORANGE.
(54) PROCEDES DE CODAGE ET DE DECODAGE DE PAQUETS DE DONNEES DANS UN CORPS DE GALOIS.
FR 3 061 393 - A1 (ST) 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 paquets.
Application à la transmission de paquets de données binaires sur des canaux à effacements.
l'>
PROCEDES DE 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 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» R = k/n, sont des paramètres importants du code; en particulier, un code de distance minimale d permet de corriger (d -1) 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 (n-i)xn, dite matrice de parité : un mot X = (*!,···,*„) de longueur n donné est un mot de code si, et seulement si, il vérifie la relation : H · XT = 0 (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 à aJ 1 pour une valeur correspondante de j, où j = 1,...,^-1, et où a est une racine (g-l)eme primitive de l'unité dans GF(q). Lorsque, en particulier, q = 2m, où m>l, le corps de Galois est également 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 à GF(2m) (chaque symbole est donc composé de m bits).
En supposant que l’on utilise un code linéaire, le codage est effectué sur n paquets p2, ···, pn} (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 C(n,k) de longueur n et de dimension k .
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 (m = l) sur le plan du rendement R = k/n et de la distance minimale relative δ = d /n. L'arithmétique de ces corps d'extension met en oeuvre l'addition bit à bit, et la multiplication d’éléments dans GF (2m). L’addition bit à bit est simple à mettre en oeuvre, 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 GF(2m) 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 deGF(2m), c'est-à-dire des combinaisons linéaires de paquets avec des coefficients pris dans GF(2m). On remarque aussi que c’est l’opération élémentaire mise en oeuvre dans le codage de réseau linéaire, mentionné brièvement ci-dessus.
Or, lorsqu’il faut multiplier tous les éléments d’un vecteur donné X = (xp···,xn) composé d’éléments de GF(2m) par un même élément a de GF(2m), on ne peut pas consulter ladite table de multiplication de façon vectorielle ; autrement dit, il faut consulter la table pour chaque élément xt 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>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 = (^,---,xL) dans lequel x7, pour j=l,···,£, est un symbole composé d’une suite de m bits xI7, où f = 0,---,m-l, par un même nombre a appartenant à GF(2m),eten ce que ladite multiplication est effectuée de la manière suivante :
a) on remplit une matrice binaire X de dimension mx L en plaçant les bits χν composant chaque symbole x7 le long de la j-ième colonne de ladite matrice X ;
b) on calcule une matrice binaire Y, de dimension m x L, définie par le produit matriciel
Y = M(a) x X, où M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m—1 1 a, a a, ···, a a j ; et
c) on obtient le paquet de données 2 = (yP---,yL), dans lequel chaque symbole y7 , pour j = 1,2,···,£, est composé des m bits yI7, où f = 0,··situés sur la 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 paquets. La présente invention est donc particulièrement avantageuse car, si elle permet une mise en oeuvre 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 a = a‘ et i = 1,2,---,m-l, sont extraites d’une matrice de référence T de dimension mx(2m +m-2j.
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 oeuvre 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 η > 1 paquets de données codés, chaque paquet de données codé contenant L>\ symboles constitués d’une suite de m > 1 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ù 1 < k < n , opérant sur le corps d’extension binaire GF(2m), 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 P = (xx,---,xL) dans lequel x7, pour j=l,···,£, est un symbole composé d’une suite de m bits xI7, où r=0,---,m-l, par un même nombre a appartenant à 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 x7 le long de la j-ième colonne de ladite matrice X ;
b) on calcule une matrice binaire Y, de dimension mxL, définie par le produit matriciel
Y = M(a) x X, où la matrice M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {a, a a, -, am'a } ; et
c) on obtient le paquet de données Q = (^,---,^), dans lequel chaque symbole yp pour j= 1,2,···,£, est composé des m bits , où z =0,··-,m—l, situés sur la j-ième colonne de ladite matrice Y.
Les avantages offerts par ce procédé de décodage sont essentiellement les mêmes que ceux offerts par le procédé de codage succinctement exposés cidessus.
Selon des caractéristiques particulières, lesdites matrices M(a), pour a = a‘ et i = 1,2,---,m-l, sont extraites d’une matrice de référence T de dimension mx(2m +m-2j.
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 oeuvre 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 > 1 paquets de données utiles, chaque paquet de données utiles contenant L>\ symboles constitués chacun d’une suite de m > 1 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,£) 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 = (xx,---,xL) dans lequel , pour j = 1, -,L, est un symbole composé d’une suite de m bits xi}, où ΐ = 0,···,ιη-1, 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 composant chaque symbole le long de la j-ième colonne de ladite matrice X;
- calculer une matrice binaire Y, de dimension mx L, définie par le produit matriciel
Y = M(a) x X, où M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m-1 1
a. a a. · · ·, a a / ; et
-obtenir le paquet de données Q = {yx,---,yL), dans lequel chaque symbole yy, pour j=l,2,···,£, est composé des m bits yy, où i=0, 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 a = a' et i = 1,2,···,m-1, d’une matrice de référence T de dimension mx (2m +m — 2).
L’invention concerne aussi, deuxièmement, un dispositif de décodage de paquets de données, comprenant des moyens pour :
- recevoir η > 1 paquets de données codés, chaque paquet de données codé contenant L>\ symboles constitués d’une suite de m > 1 bits, lesdits paquets de données ayant été codés au moyen d’un code linéaire C(n,£) de longueur n et de dimension k, où 1 < k < n , opérant sur le corps d’extension binaire GF (2m), 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 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) dans lequel x7, pour j=l, ···,£, est un symbole composé d’une suite de m bits xi}, où ΐ=0,···,ιη-1, par un même nombre a appartenant à GF (2m), des moyens pour :
- remplir une matrice binaire X de dimension m/L en plaçant les bits composant chaque symbole x7 le long de la j-ième colonne de ladite matrice X;
- calculer une matrice binaire Y, de dimension m/L, définie par le produit matriciel
Y = M(a) x X, où M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m-1 1
a. a a. · · ·, a a j ; et
-obtenir le paquet de données 2 = (^,---,^), dans lequel chaque symbole y7, pour j=l,2,···,£, est composé des m bits ytj, où i=0,1, 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 a = a' et i = 1,2,---,m-l, d’une matrice de référence T de dimension mx(2m + m — 2).
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 GF (2m), c’est-à-dire la même 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é cidessus, 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 {pp p2, ···, pn}, 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 m / L,
- la figure 6 représente une image binaire « en blocs >> d’une matrice de parité d’un code opérant sur gf (2m), et
- 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 GF(2m), où m > 1. On entend par là qu’à tout symbole donné composé de m bits xÿ, où i = 0,---,^-1, on associe l’élément de GF (2m), noté x}dont les coordonnées binaires sur une base canonique [1, a, a2, , am l] choisie sont précisément lesdits bits ; autrement dit :
m-1 XJ = Σχϋαί ’ i=0 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 GF(2m) uniquement au moyen d’additions binaires (on rappelle que l’addition binaire est également appelée « OU exclusif >>, et notée « XOR >>).
Prenons un exemple dans le corps GF(24) construit à partir du polynôme primitif p(X) = X4 + X + 1, où a vérifie l’équation: a4=l + a. Le résultat de la multiplication de l’élément x = x0 + x1 a + x2 a2 + x3a3, de coordonnées binaires x;e{o,l}, par l’élément a = a0 + a1a+ a2a2+a3a3, de coordonnées binaires ai e {0,1}, est l’élément y = y0 + y1 a + y2 a2 + y3a3 dont les coordonnées binaires y. e {0,1} sont obtenues comme suit :
y0
Fi y2 y3 aa a2 a a3 a
par définition de la matrice M(a), dont les colonnes successives sont constituées par les coordonnées binaires des éléments a, a a , a 2 a et a3 a de
GF(24) successivement. Pour calculer ces colonnes, on notera, par exemple, que
3 4 2 3 / \ oc a = aQoc + oc + a2 oc + a3a = aQa + αλ a + a2oc + a3 (1 + a ) = a3 + (β3 + βθ^όζ + β1 oc + ββ oc
On procède de la même façon pour oFa et a3a . Le résultat final est :
To
Tl y2 y3
ao | a3 | rz2 | ÎZj | ||
al | βθ | i ol 2 | a2 | + β. | X |
a2 | ax | ίΖβ 1 | a3 | + rz2 | |
a3 | a2 | a3 | + û0_ |
Dans le cas général d’un corps GF(2m) pour m quelconque, on calcule : Y=M(à)xX, (1) où :
• X est le vecteur colonne contenant les m coordonnées binaires e {0,1} de x, • Y est le vecteur colonne contenant les m coordonnées binaires y,, e {0,1} de y , et • la matrice M(a), où a e GF (2m), est la matrice binaire mxm dont les colonnes contiennent les coordonnées binaires des éléments [a, a a, ·, am~xa } de GF(2m), soit
On dira que la matrice M(a) est « l’équivalent binaire » de l’élément a pour la multiplication dans GF(2m).
Comme tous les éléments non-nuls de GF(2m) peuvent être écrits sous la forme a = ak pour un certain entier 0 < k < 2m -2, on peut se contenter de considérer les matrices
M(ak) = ak ak+x ··· ak+m~x associées aux puissances consécutives de a .
On notera que toutes ces matrices peuvent être obtenues en consultant une « grande » matrice binaire = 1 a a a ··· a 1 a ··· a , n-2 -1 de dimension +m-2), construite préalablement, dont les colonnes contiennent les coordonnées de ak pour k > 0 . Dans cette matrice T , que l’on appellera «matrice de référence», les (m-1) dernières colonnes sont une simple copie des (m-1) premières colonnes. M(ak) est alors la sous-matrice obtenue en extrayant les colonnes n° (k + 1) à (k + m) de la matrice de référence T , ce que l’on notera ainsi :
M(ak) = T(:,k+l:k+m), pour £ = 0,1,---,2°1-2.
Par définition, le produit de deux éléments a = ak et b = al * est égal à où (£ + /) = (£ + /)mod(2m -1), de sorte que la matrice associée au produit ak xa‘ est Μ(α^), que l’on peut lire directement dans la matrice de référence T ; on peut ainsi obtenir très simplement le produit des matrices M(ak) et M(al) par :
M(ak)xM(a‘) = M(a{k+l}).
De la même manière, la matrice associée à l’inverse d’un élément a = ak est ' =M(an~k), puisque M(ak) xM(an k) = M(a{'k n k'‘) = M(cr°), qui est la matrice identité.
Si l’on prend le même exemple sur GF(24) (construit à partir du polynôme primitif p(X) = 1+ X + X4), la matrice de référence T est donnée
0001001101011110 0“
010011010111100010
001001101011110001’
000100110101111000 par :
de sorte que, par exemple :
M(«4) =
’l | 0 | 0 | 1’ | ’l | 0 | 1 | f | ’l | 1 | 0 | 0’ | ||
1 | 1 | 0 | 1 | ,M(cr10) = | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | |
0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | ,M(cr14) = | 0 | 0 | 0 | 1 | |
0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
par exemple, que le des matrices
On vérifie facilement, produit M(a4)xM(cr10) est bien égal à M(cr14) comme prévu.
binaires
En poursuivant le même exemple, on trouve :
M(«5) =
Ό | 0 | 1 | f | “1 | 0 | 0 | 0’ | |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | |
, et M(cr5)xM(cr10) = | ||||||||
1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
[m(a10)] ou encore [μ(«5)] 1 = M(a10).
de sorte que M(a5) =
Comme autre exemple, la multiplication par a9 = a + a3 dans GF(24) est donnée par le produit matriciel :
To
Tl y2 t3
Ό | 1 | 0 | f | %o | xl + x3 | ||
1 | 1 | 1 | 1 | X | x0+xl+x2 + x3 | ||
0 | 1 | 1 | 1 | *2 | xt+x2 + x3 | ||
1 | 0 | 1 | 1 | xQ+x2 + x3 |
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 GF(2m') par tout élément a e GF (2m) sur la base de l’équation (1) ci-dessus 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 a e GF (2m) au niveau des paquets.
Le produit matriciel de l’équation (1) peut être aisément parallélisé lorsque chaque est un vecteur binaire de longueur L. Par exemple, la multiplication par un élément a dans GF(24) devient :
?0.1 ’ | ^0.2’ | -, y0.L | a0 | a3 | zz2 | ax | Λη.ι ’ %o,2 ’ ’ ’ | ’ ’ X0,L | ||
Λ1’ | Λ.2’ | •Ji,z | — | ûj | a3 + ûj | X | y.l’ Xl.2’ | ’’ X1,L | ||
y2.i’ | ^2,2’ | ’ y2,L | zz2 | ax | ίΖβ 1 ÎZq | ίΖβ 1 | *2,1 ’ *2,2’ | ’ ’ X 2,L | ||
y?,2’ | ’ y3.L | a3 | a2 | i ^ζθ | *3,1’ X 3 .2, | ’ ’ X 3.L |
où, avantageusement, toutes les opérations sont effectuées dans GF(2).
On utilisera ci-après la notation x(z,:) = (x; 1; x; 2, ···, xiL) pour dénoter la ligne n° i d’une matrice x de dimension mx L ; le produit matriciel ci-dessus peut alors être commodément vu comme mettant en oeuvre des XORs de ces lignes x(z,:). Par exemple, la multiplication par cr9 = a + a3 présentée ci-dessus peut être commodément écrite sous la forme :
“0 10 1“ | x(0,:) | x(l,:)+x(3,:) | ||||
1111 | x(l,:) | χ(θ, :) + x(l, :) + x(2, :) + x(3, :) | ||||
y(2·:) | 0 111 | X | x(2,:) | x(l,:)+x(2,:) + x(3,:) | ||
10 11 | x(3,:) | χ(θ, :) + x(2, :) + x(3, :) |
Les considérations ci-dessus expliquent comment on peut, au cours du codage ou du décodage dans un corps de Galois GF (2m), où m > 1, défini au moyen d’un polynôme primitif prédéterminé, calculer un paquet Q = a P, où le nombre a appartient à GF(2m),et P est un paquet de données P = (x1,---,xL), dans lequel x7, pour avec L>1, est un symbole composé d’une suite de m bits xn, où lJ
Selon le présent mode de réalisation, on met en oeuvre les sous-étapes suivantes.
a) On remplit une matrice binaire X de dimension mx L en plaçant les bits χν composant chaque symbole x7 le long de la j-ième colonne, comme illustré schématiquement sur la figure 5. On désigne par x(z,:) la z'-ème ligne, où Z = 0---m-l, de cette matrice X. Autrement dit, si l’on regarde le paquet P comme une ligne de bits numérotés de 1 à m x L, la ligne x(z,:) est définie par :
x(z,: ) = P[z +1 + / zn], Ζ = 0···Ρ-1.
b)
On calcule la matrice binaire Y, de dimension mxL, au moyen du produit matriciel :
Y = M(a) x X, 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(«). On opère ainsi, avantageusement, de manière vectorielle sur les L symboles du paquet P.
c) On obtient finalement le paquet <2 = 6w·· ,yL), dans lequel chaque symbole y7 , pour j= 1,2,···,£, est composé des m bits , où situés sur la j-ième colonne de la matrice Y obtenue 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 a{j appartiennent à où m > 1.
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 GA'(2':j par leurs équivalents binaires mxm définis cidessus. 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 GF(24) (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 :
a a1
a
On obtient une image binaire « en blocs >> de la matrice H en remplaçant chaque élément ak par son équivalent binaire M^a'} 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 atj xj dans l’arithmétique de Gf(2”) étant remplacée par un produit d’une matrice binaire mxm par une matrice binaire mxL lorsque l’on parallélise les traitements sur des paquets de L symboles de Gf(2”).
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 5 é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 10 ê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 (11)
- REVENDICATIONS1. 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, caractérisé 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 = (x1;···,xL) dans lequel , pour j =1,···,£, est un symbole composé d’une suite de m bits xÿ,où i=0,1 , par un même nombre a appartenant à 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 mx L en plaçant les bits composant chaque symbole le long de la j-ième colonne de ladite matrice X ;b) on calcule une matrice binaire Y, de dimension m x L, définie par le produit matricielY = M(a) x X, où M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m-1 1a. a a. · · ·, a a j ; etc) on obtient le paquet de données Q = {yx,---,yL), dans lequel chaque symbole pour j= 1,2,···,£, est composé des m bits yy, où r=0,···,m-1, 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 M(a), pour a = a1 et i = 1,2,•,λτζ—1, sont extraites d’une matrice de référence T de dimension mx(2m +m-2j.
- 3. Procédé de décodage de paquets de données, comprenant les étapes suivantes :- réception de η > 1 paquets de données codés, chaque paquet de données codé contenant L>1 symboles constitués d’une suite de m > 1 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ù 1 < k < n , opérant sur le corps d’extension binaire GF (2m), 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 Q = a P de tous les symboles d’un paquet de données P = ,xL) dans lequel x7, pour j =1,···,£, est un symbole composé d’une suite de m bits xÿ,où , par un même nombre a appartenant à 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 x7 le long de la j-ième colonne de ladite matrice X ;b) on calcule une matrice binaire Y, de dimension mxL, définie par le produit matricielY = M(a) x X, où la matrice M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {a, aa, ·, am'a } ; etc) on obtient le paquet de données Q = (^,---,^), dans lequel chaque symbole yp pour j= 1,2,···,£, est composé des m bits , où f =0,··situés sur la j-ième colonne de ladite matrice Y.
- 4. Procédé de décodage selon la revendication 3, caractérisé en ce que lesdites matrices M(a), pour a = a1 et i = 1,2,•••,ζη-Ι, sont extraites d’une matrice de référence T de dimension mx(2m +m-2j.
- 5. Dispositif de codage de paquets de données, comprenant des moyens pour :- recevoir 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-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, caractérisé 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 = (x1;---,xL) dans lequel x7, pour j=l,---,L, est un symbole composé d’une suite de m bits xi}, où z=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 composant chaque symbole x} le long de la j-ième colonne de ladite matrice X;- calculer une matrice binaire Y, de dimension mxL, définie par le produit matricielY = M(a) x X, où M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m-1 1a. a a. · · ·, a a / ; et-obtenir le paquet de données Q = (yx,---,yL), dans lequel chaque symbole yy, pour j = l,2,···,£, est composé des m bits yy, où z=0,---,m-l, 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 M(a), pour a = a' et i = 1,2,---,m-l, d’une matrice de référence T de dimension mx (2m +m — 2).
- 7. Dispositif de décodage de paquets de données, comprenant des moyens pour :- recevoir n>l paquets de données codés, chaque paquet de données codé contenant L>\ symboles constitués d’une suite de m > 1 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ù 1 < k < n , opérant sur le corps d’extension binaire GF (2m), 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 = dans lequelXj, pour j=l,---,L, est un symbole composé d’une suite de m bits xÿ, 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 composant chaque symbole le long de la j-ième colonne de ladite matrice X;- calculer une matrice binaire Y, de dimension mx L, définie par le produit matricielY = M(a) x X, où M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m-1 1a. a a. · · ·, a a j ; et-obtenir le paquet de données Q = (yx,---,yL), dans lequel chaque symbole yp pour j = l,2,···,£, est composé des m bits où i=0,---,m~l, 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(a), pour a = a‘ et i = 1,2,---,m-l, d’une matrice de référence T de dimension mx (2m +m — 2).
- 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.1/3 un hio! (L <·<« k·
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1663339A FR3061393B1 (fr) | 2016-12-23 | 2016-12-23 | Procedes de codage et de decodage de paquets de donnees dans un corps de galois |
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 |
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 (2)
Publication Number | Publication Date |
---|---|
FR3061393A1 true FR3061393A1 (fr) | 2018-06-29 |
FR3061393B1 FR3061393B1 (fr) | 2019-08-23 |
Family
ID=58609545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1663339A Active FR3061393B1 (fr) | 2016-12-23 | 2016-12-23 | Procedes de codage et de decodage de paquets de donnees dans un corps de galois |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3061393B1 (fr) |
WO (1) | WO2018115648A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116366074B (zh) * | 2023-03-17 | 2024-02-09 | 武汉大学 | 基于二元扩域及提高满度比的lt码混合编解码方法及系统 |
Citations (1)
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 |
-
2016
- 2016-12-23 FR FR1663339A patent/FR3061393B1/fr active Active
-
2017
- 2017-12-14 WO PCT/FR2017/053586 patent/WO2018115648A1/fr active Application Filing
Patent Citations (1)
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 (2)
Title |
---|
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 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018115648A1 (fr) | 2018-06-28 |
FR3061393B1 (fr) | 2019-08-23 |
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 | |
EP2119095B1 (fr) | Procede de chiffrement a l'aide de codes correcteurs d'erreurs | |
EP2348640B1 (fr) | Codage systematique de codes de reaction en chaine | |
Fritzmann et al. | Analysis of error-correcting codes for lattice-based key exchange | |
FR2905210A1 (fr) | Procede et dispositif de decodage par couches d'une succession de blocs encodes avec un code ldpc | |
FR2905209A1 (fr) | Procede et dispositif de decodage de blocs encodes avec un code ldpc | |
FR2849514A1 (fr) | Code de geometrie algebrique adapte aux erreurs en rafale | |
EP1905157B1 (fr) | Procede et systeme d'encodage d'une sequence de donnees | |
US9071277B1 (en) | Correction of structured burst errors in data | |
FR2952252A1 (fr) | Procede et dispositif de decodage, produit programme d'ordinateur, moyen de stockage correspondants et noeud destination correspondants | |
FR3061393A1 (fr) | Procedes de codage et de decodage de paquets de donnees dans un corps de galois | |
FR2866998A1 (fr) | Decodage et correction d'erreurs pour codes de geometrie algebrique | |
FR2842672A1 (fr) | Dispositif et procede de decodage robuste de codes arithmetiques | |
EP2766996B1 (fr) | Codage et decodage correcteur d'erreurs | |
JP5952971B2 (ja) | 通信路復号方法及び通信路復号装置 | |
FR3060244A1 (fr) | Procede et dispositif de calcul d'un code correcteur | |
FR2972878A1 (fr) | Procede d'encodage correcteur d'erreur, procede de decodage et dispositifs associes. | |
FR3064858B1 (fr) | Procedes de codage et de decodage de paquets de donnees dans un corps de galois | |
EP2936714B1 (fr) | Procédé de brouillage d'un système de communication par insertion de motifs factices dans un flux de données à émettre | |
FR2880218A1 (fr) | Procede de decodage pour codes de geometrie algebrique et dispositif associe | |
FR3013924A1 (fr) | Procede et dispositif de codage de paquets de donnees numeriques, et procede et dispositif de correction d'effacements | |
Mouhoubi | New challenges in designing polar code decoders for 5G | |
FR2847398A1 (fr) | Codes sesqui-rs doubles et leur decodage | |
JP4727380B2 (ja) | 復号装置および方法、ならびに復調復号装置および方法 | |
KR101605972B1 (ko) | 순환 부호를 활용한 효율적인 코셋 부호화 방식 및 이러한 방식을 활용하는 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20180629 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |
|
PLFP | Fee payment |
Year of fee payment: 7 |
|
PLFP | Fee payment |
Year of fee payment: 8 |