FR2950209A1 - 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. - Google Patents

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. Download PDF

Info

Publication number
FR2950209A1
FR2950209A1 FR0956304A FR0956304A FR2950209A1 FR 2950209 A1 FR2950209 A1 FR 2950209A1 FR 0956304 A FR0956304 A FR 0956304A FR 0956304 A FR0956304 A FR 0956304A FR 2950209 A1 FR2950209 A1 FR 2950209A1
Authority
FR
France
Prior art keywords
doublets
metrics
combined
message
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.)
Granted
Application number
FR0956304A
Other languages
English (en)
Other versions
FR2950209B1 (fr
Inventor
Vincent Heinrich
Julien Begey
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics 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 STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0956304A priority Critical patent/FR2950209B1/fr
Priority to US12/880,844 priority patent/US8468438B2/en
Publication of FR2950209A1 publication Critical patent/FR2950209A1/fr
Application granted granted Critical
Publication of FR2950209B1 publication Critical patent/FR2950209B1/fr
Priority to US13/919,865 priority patent/US20130283119A1/en
Expired - Fee Related 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
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1171Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Procédé de mise à jour élémentaire d'un noeud de contrôle du graphe d'un code LDPC non binaire lors d'un décodage d'un bloc encodé avec ledit code, comprenant une réception d'un premier message d'entrée (U) et d'un second message d'entrée (V) comportant chacun n doublets possédant un symbole et une métrique associée, un traitement de mise à jour élémentaire délivrant un message de sortie (S) possédant n doublets de sortie, ce traitement de mise à jour élémentaire comprenant une élaboration (401) d'une matrice (M) de n doublets combinés à partir d'une combinaison des doublets des deux messages d'entrée (U,V), et un traitement de réduction du nombre des doublets combinés de façon à obtenir les n doublets de sortie du message de sortie (S) possédant les n métriques les plus grandes ou les plus faibles. Le traitement de mise à jour élémentaire comprend un repérage (401U, 401V) des symboles redondants au sein de chaque message d'entrée (U, V) et un traitement additionnel (402) comprenant une fixation à une valeur de référence, de la valeur de la métrique de chaque doublet combiné résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré.

Description

DEMANDE DE BREVET 09-GR1-245 B09-2620FR FZ/EHE Société Anonyme dite : STMicroelectronics SA Procédé de mise à jour élémentaire d'un noeud de contrôle lors d'un décodage d'un bloc encodé avec un code LDPC non binaire, et décodeur correspondant. Invention de : Vincent HEINRICH Julien BEGEY
Procédé de mise à jour élémentaire d'un noeud de contrôle lors d'un décodage d'un bloc encodé avec un code LDPC non binaire et décodeur correspondant.
L'invention concerne le décodage des codes à base de blocs comme par exemple les codes à base de blocs dont la matrice de parité présente une faible densité, c'est-à-dire, comporte un faible nombre de 1. De tels codes sont plus connus de l'homme du métier sous la dénomination « codes LDPC » (« Low Density Parity Check »). Plus particulièrement, l'invention concerne la mise à jour élémentaire d'un noeud de contrôle lors d'un décodage LDPC. Le code LDPC est un code à base de blocs. L'encodeur traite des blocs de K bits et délivre des blocs de N bits. Ainsi, N-K bits de redondance sont ajoutés. Ces N-K bits sont appelés « bits de parité ».
Le taux de codage (« Code rate », en langue anglaise) est défini par le rapport K/N. Plus le taux de codage est bas, plus le nombre de bits de redondance est élevé et ainsi plus grande est la protection contre le bruit du canal de transmission. Ces N-K bits sont calculés à l'aide d'une matrice de parité H.
Le code LDPC est donc également un code basé sur une matrice. Cette matrice a N-K lignes et N colonnes et est composée de « 1 » et de « 0 » avec un nombre de « 1 » faible par rapport au nombre de « 0 ». C'est la raison pour laquelle ce type de codes basés sur une telle matrice sont dénommés « codes LDPC », c'est-à-dire des codes à faible densité. Le bloc encodé BLC, de N bits, est calculé en résolvant l'équation H • BLCT =0, où H désigne la matrice de parité, et T la fonction « transposée ». Du côté du décodeur, la correction des bits erronés est effectuée à partir des relations entre les informations codées du bloc reçu. Ces relations sont données par la matrice de parité H. Le décodeur utilise des métriques internes correspondant aux « 1 » de la matrice H. La matrice H correspond au graphe de Tanner du code LDPC comportant des noeuds dits de contrôle (« check nodes ») et des noeuds d'information (« bit nodes ») reliés entre eux par des chemins du graphe représentatifs des messages échangés itérativement entre les noeuds ainsi reliés. Ces métriques sont mises à jour par lignes (mise à jour des noeuds de contrôle) en prenant en compte les métriques internes d'une même ligne. Ensuite, le décodeur met à jour ces métriques par colonnes (mise à jour des noeuds d'information) en prenant en compte les métriques internes sur une même colonne ainsi que l'information correspondante en entrée du décodeur et provenant du canal de transmission. Une itération correspond à la mise à jour des noeuds de contrôle pour toutes les métriques internes suivie de la mise à jour des noeuds d'information pour toutes les métriques internes. Le décodage d'un bloc nécessite plusieurs itérations. Les valeurs des bits décodés, également appelées « décisions dures » (« Hard decisions », en langue anglaise) sont obtenues en additionnant les métriques internes par colonnes avec les informations reçues et en prenant le signe du résultat. Le résultat est aussi appelé « décision douce » (soft decision) ou LLR (Log Likelyhodd Ratio). Le signe du résultat fournit la valeur « 0 » ou « 1 » du bit tandis que la valeur absolue du résultat donne une indication de confiance (probabilité) pour cette valeur logique « 0 » ou « 1 ». Les codes du types LDPC sont intéressants car ils permettent d'obtenir un taux d'erreurs de bits (BER : « Bit Error Rate », en langue anglaise) très bas, en raison du caractère itératif de l'algorithme de décodage. Plusieurs algorithmes itératifs de décodage existent pour décoder des codes LDPC. On pourra notamment citer l'algorithme classique dit «à propagation de croyance » et bien connu de l'homme du métier sous la dénomination anglosaxonne « Belief Propagation » (BP).
Pour des tailles modérées des mots de code, une des solutions les plus efficaces pour obtenir de bonnes performances d'erreur est d'utiliser des codes LDPC construits sur des corps de Galois non binaires d'ordre q, qu'on note GF(q). Le corps de Galois est non binaire lorsque q est supérieur à 2. Les codes LDPC non binaires représentent une classe plus générale des codes LDPC considérant des ensembles de bits dans un bloc au lieu de bits indépendants. Chaque ensemble de bits forme un symbole choisi dans un corps de Galois. Par exemple, des symboles composés de 8 bits peuvent être compris dans des corps de Galois GF(256) comprenant 256 symboles, au lieu de deux symboles « 0 » ou « 1 » dans un code binaire. Un code LDPC dans un corps de Galois GF(q) est défini par une matrice de parité H creuse dont les éléments non nuls appartiennent à GF(q).
Cependant, les décodeurs associés, sans simplification particulière, ont le désavantage d'avoir une complexité variant en 0(q2). En conséquence, aucun corps d'ordre plus grand que q = 16 ne peut être considéré pour une implémentation « hardware ». La mise à jour d'un noeud de contrôle est une opération prenant un temps important du procédé de décodage. Elle peut être considérée comme une fonction appliquée aux Dc messages correspondant aux symboles non nuls d'une ligne de la matrice de parité H. La mise à jour d'un noeud de contrôle met à jour ces Dc messages. Si F désigne la fonction permettant de calculer la mise à jour des messages, avec E; un message d'origine, le message mis à jour Ek est défini par : Ek =F(Ei) e i e [0, Dc-l], i≠k (1) L'équation (1) implique que la mise à jour de chaque message requière les Dc-1 autres messages. En pratique, une application récursive d'une fonction élémentaire notée G est utilisée pour calculer les Dc messages mis à jours. On a alors : Ek = G(E0 ,G(El,...G(E~,...G(E~C_2,E~~-~ )...))) (2) L'équation (2) montre que la fonction G est appliquée de manière récursive aux messages d'entrée. Ainsi, afin de minimiser le temps global de latence, le temps de latence de G doit être minimal. La fonction G correspond à une opération de mise à jour élémentaire. Une mise à jour élémentaire reçoit deux messages d'entrée et produit un message de sortie possédant le même format que les messages d'entrée. Dans le cas où l'on utilise un algorithme de décodage simplifié de type Extended Min-Sum (EMS) mentionné dans le document « Low-complexity, low-memory EMS algorithm for nonbinary LDPC codes » publié dans la revue IEEE du 24-28 juin 2007 (Institute of electrical and electronic engineers), chaque message est composé de deux vecteurs de nm valeurs, nm«q. Un premier vecteur comprend les nm métriques triées en ordre décroissant, ces métriques pouvant être des valeurs comprenant un signe codées sur Nllr bits, et un second vecteur comprend les nm symboles appartenant au corps de Galois GF(q) associés aux métriques du premier vecteur, les symboles étant codés sur log2(q) bits, soit par exemple 8 bits pour un décodeur fonctionnant sur le corps de Galois GF(256), et triés dans le même ordre que les métriques associées. En d'autres termes, on peut ainsi considérer que chaque message comprend nm doublets, un doublet comprenant un symbole et la métrique associée au symbole. Les nm doublets de chaque message sont classés en ordre décroissant en fonction des métriques. L'objectif d'une opération de mise à jour élémentaire est d'obtenir les nm symboles les plus probables, c'est-à-dire les nm symboles associés aux métriques les plus grandes. I1 y a théoriquement nm2 candidats étant donné qu'il y a en entrée deux messages comprenant chacun nm doublets. On obtient ainsi une matrice carrée de dimension nm2, issue de la combinaison des deux messages, comprenant nm2 doublets. Chaque doublet de la matrice carrée comprend une combinaison des deux symboles et la combinaison des métriques associées. La combinaison de deux métriques correspond à leur somme algébrique et la combinaison des symboles associés correspond à la somme dans l'ensemble GF(q) des symboles, c'est-à-dire une opération XOR effectué bit à bit. La mise à jour élémentaire vise à explorer la matrice carrée de dimension nm2 et à extraire les nm symboles les plus probables, c'est-à-dire les nm symboles associés aux nm métriques les plus grandes. Comme les messages sont déjà triés, par exemple, en ordre décroissant en fonction des métriques, la combinaison de deux symboles possédant la somme la plus grande de métriques est toujours la valeur située au coin supérieur gauche de la matrice, soit Soo=Uo+Vo, avec S la matrice résultant de la combinaison des deux messages en entrée U et V. Ensuite, la combinaison suivante possédant la somme de métriques la plus grande peut correspondre à la combinaison (Uo+V1) ou (U1+Vo). A chaque étape, la combinaison dans le corps de Galois GF(q) des symboles associés aux métriques est réalisée en même temps que la somme des métriques. Le nombre d'étapes nécessaire pour trouver les nm combinaisons de symboles les plus probables, c'est-à-dire associées aux nm plus grandes sommes de métriques, est généralement plus grand que le nombre nm. En effet, pour être validé, un symbole issu de la combinaison de deux symboles d'entrée doit être différent des symboles déjà calculés.
La mise à jour d'un noeud de contrôle est une étape très importante d'un décodage LDPC non binaire qui prend beaucoup de temps, et qui comprend une pluralité de mises à jour élémentaires. Le document « Low-complexity, low-memory EMS algorithm for non-binary LDPC codes » cité ci-avant décrit un procédé permettant de réduire le nombre d'opérations nécessaires pour la mise à jour des noeuds de contrôle tout en conservant des performances proches du décodage par propagation de croyances (BP). Cependant, le procédé décrit dans ce document est un procédé fonctionnant en série en ce sens qu'une mise à jour élémentaire produit au maximum un doublet sur les nm du vecteur de sortie par période d'horloge. Le problème majeur d'une implémentation en série d'une mise à jour d'un noeud de contrôle réside dans son faible débit de données. I1 est possible d'implémenter une pluralité de processeurs en série travaillant en parallèle. Cependant, à haute fréquence de travail et pour de petits blocs d'informations, le parallélisme maximum peut être très bas conservant un débit de données maximum limité. Dans le cas d'une implémentation en parallèle permettant de réaliser une opération de mise à jour élémentaire, il n'est pas nécessaire d'explorer les nm2 doublets de la matrice. Puisque cette matrice est réalisée à partir de vecteurs triés en ordre décroissant de métriques, le nombre de doublets de la matrice ayant une possibilité d'être dans le vecteur de sortie peut être considérablement réduit.
Les doublets potentiels de la matrice forment un motif comme illustré par des points noirs sur la figure 1. L'exemple présenté sur la figure 1 est donné pour nm=10. Le nombre total de doublets potentiels peut être limité à 27 dans le cas où nm=10. La formule générale permettant de calculer le nombre de doublets potentiels dépend du nombre nm et est donné par (k max N=2• ùkmax2 (3) k=1 / Avec kmax2 le plus grand carré d'un entier, le carré de l'entier étant plus petit que nm, par exemple kmax2=9 dans le cas où nm=l0, et Lx] la valeur arrondie à l'entier inférieur. I1 est à noter que le nombre choisi de doublets potentiels peut être plus grand que celui donné par l'équation (3), et ce afin de compenser le problème des symboles redondants. Cependant, malgré cette réduction du nombre de doublets potentiels, le nombre à trier reste grand. En effet pour des valeurs classiques de nm=l2 ou nm=l6, 35 ou 50 valeurs doivent être triées en parallèle, ce qui requiert de grands trieurs parallèles et un faible débit. De plus, en ce qui concerne la suppression des symboles redondants, la technique la plus directe consiste à comparer les symboles de chaque doublet potentiel trié aux symboles des autres doublets potentiels et de supprimer les doublets comprenant des symboles identiques. La réalisation d'une telle opération en parallèle requiert de nombreux comparateurs et multiplexeurs et augmente considérablement le temps de décodage d'un bloc. Selon un mode de mise en oeuvre et de réalisation il est proposé une implémentation en parallèle d'un processeur permettant une mise à jour élémentaire d'un noeud de contrôle d'un bloc encodé avec un code LDPC non binaire améliorant la vitesse de traitement de l'opération de mise à jour élémentaire. I1 est notamment possible de réaliser une opération de mise à jour élémentaire d'un noeud de contrôle en une période d'horloge. Selon un aspect, il est ainsi proposé un procédé de mise à jour élémentaire d'un noeud de contrôle du graphe d'un code LDPC non binaire lors d'un décodage d'un bloc encodé avec ledit code, c'est-à-dire un code LDPC construit sur des corps de Galois non binaire d'ordre q>2. Le procédé comprend une réception d'un premier message d'entrée et d'un second message d'entrée comportant chacun nm doublets, un doublet possédant un symbole et une métrique associée à ce symbole et les messages d'entrées étant ordonnés selon une même fonction monotone appliquée aux métriques. Les messages d'entrées peuvent ainsi être trié de manière décroissante en fonction des métriques ou de manière croissante en fonction des métriques.
Le procédé comprend ensuite un traitement de mise à jour élémentaire délivrant un message de sortie possédant nm doublets de sortie, ce traitement de mise à jour élémentaire comprenant une élaboration d'une matrice comprenant un premier sous ensemble de p doublets combinés à partir d'une combinaison des doublets des deux messages d'entrée, p étant supérieur à nm. De la combinaison de deux doublets résulte un doublet combiné comprenant un symbole combiné résultant d'une combinaison des deux symboles d'entrée et une métrique combinée associée résultant d'une addition des deux métriques d'entrées associées aux symboles d'entrée. Les p doublets combinés possèdent soit les métriques les plus grandes ou soit les métriques les plus faibles et forment un motif choisi au sein de la matrice. Le premier sous-ensemble peut être, par exemple, déterminé à partir de l'équation (3) ci-avant pour déterminer le nombre de doublets combinés.
Le procédé comprend également un traitement de réduction du nombre des doublets combinés de façon à obtenir les nm doublets de sortie du message de sortie possédant soit les nm métriques les plus grandes soit les nm métriques les plus faibles. I1 est possible d'obtenir ainsi en sortie les nm doublets possédant les métriques les plus grandes, ou les nm doublets possédant les métriques les plus faibles. Dans un cas où l'on souhaite obtenir en sortie les nm doublets possédant les métriques les plus grandes, les messages d'entrée seront ordonnés en ordre décroissant en fonction des métriques tout comme le message de sortie. En revanche, si l'on souhaite obtenir les nm doublets possédant les métriques les plus faibles en sortie, les messages d'entrée seront ordonnés en ordre croissant en fonction des métriques tout comme le message de sortie. Selon une caractéristique générale de cet aspect, le traitement de mise à jour élémentaire comprend un repérage des symboles redondants au sein de chaque message d'entrée et un traitement additionnel comprenant une fixation à une valeur de référence dépendant du choix des valeurs de métriques conservées pour les nm doublets de sortie, de la valeur de la métrique de chaque doublet combiné résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré. Ce repérage des symboles redondants au sein de chaque message peut être réalisé avant ou parallèlement à la combinaison des messages d'entrées. Ainsi, les nm doublets de chacun des deux messages sont comparés afin de repérer les symboles redondants dans chaque message, au lieu, comme dans l'art antérieur, de comparer chaque doublet combiné aux p autres doublets combinés de la matrice afin de vérifier si son symbole est redondant, ce qui permet d'économiser un temps considérable en réalisant moins de comparaisons. Les doublets des messages d'entrée comprenant des symboles redondants sont repérés. Ainsi lorsqu'ils sont combinés lors de l'élaboration de la matrice, les métriques des doublets combinés résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré sont fixées à une valeur de référence. Cette valeur de référence peut être une valeur de métrique minimale telle qu'une valeur nulle dans le cas où les nm doublets de métriques les plus grandes sont recherchés. Dans un cas où les nm doublets de métriques les plus petites sont recherchés plutôt que les nm doublets de métriques les plus grandes, les doublets de la matrice, dont un des deux symboles combiné est un symbole redondant repéré, sont forcés à une valeur de référence qui peut être une valeur maximale de métrique. Le fait de fixer les métriques de certains doublets combinés à une valeur de référence permet de les supprimer par la suite, c'est-à-dire de ne pas en tenir compte, lorsque les doublets sont triés selon les métriques et que seuls les doublets comprenant les plus grandes ou les plus faibles sont sélectionnés. Si les métriques des doublets combinés résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré n'étaient pas fixées à une valeur de référence lors du décodage LDPC donné moins les performances globales seraient fortement réduites, étant que les doublets combinés résultant d'une combinaison d'au un doublet comportant un symbole redondant repéré se dupliqueraient et se propageraient lors de l'opération récursive de mise à jour élémentaire. Avantageusement, l'élaboration de la matrice et ledit repérage peuvent être effectués simultanément afin de gagner un peu plus de temps.
Le traitement de réduction du nombre de doublets du motif choisi peut avantageusement comporter un regroupement des doublets du motif choisi en groupes, une suppression de certains doublets combinés de certains groupes de façon à obtenir un deuxième sous-ensemble de doublets combinés, et une sélection des nm doublets de sortie parmi les doublets combinés du deuxième sous-ensemble. Les doublets du motif choisi sont divisés en un groupe diagonal et des groupes non diagonaux, le groupe diagonal comprenant préférentiellement les doublets du motif choisi situés sur la diagonale de la matrice.
De préférence, chaque groupe non diagonal comprend deux vecteurs comprenant un nombre identique de doublets du motif choisi. Avantageusement, la suppression peut comporter la suppression de la moitié des doublets de chacun des groupes non diagonaux, les doublets conservés étant les doublets du motif choisi comportant les métriques les plus grandes ou les plus petites suivant qu'on souhaite obtenir les nm doublets de sortie possédant les métriques les plus grandes ou les nm doublets de sortie possédant les métriques les plus faibles.
Préférentiellement, le nombre de doublets du groupe diagonal n'est pas réduit. Selon un autre aspect, il est proposé, dans un mode de réalisation, un décodeur comprenant une entrée pour recevoir un bloc encodé avec un code LDPC non binaire et des moyens de mises à jour élémentaire d'un noeud de contrôle du graphe dudit code, aptes à recevoir un premier message d'entrée et un second message d'entrée comportant chacun nm doublets, un doublet comportant un symbole et une métrique associée à ce symbole, les messages d'entrées étant ordonnés selon une fonction monotone appliquée aux métriques, et à délivrer un message de sortie possédant nm doublets de sortie, les moyens de mise à jour élémentaire comprenant un module de combinaison apte à élaborer une matrice comprenant un premier sous ensemble de p doublets combinés à partir d'une combinaison des doublets des deux messages d'entrée, p étant supérieur à nm, les p doublets combinés possédant soit les métriques les plus grandes soit les métriques les plus faibles et formant un motif choisi au sein de la matrice, et des moyens de réduction générale du nombre de doublets combinés de façon à obtenir les nm doublets du message de sortie possédant soit les métriques les plus grandes soit les métriques les plus faibles. Selon une caractéristique générale, les moyens de mise à jour élémentaire d'un noeud de contrôle comprennent en outre un premier module de repérage apte à repérer les symboles redondants au sein du premier message, un second module de repérage apte à repérer les symboles redondants au sein du second message, et un module de marquage apte à fixer, à une valeur de référence dépendant du choix des valeurs de métriques conservées pour les nm doublets de sortie, la valeur de la métrique de chaque doublet combiné résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré. Avantageusement, le module de combinaison reçoit le premier message en parallèle avec le premier module de repérage, et reçoit le second message en parallèle avec le second module de repérage. Les moyens de réduction générale peuvent avantageusement comprendre des moyens de réduction aptes à réduire le nombre de doublets du motif choisi de façon à obtenir un deuxième sous-ensemble de doublets combinés, les moyens de réduction étant couplés entre les moyens de marquage et les moyens de sélection. De préférence, les moyens de réductions comprennent un module de groupement apte à regrouper les doublets du motif choisi en groupes et une pluralité de module de réduction aptes à supprimer certains doublets de certain des groupes, chaque module de réduction recevant un groupe non diagonal en entrée. Le module de groupement regroupe préférentiellement les doublets du motif choisi en un groupe diagonal et des groupes non diagonaux, groupe diagonal comprenant les doublets du motif choisi situés sur la diagonale de la matrice.
Avantageusement, chaque groupe non diagonal du module de groupement peut comprendre deux vecteurs comprenant un nombre identique de doublets. De préférence, chaque module de suppression est apte à supprimer la moitié des doublets du groupe non diagonal traité, les doublets conservés étant les doublets du motif choisi comportant les métriques les plus grandes ou les plus petites. De préférence, le module de groupement délivre directement le groupe diagonal au module de sélection sans que le groupe diagonal ne subisse de réduction.
Selon un autre aspect, il est proposé un appareil comportant une chaîne de réception incorporant ledit décodeur. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation et de mise en oeuvre, nullement limitatifs, et des dessins annexés sur lesquels : - la figure 1, déjà décrite, illustre le motif représenté par les doublets potentiels dans une matrice selon l'art antérieur ; - la figure 2 illustre schématiquement un exemple de structure interne d'un système de communication, - la figure 3 représente de manière schématique un mode de mise en oeuvre d'opération de mise à jour élémentaire d'un noeud de contrôle ; - la figure 4 illustre de manière schématique un exemple de procédé de mise à jour élémentaire d'un noeud de contrôle ; - la figure 5 présente de manière schématique un exemple de motif formé au sein de la matrice par les symboles pris en compte à l'issue de l'étape de combinaison ; - la figure 6 présente un exemple de mise en oeuvre d'une étape de réduction d'un groupe non diagonal dans un procédé de mise à jour élémentaire ; - la figure 7 présente de manière schématique un exemple de mode de réalisation de moyens de mise à jour d'un noeud de contrôle. Sur la figure 2 a été représenté de manière schématique un 25 système de communication 1 comprenant une chaîne de transmission 2, capable de transmettre des informations codées et modulées sur un canal de transmission 3, et une chaîne de réception 4 capable de recevoir et de décoder des informations en provenance du canal de transmission 3. 30 La chaîne de transmission 2 comporte de façon classique et connue en soi une source d'informations 21 aptes à générer une succession de blocs d'informations destinés à être transmis et des moyens de compression 22 d'informations aptes à augmenter le débit d'informations. Elle comporte également des moyens d'encodage de 10 15 20 canal 23 dont la fonction est notamment d'ajouter de la redondance pour pouvoir par la suite corriger les erreurs potentielles en réception dues au bruit du canal de transmission. Ces moyens d'encodage de canal 23 comportent par exemple des moyens de codage LDPC. En sortie de moyens d'encodage de canal 23, la chaîne de transmission 2 comprend des moyens de modulation 24 aptes à adapter le signal au canal de transmission 3. La chaîne de réception 4 comporte des moyens homologues effectuant les fonctions inverses. Plus précisément, on trouve, tout d'abord, des moyens de démodulation 31 et des moyens de décodage de canal 32 permettant de décoder les blocs d'informations préalablement encodés avec le code de correction d'erreur et ayant subit d'éventuelles perturbations lors de la transmission via le canal de transmission 3. I1 est ensuite possible de trouver des moyens de décompression 33 des données avant de délivrer ces dernières à un utilisateur d'informations 34. Le système de communication peut être incorporé dans un appareil de communication sans fil, ou bien dans un disque dur par exemple.
La figure 3 représente schématiquement une opération élémentaire de mise à jour d'un noeud de contrôle. Lors d'une mise à jour d'un noeud de contrôle deux messages U et V sont reçus en entrées, tout deux composés de deux vecteurs de nm valeurs, et un message S de même format, c'est-à-dire comprenant deux vecteurs de nm valeurs, est délivré en sortie. Chaque message est composé d'un premier vecteur Xllr comprenant nm métriques triées en ordre décroissant, ces métriques peuvent être des valeurs comprenant un signe codé sur Nllr bits. Chaque message est également composé d'un second vecteur X_symb comprenant les nm symboles appartenant au corps de Galois GF(q) associés aux métriques du premier vecteur et triés selon le même ordre. Les symboles sont codés sur log2(q) bits, soit par exemple 8 bits pour un décodeur fonctionnant sur un corps de Galois GF(256).
Nous considérerons par la suite que l'objectif d'une opération de mise à jour élémentaire est d'obtenir les nm symboles les plus probables, c'est-à-dire les nm symboles associés aux métriques les plus grandes.
Cela étant, l'invention n'est pas limitée à cet exemple, et il serait possible de viser à obtenir les symboles associés aux métriques les plus faibles. Comme décrit précédemment, on peut considérer que les messages comprennent nm doublets, un doublet comprenant un symbole et la métrique associée. Dans ce cas, on peut considérer que l'objectif d'une opération de mise à jour élémentaire est d'obtenir les nm doublets comprenant les nm métriques les plus grandes. Sur la figure 4 a été représenté de manière schématique un exemple de procédé de mise à jour élémentaire d'un noeud de contrôle.
Deux messages U et V d'entrée comportant chacun un premier vecteur Xllr comprenant des métriques et un second vecteur X_symb comprenant les symboles associés aux métriques sont pris en compte. Le premier vecteur Xllr de chaque message est déjà trié de manière décroissante et le second vecteur X_symb de chaque message est trié en correspondance. Dans une étape de repérage des redondants 401U et 401V, le second vecteur U_symb et V_symb de chaque message d'entrée est analysé et les symboles redondants au sein de chacun des vecteurs U et V sont repérés à l'aide, par exemple, de marquages (« flag » en langue anglaise). En même temps, dans une étape de combinaison 401, une matrice carrée de métriques Mllr et une matrice carrée de symboles M_symb sont initialisées. Les matrices carrées sont de dimensions (nmxnm). La matrice carrée Mllr de métriques est réalisée en sommant une métrique du premier vecteur Ullr du message U avec une métrique du premier vecteur Vllr du message V. La matrice carrée de symboles M_symb est réalisée en combinant (XOR sur les bits) un symbole du second vecteur U_symb du message U avec un symbole du second vecteur V_symb du message V.
Par la suite, et à des fins de simplification, on considérera une unique matrice M comprenant des doublets comportant chacun un symbole et la métrique associée. Lors de l'élaboration de la matrice M de doublets, on détermine un premier nombre p de doublets combinés de manière à obtenir un premier sous-ensemble de doublets combinés. Le premier sous-ensemble de doublets combinés possède les p doublets combinés comprenant les p métriques les plus grandes, et forme un motif MT choisi au sein de la matrice M. Le premier sous-ensemble peut être, par exemple, déterminé à partir de l'équation (3) ci-avant pour déterminer le nombre de doublets combinés. A l'issue de la combinaison 401, la matrice M comprend ainsi nm2 doublets, chaque doublet comportant une combinaison d'un symbole du premier message U avec un symbole du second message V ainsi que la somme des deux métriques associées.
Dans une étape suivante de marquage des redondants 402, les métriques des doublets du motif MT choisi de la matrice M, dont un des deux symboles combinés est un symbole redondant repéré lors du repérage 401U et 401V des symboles redondants dans chaque message U et V, sont fixés à une valeur de référence. Plus explicitement, la métrique de ces doublets est fixée à une valeur de référence qui peut être une valeur minimale telle qu'une valeur nulle. Dans un cas où les nm doublets de métriques les plus petites sont recherchés plutôt que les nm doublets de métriques les plus grandes, les doublets du motif MT choisi de la matrice M, dont un des deux symboles combiné est un symbole redondant repéré, sont forcés à une valeur de référence qui peut être une valeur maximale de métrique. Dans une étape suivante de groupement 403, les p doublets combinés du premier sous ensemble sont divisés en groupes. Dans une étape de réduction 404, certains groupes vont subir une réduction du nombre de doublets compris dans le groupe de sorte qu'il ne reste plus que la moitié des doublets dans les groupes ainsi réduits, les doublets restant dans les groupes réduits étant les doublets comprenant les métriques les plus grandes de chaque groupe avant réduction.
Cette étape de réduction 404 permet de supprimer les doublets redondants marqués à l'étape de marquage des redondants 402 des groupes réduit résultant de cette étape de réduction 404. En effet, les doublets marqués comme redondants ont eu leur métrique fixée à une valeur de référence minimum et ne peuvent donc pas être sélectionnés dans les groupes réduits. Dans une étape finale de sélection 405, les doublets restant dans les groupes réduits et les groupes non réduits sont triés et sélectionnés en parallèle de sorte que le message de sortie ne comprenne que les nm doublets comprenant les métriques les plus grandes et qu'il soit ordonné en ordre décroissant en fonction des métriques. Cette étape de sélection 405 permet également de supprimer les doublets marqués comme redondants qui se trouveraient dans le groupe diagonal GO qui n'a pas été réduit préalablement. En effet, les doublets marqués comme redondants ont eu leur métrique fixée à une valeur de référence minimum et ne peuvent donc pas être sélectionnés puisque les doublets sont triés avant d'être sélectionné. Plusieurs tris en parallèle sont possibles et connus, tel qu'un « PRank sorter » ou un « Bitonic sorter ». Un trieur « Prank sorter » construit une matrice à partir d'un vecteur de métriques des doublets reçu en entrée. Le trieur compare les métriques d'entrée deux à deux et renvoie un rang pour chacune d'elles à partir du résultat de ces comparaisons. Le rang de chaque métrique permet de déterminer le nouvel ordre des doublets afin de les trier par ordre décroissant. Un trieur « bitonic » est basé sur un procédé élémentaire qui prend deux listes de N valeurs triées chacune et produit une liste de 2N valeurs triées, et un algorithme récursif de type « diviser pour régner ». La figure 5 représente de manière schématique un motif formé par les p doublets sélectionnés à l'issue de l'étape de combinaison 401.
Dans le cas d'une implémentation en parallèle permettant de réaliser une opération de mise à jour élémentaire, il n'est pas nécessaire de calculer les nm2 combinaisons de doublets de la matrice M. Puisque cette matrice est réalisée à partir de vecteurs triés en ordre décroissant de métriques, le nombre de doublets de la matrice M ayant une possibilité d'être dans le message de sortie S peut être considérablement réduit. Les doublets potentiels de la matrice M peuvent former un motif MT qui peut être différent du motif illustré sur la figure 1.
Un exemple de motif est donné sur la figure 5. Dans la matrice M représentée, chaque point noir correspond à un doublet combiné comprenant une combinaison de deux symboles et une somme des deux métriques associées. Lors de l'étape de groupement 403, les doublets combinés compris dans le motif MT choisi sont séparés en différents groupes. Un groupe diagonal comprend les doublets combinés du motif MT situés sur la diagonale de la matrice M. Ces doublets combinés sont regroupés dans un seul vecteur GO qui ne sera pas déduit. Un premier groupe non diagonal G1 comprend les doublets combinés du motif MT situés sur la première colonne ou sur la première ligne de la matrice M à l'exception du doublet déjà compris dans le groupe diagonal. Ce premier groupe non diagonal comprend ainsi deux vecteurs ; un premier vecteur G1 ligne comprenant les doublets combinés de la première ligne de la matrice M, et un deuxième vecteur G1 col comprenant les doublets combinés de la première colonne de la matrice M. Un second groupe non diagonal G2 comprend les doublets combinés du motif MT situés sur la seconde colonne ou sur la seconde ligne de la matrice M à l'exception du doublet combiné déjà compris dans le groupe diagonal et des doublets combinés déjà compris dans le premier groupe non diagonal. Ce deuxième groupe comprend également deux vecteurs ; un premier vecteur G2 ligne comprenant les doublets combinés de la deuxième ligne, et un second vecteur G2 col comprenant les doublets combinés de la deuxième colonne.
Si les p doublets combinés du motif MT choisi sont répartis sur un motif comprenant plus de deux colonnes et deux lignes, on constitue autant de groupes non diagonaux que de degrés de colonnes et de lignes sur lesquels les p doublets combinés sont répartis.
La figure 6 présente un exemple de mise en oeuvre d'une étape de réduction 404 d'un groupe non diagonal Gk dans un procédé de mise à jour élémentaire. L'objectif de cette étape consiste à réduire le nombre de doublets combinés d'un groupe avant l'étape suivante de sélection 405 et permet également de supprimer les doublets redondants précédemment marqués, c'est-à-dire fixé à une valeur de référence, compris dans le groupe diagonal GO entre autre. La réduction 404 ne s'opère que sur les doublets combinés des groupes non diagonaux Gk. Comme précisé précédemment, chaque groupe non diagonal Gk comprend un premier vecteur de ligne Gk ligne et un premier vecteur non diagonal de Gk col. Le vecteur de ligne Gk ligne d'un groupe comprend le même nombre de doublets combinés que le vecteur de colonne Gk col du même groupe. Les doublets combinés de chacun de ces deux vecteurs sont triés en ordre décroissant en fonction des métriques.
I1 est possible d'extraire d'un groupe la moitié des doublets combinés du groupe ayant les métriques les plus grandes. Sur l'exemple illustré sur la figure 6, chaque vecteur Gk ligne et Gk col est trié dans un ordre décroissant de sorte que le premier doublet combiné de chaque vecteur corresponde au doublet combiné possédant la métrique la plus grande du vecteur, et que le dernier doublet combiné de chaque vecteur corresponde au doublet combiné ayant la métrique la plus petite. Dans l'exemple illustré, les vecteurs comprennent chacun cinq doublets combinés. L'étape de réduction d'un groupe est réalisée en comparant la métrique du dernier doublet combiné du vecteur ligne Gk ligne à la métrique du premier doublet combiné du vecteur colonne Gk col. Le doublet combiné ayant la métrique la plus grande est conservé dans le vecteur du groupe réduit Gk réduit. Ensuite, la métrique de l'avant-dernier doublet combiné, soit la métrique du quatrième doublet combiné, dans l'exemple illustré, du vecteur ligne Gkligne est comparée à la métrique du second doublet colonne Gkcol. Le doublet combiné ayant la métrique la plus grande est conservé dans le vecteur du groupe réduit Gkréduit. Le même procédé de comparaison est utilisé jusqu'à ce que la métrique du premier doublet combiné du vecteur ligne Gk ligne soit comparée à la métrique du dernier doublet combiné du vecteur colonne Sk col et que le doublet combiné ayant la métrique la plus grande des deux soit conservé dans le vecteur du groupe réduit Gk_rédu;t.
A l'issue de la réduction 404, chaque groupe non diagonal ne comprend plus que la moitié des doublets combinés possédant les métriques les plus grandes du groupe. La figure 7 présente de manière schématique un exemple de mode de réalisation de moyens de mise à jour d'un noeud de contrôle recevant deux messages U et V en entrée. Les moyens de mise à jour d'un noeud de contrôle comprennent premier module de repérage 71 apte à repérer les symboles redondants au sein du premier message U et un second module de repérage 72 apte à repérer les symboles redondants au sein du second message V. I1 comprend également un module de combinaison 73 apte à initialiser une matrice carrée M de dimensions (nmxnm) comprenant un premier sous ensemble de doublets combinés à partir d'un doublet du premier message U avec un doublet du second message V, la combinaison de deux doublets délivrant un doublet combiné comprenant un symbole combiné issu d'une combinaison des deux symboles d'entrée et une métrique combinée associée issue d'une addition des deux métriques d'entrées associées au symboles d'entrée. Le premier sous-ensemble de doublets combinés possède les métriques les plus grandes et forme un motif MT choisi au sein de la matrice M.
Les modules de repérage 71 et 72 travaillent en parallèle avec le module de combinaison 73. La matrice M initialisée par le module de combinaison 73 est délivrée à un module de marquage 74 qui reçoit également les indications de doublets comprenant des symboles redondants des modules de repérage 71 et 72. Le module de marquage 74 fixe les métriques des doublets combinés du motif MT choisi de la matrice M issu d'une combinaison d'au moins un doublet comportant un symbole redondant à une valeur de référence minimale.
Les p doublets combinés du premier sous-ensemble de la matrice résultante M sont alors délivrés par le module de suppression 74 à des moyens de réduction générale 80, et plus particulièrement à des moyens de réduction 76 aptes à réduire le nombre de doublets du motif MT choisi de façon à obtenir un deuxième sous-ensemble de doublets combinés. Les seconds moyens de réduction 76 comprennent un module de groupement 79 apte à regrouper les doublets du motif MT en groupes et une pluralité de module de réduction aptes à supprimer certains doublets de certain des groupes Gk. Dans cet exemple illustré les seconds moyens de réduction comprennent deux modules de réduction 761 et 762 recevant respectivement en entrée le premier groupe non diagonal G1 et le deuxième groupe non diagonal G2. Le premier groupe non diagonal G1 comprend les doublets combinés de la première ligne et de la première colonne du motif MT choisi de la matrice M à l'exception du doublet déjà compris dans le groupe diagonal GO, et le second groupe non diagonal G2 comprend les doublets combinés de la seconde ligne et de la seconde colonne du motif MT choisi de la matrice M à l'exception du doublet déjà compris dans le groupe diagonal GO et des doublets déjà compris dans le premier groupe non diagonal G1. Le premier module de réduction 761 réduit de moitié le nombre de doublets combinés compris dans le premier groupe non diagonal G1 et le deuxième module de réduction 762 réduit de moitié le nombre de doublets combinés compris dans le second groupe non diagonal G2. Les doublets conservés dans chaque groupe sont les doublets possédant les métriques les plus grandes du groupe. Enfin, les moyens de mise à jour d'un noeud de contrôle comprennent un module de sélection 77 apte à sélectionner les nm doublets compris dans le message de sortie S à partir du groupe diagonal GO délivré par le module de groupement 79, du premier groupe non diagonal réduit G1 réduit délivré par le premier module de réduction 761, et du second groupe non diagonal réduit G2 réduit délivré par le second module de réduction 762.
Tous ces moyens peuvent être réalisés par des modules logiciels au sein d'un processeur et / ou par des circuits logiques.

Claims (17)

  1. REVENDICATIONS1. Procédé de mise à jour élémentaire d'un noeud de contrôle du graphe d'un code LDPC non binaire lors d'un décodage d'un bloc encodé avec ledit code, comprenant une réception d'un premier message d'entrée (U) et d'un second message d'entrée (V) comportant chacun nm doublets, un doublet possédant un symbole et une métrique associée à ce symbole, les messages d'entrées (U, V) étant ordonnés selon une même fonction monotone appliquée aux métriques, un traitement de mise à jour élémentaire délivrant un message de sortie (S) possédant nm doublets de sortie, ce traitement de mise à jour élémentaire comprenant une élaboration (401) d'une matrice (M) comprenant un premier sous ensemble de p doublets combinés à partir d'une combinaison des doublets des deux messages d'entrée (U,V), p étant supérieur à nm, les p doublets combinés possédant soit les métriques les plus grandes soit les métriques les plus faibles et formant un motif (MT) choisi au sein de la matrice (M), et un traitement de réduction du premier sous ensemble de façon à obtenir les nm doublets de sortie du message de sortie (S) possédant soit les nm métriques les plus grandes soit les nm métriques les plus faibles, caractérisé en ce que le traitement de mise à jour élémentaire comprend un repérage (401U, 401V) des symboles redondants au sein de chaque message d'entrée (U, V) et un traitement additionnel (402) comprenant une fixation à une valeur de référence dépendant du choix des valeurs de métriques conservées pour les nm doublets de sortie, de la valeur de la métrique de chaque doublet combiné résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que la valeur de référence est une valeur élevée si l'on souhaite conserver les nm métriques les plus faibles, et la valeur de référence est une valeur faible si l'on souhaite conserver les nm métriques les plus élevées.
  3. 3. Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que l'élaboration (401) de la matrice et ledit repérage (401U, 401V) sont effectués simultanément.
  4. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que le traitement de réduction comporte un regroupement (403) des doublets du motif (MT) choisi en groupes, une suppression (404) de certains doublets combinés de certains groupes de façon à obtenir un deuxième sous-ensemble de doublets combinés, et une sélection (405) des nm doublets de sortie parmi les doublets combinés du deuxième sous-ensemble.
  5. 5. Procédé selon la revendication 4, caractérisé en ce que les doublets du motif (MT) choisi sont divisés en un groupe diagonal (GO) et des groupes non diagonaux (Gk), le groupe diagonal (GO) comprenant les doublets du motif (MT) choisi situés sur la diagonale de la matrice (M).
  6. 6. Procédé selon la revendication 5, caractérisé en ce que chaque groupe non diagonal (Gk) comprend deux vecteurs comprenant un nombre identique de doublets du motif (MT) choisi.
  7. 7. Procédé selon l'une des revendications 5 ou 6, caractérisé en ce que la suppression (404) comporte la suppression (404) de la moitié des doublets de chacun des groupes non diagonaux (Gk), les doublets conservés étant les doublets du motif (MT) choisi comportant les métriques les plus grandes ou les plus petites.
  8. 8. Procédé selon l'une des revendications 5 à 7, dans lequel le nombre de doublets du groupe diagonal (GO) n'est pas réduit.
  9. 9. Décodeur comprenant une entrée pour recevoir un bloc encodé avec un code LDPC non binaire et des moyens de mises à jour élémentaire d'un noeud de contrôle du graphe dudit code, aptes à recevoir un premier message d'entrée (U) et un second message d'entrée (V) comportant chacun nm doublets, un doublet comportant un symbole et une métrique associée à ce symbole, les messages d'entrées (U, V) étant ordonnés selon une fonction monotone appliquée aux métriques, et à délivrer un message de sortie (S) possédant nm doublets de sortie, les moyens de mise à jour élémentaire comprenant unmodule de combinaison (73) apte à élaborer une matrice (M) comprenant un premier sous ensemble de p doublets combinés à partir d'une combinaison des doublets des deux messages d'entrée (U,V), p étant supérieur à nm, les p doublets combinés possédant soit les métriques les plus grandes soit les métriques les plus faibles et formant un motif (MT) choisi au sein de la matrice (M), et des moyens de réduction générale (80) du premier sous-ensemble de façon à obtenir les nm doublets du message de sortie (S) possédant soit les métriques les plus grandes soit les métriques les plus faibles, caractérisé en ce que les moyens de mise à jour élémentaire d'un noeud de contrôle comprennent en outre un premier module de repérage (71) apte à repérer les symboles redondants au sein du premier message (U), un second module de repérage (72) apte à repérer les symboles redondants au sein du second message (V), et un module de marquage (74) apte à fixer, à une valeur de référence dépendant du choix des valeurs de métriques conservées pour les nm doublets de sortie, la valeur de la métrique de chaque doublet combiné résultant d'une combinaison d'au moins un doublet comportant un symbole redondant repéré.
  10. 10. Décodeur selon la revendication 9, caractérisé en ce que le module de combinaison (73) est apte à recevoir le premier message (U) en parallèle avec le premier module de repérage (71), et à recevoir le second message (V) en parallèle avec le second module de repérage (72).
  11. 11. Décodeur selon l'une des revendications 9 ou 10, caractérisé en ce que les moyens de réduction générale (80) comprennent des moyens de réduction (76) aptes à réduire le nombre de doublets du motif (MT) choisi de façon à obtenir un deuxième sous-ensemble de doublets combinés, les moyens de réduction étant couplés entre les moyens de marquage (74) et les moyens de sélection (77).
  12. 12. Décodeur selon la revendication 11, caractérisé en ce que les moyens de réductions (76) comprennent un module de groupement (79) apte à regrouper les doublets du motif (MT) choisi en groupes et une pluralité de module de réduction (761, 762) aptes à supprimercertains doublets de certain des groupes (Gk), chaque module de réduction (761, 762) recevant un groupe non diagonal (Gk) en entrée.
  13. 13. Décodeur selon la revendication 12, caractérisé en ce que le module de groupement (79) est apte à regrouper les doublets du motif (MT) choisi en un groupe diagonal (GO) et des groupes non diagonaux (Gk), groupe diagonal (GO) comprenant les doublets du motif (MT) choisi situés sur la diagonale de la matrice (M).
  14. 14. Décodeur selon la revendication 13, caractérisé en ce que chaque groupe non diagonal (Gk) du module de groupement (79) comprend deux vecteurs comprenant un nombre identique de doublets.
  15. 15. Décodeur selon l'une des revendications 13 ou 14, caractérisé en ce que chaque module de suppression (761, 762) est apte à supprimer la moitié des doublets du groupe non diagonal traité, les doublets conservés étant les doublets du motif (MT) choisi comportant les métriques les plus grandes ou les plus petites.
  16. 16. Décodeur selon l'une des revendications 13 à 15, caractérisé en ce que le module de groupement (79) est apte à délivrer directement le groupe diagonal (GO) au module de sélection (77).
  17. 17. Appareil comportant une chaîne de réception incorporant un décodeur selon l'une des revendications 9 à 16.
FR0956304A 2009-09-14 2009-09-14 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. Expired - Fee Related FR2950209B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0956304A FR2950209B1 (fr) 2009-09-14 2009-09-14 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.
US12/880,844 US8468438B2 (en) 2009-09-14 2010-09-13 Method and apparatus for elementary updating a check node during decoding of a block encoded with a non-binary LDPC code
US13/919,865 US20130283119A1 (en) 2009-09-14 2013-06-17 Method and Apparatus for Elementary Updating a Check Node During Decoding of a Block Encoded with a Non-binary LDPC Code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0956304A FR2950209B1 (fr) 2009-09-14 2009-09-14 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.

Publications (2)

Publication Number Publication Date
FR2950209A1 true FR2950209A1 (fr) 2011-03-18
FR2950209B1 FR2950209B1 (fr) 2011-10-14

Family

ID=42133462

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0956304A Expired - Fee Related FR2950209B1 (fr) 2009-09-14 2009-09-14 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.

Country Status (2)

Country Link
US (2) US8468438B2 (fr)
FR (1) FR2950209B1 (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2731270A4 (fr) 2011-11-17 2014-07-02 Huawei Tech Co Ltd Procédé et dispositif d'encodage et de décodage
CN104221291B (zh) * 2012-03-28 2018-02-23 英特尔公司 更新与迭代解码器关联的变量节点
CN104185952B (zh) * 2012-03-28 2018-11-13 英特尔公司 初级检验节点处理的方法和***
FR3016259B1 (fr) * 2014-01-07 2017-09-08 Univ Bretagne Sud Procede de gestion d'une unite de calcul de noeud de parite, equipement et logiciel pour la mise en oeuvre du procede
KR102194136B1 (ko) 2014-03-12 2020-12-22 삼성전자주식회사 비이진 ldpc 부호를 이용한 이동 통신 시스템에서 오류 정정 장치 및 방법
US10192311B2 (en) * 2016-08-05 2019-01-29 Qualcomm Incorporated Methods and apparatus for codeword boundary detection for generating depth maps
EP3591845B1 (fr) * 2018-07-05 2023-08-09 Universite De Bretagne Sud Méthodes et appareils de triage pour traitement élémentaire de noeuds de contrôle pour décodage de codes non-binaires par passage de messages
CN113285723B (zh) * 2021-04-26 2022-09-30 武汉梦芯科技有限公司 一种ldpc译码过程中校验节点更新方法、***及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2920929A1 (fr) * 2007-09-10 2009-03-13 St Microelectronics Sa Procede et dispositif d'encodage de symboles avec un code du type a controle de parite et procede et dispositif correspondants de decodage

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747923B2 (en) * 2004-08-26 2010-06-29 Teranetics, Inc. Low-power receiver decoding
US8552835B2 (en) * 2005-10-28 2013-10-08 Mojix, Inc. RFID system with low complexity implementation and pallet coding error correction
US7802165B2 (en) * 2006-08-17 2010-09-21 Lantiq Deutschland Gmbh Decoder system for data encoded with interleaving and redundancy coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2920929A1 (fr) * 2007-09-10 2009-03-13 St Microelectronics Sa Procede et dispositif d'encodage de symboles avec un code du type a controle de parite et procede et dispositif correspondants de decodage

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHAMS B ET AL: "Non-binary split LDPC codes defined over finite groups", WIRELESS COMMUNICATION SYSTEMS, 2009. ISWCS 2009. 6TH INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 7 September 2009 (2009-09-07), pages 493 - 497, XP031545192, ISBN: 978-1-4244-3584-5 *
VOICILA A ET AL: "Low-Complexity, Low-Memory EMS Algorithm for Non-Binary LDPC Codes", PROCEEDINGS OF THE 2007 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS (ICC 2007), 24-28 JUNE 2007, GLASGOW, UK,, 1 June 2007 (2007-06-01), pages 671 - 676, XP031125748, ISBN: 978-1-4244-0353-0 *

Also Published As

Publication number Publication date
US20110066917A1 (en) 2011-03-17
US20130283119A1 (en) 2013-10-24
US8468438B2 (en) 2013-06-18
FR2950209B1 (fr) 2011-10-14

Similar Documents

Publication Publication Date Title
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.
EP2198523B1 (fr) Codage et décodage de codes LDPC non binaires
FR2905210A1 (fr) Procede et dispositif de decodage par couches d'une succession de blocs encodes avec un code ldpc
EP1475893A2 (fr) Décodage a entrée douces pour codes en bloc
FR2909499A1 (fr) Procede et dispositif de decodage pour codes ldpc, et appareil de communication comprenant un tel dispositif
FR2905209A1 (fr) Procede et dispositif de decodage de blocs encodes avec un code ldpc
CN109075805B (zh) 实现极化码的设备和方法
EP0995272A1 (fr) Decodage iteratif de codes produits
CN110233628B (zh) 极化码的自适应置信传播列表译码方法
EP1974472B1 (fr) Procedes d'encodage et de decodage rapides et dispositifs associes
EP1959572B1 (fr) Procédé de décodage à passage de messages et à convergence forcée
EP1905157B1 (fr) Procede et systeme d'encodage d'une sequence de donnees
EP1749361A1 (fr) Procede de codage correcteur d'erreurs comprenant des codes locaux detecteurs d'erreurs, procede de decodage, dispositifs d'emission, de reception et de stockage, et programme correspondants
FR2952252A1 (fr) Procede et dispositif de decodage, produit programme d'ordinateur, moyen de stockage correspondants et noeud destination correspondants
EP2833555B1 (fr) Procede ameliore de decodage d'un code correcteur avec passage de message, en particulier pour le decodage de codes ldpc ou codes turbo
JP2003218707A (ja) 誤り訂正符号を得るための方法、誤り訂正符号を復号化するための方法、情報要素のブロックを符号化するための符号器、および、軟値の第1のブロックを復号化する復号器
EP1471647B1 (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
CN114221664A (zh) 低复杂度的极化码简化软消除列表译码器及译码方法
FR2914447A1 (fr) Dispositif electronique de decalage de donnees en particulier pour du codage/decodage avec un code ldpc
FR2972878A1 (fr) Procede d'encodage correcteur d'erreur, procede de decodage et dispositifs associes.
FR2888062A1 (fr) Codeur et turbo decodeur de code produit
CN115348010B (zh) 一种适用于连续变量量子密钥分发残余误码消除的方法与***
FR3022651A1 (fr) Procedes et dispositifs de codage et de decodage correcteur d'erreurs, et programme d'ordinateur correspondant.
EP1217752A2 (fr) Procédé de décodage itératif associé à toutes concaténations d'un nombre déterminé de codes en blocs ou assimilés
FR2944167A1 (fr) Procede de decodage par re-encodage, dispositif et programme d'ordinateur correspondants

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150529