FR3061393B1 - 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 PDF

Info

Publication number
FR3061393B1
FR3061393B1 FR1663339A FR1663339A FR3061393B1 FR 3061393 B1 FR3061393 B1 FR 3061393B1 FR 1663339 A FR1663339 A FR 1663339A FR 1663339 A FR1663339 A FR 1663339A FR 3061393 B1 FR3061393 B1 FR 3061393B1
Authority
FR
France
Prior art keywords
matrix
binary
bits
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.)
Active
Application number
FR1663339A
Other languages
English (en)
Other versions
FR3061393A1 (fr
Inventor
Patrick Tortelier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR1663339A priority Critical patent/FR3061393B1/fr
Priority to PCT/FR2017/053586 priority patent/WO2018115648A1/fr
Publication of FR3061393A1 publication Critical patent/FR3061393A1/fr
Application granted granted Critical
Publication of FR3061393B1 publication Critical patent/FR3061393B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (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

PROCEDES DE CODAGE ET DE DECODAGE DE PAOUETS 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 (J-l) 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-k)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 oeuvre 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 {/j, P2, ···, (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 > l) sont plus avantageux que les codes binaires (m = 1) sur le plan du rendement R = kln et de la distance minimale relative δ = dIn. 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 = (%!,···,%„) 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 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 > 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 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 %7, pour y =1,···,£, est un symbole composé d’une suite de m bits xI7, où 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 mxL en plaçant les bits χν composant chaque symbole %7 le long de la y'-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ù M(a) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {m—1 i a, a a, ···, a a j ; et c) on obtient le paquet de données 2 = (yP---,^), dans lequel chaque symbole y7 , pour y =1,2, ···,£, est composé des m bits yI7, où / = 0,··situés sur la y'-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 = l,2,---,m-l, sont extraites d’une matrice de référence T de dimension mx(2” +m-2).
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>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ù 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 %7, pour y =1,···,£, est un symbole composé d’une suite de m bits xI7, 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 mx L en plaçant les bits χν composant chaque symbole %7 le long de la y'-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ù 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ù / =0,-·-,m—l, situés sur la y'-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 ci-dessus.
Selon des caractéristiques particulières, lesdites matrices M(a), pour a = a‘ et i = l,2,---,m-l, sont extraites d’une matrice de référence T de dimension mx(2n +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 œ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 = Çxx,-,xL) dans lequel , pour y =1,···,£, est un symbole composé d’une suite de m bits xi}, 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 %7 le long de la y'-ième colonne de ladite matrice X; - calculer une matrice binaire Y, de dimension mxL, 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 Q = (yx,---,yL), dans lequel chaque symbole yy, pour y=l,2,···,£, est composé des m bits yy, où f=0,---,m-l, situés sur la y -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 f = 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>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ù 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 = (xj,---,xL) dans lequel %7, pour y =1, ···,£, est un symbole composé d’une suite de m bits xÿ, où r=0,---,m-l, 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 %7 le long de la y'-ième colonne de ladite matrice X; - calculer une matrice binaire Y, de dimension mxL, 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 y=l,2,···,£, est composé des m bits yI7, où i=0,--m-l, situés sur la y -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,---,171-1, d’une matrice de référence T de dimension mx(2” +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é 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 {pn 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 = on associe l’élément de GF(2m ), noté %7, dont les coordonnées binaires sur une base canonique [l, a, a2, , am lj choisie sont précisément lesdits bits xI7 ; 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 = +axa + a2a2 + a3a3, de coordonnées binaires e {o,l}, est l’élément y = y0 + a + y2 a2 + y3a3 dont les coordonnées binaires y. e {o,l} sont obtenues comme suit : y = ax = xoa + xt(aa) + x2(a2 «)+ x3(a3 a) %Ί r: ; ; ; ί M R>
Tl 2 3 X1 X1 = a a a a a a a x = M(a)x
; ; ; ; U U y3 x3 x3 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 2 3 4 2 3 Z" \ aa = aQa + a{ a + a2 a + a3a = aQa + ax a + a2oc + a3 (1 + a ) = o3 + (β3 + βθ^όζ + β1 oc + ββ oc
On procède de la même façon pour oFa et a3a . Le résultat final est : q βθ ^3 ^2 ai χθ y j ax a3 + βθ a3 + a2 a2 + ax Xj = x ^2 ^2 β-j β*3 ' β-Q β*3 ' β"2 *^2 3 ββ β"2 ββ ' β0 *^β
Dans le cas général d’un corps GF(2m) pour m quelconque, on calcule : Y =M(a)xX , (1) où : • X est le vecteur colonne contenant les m coordonnées binaires x; e {04} 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~la } de GF(2m'), soit M(a) = a aa a'" ' a .
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+l ··· associées aux puissances consécutives de a .
On notera que toutes ces matrices peuvent être obtenues en consultant une « grande » matrice binaire T1 Λ,2 ^,n-l 5 m-2 5 = 1 a a a ··· a 1 a ··· a , /? = 2 -1 de dimension mx(2m +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 + i) à (k + m) de la matrice de référence T , ce que l’on notera ainsi : M(ak) = T(:,k+l:k+m), pour k = 0,1,···,2'"-2.
Par définition, le produit de deux éléments a = ak et b = al est égal à
Olj (£ + ^ = (£ + /)mod(2m -l), de sorte que la matrice associée au produit akxal est M(a('k+l')), 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 [îW^z' )] ' = iWf/z" ' ), puisque M(ak ) x M(an k ) = M(fik n k'‘ ) = M(a°), 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 par : “1 0001001101011110 0“ 010011010111100010 T = 001001101011110001 000100110101111000 de sorte que, par exemple : Ί ο o il Γι ο i il Γ i i ο o“ , 110 1 ιη 1 1 1 0 14 0 0 1 0 Μ(«4)= ,Μ(«10)= ,Μ(«14) = 0110 1111 0001 0 0 1 lj L° 1 1 lj L1 θ θ θ
On vérifie facilement, par exemple, que le produit des matrices binaires Mia/xMia est bien égal à M(cr14) comme prévu.
En poursuivant le même exemple, on trouve : “0 0 1 il Γΐ 0 0 θ’
5 1010 5 ιη0100 M(«5)= ,et M(a5)xM(aw)= =M(lY 1101 0010 0 1 1 oj [o 0 0 1 de sorte que M(a5) = [m(a Ir’)]1, ou encore \m(a5)]1 = M(a10).
Comme autre exemple, la multiplication par «9 = a + a3 dans GF (24) est donnée par le produit matriciel : yn 0 10 1 %0 + x3
= 1 1 1 1 χ xi = u+u+u+u y2 0 111 %2 xl + %2 + U _uj L1 ° 1 U Lu J L u+u+u
On notera que cette expression n’utilise que des XORs des coordonnées binaires x. e {o,l} 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 : Τθ,1’ To,2’"To.L α0 α3 α2 αΐ Λ),1 ’ Λ),2 ’ " ' ’ Λ),£
Tl 1 ’ Τΐ 2 ’ ’ ’ ’ ’ Tl L «1 Ωβ + Ωθ Ωβ + Ωπ ^2 + ^1 Έ 1 ’ Έ 2 ’ ’ ’ ’ ’ Έ Ζ. Τ.’.ι · Τ’..’·"'· Τ’./ α2 (Ι] Ωβ + Ωθ Ωβ + ίΖ2 -'.’.Ι _Τ3,1’ Τ3,2’T3,L_ |_Ω3 α2 F ί/β + ί/θ J *3,1’ *3,2’’ ’ ’’ X3.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 mxL ; 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 «9 = a + a3 présentée ci-dessus peut être commodément écrite sous la forme : ’γ(θ,:)Ί Γθ 1 0 il Γχ(θ,:)Ί Γ x(l,:)+x(3,:) y(l,:) 1 1 1 1 x(l,:) _ χ(θ, :) + x(l, :) + x(2, :) + x(3, :) y(2,:) 0 111 x(2,:) x(l, :) + x(2, :) + x(3, :) y(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 > l, 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 y=l,---,L, avec L>1, est un symbole composé d’une suite de m bits x.., où i=0,---,/^-1. y
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 mxL en plaçant les bits xI7 composant chaque symbole x7 le long de la y-ième colonne, comme illustré schématiquement sur la figure 5. On désigne par x(z,:) la z-ème ligne, où ζ=0···ζη-1, 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 + / z«], Ζ = 0···Ρ-1. b) On calcule la matrice binaire Y, de dimension m / L, 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 = 6v·· ,yL), dans lequel chaque symbole y7, pour j =1,2,···,£, est composé des m bits yI7, où /=0,---,/11-1, situés sur la y'-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 à Gf(2“), 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 //, , g GA'(2": j par leurs équivalents binaires mxm définis ci-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 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 a2 a3 a4 a5 a6 a1 «8 «9 «10 a11 a12 a13 a,4~ 1 a2 a4 a6 a3 a10 a12 a14 a a3 a5 a1 a9 a11 a13
On obtient une image binaire « en blocs » de la matrice H en remplaçant chaque élément ak par son équivalent binaire M(ak} 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 é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 (11)

  1. REVENDICATIONS
    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 > 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 = (x,,···,xL ) dans lequel x., pour j = !,··,£, est un symbole composé d’une suite de m bits xÿ, où /-0,-,zw~l, par un même nombre a appartenant à GF(2m>)< et en ce que ladite multiplication est effectuée de ia manière suivante : a) on remplit une matrice binaire X de dimension mxL en plaçant les bits xfi composant chaque symbole x. le long de ia y'-ième colonne de ladite matrice X ; b) on calcule la matrice binaire Y = I/(û)xX de dimension mxL, où M(a) est la matrice binaire de dimensions mx.m dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs { a, ce a., ··, (X^'a j, en obtenant tes 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 c) on obtient te paquet de données Q-Çy^···,),^), dans lequel chaque symbole yp pour y = 1,2, ···,£, est composé des m bits yÿ, où i =Q,--,m-i, situés sur la / -sème colonne de ladite matrice Y.
  2. 2. Procédé de codage selon la revendication 1, caractérisé en ce que lesdites matrices M(a), pour a - a'; et / = 1,2, · -zw—1, sont extraites d’une matrice de référence T de dimension mx(2” + m-2).
  3. 3. Procédé de décodage de paquets de données, comprenant les étapes suivantes : - réception de η > ! paquets de données codés, chaque paquet de données codé contenant L > 1 symboles constitués d’une suite de m > i 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 = (.x,,···,xL) dans lequel x,, pour est un symbole composé d’une suite de m bits xÿ, où i = 0,···,/κ-1, par un même nombre a appartenant à GF (2ΓΛ), 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 xj; composant chaque symbole Xj te long de la j-ième colonne de ladite matrice X ; b) on calcule ia matrice binaire Y = M(a)xX de dimension m x L, où la matrice M (a) est la matrice binaire de dimensions mxm dont les coionnes respectives contiennent les coordonnées binaires des éléments respectifs {a, (Xa, ···, (Χη~Λα}, 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(o) ; et c) on obtient ie paquet de données 0 = dans iequel chaque symbole yJt pour j = 1,2,···,£, est composé des m bits yÿ, où i = 0,· · -,//2---1, situés sur la j -sème colonne de ladite matrice Y.
  4. 4. Procédé de décodage selon la revendication 3, caractérisé en ce que lesdites matrices M(à), pour a = a' et / = 1,2,---,///-1, sont extraites d’une matrice de référence T de dimension mx(2m
  5. 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 « et de dimension k opérant sur le corps d'extension binaire GF (2”) 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 = (%,,···,x£) dans lequel , pour j = !,--·,£, est un symbole composé d’une suite de m bits xÿ, où i =0,---,/72-1, par un même nombre a appartenant à GF (2m), des moyens pour : - remplir une matrice binaire X de dimension mxL en plaçant Ses bits composant chaque symbole xz le long de la j -ième colonne de ladite matrice X; - calculer la matrice binaire Y 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 {fl, (Xa, ···, }, 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 Signes de la matrice M(a) ; et -obtenir le paquet de données Q-(jg,···,yL), dans lequel chaque symbole y-, pour y=l,2,--,L, est composé des m bits yijt où i~Q,· ·,»?—!, situés sur la / -ième colonne de ladite matrice Y.
  6. 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 / = l,2,--,m-~·!, d’une matrice de référence T de dimension /îîX'U”'
  7. 7. 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 > 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 CF" ), 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 - (%,,··· ,¾) dans lequel x., 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(2ra), des moyens pour : - remplir une matrice binaire X de dimension mxL en plaçant les bits xÿ composant chaque symbole x. le long de la j -iôme colonne de ladite matrice X; - caicuier la matrice binaire Y = A/(a)xX de dimension mxL, où M(d) est la matrice binaire de dimensions mxm dont les colonnes respectives contiennent les coordonnées binaires des éléments respectifs {a, (Xa, ···, }, 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(a) ; et -obtenir ie paquet de données 0 = (^,,---,yL), dans lequel chaque symbole yjt pour j =1,2,··,£, est composé des m bits y1?, où / = 0,---,///-1, situés sur la j -ième colonne de ladite matrice Y.
  8. 8. Dispositif de décodage selon la revendication 7, caractérisé en ce qu’il comprend en outre des moyens pour extraire lesdites matrices Af(o), pour a-a' et / = 1,2,---,//2-1, d’une matrice de référence T de dimension mx{2m +m -2).
  9. 9. Nœud émetteur, caractérisé en ce qu’il comprend un dispositif de codage selon la revendication 5 ou la revendication 6.
  10. 10. Nœud récepteur, caractérisé en ce qu’ii comprend un dispositif de décodage selon la revendication 7 ou la revendication 8.
  11. 11. Système de transmission (R) de données, comprenant au moins un nœud émetteur (1) selon ia 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.
FR1663339A 2016-12-23 2016-12-23 Procedes de codage et de decodage de paquets de donnees dans un corps de galois Active FR3061393B1 (fr)

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
FR1663339A FR3061393B1 (fr) 2016-12-23 2016-12-23 Procedes de codage et de decodage de paquets de donnees dans un corps de galois
FR1663339 2016-12-23

Publications (2)

Publication Number Publication Date
FR3061393A1 FR3061393A1 (fr) 2018-06-29
FR3061393B1 true 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)

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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI253011B (en) * 2004-10-13 2006-04-11 Promise Technology Inc Galois field multiplier and multiplication method thereof

Also Published As

Publication number Publication date
FR3061393A1 (fr) 2018-06-29
WO2018115648A1 (fr) 2018-06-28

Similar Documents

Publication Publication Date Title
EP2232765B1 (fr) Procede et entite de chiffrement symetrique probabiliste
JP4546246B2 (ja) 連鎖的暗号化反応の系統的記号化および復号化
EP2119095B1 (fr) Procede de chiffrement a l&#39;aide de codes correcteurs d&#39;erreurs
Fritzmann et al. Analysis of error-correcting codes for lattice-based key exchange
EP2885875A1 (fr) Procede d&#39;encodage de donnees sur une carte a puce par des codes de poids constant
FR2853976A1 (fr) Codage d&#39;informations par code de geometrie algebrique offrant deux options de decodage
US20120192040A1 (en) Encoding device for error correction, encoding method for error correction and encoding program for error correction
FR3061393B1 (fr) Procedes de codage et de decodage de paquets de donnees dans un corps de galois
WO2007003855A2 (fr) Procede et systeme d&#39;encodage d&#39;une sequence de donnees
FR2845220A1 (fr) Procedes et dispositifs pour le decodage des codes de geometrie algebrique a un point
FR2866998A1 (fr) Decodage et correction d&#39;erreurs pour codes de geometrie algebrique
EP0204612A1 (fr) Procédé de transmission, avec possibilité de correction de paquets d&#39;erreurs, de messages d&#39;information et dispositifs de codage et de décodage pour la mise en oeuvre de ce procédé
FR2863794A1 (fr) Procedes et dispositifs de localisation d&#39;erreurs pour les codes de geometrie algebrique
Kaur et al. Enhanced steganographic method preserving base quality of information using LSB, parity and spread spectrum technique
FR2867925A1 (fr) Codage de canal adapte aux erreurs rafale
FR2880218A1 (fr) Procede de decodage pour codes de geometrie algebrique et dispositif associe
RU2613845C1 (ru) Способ формирования ключа шифрования/дешифрования
FR3064858B1 (fr) Procedes de codage et de decodage de paquets de donnees dans un corps de galois
FR3060244A1 (fr) Procede et dispositif de calcul d&#39;un code correcteur
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
Wan et al. An efficient encoding and decoding algorithm for tracking circulation of commodity by discretizing information matrix
EP2936714B1 (fr) Procédé de brouillage d&#39;un système de communication par insertion de motifs factices dans un flux de données à émettre
KR101605972B1 (ko) 순환 부호를 활용한 효율적인 코셋 부호화 방식 및 이러한 방식을 활용하는 장치
JP5062643B2 (ja) 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム

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