FR 2972876 A1 20120921 FR 1152105 A 20110315 -1- « Procédé d'encodage correcteur d'erreur, procédé de décodage et dispositifs associés» Domaine technique La présente invention concerne un procédé d'encodage correcteur d'erreur. Elle concerne également un procédé de décodage adapté à décoder des données ayant été encodées à l'aide du procédé d'encodage correcteur d'erreur selon l'invention. Elle concerne aussi un dispositif d'encodage pour la mise en oeuvre du procédé d'encodage correcteur d'erreur selon l'invention, ainsi qu'un dispositif de décodage pour la mise en oeuvre du procédé de décodage selon l'invention. Le domaine de l'invention est celui de l'encodage de données numériques, destinées à être transmises notamment en présence d'un bruit de transmission, et du décodage desdites données numériques après transmission. L'invention concerne plus particulièrement mais de manière non 20 limitative le domaine de l'optimisation de la transmission de données numériques, par exemple via un réseau radio à large bande. Etat de la technique antérieure En télécommunications, on utilise des procédés d'encodage correcteur 25 d'erreur (on peut parler de FEC, pour l'anglais « Forward Error Correction ») pour protéger contre les erreurs qui vont provenir de la transmission, des données, dites sources, à transmettre. Pour cela, on ajoute aux données sources de la redondance afin de permettre au destinataire de détecter et de corriger une partie des erreurs. 30 L'encodage correcteur d'erreur est suivi d'une modulation en vue de la transmission, c'est pourquoi on parle généralement de schéma de codage et de modulation (MCS, pour l'anglais « Modulation and Coding Scheme »), pour désigner tout à la fois l'encodage correcteur d'erreur et la modulation. On connaît dans l'art antérieur un procédé d'encodage correcteur 35 d'erreur communément appelé « turbo code ». Il s'agit d'un procédé 2972876 -2- d'encodage correcteur d'erreur, mettant en oeuvre en parallèle au moins deux étapes indépendantes d'encodage convolutif systématique de l'ensemble des données à encoder, et au moins une étape d'entrelacement temporel modifiant l'ordre de prise en compte des données pour chacune des étapes 5 d'encodage. Les turbo codes sont par exemple présentés dans le brevet français FR 2 675 971. Le décodage met en oeuvre un algorithme de décodage itératif basé sur l'algorithme de Bahl, Cocke, Jelinek et Raviv, et une recherche de maximum a posteriori. 10 Un inconvénient des turbo codes est cependant que l'ensemble des données sources est protégé de façon égale. Les codes UEP (pour l'anglais « Unequal Error Protection », c'est-à-dire à protection d'erreur inégale), nés avec la technologie GSM, apportent une réponse à cet inconvénient en permettant de regrouper dans différentes 15 classes, en fonction de leur importance, les données numériques d'une trame, et de protéger chaque classe en fonction de son niveau de priorité (on attribue un niveau de priorité d'autant plus élevé que la donnée est importante). Ce principe permet d'optimiser des ressources en transmission ainsi que 20 la largeur de bande de fréquence utilisée. Un inconvénient des codes UEP connu est que chaque classe est traitée séparément. On commence par séparer les différentes classes, avant de les encoder séparément. Les données encodées de chaque classe sont ensuite modulées séparément. Après transmission, les données d'une même trame 25 sont donc décorrelées. Cela implique une perte en terme de ressources car on a par exemple besoin : - d'en-têtes supplémentaires (ou en anglais « headers », données supplémentaires servant à définir un paquet de données, par exemple les données d'une classe dans le cas où les différentes 30 classes sont traitées de façon indépendante), et - de traitements supplémentaires pour resynchroniser après transmission les données des différentes classes d'une même trame. En outre, ces étapes de resynchronisation engendrent des retards en 35 réception. 2972876 -3- Une telle perte de ressource va à l'encontre de la demande actuelle en débit de transmission plus élevé, en capacité de réseau plus élevée, et en délai de transmission plus court. 5 Un but de la présente invention est de proposer des procédés et dispositifs d'encodage/de décodage correcteur d'erreur qui ne présentent pas les inconvénients de l'art antérieur. Un autre but de la présente invention est de proposer des procédés et dispositifs d'encodage/de décodage correcteur d'erreur qui minimisent les 10 délais de transmission et réception, notamment pour des applications telles que la transmission de son ou de vidéo. Un autre but de la présente invention est de proposer des procédés et dispositifs d'encodage/de décodage correcteur d'erreur qui sont moins gourmands en ressource que les procédés et dispositifs de l'art antérieur. 15 Un autre but de la présente invention est de proposer des procédés et dispositifs d'encodage/de décodage correcteur d'erreur qui nécessitent moins de débits en transmission que les procédés et dispositifs de l'art antérieur. Enfin, un but de la présente invention est de proposer des procédés et dispositifs d'encodage/de décodage correcteur d'erreur qui nécessitent moins de capacité de réseau que les procédés et dispositifs de l'art antérieur. Exposé de l'invention L'invention permet d'atteindre au moins l'un de ces buts par un procédé d'encodage correcteur d'erreur pour encoder en série des données numériques dites sources, se présentant sous la forme d'une trame, lesdites données pouvant être classées en N classes, où N est un entier au moins égal à 2. Le procédé d'encodage selon l'invention comprend : - une première étape d'encodage convolutionnel récursif et systématique des 30 données de la classe 1 ; - une mise en oeuvre des étapes suivantes, pour chaque n variant de 1 à m, où M est un entier positif inférieur ou égal à N-1 : - nè' mélange d'un ensemble formé par les données de la classe n+1, les données systématiques et les données de 35 parité d'une étape d'encodage précédente ; -4- - (n+Dème encodage convolutionnel récursif et systématique de données formées par le résultat du nème mélange. On peut aussi prévoir plusieurs étapes d'encodage intermédiaires des mêmes données avant l'ajout de nouvelles informations à encoder. On parle donc d'un nème mélange d'un ensemble formé par les données de la classe n+1, les données systématiques et les données de parité d'une étape d'encodage précédente car - l'étape d'encodage précédente peut être l'étape d'encodage n ; - l'étape d'encodage précédente peut être une étape d'encodage intermédiaire. Les termes « donnée de parité » et « donnée systématique » sont des termes relatives aux codes convolutionnels récursifs et systématiques, et sont connues de l'homme de l'art. Dans tout le texte, les données systématiques et les données de parité peuvent comprendre des bits de terminaison (on parle en anglais de «tait bits») Ils correspondent aux deux sorties d'un code convolutionnel récursif et systématique. Les données systématiques et données de parité d'une étape d'encodage forment les données encodées par ladite étape encodage. La donnée systématique est de préférence identique à la donnée à encoder, tandis que la donnée de parité peut correspondre à au moins une donnée de redondance. L'invention prévoit avantageusement d'ajouter avant certaines étapes d'encodage de nouvelles informations à encoder. On réalise ainsi un procédé d'encodage correcteur d'erreur de type UEP, c'est-à-dire à protection non-uniforme, chaque classe pouvant bénéficier d'une protection différente à l'égard des erreurs apparaissant notamment au cours de la transmission sur un canal. L'invention reprend le principe général des turbo codes, puisqu'on retrouve des étapes d'encodage successives et des étapes de mélange en vue d'un autre encodage des mêmes données. Cependant, on a modifié le schéma 2972876 -5- connu pour aboutir à un schéma d'encodage dans lequel différentes données numériques sources d'une même trame sont plus ou moins protégées. La protection différente provient d'un nombre d'informations de redondance (ou données encodées) différent, en fonction du nombre de fois 5 où les données de la classe ont été encodées. Chaque classe peut en effet être encodée un nombre de fois différent, selon un nombre d'encodages réalisés prenant en compte les données de cette classe. Les données d'une classe peuvent être prises en compte pour un encodage, en tant que données de la classe 1, en tant que données de la 10 classe n+1 et/ou en tant que données à encoder formées par le résultat du nè' mélange. Le procédé selon l'invention est adapté à traiter des trames entières. La protection des données peut être appelée hiérarchique, des données plus importantes, autrement dit à plus haut niveau de priorité, pouvant être 15 mieux protégées. La structure peut être adaptée à tout type de trame, peu importe notamment le nombre de classes. On réalise un encodage UEP qui s'applique directement à une trame de données numériques entière. 20 Chaque classe d'une trame peut ainsi être encodée avec un schéma d'encodage dédié et différent du schéma d'encodage appliqué à une ou plusieurs autres classes de la même trame. Le procédé selon l'invention permet ainsi de réaliser un encodage avec moins de ressources que les procédés de l'état de la technique. 25 Par ailleurs, le procédé selon l'invention permet de réaliser un encodage plus rapide, en consommant moins d'énergie par rapport aux procédés de l'état de la technique. Enfin, les données encodées avec le procédé selon l'invention peuvent être transmises avec moins de débits en transmission et moins de capacité de 30 réseau que les données encodées avec les procédés et dispositifs de l'art antérieur, à protection égale. Le procédé selon l'invention permet que les différentes classes d'une même trame soient encodées par un unique procédé d'encodage correcteur d'erreur, à l'inverse des procédés d'encodage UEP connus dans lesquels 2972876 -6- chaque classe est encodée indépendamment des autres classes de la même trame. Il n'est plus nécessaire de séparer en plusieurs flux de données les données des différentes classes d'une même trame, pour les encoder 5 séparément. Le procédé selon l'invention permet ainsi d'éviter la transmission d'informations de synchronisation, et donc d'optimiser les ressources du réseau de transmission. Le procédé selon l'invention permet ainsi de réduire un retard en 10 réception, en particulier pour des applications telles que la transmission de son (par exemple parole) ou de vidéo. Le procédé selon l'invention permet ainsi d'éviter une étape de resynchronisation après transmission. Le procédé selon l'invention permet aussi de simplifier la modulation des 15 données ayant été encodées, toutes les classes d'une trame pouvant être modulées ensemble. Il permet d'appliquer un unique schéma de modulation. L'au moins une étape de mélange peut apporter une distribution aléatoire des données numériques dans le résultat final. 20 Les données numériques peuvent être toute donnée numérique, notamment des données numériques représentant une vidéo ou une voix. Le procédé d'encodage est suivi de préférence d'une modulation appropriée au canal de transmission utilisé. Le schéma d'encodage et de modulation pouvant alors être obtenu est 25 particulièrement robuste aux erreurs. On peut prévoir que certaines données de la trame ne soient pas encodées. On peut prévoir de mettre en oeuvre un poinçonnage suite à la mise en oeuvre d'une étape d'encodage. Cela peut impliquer au moins une étape de 30 dépoinçonnage lors d'un décodage. Le dépoinçonnage consiste à retrouver des données de la même taille que des données avant un poinçonnage correspondant, par exemple en introduisant des zéros dans les données poinçonnées. 2972876 -7- De préférence, un niveau de priorité est attribué à chacune des classes, les classes 1 à N étant rangées dans l'ordre décroissant des niveaux de priorité. Le procédé selon l'invention permet ainsi que chaque classe bénéficie 5 d'une protection adaptée. Il permet ainsi d'éviter la transmission de plus d'informations de redondance qu'il est nécessaire, ce qui permet d'optimiser les ressources du réseau de transmission tout en obtenant une qualité optimale en réception, les informations les plus importantes ayant été hautement protégées. 10 Chaque étape de mélange peut consister en une simple concaténation. Avantageusement, chaque étape de mélange consiste en un entrelacement. Un entrelacement peut consister à organiser d'une manière non 15 contiguë des données reçues. On peut envisager tout type d'entrelacement connu, notamment les entrelacements développés dans le cadre des turbo codes. En général, des erreurs lors d'une transmission sur un canal se produisent en rafales plutôt que de manière indépendante. Si le nombre 20 d'erreurs dépasse la capacité de l'encodage correcteur d'erreur, il ne parvient pas à récupérer les données sources. L'entrelacement est généralement utilisé pour contribuer à résoudre ce problème en modifiant l'ordre de prise en compte de mêmes données numériques dans plusieurs encodages, créant ainsi une distribution plus uniforme des erreurs. 25 Selon un mode de réalisation privilégié du procédé d'encodage selon l'invention, on choisit M égal à N-1, de façon que les classes 1 à N soient encodées. Ainsi, toutes les données numériques source peuvent être protégées. De préférence, on obtient à l'issu de la mise en oeuvre de toutes les étapes du procédé d'encodage selon l'invention, c'est-à-dire en sortie, des données de parité et systématiques correspondant au résultat de la (M+1)ème étape d'encodage. 3035 -8- L'invention concerne également un dispositif d'encodage pour la mise en oeuvre du procédé d'encodage correcteur d'erreur en série selon l'invention, apte à encoder des données numériques dites sources se présentant sous la forme d'une trame, lesdites données pouvant être classées en N classes. Le dispositif d'encodage selon l'invention comprend : - un premier module d'encodage convolutionnel récursif et systématique agencé pour encoder des données à encoder formées par les données de la classe 1 ; et - et soit n variant de 1 à M, où M est un entier positif inférieur ou égal à N-1, M ensembles formés chacun par un nème mélangeur suivi d'un (n+Dème module d'encodage convolutionnel récursif et systématique, le nème mélangeur étant agencé pour recevoir les données de la classe n+1, les données systématiques et les données de parité d'un module d'encodage précédent, et le (n+Dème module d'encodage étant agencé pour encoder des données à encoder formées par la sortie du nème mélangeur. L'invention concerne également un procédé de décodage de données numériques, agencé pour décoder des données numériques encodées 20 conformément au procédé d'encodage selon l'invention. Les données obtenues à l'issu de l'encodage sont avantageusement transmises via un canal de transmission. On reçoit donc après transmission des données dites reçues pouvant être 25 affectées d'erreurs intervenues en particulier au cours de la transmission. Avantageusement, le procédé de décodage selon l'invention est appliqué à ces données reçues. Pour des raisons de clarté de l'exposé, dans tout le texte on désigne de la même façon une donnée avant et après transmission. 30 De façon particulièrement avantageuse, le procédé de décodage selon l'invention est tel que, pour tout j, k, 1 compris entre M+1 et 1 (inclus): - à chaque Jerne étape d'encodage du procédé d'encodage selon l'invention, correspond une étape de décodage j, adaptée à décoder des 35 données encodées résultant de la jème étape d'encodage ; 2972876 -9- - à l'issu de chaque étape de décodage j, on obtient d'une part des données dites « soft » pour une estimation des données de la classe j, d'autre part des données dites extrinsèques ; et on met en oeuvre les étapes suivantes : 5 - décodage k ; puis - décodage I k en fonction d'au moins une donnée extrinsèque fournie par au moins une étape de décodage autre, utilisée comme donnée a priori. De préférence, les données a priori utilisées pour un décodage I k 10 comprennent des informations relatives aux données encodées. Les données dites "a priori" représentent de préférence des probabilités sur des données encodées reçues du canal. Ces probabilités sont disponibles avant tout décodage courant desdites 15 données encodées reçues, ces valeurs probabilistiques venant d'une source autre que les données encodées reçues du canal. Une donnée a priori utilisée pour décoder les données encodées résultant de la kème étape d'encodage peut être relative aux données de parité et aux données systématiques de cette kème étape d'encodage. Les données extrinsèques d'un bit B désignent avantageusement les informations produites par un décodeur (en se basant sur les informations encodées reçues canal et le cas échéant des données a priori), à l'exception des informations canal et a priori du bit B en question. Ces données extrinsèques peuvent représenter la probabilité d'avoir reçu ce bit B en fonction des valeurs de tous les autres bits adjacents de la même trame. On peut se référer notamment à l'ouvrage suivant : Todd K Moon, "Error Correction Coding - Mathematical Methods and Algorithms", John Wiley & 30 Sons 2005. Les données extrinsèques résultant de la jème étape d'encodage sont de préférence relatives aux données de parité et aux données systématiques de cette jème étape d'encodage. -10- Les données extrinsèques comprennent de préférence des données dites « a priori » fournissant une donnée supplémentaire pour estimer les données des autres classes. A chaque étape de décodage, on peut utiliser une donnée a priori. Pour l'étape de décodage effectuée en premier dans l'ordre chronologique, la donnée a priori est mise à zéro. Ensuite, chaque étape de décodage permet d'obtenir une donnée a priori utilisée pour une autre étape de décodage. Chaque classe peut bénéficier d'une protection différente à l'égard des erreurs. Une classe fortement protégée bénéficiera d'un taux d'erreur d'autant moins important lors du décodage. Un décodage I k en fonction d'au moins une donnée extrinsèque fournie par au moins une étape de décodage autre, utilisée comme donnée a priori, permet que les différentes classes encodées bénéficient de l'encodage des autres classes encodées. On peut ainsi atteindre plus rapidement, pour une classe moins protégée, un taux d'erreur binaire donné. L'invention permet ainsi une 20 économie d'énergie, de redondance et de délai. Chaque étape de décodage peut mettre en oeuvre un décodage itératif, c'est-à-dire tout type d'algorithme basé sur la recherche du maximum a posteriori pour l'estimation de probabilités a posteriori (MAP). Ce maximum a 25 posteriori peut être calculée avec l'algorithme BCJR (algorithme de Bahl, Cocke, Jelinek et Raviv), avec une dérivation du MAP, notamment selon un décodage dit LOG MAP utilisant un rapport de vraisemblance (on parle en anglais du "Log Likelihood Probabilities Ratios"), ou un décodage dit MAX LOG MAP, plus appropriée pour l'implémentation matérielle. 30 Avant leur utilisation comme donnée a priori pour une étape de décodage j, on peut effecteur un certain traitement des données extrinsèques. L'idée est de retrouver des données de la même dimension et dans le même ordre que les données en sortie de l'étape d'encodage correspondant. 35 Chaque étape de décodage permet d'estimer les données d'une classe. De préférence, les estimations des données de chaque classe sont progressivement extraites des données soft. Il s'agit d'extraire au bon moment certaines données relatives aux classes respectives. Une étape de décodage peut être réalisée non successivement pour toute classe, indépendamment de l'ordre d'encodage. La première étape d'encodage peut être réalisée pour une classe intermédiaire, et les étapes de décodage précédentes et suivantes peuvent être réalisées dans tout ordre avantageux, notamment selon un taux d'erreur prédéfini à atteindre pour chaque classe. Avantageusement, une étape de décodage peut être réalisée successivement pour toutes les classes n, où n est décroissant, variant de 15 M+1 à 1. Pour tout j compris entre M+1 et 2 (inclus), le procédé de décodage selon l'invention peut comprendre en outre après chaque étape de décodage j les opérations suivantes : 20 - démultiplexage j des données extrinsèques obtenues à l'étape de décodage j, pour séparer des données relatives à des données de parité et des données dites utiles relatives à des données systématiques, - démêlage j-1 desdites données utiles, le démêlage j-1 réalisant une fonction inverse de celle mise en oeuvre à l'étape de mélange j-1, pour fournir 25 des données démêlées ; - démultiplexage des données démêlées pour séparer des données a priori relatives à la classe j dites données extraites et des données a priori relatives aux classes 1 à j-1 dites a priori utiles ; - fourniture des données dites a priori utiles pour être utilisées à l'étape 30 de décodage j-1. Dans tout le texte, lorsqu'on parle démêlage, on se réfère à un mélange donné, le démêlage consistant à retrouver l'ordre des données avant ledit mélange. 35 2972876 -12- Pour tout j compris entre M+1 et 2 (inclus), le procédé de décodage selon l'invention peut comprendre en outre après chaque étape de décodage j les opérations suivantes : - démêlage j-1 des données soft, le démêlage j-1 réalisant une fonction 5 inverse de celle mise en oeuvre à l'étape de mélange j-1, pour fournir des données soft démêlées; - démultiplexage des données soft démêlées pour séparer des données soft relatives à la classe j dites données soft extraites et des données soft relatives aux classes 1 à j-1. 10 Les données soft extraites servent pour une estimation des données de la classe j. On peut prévoir en outre une étape spécifique d'estimation des données soft extraites pour retrouver les valeurs de la classe j. Au moins une étape de décodage j peut être réitérée au moins une fois, en fonction de données a priori correspondant à des données extrinsèques fournies par au moins une étape de décodage des données d'une autre classe. A chaque réitération d'une étape de décodage, on peut utiliser une 20 donnée a priori. Chaque étape de décodage peut être réitérée au moins 1 fois, par exemple entre 1 et 5 fois. L'étape de décodage ainsi réitérée peut ensuite être suivie de nouvelles étapes de décodage des données de classes suivantes ou précédentes. 25 Avant leur utilisation pour une réitération de l'étape de décodage j, on peut effecteur un certain traitement des données extrinsèques avant d'en utiliser certaines au moins comme données a priori. L'idée est de retrouver des données de la même dimension et dans le même ordre que les données en sortie de l'étape d'encodage correspondant. 30 On réalise ainsi au moins un rebouclage. Le procédé de décodage selon l'invention peut donc être considéré comme itératif, chaque nouvelle itération d'une étape de décodage pouvant améliorer l'estimation des données de la classe correspondante. -13- On peut ainsi utiliser des informations d'autres classes pour améliorer le décodage d'une classe. Chaque classe bénéficie d'une protection différente à l'égard des erreurs. Une classe fortement protégée bénéficiera d'un taux d'erreur d'autant moins important lors du décodage. Lors du décodage, l'au moins un rebouclage permet d'exploiter le fait que lors de l'encodage, des données correspondant à chacune des classes sont mélangées. Les différentes classes encodées peuvent donc bénéficier de l'encodage des autres classes encodées. On peut ainsi atteindre plus rapidement, pour une classe moins protégée, on taux d'erreur binaire donné. L'invention permet ainsi une économie d'énergie. Au moins une étape de décodage j peut être réitérée au moins une fois en fonction de données a priori correspondant à des données extrinsèques fournies par au moins une étape de décodage des données d'une autre classe, et pour j compris entre M+1 et 2 (inclus) et t strictement inférieur à j, on réitère l'étape de décodage j en fonction de données a priori obtenues aux étapes de décodage t à j-1. Chaque étape de décodage peut donc être réitérée en utilisant des 20 données a priori obtenues à des étapes de décodage de classes de priorité plus élevée. Dans ce cas, lesdites données a priori peuvent comprendre des informations extrinsèques relatives aux classes 1 à j-1 et des informations relatives aux données de parité des classes 1 à j-1. 25 On peut ensuite réitérer les étapes de décodage j-1 à t. Au moins une étape de décodage j peut être réitérée au moins une fois en fonction de données a priori correspondant à des données extrinsèques fournies par au moins une étape de décodage des données d'une autre classe, 30 et pour j compris entre M et 1 (inclus) et t strictement supérieur à j, on réitère l'étape de décodage j (510;) en fonction de données a priori obtenues aux étapes de décodage t à j+1. Chaque étape de décodage peut donc être réitérée en utilisant des données a priori obtenues à des étapes de décodage de classes de priorité 35 moins élevée. 2972876 -14- Dans ce cas, lesdites données a priori peuvent comprendre des informations extrinsèques relatives aux classes t à j+1 et des informations relatives aux données de parité des classes t à j+1. On peut ensuite réitérer les étapes de décodage j+1 à t. 5 De préférence, une phase de décodage comprend les étapes suivantes : - on réitère l'étape de décodage M+1 en fonction de données a priori obtenues aux étapes de décodage 1 à M ; - on réitère les étapes de décodage M à 1 en utilisant des données a 10 priori correspondant à des données extrinsèques fournies par l'étape de décodage précédente (selon l'ordre chronologique), de façon que les étapes de décodage M+1 à 1 composent une phase de décodage ; et la phase de décodage est réitérée au moins une fois. 15 Ainsi, on effectue un rebouclage sur l'ensemble des étapes de décodage, et dans chaque phase de décodage les étapes de décodage sont effectuées successivement pour toutes les classes n, où n est décroissant, variant de M+1 à 1. A partir de la deuxième itération, l'étape de décodage M+1 peut être réalisée en fonction de données a priori fournies par l'étape de décodage 1. On peut ainsi utiliser des informations de toutes les autres classes pour améliorer le décodage d'une classe. L'invention concerne également un dispositif de décodage adapté à la 25 mise en oeuvre du procédé de décodage selon l'invention. Le dispositif de décodage selon l'invention peut comprendre M+1 modules de décodage, chaque module de décodage j (où j est un entier compris entre 1 et M+1 inclus) étant apte à décoder des données encodées résultant de la jème étape d'encodage du procédé d'encodage selon l'invention, 30 et chaque module de décodage j fournissant des données dites extrinsèques aptes à être utilisées comme données a priori par un autre module de décodage, et au moins une donnée dite « soft » correspondant à une estimation de la classe j. 2972876 -15- L'invention trouve une application dans tous les domaines de transmission de données et tout système de transmission, que ce soit une transmission filaire ou non filaire. Il peut s'agir notamment du domaine : - des communications radio terrestres, 5 - des communications radio aérospatiales, - de la transmission de données en robotique ou en électronique, - des applications audio et/ou vidéo. L'invention concerne également un produit programme d'ordinateur 10 comprenant les instructions pour réaliser les étapes du procédé d'encodage selon l'invention lorsqu'il est exécuté par un appareil informatique. L'invention concerne également un produit programme d'ordinateur comprenant les instructions pour réaliser les étapes du procédé de décodage 15 selon l'invention lorsqu'il est exécuté par un appareil informatique. Description des figures et modes de réalisation - la figure 1 illustre sous forme de diagramme un exemple dit « en série » de procédé d'encodage selon l'invention, 20 - la figure 2 illustre sous forme de diagramme un exemple dit « en série » de procédé de décodage selon l'invention, - la figure 3 illustre un mode de réalisation particulier du procédé d'encodage dit « en série » selon l'invention, - la figure 4 illustre un mode de réalisation particulier du procédé de 25 décodage dit « en série » selon l'invention, - la figure 5 illustre des courbes de taux d'erreur binaire obtenu avec un procédé de décodage selon l'invention. Dans tout le texte, un multiplexage peut désigner une concaténation, 30 un entrelacement ou toute autre opération réalisée pour ranger des données dans une trame binaire unidimensionnelle ou multidimensionnelle. Dans tout le texte, lorsqu'on parle démultiplexage, on se réfère à un multiplexage donné, le démultiplexage étant l'opération inverse dudit multiplexage. 2972876 -16- Dans tout le texte, lorsqu'on parle désentrelacement, on se réfère à un entrelacement donné, le désentrelacement consistant à retrouver l'ordre des données avant ledit entrelacement. 5 Les moyens pour mettre en oeuvre chacune des étapes du procédé selon l'invention sont connus de l'homme du métier, c'est pourquoi on se limitera ici à la description détaillée d'exemples de procédés selon l'invention. La figure 1 est une représentation sous forme de diagramme d'un 10 exemple de procédé d'encodage en série conformément au procédé selon l'invention. Chaque étape d'encodage met en oeuvre un code convolutionnel récursif et systématique. Dans l'exemple représenté sur la figure 1, une trame de données 102 15 est encodée. Les données de la trame 102 sont classées dans n classes 1021-1O2n. A chacune des classes 102; est associé un niveau de priorité. Dans l'exemple présent, de manière non limitative, le niveau de priorité de la classe 1021 est plus grand que le niveau de priorité de la classe 1022, et ainsi de suite, la classe de niveau de priorité le plus faible étant la classe 1O2n. 20 Le procédé 100 comprend une première étape de codage 1041 qui comprend : - un encodage 1101 des données de la classe 1021r et - un multiplexage 1061 des données en sortie de l'encodage 1101r qui, dans le cas particulier des codes convolutionnels récursifs et systématiques, consistent dans une sortie systématique (c'est-à-dire les données à encoder, en entrée de l'encodeur) et une sortie parité (ou données récursivement encodées ou données de parité). Cette étape 1041 est suivie d'une deuxième étape de codage 1042 réalisant : - un entrelacement 1082 des données multiplexées obtenues après le multiplexage 1061r avec les données de la classe 1022; - un encodage 1102 des données entrelacées fournies par l'entrelacement 1082, et - un multiplexage 1062 des données fournies par l'encodage 1102 qui, 35 dans le cas particulier des codes convolutionnels récursifs et systématiques, 2972876 -17- consistent dans une sortie systématique (c'est-à-dire les données à encoder, en entrée de l'encodeur) et une sortie parité (ou données récursivement encodées ou données de parité). 5 Le procédé 100 comprend après l'étape 1042 une étape de codage 1043 et ainsi de suite jusqu'à l'étape 1O4n. Chacune des étapes 104; pour i>_3 comprend les opérations suivantes : - un entrelacement 108; des données multiplexées fournies par le multiplexage 106;_1 avec les données de la classe 102; ; 10 - un encodage 110; des données entrelacées fournies par l'entrelacement 108; ; et - un multiplexage 106; des données fournies par l'encodage 110;. Chaque étape 104; pour i>_2 fournit une donnée encodée formée par le 15 multiplexage de la sortie systématique de l'encodage 110; (données entrelacées obtenues à l'entrelacement 108;) avec la sortie parité de l'encodage 110; (données de parité obtenues à l'encodage 110;. En sortie, la trame encodée A est obtenue par le multiplexage 1O6n. Les données de la trame 102 sont modulées et transmises ensemble sous la forme des données A, car elles n'ont pas été séparées préalablement à la mise en oeuvre d'un procédé d'encodage selon l'invention. 25 Les données A sont de préférences modulées puis transmises sur un canal de transmission. Après transmission, on reçoit les données A qui peuvent être entachées d'erreurs. 30 La figure 2 est une représentation sous forme de diagramme d'un exemple de procédé de décodage en série 500 conformément au procédé selon l'invention, dans le cas où chaque encodeur met en oeuvre un code convolutionnel récursif et systématique. 20 2972876 -18- Dans l'exemple représenté sur la figure 2, des données A sont décodées. Ces données A ont été encodées conformément au procédé d'encodage en série 100 selon l'invention. 5 On peut prévoir qu'après chaque multiplexage 106;, on ait en outre réalisé un poinçonnage. Dans ce cas, le décodage comprend des étapes de dépoinçonnage. Ce cas particulier n'est pas représenté ici, mais il n'est pas exclu du domaine de l'invention. 10 Une première étape de décodage 508n des données de la classe 102n comprend les étapes suivantes : - un décodage 510n des données encodées de la classe 102n, utilisant les données A et une donnée a priori (qui pour la première itération est constitué d'une suite de valeurs nulles), et fournissant des données 15 dites extrinsèques et des données soft pour une estimation des données de la classe 102n ; - un démultiplexage 514n des données extrinsèques pour séparer les données extrinsèques relatives aux données de parité, et les extrinsèques dites utiles relatives aux données systématiques (relatives 20 aux données encodées à l'étape d'encodage 104n ); - un désentrelacement 512n des données extrinsèques utiles (relatives à l'étape d'encodage 104n ), pour fournir des données a priori relatives aux classes 1021_,n_1r et des données a priori relatives à la classe 102n, le désentrelacement 512n mettant en oeuvre une fonction 25 d'entrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'entrelacement 108n du procédé 100 d'encodage en série. Les données soft pour une estimation des données de la classe 102n subissent une étape de désentrelacement 516n mettant en oeuvre une fonction d'entrelacement inverse de la fonction d'entrelacement mise en 30 oeuvre à l'entrelacement 108n du procédé 100 d'encodage en série. Une étape de démultiplexage non representée permet d'isoler des probabilités pour les données de la classe 102n (pour chaque bit, probabilité de valoir 0 ou 1). On peut prévoir en outre une étape d'estimation des données de la classe 102n. 2972876 -19- Le désentrelacement 512n est suivi d'une nouvelle étape de décodage 508n_1 des données de la classe 102n_1. Cette nouvelle étape comprend un décodage 510n_1 des données encodées de la classe 102n_1r utilisant les données a priori relatives aux 5 classes 1021_,n_1 obtenues à l'étape de décodage précédente, et une donnée canal mise à zéro. Le décodage 510n_1 fournit des données dites extrinsèques et des données soft pour une estimation des données de la classe 102n_1. L'étape de décodage 508n_1 comprend ensuite les étapes suivantes : 10 - un démultiplexage 514n_1 des données extrinsèques pour séparer les données extrinsèques relatives aux données de parité, et les extrinsèques dites utiles relatives aux données systématiques (relatives aux données encodées à l'étape d'encodage 104n_1) ; - un désentrelacement 512n_1 des données extrinsèques utiles (relatives à 15 l'étape d'encodage 104n_1 ), pour fournir des données a priori relatives aux classes 1021_,n_2r et des données a priori relatives à la classe 102n_ 1, le désentrelacement 512n_1 mettant en oeuvre une fonction d'entrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'entrelacement 108n_1 du procédé 100 d'encodage en série. 20 Les données soft pour une estimation des données de la classe 102n_1 subissent une étape de désentrelacement 516n_1 mettant en oeuvre une fonction d'entrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'entrelacement 108n_1 du procédé 100 d'encodage en série. Une étape de démultiplexage non representée permet d'isoler des 25 probabilités pour les données de la classe 102n_1 (pour chaque bit, probabilité de valoir 0 ou 1). On peut prévoir en outre une étape d'estimation des données de la classe 102n_1. Le procédé 500 comprend après l'étape 508n_1 une étape décodage 508n_2 et ainsi de suite jusqu'à l'étape 5082. Chacune des étapes 508; pour n-30 n-2>_i>_2 comprend les opérations suivantes : - un décodage 510; des données encodées de la classe 102;, utilisant les données a priori relatives aux classes 1021_,; obtenues à l'étape de décodage précédente, et une donnée canal mise à zéro) ; - un démultiplexage 514; des données extrinsèques pour séparer les 35 données extrinsèques relatives aux données de parité, et les 2972876 -20- extrinsèques dites utiles relatives aux données systématiques (relatives aux données encodées à l'étape d'encodage 104; ); - un désentrelacement 512; des données extrinsèques utiles (relatives à l'étape d'encodage 104;), pour fournir des données a priori relatives 5 aux classes 1021_,;_1 et des données a priori relatives à la classe 102;, le désentrelacement 512; mettant en oeuvre une fonction d'entrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'entrelacement 108; du procédé 100 d'encodage en série. Les données soft pour une estimation des données de la classe 102; 10 subissent une étape de désentrelacement 516; mettant en oeuvre une fonction d'entrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'entrelacement 108; du procédé 100 d'encodage en série. Une étape de démultiplexage non representée permet d'isoler des probabilités pour les données de la classe 102; (pour chaque bit, probabilité 15 de valoir 0 ou 1). On peut prévoir en outre une étape d'estimation des données de la classe 102;. Le procédé 500 comprend après l'étape 5082 une étape de décodage 5081 comprenant les étapes suivantes : 20 - un décodage 5101 des données encodées de la classe 1021r utilisant les données a priori relatives à la classe 1021 obtenues à l'étape de décodage précédente et une donnée canal mise à zéro, pour obtenir les données extrinsèques (relatives aux données de parité et aux données systématiques dites utiles, et correspondant aux données encodées à 25 l'étape d'encodage 1041) et l'estimation relatives aux données encodées de la classe 1021. On appelle phase de décodage les étapes décrites, depuis le décodage 510n. Le procédé de décodage 500 adapté à l'encodage en série comprend également un rebouclage, qui consiste à utiliser des données extrinsèques fournies par une étape de décodage pour réitérer une autre étape de décodage. 30 2972876 -21- Les données extrinsèques utilisées pour une réitération d'une étape de décodage sont entrelacées pour retrouver des données de la même dimension et dans le même ordre que les données en sortie de l'étape d'encodage correspondant. 5 Le rebouclage comprend les étapes suivantes : - entrelacement 5221 des données extrinsèques fournies par l'étape de décodage 5101 et des données a priori relatives à la classe 1022, pour obtenir des données entrelacées fournies par l'entrelacement 5221r 10 l'entrelacement 5221 mettant en oeuvre une fonction d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 1082 du procédé 100 d'encodage en série, puis multiplexage 5231 des données entrelacées fournies par l'entrelacement 5221 avec les données extrinsèques relatives aux données de parité de la classe 15 1022; - pour i allant de 2 à n-2, i étapes d'entrelacement 522; des données multiplexée au multiplexage 523;_1 avec les données a priori relatives à la classe 102;+1, pour obtenir des données entrelacées fournies par l'entrelacement 522;, l'entrelacement 522; mettant en oeuvre une 20 fonction d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 108;+1 du procédé 100 d'encodage en série, puis multiplexage 523; des données entrelacées fournies par l'entrelacement 522; avec les données dites extrinsèques relatives aux données de parité de la classe 102;+1 ; 25 - entrelacement 522n_1 des données multiplexées fournies par le multiplexage 523n_2, avec une donnée de la taille des données a priori relatives aux données de la classe 1O2n mais mises à zéro, l'entrelacement 522n_1 mettant en oeuvre une fonction d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 30 1O8n du procédé 100 d'encodage en série ; - prise en compte des données entrelacées de l'entrelacement 522n_1 en tant que donnée a priori lors d'une deuxième itération de l'étape de décodage 51On. 2972876 -22- Cette deuxième itération de l'étape de décodage 510, peut être suivie d'une troisième itération de toutes les autres étapes d'une phase de décodage telle que décrite précédemment. Un tel rebouclage peut être mis en oeuvre plusieurs fois, par exemple 5 trois à quinze fois. On améliore à chaque fois l'estimation des données de chacune des classes. Après au moins cinq rebouclages, il n'est plus toujours intéressant d'effecteur plus de rebouclages, le gain sur la précision de l'estimation étant négligeable en comparaison du temps supplémentaire nécessaire pour une autre itération. 10 On va ensuite décrire, en référence à la figure 3, un mode de réalisation de procédé d'encodage correcteur d'erreur 100 selon l'invention, dans le cas où chaque encodeur met en oeuvre un code convolutionnel récursif et systématique. 15 Les données numériques dites sources 30 sont formées par une trame 102 comprenant trois classes 1021r 1022 et 1023. Le procédé 300 selon l'invention comprend une étape initiale 70 de séparation des données de chacune des classes 1021r 1022 et 1023. Les données de la classe 1021 sont désignées par le symbole al. 20 Les données de la classe 1022 sont désignées par le symbole a2. Les données de la classe 1023 sont désignées par le symbole a3. Le procédé 100 selon l'invention comprend une première étape d'encodage 1101 des données de la classe 1021. On obtient des données encodées P1 et Si. 25 Les données encodées P1 obtenues sont appelées « parité de la classe 1021 » et correspondent à des données de redondance permettant de retrouver les données al. Les données encodées S1 obtenues sont appelées « systématique de la classe 1021 ». Le procédé 100 selon l'invention comprend ensuite : 30 - une étape 1062 de multiplexage de la parité P1 avec la sortie systématique SI, pour obtenir des données multiplexées Al ; puis - une étape 1082 d'entrelacement des données multiplexées Al avec les données a2 de la classe 1022. On obtient des données entrelacées bl. 2972876 -23- Les données entrelacées bl sont ensuite encodées au cours d'une étape d'encodage 1102r qui fournit des données encodées P2 et S2. Les données encodées P2 obtenues sont appelées « parité de bl ». Ce sont des données de redondance permettant de retrouver les données bl. Les 5 données bl comprenant les données al et a2 mélangées, on augmente le nombre de données de redondance disponibles et correspondant aux données al. Les données encodées S2 obtenues sont appelées « systématique de 10 Le procédé 100 selon l'invention comprend ensuite : - une étape 1063 de multiplexage de la parité P2 avec la sortie systématique S2r pour obtenir des données multiplexées A2 ; puis - une étape 1083 d'entrelacement des données multiplexées A2 avec les 15 données a3 de la classe 1023. On obtient des données entrelacées b2. Les données entrelacées b2 sont ensuite encodées au cours d'une étape d'encodage 1103r qui fournit des données encodées P3 et S3. 20 Les données encodées P3 obtenues sont appelées « parité de b2 ». Ce sont des données de redondance permettant de retrouver les données b2. Les données b2 comprenant les données al, a2 et a3 mélangées, on augmente le nombre de données de redondance disponibles et correspondant aux données 25 al et a2. Les données encodées S3 obtenues sont appelées « systématique de b2». On obtient en sortie les données A regroupant la parité Par et la sortie 30 systématique S3. On va maintenant décrire, en référence à la figure 4, un mode de réalisation particulier du procédé de décodage 500 selon l'invention, correspondant au procédé d'encodage de la figure 3, et dans le cas où chaque 35 encodeur met en oeuvre un code convolutionnel récursif et systématique. bl». 2972876 -24- Le procédé 500 selon l'invention comprend un premier décodage comprenant une étape de décodage 5103 utilisant les données A et une donnée a priori initialement à zéro. 5 On obtient une sortie Lsoft(b2), et des données dites extrinsèques Lext(A)- La sortie Lsoft(b2) permet une estimation des données b2. Dans tout le texte, Loft , Lext et Lpriori correspondent aux probabilités logarithmiques pour chaque bit des données de valoir 0 ou 1, suite à une 10 utilisation avantageuse pour cette réalisation particulière de l'algorithme de décodage appelé MAX LOG MAP. D'une part, on met en oeuvre les étapes suivantes : - désentrelacement 5163 de la sortie Lsoft(b2), le désentrelacement 5163 15 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 10$3 r - démultiplexage non représenté pour séparer les données Lsoft(A2) et Lsoft(a 3) 20 La sortie Lsoft(a3) correspond à une estimation des données a3 de la classe 1023. La sortie Lsoft(A2) correspond à une estimation des données A2. Les données dites extrinsèques Lext(A) comprennent des informations 25 relatives à une estimation des données de la classe 1023. D'autre part, on met en oeuvre les étapes suivantes : - démultiplexage 5143 pour séparer les données Lext(S3) relatives au systématique S3 et Lext(P3) relatives à la parité P3i - désentrelacement 5123 de la sortie Lext(S3), le désentrelacement 5123 30 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 10$3 r - démultiplexage non représenté des données désentrelacées, pour obtenir une donnée Lpriori(a3) et Lpriori(A2)- 35 2972876 -25- Les données Lpriori(a3) correspondent aux probabilités logarithmiques pour chaque bit des données de la classe 1023 de valoir 0 ou 1. Les données Lpriori(A2) sont utilisées comme informations à priori à l'étape de décodage suivante. 5 Le démultiplexage non représenté pour obtenir une donnée Lpriori(a3) et Lpriori(A2), est suivi d'un deuxième décodage comprenant une étape de décodage 5102 de la parité Per en fonction de Lpriori(A2) et d'une donnée canal mise à zéro. 10 On obtient une sortie Lsott(bl), et des données dites extrinsèques Lext(A2) La sortie Lsott(bl) permet une estimation des données bl. D'une part, on met en oeuvre les étapes suivantes : 15 - désentrelacement 5162 de la sortie Lsott(bl), le désentrelacement 5162 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 1082 ; - démultiplexage non représenté pour séparer les données Lsott(Al) et 20 Lsott(a2) La sortie Lsott(a2) correspond à une estimation des données a2 de la classe 1022. La sortie Lsott(Al) correspond à une estimation des données Al. 25 Les données dites extrinsèques Lext(A2) comprennent des informations relatives à une estimation des données de la classe 1022. D'autre part, on met en oeuvre les étapes suivantes : - démultiplexage 5142 pour séparer les données Lext(S2) relatives au systématique S2 et Lext(P2) relatives à la parité P2; 30 - désentrelacement 5122 de la sortie Lext(S2), le désentrelacement 5122 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 1082 ; - démultiplexage non représenté des données désentrelacées, pour 35 obtenir une donnée Lpriori(a2) et Lpriori(Al)- 2972876 -26- Les données Lpriori(a2) correspondent aux probabilités logarithmiques pour chaque bit des données de la classe 1022 de valoir 0 ou 1. Les données Lpriori(Al) sont utilisées comme informations à priori à 5 l'étape de décodage suivante. Le démultiplexage pour obtenir une donnée Lpriori(a2) et Lpriori(Al), est suivi d'un troisième décodage comprenant une étape de décodage 5101 de la parité PI, en fonction de Lpriori(Al) et d'une donnée canal mise à zéro. 10 On obtient une donnée extrinsèque Lext(Al) et une estimation des données de la classe 1021 Lsott(al)- Le procédé de décodage 500 présente un rebouclage comprenant les étapes suivantes : 15 - entrelacement 5221 des données Lext(A1) et Lpriori(a2), pour obtenir une donnée entrelacée Lpriori(bl), et mettant en oeuvre une fonction d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 1082 du procédé 100 d'encodage en série ; - multiplexage 5231 des données entrelacées à entrelacement 5221 avec 20 Lext(P2), pour former une donnée L'ext(A2) ; - entrelacement 5222 des données L'ext(A2) et L'ext(a3), pour obtenir une donnée entrelacée Lpriori(b2), et mettant en oeuvre une fonction d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 1083 du procédé 100 d'encodage en série (L'ext(a3) 25 étant une donnée de la taille de a3 mais prenant une suite de valeurs nulles) ; - nouvelle itération de l'étape de décodage 5103r en prenant en compte comme donnée a priori Lpriori(b2) ; - nouvelle itération des étapes suivant l'étape de décodage 5103. 30 Ce rebouclage permet que chaque classe bénéficie de la précision de décodage obtenue pour les autres classes. Au final, les classes peu protégées peuvent être décodées avec une meilleure précision que si elles avaient été encodées séparément des classes mieux protégées. 35 2972876 -27- Les encodages décrits utilisent par exemple des générateurs polynomiaux. La taille des différentes classes traitées peut varier. On peut prévoir que certaines classes ne sont pas encodées. 5 On a illustré à la figure 5, des courbes de taux d'erreur binaire pouvant être obtenus avec un procédé de décodage selon l'invention. Le taux d'erreur binaire est le nombre de bits erronés dans les estimations des données d'une classe encodées, divisé par le nombre total de 10 bits analysés par le procédé de décodage selon l'invention. Il est donc sans unité. Le taux d'erreur binaire est souvent exprimé en fonction d'un rapport signal à bruit. A la figure 5, l'axe des abscisses correspond à un taux d'erreur binaire, l'axe des ordonnées correspond au rapport Eb/No en dB, c'est-à-dire 15 le rapport en dB d'une énergie par bit sur la densité spectrale de puissance du bruit. On a pris l'exemple où : - on a mis en oeuvre après l'encodage, une modulation QPSK (pour l'anglais «Quadrature Phase-Shift Keying ») sur un canal AWGN (pour 20 l'anglais « Additive White Gaussian Noise ») ; - la trame 102 ne comprend que deux classes 1021 et 1022 encodées. A la figure 5, on a un rapport 2/3 entre la taille de la classe 1022 moins protégée et la taille de la trame, et une taille de trame de 900 bits. 25 La courbe 11 représente le taux d'erreur binaire associé au décodage de la classe 1021r dès la première itération de l'étape de décodage des données de la classe 1021. La courbe 12 représente le taux d'erreur binaire associé au décodage de la classe 1022, dès la première itération de l'étape de décodage des données 30 de la classe 1022. La courbe 11' représente le taux d'erreur binaire associé au décodage de la classe 1021r à la deuxième itération de l'étape de décodage des données de la classe 1021. 2972876 -28- La courbe 12' représente le taux d'erreur binaire associé au décodage de la classe 1022, à la deuxième itération de l'étape de décodage des données de la classe 1022. On voit donc que : 5 - la classe 1021r qui est la première classe à avoir été encodée, atteint dès la première itération un très bon taux d'erreur binaire, puisqu'on dispose de nombreuses informations de redondance pour retrouver les données de la classe 1021 ; - les données de la classe 1021 encodées à la première étape d'encodage 10 bénéficient d'un gain de décodage semblable à celui qu'on obtient dans un décodage de type « turbo » dès la deuxième itération; - à la première itération, le taux d'erreur binaire associé aux données de la classe 1022 est assez faible, car on ne dispose que de peu d'informations de redondance pour retrouver les données de la classe 1022 ; 15 - après une itération, le taux d'erreur binaire associé aux données de la classe 1022 est nettement amélioré, et se rapproche du taux d'erreur binaire obtenu pour le décodage des données de la classe 1021r bénéficiant notamment du gain de décodage « turbo » . L'influence d'une classe plus fortement encodée sur une classe moins 20 encodée dépend notamment du rapport entre la taille de la première classe et la taille de la deuxième classe, en nombre de bits. Après cinq itérations on peut par exemple obtenir un taux d'erreur binaire de 10-2 pour un rapport signal à bruit inférieur de 2 dB, avec un gain de 2,5 dB entre la première et la dernière itération. 25 Cette propriété de l'invention est particulièrement intéressante, car on voit que chaque classe bénéficie de la précision de décodage obtenue pour les autres classes et de l'effet « turbo ». Ainsi, une classe donnée peut être moins protégée que dans l'art antérieur, pour un taux d'erreur binaire donné. 30 On voit alors qu'on peut transmettre moins de données de redondance que dans l'art antérieur, pour obtenir un taux d'erreur binaire donné. On augmente ainsi la capacité d'un canal de transmission pour une couverture donnée. On augmente ainsi la portée d'un canal de transmission pour une 35 capacité donnée. 2972876 -29- Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. 5 On peut par exemple envisager tout type de décodage, mettant en oeuvre en particulier différentes phases de rebouclage. On peut par exemple combiner l'invention avec des techniques qui existent déjà, par exemple avec les techniques de poinçonnage, qui consistent à effacer des bits de la trame déjà encodée pour augmenter le ratio de 10 codage. Dans ce cas, on peut réduire la redondance du code pour chaque classe. On peut également combiner l'invention avec des techniques de l'art antérieur consistant à séparer les données d'une même trame, mais chaque paquet de données regroupant plusieurs classes et pouvant être traité selon 15 l'invention. REVENDICATIONS1. Procédé d'encodage correcteur d'erreur (100) pour encoder en série des données numériques (30) dites sources, se présentant sous la forme d'une trame (102), lesdites données pouvant être classées en N classes, où N est un entier au moins égal à 2, caractérisé en ce qu'il comprend : - une première étape d'encodage convolutionnel récursif et systématique (1101) des données de la classe 1 (1021); - une mise en oeuvre des étapes suivantes, pour chaque n variant de 1 à M, où M est un entier positif inférieur ou égal à N-1 : - n' mélange (108,1) d'un ensemble formé par les données de la classe n+1 (102n+1), les données systématiques et les données de parité d'une étape d'encodage précédente ; - (n+l)' encodage convolutionnel récursif et systématique (110n+1) de données formées par le résultat du nè' mélange. 2. Procédé d'encodage (100) selon la revendication 1, caractérisé en ce qu'un niveau de priorité est attribué à chacune des classes (1021, 1022, 1023, 102;), les classes 1 à N étant rangées dans l'ordre décroissant des niveaux de priorité. 3. Procédé d'encodage (100) selon la revendication 1 ou 2, caractérisé en ce que chaque étape de mélange (108n+1) consiste en un entrelacement. 4. Dispositif d'encodage pour la mise en oeuvre du procédé (100) d'encodage correcteur d'erreur en série selon l'une quelconque des revendications précédentes, apte à encoder des données numériques (30) dites sources se présentant sous la forme d'une trame (102), lesdites données pouvant être classées en N classes (1021i 1022, 1023, 102;), et caractérisé en ce qu'il comprend : - un premier module d'encodage convolutionnel récursif et 2972876 -31- systématique agencé pour encoder des données à encoder formées par les données de la classe 1 (1021); et - et soit n variant de 1 à M, où M est un entier positif inférieur ou égal à N-1, M ensembles formés chacun par un nème mélangeur suivi 5 d'un (n+Dème module d'encodage convolutionnel récursif et systématique, le nème mélangeur étant agencé pour recevoir les données de la classe n+l (102+1), les données systématiques et les données de parité d'un module d'encodage précédent, et le (n+1)ème module d'encodage étant agencé pour encoder des données à 10 encoder formées par la sortie du nème mélangeur. 5. Procédé de décodage de données numériques (500), caractérisé en ce qu'il est agencé pour décoder des données numériques encodées conformément au procédé selon l'une quelconque des revendications 15 1à3. 6. Procédé de décodage (500) selon la revendication 5, caractérisé en ce que pour tout j, k, 1 compris entre M+1 et 1: - à chaque jème étape d'encodage (110;) du procédé selon l'une 20 quelconque des revendications 1 à 3, correspond une étape de décodage j (5101 adaptée à décoder des données encodées résultant de la jème étape d'encodage ; - à l'issu de chaque étape de décodage j, on obtient d'une part des données dites « soft » pour une estimation des données de la classe 25 j, d'autre part des données dites extrinsèques ; et en ce qu'on met en oeuvre les étapes suivantes : - décodage k ; puis - décodage I k en fonction d'au moins une donnée extrinsèque fournie par au moins une étape de décodage autre, utilisée comme 30 donnée a priori. 7. Procédé de décodage (500) selon la revendication 6, caractérisé en ce que pour tout j compris entre M+1 et 2, le procédé comprend en outre après chaque étape de décodage j les opérations suivantes : 35 - démultiplexage j (514;) des données extrinsèques obtenues à 2972876 -32- l'étape de décodage j, pour séparer des données relatives à des données de parité et des données dites utiles relatives à des données systématiques, - démêlage j-1 (512;) desdites données utiles, le démêlage j-1 5 réalisant une fonction inverse de celle mise en oeuvre à l'étape de mélange j-1 (108;), pour fournir des données démêlées ; - démultiplexage des données démêlées pour séparer des données a priori relatives à la classe j dites données extraites et des données a priori relatives aux classes 1 à j-1 dites a priori utiles ; 10 - fourniture des données dites a priori utiles pour être utilisées à l'étape de décodage j-1. 8. Procédé de décodage (500) selon la revendication 6 ou 7, caractérisé en ce que pour tout j compris entre M+1 et 2, le procédé 15 comprend en outre après chaque étape de décodage j les opérations suivantes : - démêlage j-1 (516;) des données soft, le démêlage j-1 réalisant une fonction inverse de celle mise en oeuvre à l'étape de mélange j-1 (1080, pour fournir des données soft démêlées; 20 - démultiplexage des données soft démêlées pour séparer des données soft relatives à la classe j dites données soft extraites et des données soft relatives aux classes 1 à M. 9. Procédé de décodage (500) selon l'une quelconque des 25 revendications 6 à 8, caractérisé en ce qu'au moins une étape de décodage j (510j_1) est réitérée au moins une fois, en fonction de données a priori correspondant à des données extrinsèques fournies par au moins une étape de décodage des données d'une autre classe. 30 10. Procédé de décodage (500) selon la revendication 9, caractérisé en ce que pour j compris entre M+1 et 2 et t strictement inférieur à j, on réitère l'étape de décodage j (510;) en fonction de données a priori obtenues aux étapes de décodage t à j-1. 35 2972876 -33- 11. Procédé de décodage (500) selon la revendication 9, caractérisé en ce que pour j compris entre M et 1 et t strictement supérieur à j, on réitère l'étape de décodage j (510;) en fonction de données a priori obtenues aux étapes de décodage t à j+1. Dispositif de décodage caractérisé en ce qu'il est adapté à la mise en oeuvre du procédé de décodage (500) selon l'une quelconque des revendications 5 à 12, ledit dispositif comprenant M+1 modules de décodage, chaque module de décodage j étant apte à décoder des données encodées résultant de la jème étape d'encodage (110;) du procédé selon l'une quelconque des revendication 1 à 3, et chaque module de décodage j fournissant des données dites extrinsèques aptes à être utilisées comme données a priori par un autre module de décodage, et au moins une donnée dite « soft » pour une estimation de la classe j. Produit programme d'ordinateur comprenant les instructions pour réaliser les étapes du procédé d'encodage selon l'une quelconque des revendications 1 à 3 lorsqu'il est exécuté par un appareil informatique. Produit programme d'ordinateur comprenant les instructions pour réaliser les étapes du procédé de décodage selon l'une quelconque 12. Procédé de décodage (500) selon la revendication 10, caractérisé en ce qu'une phase de décodage comprend les étapes suivantes : - on réitère l'étape de décodage M+1 (510M+1) en fonction de données a priori obtenues aux étapes de décodage 1 à M ; - on réitère les étapes de décodage M à 1 en utilisant des données a priori correspondant à des données extrinsèques fournies par l'étape de décodage précédente, de façon que les étapes de décodage M+1 à 1 (510M+1_>1) composent une phase de décodage ; et en ce que la phase de décodage est réitérée au moins une fois. 10 15 13. 20 25 14. 30 15. 5 2972876 -34- des revendications 5 à 12 lorsqu'il est exécuté par un appareil informatique.