FR 2871965 A1 20051223 FR 0406687 A 20040617 Procédé et dispositif de décodage de codes correcteur d'erreurs et systèmes les mettant en oeuvre. La présente invention propose un procédé et un dispositif de décodage de codes correcteurs d'erreurs et les systèmes les mettant en oeuvre. Plus précisément, la présente invention se rapporte au décodage itératif de codes représentables sous forme d'un graphe bipartite, dit graphe de Tanner, par exemple les codes Low Density Parity Check Codes (codes LDPC). Dans une transmission numérique ou un stockage de données numériques sur un support, on lutte contre les erreurs de transmission dues aux perturbations du canal de transmission en utilisant un code correcteur d'erreurs. Un principe de codage et de décodage très efficace a été introduit avec les turbo codes [C. Berrou, A. Glavieux, Thitimajshima, P. "Near Shannon limit error-correcting coding and decoding: Turbo-codes", International Conference on Communication, ICC 93]. Un turbo code est une concaténation d'au moins deux codes élémentaires, par exemple des codes convolutifs, séparés par une fonction d'entrelacement qui réalise une permutation des données. La diversité ainsi créée permet un décodage des données en utilisant un processus itératif d'échange de probabilités (appelées informations extrinsèques) d'un décodeur élémentaire à l'autre. Les codes LDPC introduits par R.G. Gallager en 1963 [R.G. Gallager, "LowDensity Parity-Check Codes", 1963, MIT] sont également une concaténation de plusieurs codes élémentaires, en particulier des codes de parités, séparés par une fonction d'entrelacement. Le code est en général décrit sous forme d'une matrice de parité. Le décodage itératif s'applique également aux codes LDPC, avec des performances proches de celles des turbo codes [D. J. C. MacKay and R. M. Neal, "Near Shannon limit performance of low density parity check codes", Electronics Letters, Volume: 32 Issue: 18, 29 Aug. 1996]. Une généralisation des codes LDPC binaires aux codes LDPC construits sur des corps de Galois à plus de deux éléments a été proposé par [D.J.0 Mackay, M.C. Davey, "Low Density Check Code over GF(q)", Cavendis Laboratory, Cambrige, United Kindom, 1998]. Un code LDPC peut être défini par sa matrice de parité ou de manière équivalente par un graphe bipartite, également appelé Graphe de Tanner, dans lequel sont représentés d'une part des noeuds de variables et d'autre part des noeuds de contraintes. Des interconnections entre ces variables et ces contraintes indiquent quelles variables participent à quelles contraintes. Dans le cas d'un code LDPC binaire, un noeud de variable représente un bit du mot de code, et un noeud de contrainte représente un code de parité. L'algorithme de décodage le plus performant et le plus répandu d'un code LDPC est un algorithme itératif de propagation de probabilités appelé Belief Propagation (BP) [Mackay, D.J.C. "Good Error-Correcting Codes Based on Very Sparse Matrices" IEEE Transactions on Information Theory, march 1999]. Chaque itération de l'algorithme BP consiste en deux étapes principales: une étape dite horizontale, dans laquelle chaque noeud de contrainte produit des messages de type contrainte-vers-variable (appelés dans la suite messages CtoV) propagés vers les variables qui lui sont connectées; une étape dite verticale, dans laquelle chaque noeud de variable produit des messages de type variable-vers-contrainte (appelés dans la suite messages VtoC) propagés vers les contraintes qui lui sont connectées; L'étape verticale comporte en outre, pour chaque variable, le calcul de son information a posteriori (appelée dans la suite information APP). A la fin du processus itératif, la décision binaire faite sur la variable s'obtient à partir de cette information APP. Les opérations effectuées au sein d'un noeud de contrainte (resp. variable) lors de l'étape horizontale (resp. verticale) sont appelées check node processing (en abrégé CNP) (resp. variable node processing (VNP)) ; La notion de parallélisation des traitements est primordiale pour les dispositifs de décodage des codes LDPC. Le parallélisme est caractérisé par la réalisation simultanée de plusieurs CNP (resp. VNP) d'une itération de décodage par une pluralité d'unités de traitement indépendantes. Une unité de traitement dédiée au CNP (resp. VNP) est ainsi appelée CNU pour check node unit (resp. VNU). Le parallélisme permet de réduire la latence associée au décodage, ainsi que d'obtenir des débits plus élevés. Différents algorithmes de CNP sont disponibles dans l'état de l'art. On citera uniquement ici ceux qui ont un intérêt pratique dans l'optique d'une 10 réalisation d'un décodeur LDPC de faible complexité : l'algorithme UMP-BP , version initiale [ Reduced Complexity Iterative Decoding of Low-Density Parity Check Codes Based on Belief Propagation , Marc P. C. Fossorier, Miodrag Mihaljevi'c, and Hideki Imai, IEEE Transactions on Communications, Vol 47, No. 5, Mai 1999] ou dans une version améliorée [ Near Optimum Universal Belief Propagation Based Decoding of Low-Density Parity Check Codes , Jinghu Chen, Marc P. C. Fossorier, IEEE Transactions on Communications, Vol 50, No 3, March 2002]. Dans la suite les variantes de cet algorithme sont appelées Min-Sum. l'algorithme Lambda-Min [Guilloud, F. Boutillon, E. et Danger, J.-L. Lambda-min Decoding Algorithm of Regular and Irregular LDPC Codes , 3rd International Symposium on Turbo Codes & related topics, Septembre 2003] Dans l'état de l'art, les étapes horizontale et verticale d'une même itération sont le plus souvent séquentielles: l'étape verticale débute losque l'étape horizontale a produit l'ensemble de ses messages et vice-versa. On appele ce séquencement flooding scheduling (ou two-phases message passing scheduling) Un autre séquencement des étapes horizontale et verticale a été proposé dans [ Zhang, I. and Fossorier, M.P.C. "Shuffled Belief Propagation Decoding" Conference Record of the ThirtySixth Asilomar Conference on Signals, Systems and Computer, 2002]. Ce séquencement est appelé Shuffled-BP scheduling. Une itération de décodage est composée d'un séquencement principal effectué sur l'ensemble des variables. Pour chaque variable, les CNP des contraintes connectées à la variable sont effectués dans un premier temps. Seuls les messages CtoV associés à la variable sont générés. Dans un second temps, le VNP de cette même variable est ensuite effectué. Ce séquencement permet au décodage itératif de nécessiter moins d'itérations. On parle de vitesse de convergence de décodage accrue. L'explication de cette caractéristique est que, contrairement au flooding scheduling pour qui chaque CNP utilise les messages VtoC de l'itération précédente, les CNP du séquencement Shuffled-BP bénéficient de certains messages VtoC actualisés à l'itération courante de décodage. L'inconvénient majeur de ce séquencement réside dans sa mise en oeuvre pratique: pour une contrainte donnée, un CNP complet doit être effectué autant de fois qu'il y a de variables qui lui sont connectées, alors qu'un seul CNP est nécessaire dans le cas flooding-scheduling. Une alternative est proposée dans la même publication pour pallier à ce problème: il est préconisé d'utiliser une décomposition forward-backward [MacKay, D.J.C. "Good Error-Correcting Codes Based on Very Sparse Matrices" IEEE Transactions on Information Theory, march 1999] du traitement CNP. Cependant une réalisation pratique de cette décomposition s'avère difficile et nécessite une complexité additionnelle pour le stockage des résultats intermédiaires ainsi que leur regénération de proche en proche. Deux autres réalisations de décodeur LDPC sont proposés dans [M. Mansour et N. 25 Shanbhag, High Throughput LDPC decoders , IEEE Transactions on Very Large Scale Integration Systems, vol 11, No. 6, Dec. 2003] : une architecture appelée Memory Aware dans laquelle l'étape verticale est effectuée dans le même temps que l'étape horizontale. L'avantage d'une telle réalisation réside dans la réduction de mémoire liée au stockage des messages VtoC. Un objectif similaire est atteint par [E. Boutillon, J. Castura, F.R. Kschischang, Decoder-First Design , Int. Symposium on turbo codes, Sept. 2000]. Ce type de réalisation nécessite néanmoins deux bancs mémoires distincts pour stocker l'information APP, distinguant celle utilisée par l'itération courante de celle produite par l'itération précédente. D'autre part, une initialisation des informations APP à partir des observations du canal est nécessaire à chaque itération; enfin elle ne présente pas d'amélioration de vitesse de convergence par rapport au floodingscheduling; une architecture appelée Architecture Aware liée à une construction particulière de la matrice de parité en sous- codes (appelés super-codes), qui bénéficie d'une convergence aussi rapide que celle du Shuffled-BP, mais qui nécessite d'effectuer, pour une variable donnée, un nombre plus important de calculs VNP (plus précisément autant de traitements complets VNP que de contraintes qui lui sont connectées), augmentant ainsi la complexité du dispositif. La présente invention propose un procédé et un dispositif de décodage de code correcteur d'erreurs du type LDPC présentant, par rapport à l'état de l'art, les avantages principaux suivants: la vitesse de convergence de décodage est améliorée par rapport au séquencementflooding scheduling, les ressources en mémoire sont réduites, en particulier celles liée au stockage des observations du canal et des informations APP. la complexité de calcul liée à l'étape verticale n'est pas augmentée par rapport à l'algorithme flooding scheduling; A cet effet, elle propose un procédé de décodage de codes correcteurs d'erreurs représentables par un graphe bipartite comportant des noeuds de contraintes d'une part et des noeuds de variables d'autre part, ce procédé étant itératif et comportant à chaque itération: Pour chaque noeud de contrainte du code une étape de calcul de messages contrainte-vers-variable (CtoV) associés aux variables qui lui sont connectées, chaque message étant propagé vers le noeud de variable correspondant; Pour chaque noeud de variable du code une étape de calcul de messages variable-vers-contrainte (VtoC) associés aux contraintes qui lui sont connectées, chaque message étant propagé vers le noeud de contrainte correspondant; Le procédé est remarquable en ce que lesdites étapes de propagation de messages sont effectuées conjointement, en suivant un séquencement principal effectué sur l'ensemble des noeuds de contraintes constituant le code, et comprenant, pour chaque étape de ce séquencement, les sous-étapes suivantes associées au noeud de contrainte considéré : une sous-étape dite sous-étape 1 de calcul des messages VtoC propagés vers ledit noeud de contrainte, ledit calcul étant effectué à partir d'une part de l'information APP de la variable correspondante mise à jour par les calculs des noeuds de contraintes précédents, relativement à l'itération courante de décodage et au séquencement principal et d'autre part du message CtoV correspondant calculé à l'itération de décodage précédente; une sous-étape dite sous- étape 2 de calcul des messages CtoV dudit noeud de contrainte, à partir des messages VtoC issus de la sous-étape 1; une sous-étape dite sous- étape 3 effectuant une mise à jour d'une information caractéristique de l'information a posteriori APP de chaque variable connectée audit noeud de contrainte, incorporant le message CtoV correspondant issu de la sous- étape 2. Cette information caractéristique de l'information APP prendra la forme, suivant les modes de réalisation adoptés, soit de l'information APP en totalité, soit de l'information APP de laquelle est soustraite l'information a priori sur les variables fournie notamment par les observations faites en sortie du canal de transmission. Cette information APP partielle sera appelée dans la suite information SCtoV, car elle s'obtient dans les des codes LDPC binaires en sommant les différents messages CtoV propagés vers cette variable. Les objectifs de l'invention sont atteints notamment en observant que: D'une part l'information APP d'une variable utilisée par la sous-étape 1 est partiellement mise à jour par les sous-étapes 3 associées aux noeuds de contraintes précédemment traités (relativement à l'itération courante de décodage et au séquencement principal). Cette utilisation d'information APP mise à jour partiellement permet une convergence de décodage plus rapide que le floodingscheduling. D'autre part les ressources en mémorisation nécessaires à la mise en oeuvre de l'invention sont inférieures à celles des réalisations de l'état de l'art. En effet elles peuvent être réduites aux ressources mémoire principales suivantes: - une mémoire contenant l'information APP de chacune des variables; une mémoire contenant le message CtoV de chacune des connections du graphe bipartite; Enfin, le traitement VNP d'une variable, réalisée par les différentes sous-étapes 3 des noeuds de contraintes qui lui sont connectées, ne présente pas de complexité additionnelle par rapport à l'étape verticale de l'algorithme flooding-scheduling, et présente donc une complexité moindre par rapport aux réalisations de l'état de l'art qui offrent une convergence de décodage rapide; Selon une caractéristique particulière, la sous-étape 3 effectue la mise à jour de l'information APP de la variable considérée, cette mise à jour étant réalisée en faisant la somme du message VtoC produit par la sous-étape 1 et du message CtoV produit par la sous-étape 2. Cette caractéristique permet une mise en oeuvre simple, car lesdits messages VtoC et CtoV sont produits par les sous-étapes précédentes de l'étape courante; Selon une caractéristique particulière, la sous-étape 3 effectue la mise à 30 jour de l'information APP de la variable considérée, cette mise à jour étant réalisée en ajoutant à l'information APP la différence entre le message CtoV issu de la sous-étape 2 et le message CtoV correspondant de l'itération de décodage précédente, disponible au cours de la sous-étape 1, ladite différence étant appelée message dCtoV; cette caractéristique permet, dans le cas d'une mise en oeuvre d'un parallélisme des calculs, d'éviter une dégradation de performance qui résulterait de conflits d'accès par différents noeuds de contraintes traités simultanément aux mêmes noeuds de variables; Selon une caractéristique particulière, l'information a priori sur les variables fournie par les observations en sortie du canal de transmission, est utilisée pour initialiser les informations APP une seule fois en début de décodage. Cette caractéristique réduit la complexité de mise en oeuvre du décodeur en diminuant la mémoire nécessaire au stockage des informations a priori, ainsi qu'en supprimant l'opération d'ajout de cette information a priori à chaque itération de décodage. Selon une caractéristique particulière, la sous-étape 3 effectue la mise à jour de l'information SCtoV, cette mise à jour étant réalisée en faisant la somme du message VtoC produit par la sous-étape 1 et du message CtoV produit par la sous-étape 2, duquel est soustrait l'information a priori. Cette caractéristique permet une mise en oeuvre simple, car lesdits messages VtoC et CtoV sont produits par les sous- étapes précédentes de l'étape courante; Selon une caractéristique particulière, la sous-étape 3 effectue la mise à jour de l'information SCtoV de la variable considérée, cette mise à jour étant réalisée en ajoutant à l'information SCtoV existante le message dCtoV. Cette caractéristique permet, dans le cas d'une mise en oeuvre d'un parallélisme des calculs, d'éviter une dégradation de performance qui résulterait de conflits d'accès par différents noeuds de contraintes traités simultanément aux mêmes noeuds de variables; Dans des modes de réalisation particuliers, notamment ceux suivant la caractéristique de mise à jour de l'information SCtoV, l'information a priori sur les variables fournie par les observations en sortie du canal de transmission est avantageusement conservée au long du décodage itératif et utilisée lors la sous-étape 1 effectuée sur chacune des contraintes afin de calculer l'information APP, ce calcul pouvant être réalisé en faisant la somme de l'information a priori et de l'information SCtoV correspondante. La conservation des informations a priori issues du canal tout au long du décodage peut en outre faciliter l'estimation d'un ou de plusieurs paramètres du canal de transmission, comme par exemple l'erreur de phase ou de fréquence entre symboles modulés sur le canal. L'information caractéristique de l'APP, mise à jour par la sous-étape 3, peut donc être de deux natures différentes: information APP ou information SCtoV. Les modes de réalisation et avantages de chacune de ces variantes ont été exposés. L'invention ne se restreint pas aux modes de réalisation implémentant exclusivement l'une ou l'autre de ces variantes. Ainsi dans un mode de réalisation particulier, le procédé est caractérisé d'une part par la mise à jour de l'information APP d'un premier sous-ensemble E des variables, d'autre part par la mise à jour de l'information SCtoV d'un second sous-ensemble F des variables. Les différents modes de réalisations de chacune de ces mises à jour telles qu'elles ont été explicitées plus haut s'appliquent. Selon une caractéristique particulière, l'algorithme utilisé pour la sousétape 2 est un algorithme de type Min-Sum; cette caractéristique présente l'avantage de réduire la complexité calculatoire de mise en oeuvre du décodeur; cette caractéristique présente également l'avantage de réduire la taille de la mémoire contenant les messages CtoV, étant donné que les valeurs prises par les amplitudes des messages CtoV associés à un même noeud de contrainte sont au nombre de deux, quel que soit le nombre de connections de la contrainte considérée; Selon une caractéristique particulière, l'algorithme utilisé pour la sous- étape 2 est un algorithme de type Lambda-Min; cette caractéristique présente l'avantage de réduire la complexité calculatoire de mise en oeuvre du décodeur; cette caractéristique présente également l'avantage de réduire la taille de la mémoire contenant l'ensemble des messages CtoV, étant donné que les valeurs prises par les amplitudes des messages CtoV associés à un même noeud de contrainte sont au nombre de lambda, qui est un paramètre de l'algorithme, quel que soit le nombre de connections de la contrainte considérée; cette caractéristique permet également de proposer différents compromis entre gain de codage et complexité. Selon une caractéristique particulière, le procédé de calcul des différents messages VtoC associés à une contrainte est effectué en série, suivant un séquencement dit séquencement secondaire d'entrée. Les différentes mises à jour d'information caractéristique de l'APP sur les variables associées à une contrainte sont alors également effectuées en série, suivant un séquencement dit séquencement secondaire de sortie. Cette caractéristique présente l'avantage de faciliter la mise en oeuvre du traitement des contraintes, notamment lorsqu'un algorithme de type MinSum ou Lambda-min est utilisé. Selon une caractéristique particulière, une pluralité de noeuds de contraintes est effectuée simultanément. Le séquencement principal est alors effectué sur des groupes de noeuds de contraintes effectués simultanément. La sous-étape 1 comporte alors une pluralité de calculs de messages VtoC à partir d'une pluralité d'informations APP sur les variables correspondantes. La sous- étape 2 comporte alors une pluralité de calculs de messages CtoV. La sous- étape 3 comporte une pluralité de mises à jour d'information caractéristique de l'APP sur les variables. Afin de respecter les correspondances entre variables et contraintes définies par la matrice de parité du code, une sous-étape supplémentaire dite de permutation est effectuée avant la sous-étape 1. Cette sous-étape effectue une permutation ou réarrangement sur les informations APP. Une seconde sous- étape supplémentaire effectue une seconde permutation dite permutation inverse sur l'information caractéristique de l'APP mise à jour par la sous-étape 3. Cette caractéristique permet une mise en oeuvre d'un décodeur à latence réduite, à haut débit, et améliore le compromis entre débit et complexité grâce à la mutualisation de certaines ressources. Selon une caractéristique particulière, la permutation inverse est effectuée sur les messages utilisés par la sous-étape 3. Particulièrement, dans le mode de réalisation de mise à jour utilisant le message dCtoV, cette caractéristique permet de réduire la complexité de la permutation inverse car la dynamique des messages dCtoV est inférieure à celle des informations APP ou SCtoV; La mise en oeuvre de ces caractéristiques de parallélisation des contraintes peut entraîner une dégradation de performances due à la présence de conflits de mise à jour des informations APP ou SCtoV des variables. Une mise à jour est dite conflictuelle si la valeur d'une information APP ou SCtoV mise à jour par un noeud de contrainte qui lui est connecté n'est pas celle utilisée par le prochain noeud de contrainte connecté à cette même variable. Il est intéressant d'avoir recours à des techniques permettant de minimiser cette dégradation de performances. A cette fin, la présente invention propose d'utiliser des techniques d'optimisation des séquencements principaux et secondaires. Ces techniques trouvent leur champ d'application dans le procédé de définition du code et du dispositif correspondant, ainsi que, conjointement ou indépendamment, dans la mise en oeuvre du procédé de décodage et du dispositif correspondant. Selon une caractéristique particulière, le procédé de décodage met en oeuvre un séquencement principal sur les groupes de contraintes traitées simultanément, optimisé de manière à minimiser le nombre de mises à jour conflictuelles sur les informations APP ou SCtoV des variables; cette caractéristique a l'avantage de permettre une mise en oeuvre simple à fort degré de parallélisme tout en minimisant la dégradation de performance liée aux conflits de mise à jour des informations APP ou SCtoV. Selon une caractéristique particulière, le procédé de décodage met en oeuvre des séquencements secondaires d'entrée et de sortie optimisés de manière à minimiser le nombre de mises à jour conflictuelles sur les informations APP ou SCtoV des variables. Selon une caractéristique particulière, au moins un séquencement secondaire d'entrée est différent du séquencement secondaire de sortie correspondant aux contraintes traitées simultanément. Cette caractéristique a l'avantage d'augmenter les degrés de liberté lors de l'optimisation des séquencements et permet donc de réduire le nombre de mises à jour conflictuelles des informations APP ou SCtoV. Selon une caractéristique particulière, le séquencement secondaire d'entrée correspond à l'ordre inverse du séquencement secondaire de sortie correspondant pour au moins un groupe de contraintes traitées simultanément. Cette caractéristique a l'avantage d'augmenter les degrés de liberté lors de l'optimisation des séquencements tout en conservant une simplicité de mise en oeuvre. Selon une caractéristique particulière, le séquencement secondaire d'entrée correspond à l'ordre inverse du séquencement secondaire de sortie correspondant pour tous les groupes de contraintes traitées simultanément. Cette caractéristique simplifie la gestion des séquencements. La présente invention propose également un dispositif de décodage de codes correcteurs d'erreurs représentable par un graphe bipartite comportant des noeuds de contraintes d'une part et des noeuds de variables d'autre part, ce dispositif mettant en oeuvre un algorithme itératif comportant pour chaque itération: Des moyens de calcul de messages contrainte-vers-variable (CtoV) propagés des noeuds de contrainte vers les noeuds de variable correspondants; Des moyens de calcul de messages variable-vers-contrainte (VtoC) propagés des noeuds de variable vers les noeuds de contrainte correspondants; Le dispositif est remarquable en ce que les calculs des messages CtoV et VtoC sont effectuées conjointement, en suivant un séquencement principal sur l'ensemble des noeuds de contraintes constituant le code, dont chaque étape, associée à un noeud de contrainte, met en oeuvre les moyens de calcul suivants: un module dit sous-module 1 de calcul des messages VtoC propagés vers ledit noeud de contrainte, ledit calcul étant effectué à partir de l'information APP de la variable correspondante partiellement mise à jour par le sous-module 3 au cours du traitement des contraintes précédentes (relativement à l'itération courante de décodage et au séquencement principal) d'une part, et d'autre part du message CtoV correspondant calculé à l'itération de décodage précédente; - un module dit sous-module 2 de calcul des messages CtoV dudit noeud de contrainte, à partir des messages VtoC issus de la sous-étape 1; un sous- module dit sous-module 3 de mise à jour de l'information caractéristique de l'APP des variables connectées au dit noeud de contrainte, incorporant le message CtoV correspondant issu de la sous- étape 2; Les caractéristiques particulières et avantages du dispositif de décodage étant similaires à ceux du procédé de décodage, ils ne sont pas rappelés ici. Les caractéristiques de l'invention mentionnés ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description détaillée des modes particuliers de réalisation, donnés à titre non limitatifs. La description se réfère aux schémas joints, parmi lesquels: la Fig. 1 donne un exemple de graphe bipartite d'un code LDPC; les Fig 2 et 3 sont des illustrations d'un dispositif de décodeur conforme à l'invention, dans deux modes particuliers de réalisation mettant en oeuvre une mise à jour de l'information APP des variables; les Fig 4 et 5 sont des illustrations d'un dispositif de décodeur conforme à l'invention, dans deux modes particuliers de réalisation mettant en oeuvre une mise à jour de l'information SCtoV des variables; la Fig. 6 illustre la mise en oeuvre du parallélisme des calculs, sur l'exemple du dispositif décrit en Fig. 2. les Fig 7 et 8 illustrent différents types de conflits de mise à jour de l'information APP; la Fig. 9 illustre la performance, en terme de taux d'erreur, de l'invention par rapport à l'état de l'art; La description détaillée des modes de réalisation de l'invention s'appuiera sur les hypothèses et notations suivantes, non restrictives: On considérer un code LDPC binaire défini par sa matrice de parité H de taille M lignes et N colonnes. M représente le nombre de noeuds de contraintes et N le nombre de noeuds de variables. La matrice H contient uniquement des entrées 0 ou 1. On dit que la variable vn participe à (ou est connectée à) la contrainte cm si et seulement si H(m, n) = 1. On note N(m) = {n: H(m, n) 0} l'ensemble des variables connectées à la contrainte cm, et N(m)/n le même ensemble privé de la variable vn. De même, on note M(n) = : H(m, n) 0} l'ensemble des contraintes connectées à la variable vn et M(n)/m le même ensemble privé de la contrainte cm. Le cardinal d'un ensemble A est noté AI. N (m)( est appelé le degré de la contrainte cm et est noté dc(m) M (n)I est appelé le degré de la variable vn et est noté dv(n) Un code LDPC est dit binaire lorsque les variables sont des éléments binaires (ou encoreéléments du Corps de Galois GF(2)). Un code LDPC peut également être construit sur des Corps de Galois plus larges. Au cours des descriptions qui suivent, le code utilisé est supposé binaire. Le domaine de l'invention ne se restreint toutefois pas aux codes binaires et peut être généralisé aux codes LDPC construits sur un Corps de Galois quelconque, ou plus largement à tout code représenté par un graphe bipartite comportant des noeuds de variables d'une part et de contraintes d'autre part. La Fig. 1 représente le graphe bipartite d'un code LDPC contenant M=4 contraintes (16 à 19), et N=6 variables (10 à 15). Sur cet exemple, les variables v1, v2 et v3 sont connectées à la contrainte cl, les variables. v1, v4 et vs sont connectées à la contrainte c2, et ainsi de suite. Les notations suivantes sont introduites: Dans l'hypothèse d'un traitement séquentiel des contraintes, on note sp la fonction de séquencement principal sur les contraintes, au cours d'une itération de décodage. Cette fonction détermine l'ordre suivi pour le traitement des différentes contraintes m E [1:M] du code. Ainsi sp(1)=m signifie que la contrainte m est effectuée en premier pour l'itération de décodage considérée. Il en découle, sur chacun des ensembles M(n) , n E [1:Ni, un séquencement local relatif à la variable vn, pour une itération de décodage donnée, noté par la fonction spn(k), définie pour k=1 à dv(n), et prenant ses valeurs dans l'ensemble M(n). Ainsi: spn(1) est l'indice de la contrainte accédant en premier, parmi les contraintes connectées à la variable vn, à l'information APP de vn spn(k) est l'indice de la contrainte accédant en k-ième position, parmi les contraintes connectées à la variable vn, à l'information APP de vn - spn(dv(n)) est l'indice de la contrainte accédant en dernier, parmi les contraintes connectées à la variable vn, à l'information APP de vn Sur l'exemple de la fig. 1, si sp est la fonction identité, les fonction spn induites sont: spi(l) = 1, spi(2)=2 sp2(1) = 1,sp2(2)=3; sp3(1) = 1; sp4(l) = 2, sp4(2) = 3, sp4(3) = 4; sp5(1) = 2, sp5(2) = 4 sp6(1)=3,sp6(2) =4 Dans la suite, on suppose, sans nuire à la généralité, et afin de ne pas alourdir les notations que la fonction sp est la fonction identité, c'est-à-dire que le séquencement principal est effectué dans l'ordre naturel des indices des contraintes du code. Réciproquement, pour une contrainte d'indice m E M(n) , la fonction inverse spn-1(m) représente la position séquentielle du traitement de la contrainte cm, relativement à l'ensemble M(n) des contraintes connectées à la variable vn. Le même exemple que précédemment conduit à : spl-1(1) = 1, spi"1(2) = 2; sp2-'(1) = 1, sp2"'(3) = 2; sp3"1(1) = 1; sp4-'(2) = 1, sp4-'(3) = 2, sp4'(4) = 3; sp5"1(2) = 1, sp5-1(4) = 2; sp6"1(3) = 1, sp6-1(4) = 2; La Fig. 2 représente un schéma bloc d'un dispositif de décodage suivant un mode particulier de réalisation de l'invention. Ce dispositif comporte une mémoire d'information APP (200) qui fait l'objet d'opérations de lecture (205) d'une part et d'opérations d'écriture (209) d'autre part. Cette mémoire contient une information APP pour chacune des variables du code. Au long d'une itération de décodage, cette information APP est lue et écrite successivement lorsque les modules de calcul (201), (202), (204) traitent une contrainte connectée à la variable considérée. Les différentes mises à jour (ou valeurs) successives de l'information APP de la variable vn au cours du processus de décodage sont notées Z(i)(i)n, i désignant l'itération de décodage courante et j désignant le nombre de mises à jour qui ont été effectuées au cours de l'itération i. On note également: Lr mn le message contraintevers-variable ou CtoV (207) propagé de la contrainte cm à la variable vn, à l'itération de décodage i; Z(i) mn le message variable-vers-contrainte ou VtoC (206) propagé de la variable c,,, à la contrainte vn, à l'itération de décodage i; On note, afin d'alléger les notations: Pnm = Spn (m) La mémoire d'information APP (200) est initialisée, en début de décodage, avec l'information a priori provenant du canal de transmission (210). On note Fn 20 l'information a priori relative à la variable vn. L'opération d'initialisation des informations APP est décrite par: pour tout n E [1;N] { z( ( = Fn (1) La mémoire de messages CtoV (203) contient l'ensemble des messages CtoV 25 d'une itération de décodage. Cette mémoire est initialisée, en début de décodage par: pour tout n E [1; NJ et tout m E [1;M]{ L( = 0 mn} Une itération de décodage met en oeuvre un séquencement principal sur les contraintes cm, et voit les opérations suivantes effectuées pour chaque contrainte cm: sous-étape 1: Le module de calcul du message VtoC (201) produit pour tout n E N(m) le message VtoC, à partir du message CtoV de l'itération précédente (208) et de l'information APP lue (205) : pour tout n E N(m) { Z(i) = Z(i)(Pnm -1)) _ L(i 1) mn n mn 10} sous-étape 2: Le module de calcul de message CtoV (202) produit pour tout n E N(m) le message CtoV, à partir des dc(m) messages VtoC calculés par la sous-étape 1. Ce dispositif peut être réalisé avec l'un quelconque des algorithmes de l'état de l'art approprié au calcul de noeud de contraintes. Le principe de l'invention étant indépendant du choix de cet algorithme, on appellera dans la suite cet algorithme de manière générique Algo_CNP notamment parmi ceux cités précédemment ( Min-Sum , ou Lambda-Min ). En général un tel algorithme nécessite, pour le calcul de Lmn, les dc(m)1 valeurs {z( } mn' n'EN(m)/n Le résultat de l'algorithme peut s'écrire: pour tout n E N(m) { L(mn=AlgoCNr ({Z( }n'EN(m) J mn' } Chacun des messages CtoV ainsi produit est stocké dans la mémoire (203), en remplacement (si i>1) du message correspondants de l'itération H. Dans le cas où l'algo_CNP le permet, et notamment dans le cas des algorithmes Min-Sum , (2) (3) (4) ou Lambda-Min , ce stockage peut être restreint à un sous-ensemble représentatif de l'ensemble des messages CtoV d'une même contrainte. sous-étape 3: le module de mise à jour de l'information APP (204) effectue, pour chaque n E N(m) le calcul d'une nouvelle valeur de l'information APP de la variable vn, à partir du message CtoV (207) et du message VtoC (206) correspondants, et réalise l'écriture (209) dans la mémoire d'informations APP (200) : pour tout n E N(m) { l Z(i)(Pnm) = Z(i) _- L(i) n mn mn Les notations adoptées impliquent l'égalité formelle suivante pour tout n E N(m) , en fin de chaque itération de décodage, afin d'assurer la continuité de la description algorithmique: z(i+1)(0) = Z(i)(dv(n)) n n Dans les différents dispositifs mettant en oeuvre l'invention, cette égalité est 15 implicite. La Fig. 3 représente un schéma bloc d'un dispositif de décodage suivant un mode particulier de réalisation de l'invention. Ce dispositif représentant une variante du dispositif de la Fig. 2, seuls les caractéristiques particulières de ce 20 dispositif sont décrites en détail dans la suite. Le dispositif réalisant la sous-étape 3 (304) a désormais pour entrées: le message CtoV produit par la sous-étape 2 (307), le message CtoV de l'itération de décodage précédent (308), l'information APP de la variable (311) présente en mémoire (300) ; 25 et réalise le calcul de mise à jour suivant: Z(i)(P.) = Z(i)(Pmn-1) + de n n mn où : dL(mn = L(mn L(mnl) (5) (6) (7) L'information APP précédente (311) peut être obtenue: soit en retardant la valeur lue lors de la sous-étape 1 (305) de la latence correspondante aux sous-étapes 1 et 2; cette solution présente l'avantage de ne pas nécessiter d'opérations de lecture supplémentaire dans la mémoire des information APP (300), mais présente une plus forte vulnérabilité aux conflits d'accès dans le cas d'une mise en oeuvre parallèle; soit en effectuant une seconde lecture dans la mémoire (300) lors du traitement de la sous-étape 3. Cette solution présente l'avantage d'une robustesse plus importante face aux conflits d'accès, car la valeur ainsi lue est le résultat d'un maximum de mises à jour provenant des étapes effectuées précédemment. Cette mise en oeuvre nécessite cependant une seconde lecture de la mémoire (300) ; La Fig 4 représente un schéma bloc d'un dispositif de décodage suivant un mode particulier de réalisation de l'invention. Dans ce mode de réalisation, l'information a priori (410) est stockée dans une mémoire (414) et conservée tout au long du processus de décodage itératif. De manière analogue aux notations introduites pour décrire les mises à jour successives de l'information APP dans les Sn dispositifs des Fig.2 et Fig3. , on note n les mises à jour successives de la somme des messages CtoV, appelée information SCtoV, i désignant l'itération de décodage courante et j désignant le nombre de mises à jour qui ont été effectuées au cours de l'itération i. L'analogie entre ce mode de réalisation et les précédents peut se constater en remarquant qu'à chaque instant du processus de décodage, on a: S(i)(J) _ Z(i)(J) F n n n Ce dispositif possède les particularités suivantes par rapport aux modes de réalisation précédents: (8) Un dispositif de calcul de l'information APP (412) est inséré en amont de la sous-étape 1 (401). Ce dispositif effectue le calcul de l'information APP (405) pour chaque n E N(m) comme suit: Z(t)(Pnm 1) - S(1)(Pnm 1) + F n n n La sous-étape 3 (404) est modifiée afin de mettre à jour l'information SCtoV 5 (409), à partir des entrées suivantes: le message CtoV produit par la sous-étape 2 (407), le message VtoC produit par la sous-étape 1 (406), l'information a priori du canal (411) ; Elle effectue le calcul suivant, pour chaque n E N(m) S(l(pnm) = Z( + L(Z) -F n mn mn n La Fig 5 représente un schéma bloc d'un dispositif de décodage suivant un mode particulier de réalisation de l'invention. Ce mode de réalisation présente les différences suivantes par rapport au mode de réalisation présenté en Fig. 4: le dispositif réalisant la sous-étape 3 (504) a pour entrées: le message CtoV produit par la sous-étape 2 (507), le message CtoV de l'itération de décodage précédent (508), l'information SCtoV de la variable (513) présente en mémoire (500) ; et réalise le calcul de mise à jour suivant: (Y(1)(P ) = (Y (Z)(pmn 1) + (dL(1) 1J n 1J n mn où : dL(mn L(mn L(mnl) L'information SCtoV (513) peut être obtenue: soit en retardant la valeur lue lors de la sous-étape 1 de la latence correspondante aux sous-étapes 1 et 2; soit en effectuant une seconde lecture dans la mémoire (500) ; chacune de ces variantes présente des avantages et inconvénients similaires à ceux mentionnés pour le mode de réalisation de la Fig. 3. (9) (10) Une sous-étape effectuée pour une contrainte cm peut être réalisée en suivant un séquencement dit secondaire sur l'ensemble des variable connectée à la contrainte cm. On dira dans ce cas que la sous-étape est opérée en série. Dans le cas contraire (dans lequel la sous-étape effectue simultanément l'ensemble des opérations d'une contrainte cm) on dira que la sous-étape est opérée en parallèle. Bien que les différentes sous-étapes puissent être effectuées, indépendamment les unes des autres, en série ou en parallèle, les cas les plus pertinents sont ceux où l'ensemble des sous-étapes du décodeur sont opérées dans le même mode. Dans le cas d'un mode série, on appelle séquencement secondaire d'entrée le séquencement de la sous-étape 1, identique (dans les cas de figure pertinents) au séquencement appliqué aux entrées de la sous-étape 2 (206 par ex.). De même on appelle séquencement secondaire de sortie le séquencement de sortie de la sous-étape 2 (207 par ex.), identique (dans les cas de figure pertinents) à celui de la sous-étape 3. Il existe, de manière générale, un séquencement secondaire d'entrée et un séquencement secondaire de sortie associé à chaque contrainte cm. Pour une contrainte donnée, le séquencement secondaire d'entrée et de sortie peuvent être identiques ou différents. Dans le cas où ils sont différents, il est nécessaire d'ajouter un procédé d'adaptation de séquence dans certains modes de réalisation, comme par exemple celui de la Fig. 2, dans lequel les messages VtoC (206) sont transmis de la sortie de la sousétape 1 vers l'entrée de la sous-étape 3. Le dispositif d'adaptation peut être réalisé par une mémoire tampon. L'invention, notamment au travers de ses modes de réalisations décrits cidessus, permet la mise en oeuvre aisée d'un fort degré de parallélisme des étapes de contraintes. La Fig. 6 illustre un exemple des modifications à apporter pour introduire du parallélisme dans le cas particulier du mode de réalisation décrit en Fig. 2. Une itération de décodage comporte alors un séquencement principal sur des groupes de P contraintes traitées simultanément. Chaque sous-étape se voit traiter une pluralité de données. Des ressources supplémentaires sont notamment nécessaires pour réaliser les différents accès à la mémoire d'information APP: d'une part un dispositif de Permutation (611) en lecture réalisant un réarrangement ou une permutation des données lues, et d'autre part un dispositif de Permutation inverse noté Permutation"' (612) réalisant les opérations inverses sur les sorties de la sous-étape 3 (609). La nature de la permutation réalisée par ces dispositifs dépend de la matrice de parité du code, ainsi que de l'organisation de la mémoire d'informations APP. La mise en oeuvre de parallélisme peut être réalisée de manière analogue sur la base des autres modes de réalisation de l'invention, notamment ceux décrits en Fig. 3, 4 ou 5. Il peut être avantageux, notamment dans les modes de réalisation particuliers décrits en Fig. 3 et 5, de déplacer le dispositif Permutation-f en amont de la sous-étape 3 et ainsi de le faire porter sur les différents messages CtoV en entrée de la sous-étape 3 (307 et 308, ou 507 et 508), ou avantageusement sur la différence entre les messages CtoV de l'itération courante et ceux de l'itération précédente: dL(mn L(mn Lmnl) É Cette dernière variante permet de réduire la complexité du dispositif Permutation-1 car la dynamique de la grandeur dL est inférieure à celle de l'information APP. Par ailleurs, les dispositifs de Permutation et Permutation-1 peuvent se décomposer en plusieurs étapes composées chacune de permutations plus simples. Il peut s'avérer avantageux, dans une telle réalisation, de considérer que la mémoire d'information APP est décomposée en plusieurs mémoires physiques distinctes adressables indépendamment. De manière générale, la faisabilité de mise en oeuvre du parallélisme et les dispositifs de permutation associés implique un certain degré de régularité ou de structuration de la matrice de parité du code. Le principe de l'invention n'est cependant restreint à aucune structure de code particulière ou d'organisation interne des mémoires. Le principe de l'invention suppose que le traitement d'un contrainte utilise comme entrée l'information APP des variables connectées, et modifie cette information APP en sortie. On dit qu'il existe un conflit d'accès sur la variable vn entre les contraintes mo et mi, où mo est la contrainte précédant mi dans la séquence d'accès si), (soit spn"i(mo) = spn-1(m1) -1) si l'information APP utilisée par mi n'est pas celle mise à jour par mo. La Fig 7 illustre un tel conflit: l'évolution de l'information APP de la variable vn est représenté (701) au cours du temps (700). Les traitements associés aux contraintes mo et mi sont représentés respectivement par (702) et (703). On note j = spn"1(mo) Zn La contrainte mo effectue une opération de lecture de n au temps t0 (704) et, après un délai D0 dépendant du degré de la contrainte et du dispositif choisi pour réaliser les traitements, effectue l'opération d'écriture de la valeur mise à Z (i)(j) jour n au temps t2 (706) . L'opération de lecture par la contrainte mi est effectuée au temps ti (705). Il y a 7(i)(j-1) 7(0(i) conflit si ti La Fig. 8 illustre, au travers de la mise en oeuvre particulière de l'invention décrite en Fig. 3, la suppression du conflit d'écriture. La sous-étape 3 comprend une opération de lecture supplémentaire (809) de l'information APP, au temps t3-A2. Ainsi, la valeur mise à jour par mi (810) est: î( 0+2) = Z ( u) + dL((i) + di ( n n mon min La valeur de Zn)(,+2) contient la contribution de la contrainte mo. Sa valeur est plus proche de la valeur Zna)(i+2) correcte. On parlera, dans ce cas, d'un conflit de lecture. Notons qu'un conflit d'écriture est toujours possible si t2 > t3- A2. On maximisera donc la réduction des conflits d'écritures en prenant A2 le plus petit possible. Notons qu'un conflit de lecture résulte en une diminution de vitesse de convergence du décodage, car elle est équivalente à un retard de prise en compte de mise à jour, alors qu'un conflit d'écriture résulte en une diminution de performance, car il est équivalent à une perte définitive d'information. Les descriptions et discussions relatives aux Fig. 7 et Fig. 8 s'appliquent de manière similaire dans les cas où l'information mise à jour est l'information SCtoV et non APP, c'est à dire en particulier dans les modes de réalisation décrits en Fig. 4 et 5, ainsi que leurs versions parallèles. L'invention propose en outre une technique de réduction du nombre de conflits appelée optimisation de séquences, consistant à modifier les différents séquencements en jeu lors du décodage: le choix des groupes de contraintes à effectuer simultanément; - le choix de la séquence principale sur les groupes de contraintes; et, dans le cas des modes de réalisation des sous-étapes en série: le choix de chacune des séquences secondaires d'entrée; le choix de chacune des séquences secondaires de sortie; L'optimisation de séquences peut être réalisé une fois pour toutes, et les séquences résultantes stockées dans une mémoire de programme associée au contrôle du dispositif. Elle est effectuée à l'aide d'un algorithme d'optimisation ayant pour fonction de coût le nombre de conflits de lecture, d'écriture, ou une combinaison des deux grandeurs. Avantageusement, afin de réduire le temps de recherche et la taille de la mémoire de programme, le choix des sous-séquences d'entrée et de sortie d'une même contrainte sont identiques. Avantageusement, afin d'offrir des degrés de liberté supplémentaires, les sous-séquences d'entrée et de sortie d'une même contrainte sont choisies de telle manière à être l'inverse l'une de l'autre. Ainsi, par exemple la variable traitée en premier en entrée de la sous-étape 1 est traitée en dernier en sortie de la sous-étape 3 correspondante. La Fig. 9 illustre les performances d'un décodeur réalisant l'invention. Le code utilisé comme exemple est ici le code LDPC du standard DVB-S2 (norme européenne de diffusion par satellite). Les quatre courbes donnent les performances en taux d'erreur binaire de l'état de l'art, en l'occurrence un algorithme du type flooding scheduling à 10 (901) et 50 (902) itérations de décodage, ainsi que les performances d'un décodeur suivant l'invention à 10 (903) et 50 (904) itérations de décodage. On voit que les performances à 10 itérations sont meilleures d'environ 0.5 dB par rapport à l'état de l'art à un taux d'erreur binaire de 0.00001. Les performances à 50 itérations sont similaires. 27 Revendications 1. Procédé de décodage de codes correcteurs d'erreurs représentables par un graphe bipartite comportant des noeuds de contraintes d'une part et des noeuds de variables d'autre part, comportant plusieurs itérations de décodage, chaque itération comprenant: - Pour chaque noeud de contrainte du code une étape de calcul de messages contrainte-vers-variable CtoV associés aux variables qui lui sont connectées, chaque message étant propagé vers le noeud de variable correspondant; - Pour chaque noeud de variable du code une étape de calcul de messages variable-vers-contrainte VtoC associés aux contraintes qui lui sont connectées, chaque message étant propagé vers le noeud de contrainte correspondant; Ledit procédé étant remarquable en ce que lesdites étapes de propagation de messages sont effectuées conjointement, en suivant un séquencement principal effectué sur l'ensemble des noeuds de contraintes constituant le code, et comprenant, pour chaque étape dudit séquencement, les sous-étapes suivantes associées au noeud de contrainte considéré : une sous-étape dite sous-étape 1 de calcul des messages VtoC propagés d'un noeud de variable vers ledit noeud de contrainte, ledit calcul étant effectué à partir d'une part de l'information a posteriori APP de ladite variable partiellement mise à jour par les calculs des noeuds de contraintes précédents, relativement à l'itération courante de décodage et au séquencement principal, et d'autre part du message CtoV correspondant calculé à l'itération de décodage précédente; une sous- étape dite sous-étape 2 de calcul des messages CtoV dudit noeud de contrainte, à partir desdits messages VtoC issus de la sous-étape 1; une sous-étape dite sous-étape 3 de mise à jour d'une information caractéristique de l'information a posteriori APP de chaque variable connectée audit noeud de contrainte, incorporant ledit message CtoV correspondant issu de la sous-étape 2; 2. Procédé selon la revendication 1 caractérisé en ce que le code correcteur d'erreurs est un code de type Low Density Parity Check. 3. Procédé selon la revendication 1 ou 2 caractérisé en ce que la sousétape 3 (204) effectue la mise à jour de l'information APP de la variable considérée (209) , cette mise à jour étant réalisée en faisant la somme du message VtoC 10 produit par la sous-étape 1 (206) et du message CtoV produit par la sous-étape 2 (207). 4. Procédé selon la revendication 1 ou 2 caractérisé en ce que la sousétape 3 (304) effectue la mise à jour de l'information APP de la variable considérée (309), cette mise à jour étant réalisée en en ajoutant à l'information APP existante (311) la différence entre le message CtoV issu de la sous-étape 2 (307) et le message CtoV correspondant de l'itération de décodage précédente (308). 5. Procédé selon l'une quelconque des revendications 1 à 4 caractérisé en ce que l'information a priori sur les variables fournie par les observations en sortie du 20 canal de transmission (210), (310), est utilisée pour initialiser les informations APP (200), (300) une seule fois en début de décodage. 6. Procédé selon la revendication 1 ou 2 caractérisé en ce que la sousétape 3 (404) effectue la mise à jour de la somme des informations CtoV de ladite variable, dite information SCtoV (409), cette mise à jour étant réalisée en faisant la somme du message VtoC produit par le module 1 (406) et du message CtoV produit par le module 2 (407), duquel est soustrait l'information a priori (411). 7. Procédé selon la revendication 1 ou 2 caractérisé en ce que la sousétape 3 (504) effectue la mise à jour de la somme des informations CtoV de ladite 30 variable, dite information SCtoV (509), cette mise à jour étant réalisée en ajoutant à l'information SCtoV existante (513) la différence entre le message CtoV issu de la sous-étape 2 (507) et le message CtoV correspondant de l'itération de décodage précédente (508). 8. Procédé selon l'une quelconque des revendications 1, 2, 6 ou 7 caractérisé en ce que l'information a priori sur les variables fournie par les observations en sortie du canal de transmission (410),(510), est conservée au long du processus de décodage (414),(514), chacune desdites étapes du séquencement principal sur les contraintes comprenant en outre une sous-étape dite sous-étape 0 (412), (512) de calcul de l'information APP (405), (505) à partir de ladite information a priori et de la somme des informations CtoV de ladite variable, dite information SCtoV (413), (513). 9. Procédé selon l'une quelconque des revendications 1 à 8 caractérisé en ce que l'algorithme utilisé pour la sous-étape 2 (202), (302) est un algorithme de type Min-Sum; 10. Procédé selon l'une quelconque des revendications 1 à 8 caractérisé en ce que l'algorithme utilisé pour la sous-étape 2 (202), (302) est un algorithme de type Lambda-Min; 11. Procédé selon l'une quelconque des revendications 1 à 10 caractérisé en ce que d'une part la sous-étape 1 est effectuée en plusieurs étapes élémentaires successives, chacune de ces étapes réalisant le calcul correspondant à une ou plusieurs variables, l'ordonnancement de ces étapes élémentaires étant prédéfini et appelé séquencement secondaire d'entrée, et d'autre part en ce que la sous-étape 3 est effectuée en plusieurs étapes élémentaires successives, chacune de ces étapes réalisant le calcul correspondant à une ou plusieurs variables, l'ordonnancement de ces étapes élémentaires étant également prédéfini et appelé séquencement secondaire de sortie. 12. Procédé selon l'une quelconque des revendications 1 à 1 l caractérisé en ce qu'une pluralité de noeuds de contraintes est effectuée simultanément, le séquencement principal étant alors effectué sur des groupes de noeuds de contraintes effectués simultanément, la sous-étape 1 (601) comportant une pluralité de calculs de messages VtoC, la sous-étape 2 (602) comportant une pluralité de calculs de messages CtoV, et la sousétape 3 (604) comportant une pluralité de mises à jour d'information caractéristique de l'APP sur les variables. 13 Procédé selon la revendication 12 caractérisée en ce qu'il comprend en outre un procédé de permutation ou réarrangement (611) effectué sur la pluralité d'informations fournies à la sous-étape 1, ainsi qu'un procédé de permutation ou réarrangement (612) effectué sur la pluralité d'informations produites par la sous-étape 3. 14. Procédé selon la revendication 12 caractérisé en ce qu'il comprend en outre un procédé de permutation ou réarrangement effectué sur la pluralité d'informations fournies à la sous-étape 1, ainsi qu'un procédé de permutation ou réarrangement effectué sur la pluralité de messages utilisés par la sous-étape 3. 15. Procédé selon l'une quelconque des revendications 1 à 14 caractérisé en ce que ledit ordonnancement des contraintes est choisi de manière à minimiser le nombre de mises à jour conflictuelles des informations caractéristiques de l'APP des variables. 16. Procédé selon l'une quelconque des revendications 11 à 15 caractérisé en ce que les séquencements secondaires d'entrée et de sortie sont choisis de manière à minimiser le nombre de mises à jour conflictuelles des informations caractéristiques de l'APP des variables. 17. Procédé selon l'une quelconque des revendications 11 à 16 caractérisé en ce qu'au moins un groupe de contraintes respecte un séquencement secondaire de sortie identique à l'ordre inverse du séquencement secondaire d'entrée dudit groupe de contraintes. 18. Dispositif de décodage de codes correcteurs d'erreurs représentables par un graphe bipartite comportant des noeuds de contraintes d'une part et des noeuds de variables d'autre part, mettant en oeuvre plusieurs itérations de décodage, chaque itération mettant en oeuvre: - des moyens de calcul de messages contrainte-vers-variable CtoV propagés des noeuds de contraintes vers le noeud de variables; - des moyens de calcul de messages variable-vers-contrainte VtoC propagés des noeuds de variables vers le noeud de contraintes; Ledit dispositif étant remarquable en ce que lesdites propagations de messages sont effectuées conjointement, en suivant un séquencement principal effectué sur l'ensemble des noeuds de contraintes constituant le code, et mettant en oeuvre, pour chaque étape dudit séquencement, les moyens suivants associés au noeud de contrainte considéré : - un module dit module 1 de calcul des messages VtoC propagés d'un noeud de variable vers ledit noeud de contrainte, ledit calcul étant effectué à partir d'une part de l'information a posteriori APP de ladite variable partiellement mise à jour par les calculs des noeuds de contraintes précédents, relativement à l'itération courante de décodage et au séquencement principal, et d'autre part du message CtoV correspondant calculé à l'itération de décodage précédente; un module dit module 2 de calcul des messages CtoV dudit noeud de contrainte, à partir desdits messages VtoC issus du module 1; un module dit module 3 de mise à jour d'une information caractéristique de l'information APP de chaque variable connectée audit noeud de contrainte, incorporant ledit message CtoV correspondant issu dudit module 2; 19. Dispositif selon la revendication 18 caractérisé en ce que le code correcteur d'erreurs est un code de type Low Density Parity Check. 20. Dispositif selon la revendication 18 ou 19 caractérisé en ce que le module 3 (204) réalise la mise à jour de l'information APP de la variable considérée, cette mise à jour étant réalisée en faisant la somme du message VtoC produit par le module 1 (206) et du message CtoV produit par le module 2 (207). 21. Dispositif selon la revendication 18 ou 19 caractérisé en ce que le module 3 (304) effectue la mise à jour de l'information APP de la variable considérée, cette mise à jour étant réalisée en ajoutant à l'information APP existante (311) la différence entre le message CtoV issu de la sousétape 2 (307) et le message CtoV correspondant de l'itération de décodage précédente (308). 22. Dispositif selon l'une quelconque des revendications 18 à 21 caractérisé en ce qu'il comporte en outre des moyens de mémorisation de l'information APP sur les variables (200), (300), et des moyens d'initialisation de ladite mémoire à partir des informations a priori sur les variables fournie par les observations en sortie du canal de transmission (210), (310), ladite initialisation étant réalisée avant les itérations de décodage. 23. Dispositif selon la revendication 18 ou 19 caractérisé en ce que le module 3 (404) effectue la mise à jour de la somme des informations CtoV de ladite variable, dite information SCtoV, cette mise à jour étant réalisée en faisant la somme du message VtoC produit par le module 1 (406) et du message CtoV produit par le module 2 (407), duquel est soustrait l'information a priori (411). 24. Dispositif selon la revendication 18 ou 19 caractérisé en ce que le module 3 (504) effectue la mise à jour de la somme des informations CtoV de ladite variable, dite information SCtoV, cette mise à jour étant réalisée en ajoutant à l'information SCtoV existante (513) la différence entre le message CtoV issu de la sous-étape 2 (507) et le message CtoV correspondant de l'itération de décodage précédente (508). 25. Dispositif selon l'une quelconque des revendications 18, 19, 23 ou 24 caractérisé en ce qu'il comporte en outre des moyens de mémorisation, pour chaque variable, de la somme des informations CtoV correspondantes, dite information SCtoV (400), (500), ainsi que des moyens de mémorisation (414), (514) des informations a priori sur les variables fournie par les observations en sortie du canal de transmission (410),(510). Le dispositif comprend en outre un module dit module 0 (412), (512) de calcul de l'information APP (405), (505) à partir de ladite infoitnation a priori et de ladite information SCtoV (413), (513) correspondante. 26. Dispositif selon l'une quelconque des revendications 18 à 25 caractérisé en ce que d'une part les moyens de calcul mis en oeuvre par le module 1 sont réalisés en plusieurs étapes élémentaires successives correspondant chacune à une ou plusieurs variables connectées à ladite contrainte, l'ordonnancement de ces étapes élémentaires étant prédéfini et appelé séquencement secondaire d'entrée, et d'autre part les moyens de calcul mis en oeuvre par le module 3 sont réalisés en plusieurs étapes élémentaires successives correspondant chacune à une ou plusieurs variables connectées à ladite contrainte, l'ordonnancement de ces étapes élémentaires étant prédéfini et appelé séquencement secondaire de sortie. 27. Dispositif selon l'une quelconque des revendications 18 à 26 caractérisé en ce qu'une pluralité de noeuds de contraintes est effectuée simultanément, le séquencement principal étant alors effectué sur des groupes de noeuds de contraintes effectués simultanément, le module 1 (601) comportant une pluralité de moyens de calcul de messages VtoC, le module 2 (602) comportant une pluralité de moyens de calcul de messages CtoV, et la module 3 (604) comportant une pluralité de moyens de mises à jour d'information caractéristique de l'APP sur les variables. 28. Dispositif selon la revendication 27 caractérisée en ce qu'il comprend en outre des moyens de permutation ou réarrangement (611) effectué sur la pluralité d'informations fournies au module 1, ainsi que des moyens de permutation ou réarrangement (612) effectué sur la pluralité d'informations produites par le module 3. 29. Dispositif selon la revendication 27 caractérisée en ce qu'il comprend en outre des moyens de permutation ou réarrangement effectué sur la pluralité d'informations fournies au module 1, ainsi que des moyens de permutation ou réarrangement effectué sur la pluralité d'informations utilisés par le module 3.