EP4702673A1 - Conception de matrices de base pour les codes ldpc quasi-cycliques - Google Patents
Conception de matrices de base pour les codes ldpc quasi-cycliquesInfo
- Publication number
- EP4702673A1 EP4702673A1 EP24721141.0A EP24721141A EP4702673A1 EP 4702673 A1 EP4702673 A1 EP 4702673A1 EP 24721141 A EP24721141 A EP 24721141A EP 4702673 A1 EP4702673 A1 EP 4702673A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- matrix
- size
- extension
- rows
- diagonal
- 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.)
- Pending
Links
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/033—Theoretical methods to calculate these checking 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/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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
- H03M13/1188—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
-
- 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/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
L'invention concerne un procédé de codage d'au moins un bloc de K. Z données source, délivrant au moins un mot de code de taille N. Z, avec Z un facteur d'expansion entier, Z ≥ 1, ledit procédé mettant en œuvre une étape de codage (53) desdites K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z). Selon l'invention, ladite matrice de parité H est obtenue (52) à partir d'une matrice de base BG' de taille M x N, en remplaçant chaque élément de ladite matrice de base BG' par une matrice d'expansion de taille Z x Z, ladite matrice de base BG' s'exprimant sous la forme (I). La matrice d'extension C comprend au moins deux blocs de lignes consécutifs, comprenant chacun un nombre différent de lignes, égal à un nombre premier ou au carré d'un nombre premier, chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale.
Description
DESCRIPTION
Titre : Procédé de codage de données source, dispositif de codage et programme d'ordinateur correspondants.
1. Domaine de l'invention
Le domaine de l'invention est celui des communications numériques.
Plus précisément, l'invention concerne les codes correcteurs d'erreurs, notamment, mais non exclusivement, les codes correcteurs d'erreurs de type LDPC (en anglais « Low Density Parity Check »). L'invention trouve notamment des applications dans le domaine du stockage ou de la transmission de données, par exemple via des communications sans fil (par exemple par ondes radio ou ondes optiques non guidées) ou filaire (par exemple par fibre optique ou câble électrique).
En particulier, l'invention trouve des applications dans tous les domaines où l'on cherche à offrir une bonne fiabilité de transmission, par exemple pour les transmissions radio (Wifi®, 5G, 6G ...).
2. Art antérieur
La figure 1 illustre un émetteur d'une chaîne de transmission numérique. Un tel émetteur utilise des modules classiques de traitement du signal.
Ainsi, les données source 11, par exemple des données binaires provenant d'une source génératrice de données de type vidéo (par exemple une source d'images animées, d'images de réalité virtuelle ou augmentée, une source de séquence d'images), de type audio (par exemple la voix), de type de contrôle des flux qu'ils soient de type vidéo ou audio ou autre, ou provenant d'un capteur, d'un actionneur, etc, sont codées dans un bloc de codage canal 12 pour introduire de la redondance. Les données codées sont ensuite entrelacées dans un bloc d'entrelacement 13 pour mélanger les données codées. Un bloc de mapping 14 permet de convertir les données codées en point de constellation (BPSK, QPSK, 15QAM, etc). Les symboles associés sont mis en trame 15 et modulés dans un bloc de modulation 16 monoporteuse ou multiporteuse, par exemple de type OFDM (« Orthogonal Frequency- Division Multiplexing »).
Afin d'améliorer la robustesse des communications via un canal de communication, il est connu d'utiliser des codes correcteurs d'erreurs dans le bloc de codage canal 12. Par exemple, les codes LDPC, les turbo-codes, les codes polaires, ou encore les codes Reed-Salomon offrent de bonnes performances en termes de correction d'erreurs.
Les turbo-codes ont notamment été retenus pour la norme de téléphonie mobile 4G, et les LDPC pour la norme de téléphonie mobile 5G.
On s'attache ci-après à rappeler les principales caractéristiques des codes LDPC, telles que définies dans la norme 5G notamment.
Classiquement, les codes LDPC sont définis par trois paramètres K, M et N :
K correspond à la taille des données source, par exemple en nombre de bits utiles si l'on considère des données binaires,
M correspond à la taille des données de redondance, par exemple en nombre de bits de redondance si l'on considère des données binaires, et
N correspond à la taille des données issues du codeur LDPC, par exemple en nombre de bits utiles et de redondance.
Le rendement de codage est classiquement donné par R = K/N, avec la relation N = K + M .
Un code LDPC peut notamment être défini par une matrice de parité H, qui donne les relations de parité entre les données source et les données de redondance.
Un exemple de matrice de parité H est donné en figure 2.
Les valeurs égales à « 1 » dans la matrice de parité H correspondent aux connexions (équation de parité) entre les données utiles et les données de redondance. Plus le nombre de connexions (i.e. de « 1 » dans la matrice de parité H) est important, plus la complexité du décodeur sera importante.
A titre illustratif, suivant l'exemple de la matrice de parité H de la figure 2, l'équation de parité de la première ligne donne la première donnée de redondance r(0) : av
6(i) = 0 ou 1, et
® l'opération « ou exclusif ».
Dans le document ETSI TS 138 212 V15.2.0, le consortium de normalisation 3GPP a défini deux structures ou matrices de base BG1 et BG2 (« Base Graph » en anglais) permettant de construire 104 matrices de parité H (52 matrices construites à partir de la matrice de base BG1 et 52 matrices construites à partir de la matrice de base BG2).
Par exemple, pour la 5G, la taille des matrices de base BG1 et BG2 est :
- BG1 : K = 22, M = 46, N = 68
- BG2 : soit K = 6, M = 26, N = 32, soit K = 8, M = 34, N = 42, soit K = 9, M = 38, N = 47, soit K = 10, M = 42, N = 52.
Les matrices de parité H sont obtenues à partir des matrices de base BG1 ou BG2, à partir d'un facteur d'expansion Z et d'une rotation circulaire d'une matrice diagonale. Une telle construction est connue sous le nom « Protograph ».
Selon cette technique, une matrice de parité H de taille M. Z x N. Z est obtenue en remplaçant chaque élément non nul de la matrice de base BG1 ou BG2 par une matrice diagonale de taille Z x Z à laquelle
on a appliqué une rotation circulaire V (qui n'est pas nécessairement la même pour tous les éléments non nuis de la matrice de base).
Un avantage de cette famille de codeur LDPC est d'obtenir facilement l'ensemble des matrices de parité H tout en limitant l'utilisation de la mémoire.
Par exemple, pour un facteur d'expansion Z = 8 et une rotation circulaire V = 2, un élément non nul de la matrice de base BG1 ou BG2 est remplacé par la matrice suivante : 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 -0 1 0 0 0 0 0 0-
Selon le document ETSI TS 138212 V15.2.0, pour chaque matrice de base BG1 ou BG2, il est ainsi possible de construire 52 matrices, classées en huit sous-familles selon la valeur du facteur d'expansion
Z (compris entre 2 et 384), selon l'index « ils » :
Ainsi, il est possible de coder des blocs de données source de taille K. Z, allant de 12 bits (à partir de la matrice de base BG2 avec K — 6 et le facteur d'expansion minimal Z = 2) à 8448 bits (à partir de la matrice de base BG1 avec K = 22 et le facteur d'expansion maximal Z = 384).
Le choix entre l'utilisation de la matrice de base BG1 ou BG2 s'effectue en fonction de la taille des données source à coder K. Z et du rendement de codage R souhaité. Ainsi, comme illustré en figure 3, la matrice de base BG1 est principalement utilisée pour les rendements de codage élevés et les tailles importantes des données source. Ces deux matrices de base sont notamment conçues pour couvrir les différents usages de la 5G qui peuvent nécessiter un haut débit et/ou une grande fiabilité (robustesse). Par ailleurs, selon la norme 5G, les deux premières colonnes de la matrice de base BG1 ou BG2 sont supprimées avant transmission, ce qui induit que les rendements de base sont respectivement RBG1 =
K/(N — 2) = 22/66 = 1/3 et RBG2 = 10/50 = 1/5.
On note par ailleurs que les matrices de base BG1 ou BG2 utilisées pour construire la matrice de parité H d'un code LDPC selon la norme 5G peuvent être représentées sous la forme de six sous-matrices A, B, 0, C, D et I, comme décrit dans le document « High Area-Efficient Parallel Encoder with compatible architecture for 5G LDPC codes », Y. Zhu et al., et illustré en figure 4 : p4 B 01
Le D /J avec :
A une matrice noyau ou Kernel de taille 4 x K
B une matrice présentant au moins une double diagonale de taille 4 x 4
C une matrice d'extension de taille (M — 4) x K
D une matrice de prolongement de taille (M — 4) x 4
0 une matrice nulle de taille (N — K — 4) x 4
I une matrice identité de taille (M — 4) x (N — K — 4).
Bien que les codes LDPC soient reconnus pour leur capacité à garantir des transmissions à haut débit, notamment grâce à la possibilité de paralléliser les opérations au niveau du décodeur, un inconvénient de ces codes est la complexité liée au décodage. En effet, plus le nombre d'itérations de décodage est important, plus le nombre d'opérations à effectuer en réception est important et consommateur en termes de ressources. Le bloc de décodage peut ainsi utiliser jusqu'à 90% des ressources du récepteur. Il peut être considéré comme la partie la plus énergivore de la couche physique, en particulier pour la 5G.
Il existe donc un besoin pour une nouvelle technique de codage cherchant à réduire la consommation en énergie du décodeur.
3. Exposé de l'invention
L'invention propose une solution nouvelle sous la forme d'un procédé de codage d'au moins un bloc de K. Z données source, délivrant au moins un mot de code de taille N. Z formé des K. Z données source et de M. Z données de redondance, N = K + M, avec Z un facteur d'expansion entier, Z > 1. Le procédé selon l'invention met en œuvre une étape de codage desdites K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z) obtenue à partir d'une matrice de base BG' de taille M x N, en remplaçant chaque élément de ladite matrice de base BG’ par une matrice d'expansion de taille Z x Z, ladite matrice de base BG' s'exprimant sous la forme :
avec :
A une matrice noyau de taille J x K
B une matrice présentant au moins une double diagonale de taille J x J
C une matrice d'extension de taille (M — J) x K
D une matrice de prolongement de taille (M — J) x J
0 une matrice nulle de taille (N — K — J) x J
I une matrice identité de taille (M — J) x (N — K — J).
Selon l'invention, ladite matrice d'extension C comprend au moins deux blocs de lignes, comprenant chacun un nombre différent de lignes, égal à un nombre premier ou au carré d'un nombre premier, chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale.
En d'autres termes, la matrice d’extension C comprend au moins un premier bloc de L1 lignes comprenant une ou plusieurs matrices diagonales de taille L1 x L1 et un deuxième bloc de L2 lignes comprenant une ou plusieurs matrices diagonales de taille L2 x L2, avec LI L2, L1 et L2 des nombres premiers ou des nombres premiers au carré.
Le nombre de lignes par bloc (qui correspond aussi à la taille des diagonales) est ainsi choisi parmi les nombres premiers (2, 3, 5, 7, 11, 13, etc) ou les nombres premiers au carré (4, 9, 25, etc). On cherche ainsi à éviter la répétition d'un même motif / d'une matrice diagonale de même taille sur les différents blocs de lignes, de façon à obtenir une indépendance entre les lignes de la matrice d'extension C et éviter, ou à tout le moins limiter, les cycles courts. On cherche aussi à répartir les éléments non nuis de la matrice d'extension C sur les différentes lignes et/ou colonnes de la matrice d'extension C.
La solution proposée cherche notamment à améliorer les performances des codes correcteurs d'erreurs, notamment du décodeur LDPC, en diminuant le nombre d'itérations du décodeur et donc la consommation d'énergie.
En particulier, les données codées (mot de code formé des K. Z données source et M. Z données de redondance) peuvent être stockées dans une mémoire et/ou transmises d'un émetteur vers un récepteur, via un canal de transmission.
Selon un mode de réalisation particulier, au moins un desdits blocs de lignes comprend au moins deux occurrences de ladite matrice diagonale.
En choisissant la taille des diagonales (par exemple L1 et L2), il est possible de faire varier le nombre de connexions par ligne. On rappelle à cet effet que plus le nombre de connexions (i.e. d'éléments non nuis dans la matrice de base, et par suite dans la matrice de parité H) est important, plus la complexité du décodeur sera importante. On cherche donc selon un mode de réalisation à réaliser un compromis entre le nombre de connexions et les performances de décodage.
Selon un mode de réalisation particulier, pour au moins un desdits blocs de ligne, ladite matrice d'extension C comprend une portion de ladite matrice diagonale, et ladite matrice de prolongement D comprend le prolongement de ladite portion.
En d'autres termes, la matrice formée de ladite matrice d'extension C et de ladite matrice de prolongement D comprend au moins un motif complet représentant ladite matrice diagonale et éventuellement un motif partiel.
Selon un mode de réalisation particulier, le nombre d'éléments non nuis par colonne et/ou par ligne par rapport au nombre total d'éléments par colonne et/ou par ligne dans ladite matrice noyau A, hors les deux premières colonnes, est compris entre 50 et 100%.
En particulier, le nombre d'éléments non nuis par colonne et/ou par ligne par rapport au nombre total d'éléments par colonne et/ou par ligne dans ladite matrice noyau A, hors les deux premières colonnes, est compris entre 75 et 100%.
La matrice noyau A présente ainsi beaucoup de connexions par ligne et/ou par colonne, par rapport au reste de la matrice BG’, ce qui permet de retrouver les données source au décodage. Pour la norme 5G, la matrice noyau A présente par exemple de l'ordre de 37C/4 éléments non nuis par ligne.
Selon un mode de réalisation particulier, les deux premières colonnes de la matrice noyau A et/ou de ladite matrice d'extension C comprennent une alternance d'éléments non nuis et d'éléments nuis par ligne et par colonne.
On cherche ainsi une répartition équitable des connexions dans les deux premières colonnes de la matrice noyau A et/ou de ladite matrice d'extension C avec une structure en quinconce. Comme indiqué en préambule, ces deux premières colonnes peuvent ne pas être transmises, notamment en
5G.
Selon un mode de réalisation particulier J = 4, K = 22 et M = 46.
La matrice de base BG'présente ainsi un format similaire à la matrice BG1 avec une décomposition en six sous-matrices (A, B, C, D, 0 et /) et une taille identique à la matrice de base BG1. Elle peut donc être utilisée dans tout système compatible avec la norme 5G.
Selon un mode de réalisation particulier, ladite matrice noyau A est égale à :
ladite matrice B présentant au moins une double diagonale est égale à :
ladite matrice d'extension C est égale à :
ladite matrice de prolongement D est égale à :
chaque élément vide ou nul de ladite matrice de base BG’ est remplacé par une matrice nulle de taille Z x Z, - chaque élément non nul de ladite matrice de base BG’ est remplacé par une matrice de permutation circulaire obtenue en appliquant une rotation circulaire Vi à une matrice identité de taille Z x Z, telle que :
avec x et y des variables aléatoires.
Dans un autre mode de réalisation, l'invention concerne un dispositif de codage d'au moins un bloc de
K. Z données source, délivrant au moins un mot de code de taille N. Z formé desdites K. Z données source et de M. Z données de redondance, N = K + M, avec Z un facteur d'expansion entier, Z > 1, comprenant au moins une unité de traitement configurée pour coder lesdites K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z), ladite matrice de parité H étant obtenue à partir d'une matrice de base BG' de taille M x N telle que décrite précédemment.
Un tel dispositif de codage, également appelé codeur, est notamment adaptée à mettre en œuvre le procédé de codage décrit précédemment. Il pourra bien sûr comporter les différentes caractéristiques relatives au procédé selon l'invention, qui peuvent être combinées ou prises isolément. Ainsi, les caractéristiques et avantages du codeur sont les mêmes que ceux du procédé décrit précédemment. Par conséquent, ils ne sont pas détaillés plus amplement.
L'invention concerne encore un ou plusieurs programmes d'ordinateur comportant des instructions pour la mise en œuvre d'un procédé tel que décrit ci-dessus lorsque ce ou ces programmes sont exécutés par au moins un processeur.
L'invention concerne aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus.
4. Liste des figures
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 illustre un émetteur d'une chaîne de transmission numérique classique ; la figure 2 présente un exemple de matrice de parité H pour un code LDPC ; la figure 3 illustre des critères de sélection de la matrice de base BG1 ou BG2 ; la figure 4 illustre la décomposition de la matrice de base BG1 ou BG2 en sous-matrices ; la figure 5 présente les principales étapes mises en œuvre par un procédé de codage selon un mode de réalisation de l'invention ; la figure 6A et la figure 6B illustrent la structure de la matrice BG1 ; la figure 7A et la figure 7B illustrent la notion de cycle ; les figures 8 à 15 présentent différentes structures des matrices A, C et/ou D permettant d'optimiser la matrice de base BG’ selon un mode de réalisation de l'invention ; les figures 16 et 17 illustrent des courbes de performances d'un décodeur LDPC mettant en œuvre un décodage d'un mot de code obtenu selon un mode de réalisation de l'invention ; la figure 18 présente la structure simplifiée d'un codeur mettant en œuvre un procédé de codage selon un mode de réalisation de l'invention.
5. Description d'un mode de réalisation de l'invention
5.1 Principe général
Le principe général de l'invention repose sur une répartition astucieuse des connexions (i.e. des éléments non nuis) dans une matrice de base BG', cherchant à répartir les connexions de façon sensiblement homogène et/ou à limiter le nombre de cycles courts. Par suite, une matrice de parité H
obtenue à partir de la matrice de base BG' présente une structure particulière. Une telle structure permet d'améliorer les performances des codes correcteurs d'erreurs, notamment en diminuant la complexité du décodage.
La figure 5 illustre les principales étapes d'un procédé de codage selon un mode de réalisation de l'invention.
Au cours d'une première étape 51, on obtient la matrice de base BG' de taille M x N.
Une telle matrice de base BG’ peut être décomposée en six sous-matrices A, B, 0, G, D, I, et s'exprimer sous la forme :
avec :
A une matrice noyau de taille J x K
B une matrice présentant au moins une double diagonale de taille J x ]
G une matrice d'extension de taille (M — J) x K
D une matrice de prolongement de taille (M — J) x J
0 une matrice nulle de taille (N — K — J) x ]
I une matrice identité de taille (M — J) x (N — K — /)
En particulier, la matrice d'extension G présente une structure particulière et comprend au moins deux blocs de lignes, comprenant chacun un nombre différent de lignes, égal à un nombre premier ou au carré d'un nombre premier, chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale.
Au cours d'une deuxième étape 52, on obtient une matrice de parité H à partir de la matrice de base BG’. Pour ce faire, on remplace chaque élément de la matrice de base BG’ par une matrice d'expansion de taille Z x Z, avec Z un facteur d'expansion entier, Z > 1. Plus précisément, chaque élément nul de la matrice de base BG’ est remplacé par une matrice nulle de taille Z x Z, et chaque élément non nul de la matrice de base BG’ est remplacé par une matrice de permutation circulaire, obtenue en appliquant une rotation circulaire Vi à une matrice identité de taille Z x Z.Au cours d'une troisième étape 53, au moins un bloc de K. Z données source est codé en utilisant la matrice de parité H de taille (M. Z x N. Z), de façon à obtenir au moins un mot de code de taille N. Z formé des K. Z données source et de M. Z données de redondance, N = K + M.
Un tel mot de code peut notamment être stocké dans une mémoire du codeur ou transmis par un émetteur à destination d'un récepteur.
Dans un mode de réalisation particulier, le nombre d'éléments non nuis par colonne dans la matrice formée de la matrice noyau A et de la matrice d'extension G, hors les deux premières colonnes, est
compris entre /? — 3 et /? + 3, avec P un entier. Dans la matrice formée de la matrice d'extension C et de la matrice de prolongement D, le nombre d'éléments non nuis par ligne, hors les deux premières colonnes, est compris entre a — 4 et a + 4, avec a un entier.
On cherche de cette façon à répartir de façon homogène le nombre de connexions par colonne et/ou par ligne dans la matrice de base BG’.
Par exemple, en 5G, fi est compris entre 7 et 10, et le nombre d'éléments non nuis par colonne dans la matrice formée de la matrice noyau A et la matrice d'extension C, hors les deux premières colonnes, est compris entre 5 et 13, par exemple entre 7 et 10.
Selon un autre exemple, le nombre d'éléments non nuis par colonne dans la matrice d'extension C, hors les deux premières colonnes, est compris entre 2 et 8, par exemple égal à 5 ou 6.
Selon encore un autre exemple, le nombre d'éléments non nuis par colonne dans ladite matrice noyau A, hors les deux premières colonnes, est compris entre 2 et 4, par exemple égal à 3.
Par exemple, en 5G, a est compris entre 5 et 8, et le nombre d'éléments non nuis par ligne dans la matrice formée de la matrice d'extension C et de la matrice de prolongement D est compris entre 1 et 12, par exemple entre 2 et 9.
Selon un autre exemple, le nombre d'éléments non nuis par ligne dans la matrice d'extension C est compris entre 1 et 7.
En particulier, si J = 4, K = 22 et M = 46, la matrice de base BG' présente une taille identique à la matrice de base BG1, et peut être utilisée dans tout système utilisant la norme 5G.
5.2 Matrice de base BG1
Afin de mieux comprendre l'invention, on rappelle en figure 6A la structure de la matrice de base BG1 telle que définie dans le document ETSI TS 138 212 V15.2.0, formée des matrices A, B, C et D. Les sous-matrices 7 et O sont omises par souci de simplification.
Les éléments « 1 » de la matrice de base BG1 représentent les connexions des différentes équations de parité. Le nombre de connexions par colonne et par ligne a été ajouté sur la figure 6A.
Ainsi, la première colonne des matrices A et C comprend 30 connexions, la deuxième colonne comprend 28 connexions, la troisième colonne comprend 7 connexions, etc.
La première colonne des matrices B et 7) comprend 12 connexions, la deuxième colonne comprend 5 connexions, etc.
Les quatre premières lignes des matrices A et B comprennent chacune 19 connexions.
La première ligne des matrices C et D comprend 2 connexions, la deuxième ligne comprend 7 connexions, etc.
Si l'on ne tient pas compte des matrices nulle O et identité 7, le nombre minimum de connexions par
ligne est 2 et le nombre maximum de connexions par ligne est 19. Le nombre minimum de connexions par colonne est 4 et le nombre maximum de connexions par colonne est 30. Il existe donc une forte disparité dans le nombre de connexions par ligne et/ou par colonne dans la matrice BG1.
La matrice noyau A a, en proportion, beaucoup de connexions, i.e. beaucoup d'éléments non nuis, car c'est le noyau (kernel) de la matrice BG1. Cela permet au décodeur, en réception, de retrouver ces données. On note par ailleurs que les deux premières colonnes de la matrice BG1, qui correspondent aux données non transmises, possèdent également beaucoup de « 1 ».
La partie supérieure de la matrice BG1 possède également plus de connexions que sa partie inférieure, ce qui permet de garantir de bonnes performances pour les rendements élevés. En effet, la partie inférieure de la matrice BG1 peut être poinçonnée pour obtenir le rendement souhaité. Il est donc préférable de choisir les connexions dans la partie supérieure de la matrice BG1.
A titre d'exemple, la figure 6B illustre les facteurs de rotation circulaire V pour la matrice BG1 de la figure 5A, pour un facteur d'expansion Z = 256.
La matrice de parité H est construite en remplaçant chaque élément non nul de la matrice BG1 par une matrice identité de taille Z x Z, et en appliquant une rotation circulaire V selon les facteurs illustrés en figure 6B. Ainsi, l'élément « 1 » de la première ligne/première colonne de la matrice BG1 de la figure 6A est remplacé par une matrice identité de taille 256 x 256 à laquelle on applique une rotation circulaire V = 250. L'élément « 1 » de la première ligne/deuxième colonne de la matrice BG1 de la figure 6A est remplacé par une matrice identité de taille 256 x 256 à laquelle on applique une rotation circulaire V = 69, et ainsi de suite.
5.3 Matrice de base BG’
La position des connexions dans la matrice de base BG1, ainsi que les facteurs de rotation à utiliser, sont précisés dans la norme 5G 3GPP. Toutefois, comme indiqué préalablement, il reste souhaitable d'améliorer les performances des codes correcteurs d'erreurs, notamment en diminuant la complexité du décodage, par exemple en diminuant le nombre de connexions.
On propose donc ci-après une matrice de base BG' cherchant à réduire la complexité du décodage. De nouvelles structures des connexions sont ainsi proposées, selon différents modes de réalisation de l'invention. Selon le mode de réalisation considéré, de telles structures sont performantes et/ou facile à reproduire en fonction des dimensions de la matrice de parité H.
Selon un mode de réalisation particulier, la structure de la matrice de base BG’ est définie de sorte à avoir une faible disparité dans le nombre de connexions par ligne et/ou par colonne. En effet, si on considère un codeur LDPC par exemple, on rappelle que le décodage LDPC s'appuie sur les bases des probabilités d'avoir transmis une valeur égale à « 1 » ou « 0 ». Il est donc souhaitable de distribuer le
nombre de connexions de façon homogène, afin que le nombre de connexions en ligne, et surtout en colonne, soit sensiblement constant ou équiréparti.
Selon un autre mode de réalisation particulier, la structure de la matrice de base BG' est définie de sorte à limiter le nombre de cycles courts, et si possible à éviter les cycles courts (« Girth » en anglais). En effet, de tels cycles courts limitent les performances des codes correcteurs d'erreurs, notamment des codes LDPC, surtout pour les valeurs K petites tailles, par exemple de l'ordre de 255 bits ou moins. Pour mieux comprendre ce principe, les figures 7A et 7B illustrent les phénomènes de boucles avec un facteur d'expansion Z = 4. Selon la figure 7A, on applique un facteur d'expansion Z = 4 avec un même facteur de rotation V = 0 aux éléments « 1 » localisés en position
(i + 7,/), (i,j + 7) et (i + 7, j + 7). On obtient une boucle, illustrée par les flèches. Selon la figure 7B, on applique un facteur d'expansion Z = 4 avec un même facteur de rotation 7 = 0 aux éléments « 1 » localisés en position (ij), (i + 7,/) et (i + 7 ,j + 7), et un facteur de rotation V — 1 à l'élément localisé en position (i,/ + 7). Dans ce cas, il n'y a pas de boucle. Le changement de facteur de rotation d'un des éléments de la matrice permet donc d'éliminer les boucles.
On présente ci-après différentes solutions permettant d'obtenir une faible disparité dans le nombre de connexions par ligne et/ou par colonne de la matrice de base BG' et/ou de limiter (voire éviter) les cycles courts.
5.3.1 Optimisation de la matrice noyau A
Selon un premier exemple, il est possible de répartir les connexions de façon équitable dans la matrice noyau A, tout en cherchant à disposer d'un nombre important de connexions comme défini dans la norme 5G.
Par exemple, dans la matrice noyau A le nombre d'éléments non nuis par colonne, hors les deux premières colonnes, est compris entre 1 et ].
La figure 8 illustre un exemple de matrice noyau A, dans lequel le nombre d'éléments non nuis par colonne est constant et égal à 3.
5.3.2 Optimisation des deux premières colonnes de la matrice noyau A et/ou de la matrice d'extension C
Selon un deuxième exemple, les deux premières colonnes (qui ne sont généralement pas transmises) peuvent être choisies pour garantir une bonne répartition des connexions.
Par exemple, les deux premières colonnes de la matrice noyau A et/ou de la matrice d'extension C comprennent une alternance d'éléments non nuis et d'éléments nuis par ligne et par colonne. Autrement dit, les connexions sont réparties en quinconce, comme illustré en figure 9.
5.3.3 Optimisation de la matrice d'extension C
Selon un troisième exemple, il est possible de répartir les connexions de façon équitable dans la matrice d'extension C.
La matrice d'extension C est généralement la plus importante par sa dimension. Pour la matrice de base BG1 par exemple, la matrice d'extension C, hors ses deux première colonnes, présente une taille 40 x 20.
Selon ce troisième exemple, les connexions sont réparties sur des diagonales pour garantir une bonne répartition des connexions.
Par exemple, si l'on considère un bloc de 10 lignes et de 20 colonnes, comme illustré en figure 10, il est possible d'avoir deux occurrences d'une matrice diagonale 10 x 10 sur le bloc de 10 lignes, soient deux connexions en ligne et une en colonne.
Selon un autre exemple, si l'on considère un bloc de 5 lignes et de 20 colonnes comme illustré en figure 11, il est possible d'avoir quatre occurrences d'une matrice diagonale 5 x 5 sur le bloc de 5 lignes, soient quatre connexions en ligne et une en colonne.
Il est ainsi possible de faire varier le nombre de connexions par ligne selon la taille des diagonales ou des blocs de lignes.
Pour garantir une indépendance entre les lignes, et par suite éviter les cycles courts, la solution proposée repose sur le choix d'une taille pour les diagonales qui corresponde à des nombres premiers ou des nombres premiers au carré. En particulier, on cherche à sélectionner les nombres premiers ou premiers au carré qui évitent de reproduire les mêmes motifs dans la matrice d'extension C.
Ainsi, selon l'invention, la matrice d'extension C comprend au moins deux blocs de lignes, comprenant chacun un nombre différent de lignes, égal à un nombre premier (2, 3, 5, 7, 11, 13 ...) ou au carré d'un nombre premier (4 = 22, 9 = 32), chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale (i.e. au moins un motif complet).
De cette façon, toutes les équations de parité sont distinctes entre-elles.
En particulier, au moins un des blocs de lignes comprend au moins deux occurrences de la matrice diagonale (i.e. au moins deux motifs complets).
La structure de la matrice d'extension C peut notamment se prolonger sur la matrice de prolongement D. Ainsi, pour au moins un bloc de lignes, la matrice d'extension C comprend une portion d'une matrice diagonale, et la matrice de prolongement D comprend le prolongement de la portion de la matrice diagonale. Par exemple, en revenant à la figure 11, si l'on considère un bloc de 5 lignes et de 20 colonnes, avec les 18 premières colonnes appartenant à la matrice d'extension C et les 2 dernières colonnes appartenant à la matrice de prolongement D, la matrice d'extension C comprend trois motifs « complets » correspondant chacun à la matrice diagonale 5 x 5. Le quatrième motif est partiel et se
prolonge dans la matrice de prolongement D. La matrice formée des matrices d'extension C et de prolongement D comprend quatre motifs « complets » correspondant chacun à la matrice diagonale 5 x 5.
A titre d'exemple, on propose en figure 12 un exemple de structure pour les matrices d'extension C et de prolongement D, qui peut être utilisée en 5G. Selon cet exemple, la matrice d'extension C présente une taille (M — /) x K = 42 x 22 et la matrice de prolongement D une taille (M — /) x J = 42 x 4. Les deux premières colonnes de la matrice d'extension C ne sont pas illustrées.
Comme on cherche à sélectionner les nombres premiers qui évitent de reproduire les mêmes motifs pour la matrice d'extension C, on élimine selon cet exemple les nombres premiers 2 et 3. Par exemple, il est possible de définir un premier bloc de lignes avec des matrices diagonales de taille 4, un deuxième bloc de lignes avec des matrices diagonales de taille 5, un troisième bloc de lignes avec des matrices diagonales de taille 7, un quatrième bloc de lignes avec des matrices diagonales de taille 9, un cinquième bloc de lignes avec des matrices diagonales de taille 11, etc.
En notant n le numéro d'une colonne de la matrice d'extension C, avec n allant de 1 à (K — 2) (si on ne tient pas compte des deux premières colonnes de la matrice d'extension C), et m le numéro d'une ligne de la matrice d'extension C, avec m allant de 1 à (M — J), l'emplacement des connexions peut être obtenu de façon déterministe.
Par exemple, pour les lignes de la matrice d'extension C, l'emplacement des connexions peut être obtenu par l'algorithme suivant :
Pour m allant de 1 à 4 :
Pour n allant de 1 à (K — 2) :
Si (n mod 4) = m alors ÆG’[m][n] = 1
Pour m allant de 5 à 9 :
Pour n allant de 1 à (K — 2) :
Si (n mod 5) = m alors BG’[m][n] = 1
Pour m allant de 10 à 16 :
Pour n allant de 1 à (K — 2) :
Si (n mod 7) = m alors BG’[m][n] = 1
Pour m allant de 17 à 25 :
Pour n allant de 1 à (K — 2) :
Si (n mod 9) = m alors BG’[m][n] = 1
Pour m allant de 26 à 36 :
Pour n allant de 1 à (K — 2) :
Si (n mod 11) = m alors BG’[m] [n] = 1
Pour m allant de 37 à (M — /) = 42 :
Pour n allant de 1 à (K — 2) :
Si (n mod 13) = m alors BG’[m] [n] = 1
La matrice de prolongement D permet d'étendre les matrices diagonales.
La figure 12 illustre notamment le nombre de connexions par ligne et par colonne pour les matrices d'extension G et de prolongement /).
On constate que dans la matrice formée de la matrice d'extension G et de la matrice de prolongement D, le nombre d'éléments non nuis par ligne, hors les deux premières colonnes, est compris entre a —
4 et a + 4, avec a un entier.
Si l'on se place dans le contexte de la 5G, a est par exemple compris entre 5 et 8.
Dans l'exemple illustré en figure 12, le nombre d'éléments non nuis par ligne dans la matrice formée par la matrice d'extension G et la matrice de prolongement D est compris entre 2 et 6.
Le nombre d'éléments non nuis par colonne dans la matrice d'extension G est quant à lui compris entre
5 et 6, et dans la matrice de prolongement D égal à 4.
Comme la partie inférieure de la matrice d'extension G et de la matrice de prolongement D peut être poinçonnée, le plus grand nombre de connexions est choisi sur la partie supérieure de la matrice d'extension G et de la matrice de prolongement D.
Un autre exemple d'optimisation des matrices d'extension G (y compris les deux premières colonnes) et de prolongement D est illustré en figure 13.
La structure proposée est légèrement différente, mais la matrice d'extension G comprend toujours au moins deux blocs de lignes, comprenant chacun un nombre différent de lignes, égal à un nombre premier (2, 3, 5, 7, 11, 13 ...) ou au carré d'un nombre premier (4 = 22, 9 = 32), chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale (i.e. au moins un motif complet).
Elle conserve de bonnes propriétés en termes de répartition des connexions et/ou réduction/suppression des cycles courts.
Selon l'exemple de la figure 13, on définit un premier bloc de lignes avec des matrices diagonales de taille 4, un deuxième bloc de lignes avec des matrices diagonales de taille 5, un troisième bloc de lignes avec sur la première ligne des éléments non nuis aux positions 1 à 4 (sans tenir compte des deux premières colonnes), sur la deuxième ligne des éléments non nuis aux positions 5 à 8, sur la troisième ligne des éléments non nuis aux positions 9 à 12, sur la quatrième ligne des éléments non nuis aux positions 13 à 16, et sur la cinquième ligne des éléments non nuis aux positions 17 à 20, un quatrième
bloc de lignes avec des matrices diagonales de taille 7 , un cinquième bloc de lignes avec des matrices diagonales de taille 9, etc.
5.3.4 Optimisation globale de la matrice de base BG'
Dans les exemples ci-dessus, les matrices d'extension C (hormis les deux premières colonnes) et de prolongement D sont optimisées pour diminuer les cycles courts.
Toutefois, si nous prenons en compte la matrice formée des matrices noyau A, double diagonale B, d'étalement C et de prolongement D proposées dans les exemples ci-dessus, il peut rester des cycles courts.
De tes cycles courts peuvent par exemple résulter de la structure proposée pour la matrice noyau A ou pour les deux premières colonnes de la matrice d'étalement C.
Comme illustré en figure 7B, la prise en compte des facteurs de rotation permet notamment de diminuer, voire éviter, les cycles courts.
Il est ainsi possible d'augmenter la diversité de la matrice de base BG’ et donc de diminuer le nombre de cycles courts en tenant compte des facteurs de rotation.
Si l'on se place dans le contexte de la norme 5G, le facteur d'expansion Z est au minimum égal à 2. Cela signifie qu'il y a au minimum deux facteurs de rotation possible : un élément non nul de la matrice de base BG peut etre remplace par j pour une rotation circulaire V = 0 ou par j pour une
rotation circulaire V = 1.
La figure 14 illustre un exemple de structure pour les matrices A, B, C et D, tenant compte d'au moins deux facteurs de rotation distincts, par exemple un facteur de rotation pair P et un facteur de rotation impair I.
Dans cet exemple, la matrice d'extension C comprend toujours au moins deux blocs de lignes, comprenant chacun un nombre différent de lignes, égal à un nombre premier (2, 3, 5, 7, 11, 13 ...) ou au carré d'un nombre premier (4 = 22, 9 = 32), chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale (i.e. au moins un motif complet).
De plus, un bloc de lignes est associé à au moins deux facteurs de rotation distincts.
La structure illustrée en figure 14 permet notamment de diminuer les cycles en réorganisant les facteurs de rotation en valeurs paire « P » et impaire « I ».
Comme illustré en figure 15, il est possible d'augmenter le nombre de facteurs de rotation pour augmenter la diversité de la matrice de base BG’. On choisit par exemple cinq facteurs de rotation notés V0 à V4. Bien entendu un nombre différent de facteurs de rotation peut être choisi, ce qui conduit à une structure différente pour les matrices A, B, C et D.
Il est notamment possible de définir les équations qui définissent les facteurs de rotation VO à V4 en
fonction de l'indice « ils » selon la norme 5G 3GPP.
avec x et y des variables aléatoires dont l'intervalle est donné dans le tableau ci-dessus.
La structure illustrée en figure 15 permet notamment de diminuer les cycles courts pour les matrices de petites tailles, par exemple pour K < 256. On constate notamment que dans la matrice formée de la matrice noyau A et de la matrice d'extension C, le nombre d'éléments non nuis par colonne, hors les deux premières colonnes, est compris entre P — 3 et p + 3, avec f> un entier. Dans la matrice formée de la matrice d'extension C et de la matrice
de prolongement D, le nombre d'éléments non nuis par ligne, hors les deux premières colonnes, est compris entre a — 4 et a + 4, avec a un entier.
Si l'on se place dans le contexte de la 5G, /? est par exemple compris entre 7 et 10 et a compris entre 5 et 8. Dans l'exemple illustré en figure 15, le nombre d'éléments non nuis par colonne dans la matrice formée de la matrice noyau A et de la matrice d'extension C est compris entre 7 et 10, et le nombre d'éléments non nuis par ligne dans la matrice formée de la matrice d'extension C et de la matrice de prolongement D est compris entre 2 et 9.
Le nombre de connexions par ligne et/ou par colonne est donc assez homogène.
5.3.5 Obtention d'une matrice de parité
A partir de la matrice de base BG’ ainsi obtenue, il est possible d'obtenir une matrice de parité H, en remplaçant chaque élément vide ou nul de la matrice de base BG’ par une matrice nulle de tailleZ x Z, et chaque élément non nul de la matrice de base BG’ par une matrice de permutation circulaire obtenue en appliquant une rotation circulaire Vi à une matrice identité de taille Z x Z, i E {0,1, ... }.
La matrice de parité H ainsi obtenue peut être utilisée par un codeur pour coder au moins un bloc de K. Z données source.
5.3.6 Courbes de performance
On présente désormais en relation avec les figures 16 et 17 les performances de décodage obtenues en termes de taux d'erreur (FER) en fonction du rapport signal à bruit (SNR en dB), pour des décodeurs LDPC, après encodage de données source en utilisant une matrice de parité obtenue soit à partir de la matrice de base BG1 telle que définie par le 3GPP pour la norme 5G, soit à partir d'une matrice de base BG' selon un mode de réalisation de l'invention (présentant une même taille que la matrice de base BG1 pour la comparaison).
Les performances obtenues sont pour des longueurs de codes de 330 bits (K= 22, Z = 15), un rendement de code de 1/3 pour la figure 16 et 3/4 pour la figure 17. L'algorithme du décodeur est selon cet exemple le MinSum, tel que décrit dans le document « A fully parallel LDPC decoder architecture using probabilistic minsum algorithm for high-throughput applications », C.-C. Cheng et al., IEEE Trans. Circuits Syst. I, Reg. Papers, vol. 61, no. 9, pp. 2738-2746, Sep. 2014, avec un paramètre alpha égal à 0,7, et opéré en mode « reverse ». Selon un tel mode reverse, on décode du bas vers le haut la matrice de parité, i.e. on cherche d'abord à résoudre les équations de parité obtenues à partir des dernières lignes de la matrice de parité avant celles obtenues à partir des premières lignes de la matrice de parité. Toutefois, l'utilisation d'un décodage « standard » du haut vers le bas de la matrice de parité, ou dans un autre ordre encore, est également possible.
La courbe 161, respectivement 171, illustre les performances de décodage en utilisant la matrice de base BG' après 20 itérations du décodeur. La courbe 162, respectivement 172, illustre les performances de décodage en utilisant la matrice de base BG1 après 20 itérations du décodeur.
La courbe 163, respectivement 173, illustre les performances de décodage en utilisant la matrice de base BG' après 5 itérations du décodeur. La courbe 164, respectivement 174, illustre les performances de décodage en utilisant la matrice de base BG1 après 5 itérations du décodeur.
On note que la structure proposée selon au moins un mode de réalisation de l'invention permet d'améliorer les performances du décodeur LDPC selon la norme 5G. L'écart est d'autant plus important avec un nombre plus faible d'itérations du décodeur.
5.3.7 Variantes
On a décrit ci-dessus un exemple selon lequel la matrice de base BG' présente une taille identique à la matrice de base BG1, avec J — 4, K — 22 et M — 46. Ceci permet notamment de pouvoir utiliser la matrice de base BG' dans tout système de communications selon la norme 5G.
Il s'agit toutefois d'un simple exemple, et d'autres valeurs pour J, K et M peuvent être envisagées, notamment pour d'autres normes de transmission (Wifi®, 6G, etc).
De même, on a proposé une matrice de base BG' avec cinq facteurs de rotation V0 à V4. Toutefois, un nombre différent de facteurs de rotation peut être choisi.
1 1 0 o-
On a par ailleurs donné des exemples avec une matrice B de la forme 0 1 1 0 . D'autres formes
1 0 1 1
-1 0 0 1- de la matrice B avec au moins une double diagonale peuvent être utilisées. Dans ce cas, la position des connexions et/ou les valeurs des facteurs de rotation peuvent être mis à jour pour tenir compte de la structure de la matrice B.
On a également pris pour exemple un code LDPC. L'invention peut également être étendue à d'autres codes correcteurs d'erreurs utilisant une matrice de parité.
5.4 Dispositif de codage
On présente finalement, en relation avec la figure 18, la structure simplifiée d'un codeur selon au moins un mode de réalisation décrit ci-dessus.
Comme illustré en figure 18, un codeur comprend au moins une mémoire 181, au moins une unité de traitement 182, équipée par exemple d'une machine de calcul programmable ou d'une machine de calcul dédiée, par exemple un processeur P, et pilotée par le programme d'ordinateur 183, mettant en oeuvre des étapes du procédé de codage selon au moins un mode de réalisation de l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 183 sont par exemple chargées dans une mémoire RAM avant d etre executees par le processeur de I unite de traitement 182.
Le processeur de l'unité de traitement 182 met en œuvre des étapes du procédé de codage décrit précédemment, selon les instructions du programme d'ordinateur 183, pour coder les K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z), et délivrer au moins un mot de code de taille N. Z formé des K. Z données source et de M. Z données de redondance.
Claims
1. Procédé de codage d'au moins un bloc de K. Z données source, délivrant au moins un mot de code de taille N. Z formé desdites K. Z données source et de M. Z données de redondance, N = K + M, avec Z un facteur d'expansion entier, Z > 1, ledit procédé mettant en œuvre une étape de codage (53) desdites K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z), caractérisé en ce que ladite matrice de parité H est obtenue (52) à partir d'une matrice de base BG’ de taille M x N, en remplaçant chaque élément de ladite matrice de base BG' par une matrice d'expansion de taille Z x Z, ladite matrice de base BG' s’exprimant sous la forme :
d b ?] avec :
A une matrice noyau de taille ] x K
B une matrice présentant au moins une double diagonale de taille J x J
G une matrice d'extension de taille (M — /) x K
D une matrice de prolongement de taille (M — J) x /
0 une matrice nulle de taille (N — K — J) X J
I une matrice identité de taille (M — J) x (N — K — /) et en ce que ladite matrice d'extension G comprend au moins deux blocs de lignes consécutifs, comprenant chacun un nombre différent de lignes, égal à un nombre premier ou au carré d'un nombre premier, chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale.
2. Procédé de codage selon la revendication 1, caractérisé en ce qu'au moins un desdits blocs de lignes comprend au moins deux occurrences de ladite matrice diagonale.
3. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'au moins un desdits blocs de lignes comprend un nombre de lignes supérieur ou égal à 4.
4. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce que pour au moins un desdits blocs de ligne, ladite matrice d'extension G comprend une portion de ladite matrice diagonale, et en ce que ladite matrice de prolongement D comprend le prolongement de ladite portion.
5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le nombre d'éléments non nuis par colonne et/ou par ligne par rapport au nombre total d'éléments par colonne et/ou par ligne dans ladite matrice noyau A, hors les deux premières colonnes, est compris entre 50 et 100%.
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le nombre d'éléments non nuis par colonne et/ou par ligne par rapport au nombre total d'éléments par colonne et/ou par ligne dans ladite matrice noyau A, hors les deux premières colonnes, est compris entre 75 et 100%.
7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdites deux premières colonnes de la matrice noyau A et/ou de ladite matrice d'extension C comprennent une alternance d'éléments non nuis et d'éléments nuis par ligne et par colonne.
8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que J = 4, K = 22 et M = 46.
9. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite matrice noyau A est égale à :
ladite matrice B présentant au moins une double diagonale est égale à :
ladite matrice d'extension C est égale à :
ladite matrice de prolongement D est égale à :
et en ce que : chaque élément vide ou nul de ladite matrice de base BG’ est remplacé par une matrice nulle de taille Z x Z, chaque élément non nul de ladite matrice de base BG’ est remplacé par une matrice de permutation circulaire obtenue en appliquant une rotation circulaire Vi à une matrice identité de taille Z x Z, telle que :
avec x et y des variables aléatoires.
10. Dispositif de codage d'au moins un bloc de K. Z données source, délivrant au moins un mot de code de taille N. Z formé desdites K. Z données source et de M. Z données de redondance, N = K + M, avec Z un facteur d'expansion entier, Z > 1, comprenant au moins une unité de traitement configurée pour coder (53) lesdites K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z), ladite matrice de parité H étant obtenue (52) à partir d'une matrice de base BG’ de taille M x N, en remplaçant chaque élément de ladite matrice de base B G' par une matrice d'expansion de taille Z x Z, ladite matrice de base BG’ s'exprimant sous la forme :
avec :
A une matrice noyau de taille J x K
B une matrice présentant au moins une double diagonale de taille J x ]
C une matrice d'extension de taille (M — J) X K
D une matrice de prolongement de taille (M — J) x J
0 une matrice nulle de taille (N — K — J) x J
I une matrice identité de taille (M — f) X (N — K — J) ladite matrice d'extension C comprenant au moins deux blocs de lignes consécutifs, comprenant chacun un nombre différent de lignes, égal à un nombre premier ou au carré d'un nombre premier, chaque bloc de lignes comprenant au moins une occurrence d'une matrice diagonale.
11. Programme d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 9 lorsque ce programme est exécuté par un processeur.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2304316A FR3148337A1 (fr) | 2023-04-28 | 2023-04-28 | Procédé de codage de données source, dispositif de codage et programme d’ordinateur correspondants. |
| PCT/EP2024/061163 WO2024223610A1 (fr) | 2023-04-28 | 2024-04-24 | Conception de matrices de base pour les codes ldpc quasi-cycliques |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4702673A1 true EP4702673A1 (fr) | 2026-03-04 |
Family
ID=87571411
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24721141.0A Pending EP4702673A1 (fr) | 2023-04-28 | 2024-04-24 | Conception de matrices de base pour les codes ldpc quasi-cycliques |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP4702673A1 (fr) |
| CN (1) | CN121039961A (fr) |
| FR (1) | FR3148337A1 (fr) |
| WO (1) | WO2024223610A1 (fr) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110677157B (zh) * | 2017-06-27 | 2023-02-07 | 华为技术有限公司 | 信息处理的方法、装置和通信设备 |
| GB2595240B (en) * | 2020-05-18 | 2022-11-30 | Accelercomm Ltd | Low density parity check decoder, electronic device, and method therefor |
-
2023
- 2023-04-28 FR FR2304316A patent/FR3148337A1/fr active Pending
-
2024
- 2024-04-24 CN CN202480028614.2A patent/CN121039961A/zh active Pending
- 2024-04-24 WO PCT/EP2024/061163 patent/WO2024223610A1/fr not_active Ceased
- 2024-04-24 EP EP24721141.0A patent/EP4702673A1/fr active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| FR3148337A1 (fr) | 2024-11-01 |
| WO2024223610A1 (fr) | 2024-10-31 |
| CN121039961A (zh) | 2025-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2837331A1 (fr) | Procede d'entrelacement d'une sequence binaire | |
| FR2905210A1 (fr) | Procede et dispositif de decodage par couches d'une succession de blocs encodes avec un code ldpc | |
| EP1974472B1 (fr) | Procedes d'encodage et de decodage rapides et dispositifs associes | |
| EP2198523A1 (fr) | Procede et dispositif d'encodage de symboles avec un code du type a contrôle de parite et procede et dispositif correspondants de decodage | |
| EP2092651A2 (fr) | Codage et decodage d'un signal de donnees en fonction d'un code correcteur | |
| FR2950209A1 (fr) | Procede de mise a jour elementaire d'un noeud de controle lors d'un decodage d'un bloc encode avec un code ldpc non binaire, et decodeur correspondant. | |
| FR2944171A1 (fr) | Procede et dispositif de modulation mettant en oeuvre une modulation differentielle, procede et dispositif de demodulation, signal et produits programme d'ordinateur correspondants. | |
| WO2024223610A1 (fr) | Conception de matrices de base pour les codes ldpc quasi-cycliques | |
| WO1995025386A1 (fr) | Procede de codage-entralecement et procede correspondant de desentrelacement-decodage | |
| WO2018069661A1 (fr) | Procédé de génération d'un signal multiporteuse, dispositif et programme d'ordinateur correspondant | |
| FR3112260A1 (fr) | Procede de transmission dans plusieurs bandes frequentielles entre deux dispositifs voisins d’un reseau. | |
| FR3148336A1 (fr) | Procédé de codage de données source, dispositif de codage et programme d’ordinateur correspondants. | |
| EP1525663B1 (fr) | Compression de donnees numeriques robuste au bruit de transmission | |
| FR2900294A1 (fr) | Chargement de la memoire d'entree d'un decodeur ldpc avec des donnees a decoder | |
| FR3160529A1 (fr) | Procédé de codage de données source, procédé de décodage de mots de code, dispositifs et programme d’ordinateur correspondants. | |
| FR2806177A1 (fr) | Procede de transmission numerique de type a codage correcteur d'erreurs | |
| FR2822608A1 (fr) | Selection flexible de bits en utilisant une modulation codee par treillis et son procede | |
| FR2792476A1 (fr) | Procede de type arq pour procede de transmission utilisant des turbo-codes, et dispositif associe | |
| EP3751744B1 (fr) | Codage ldpc a protection differenciee | |
| EP1471647A2 (fr) | Codage et décodage utilisant un code construit sur un treillis dont les sections sont basées sur des codes en bloc à bonne distance | |
| FR2796780A1 (fr) | Procede et dispositif de codage a au moins deux codages en parallele et permutation amelioree, et procede et dispositif de decodage correspondants | |
| WO2007110521A1 (fr) | Procede et dispositif d'emission d'un signal code representatif d'un signal source, signal code, procede et dispositif de reception et programmes d'ordinateur correspondants | |
| FR2915641A1 (fr) | Procede et dispositif d'entrelacement de donnees | |
| EP4595233B1 (fr) | Décodeur ldpc avec une architecture multicoeur | |
| Mouhoubi | New challenges in designing polar code decoders for 5G |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20251016 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |