Brevet FR2972878A1 — publié le 20120921

« 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é 2972878 -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. 2972878 -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 des données numériques dites sources se présentant sous la forme d'une trame, lesdites données pouvant être classées en une pluralité de classes. Le procédé d'encodage selon l'invention comprend les étapes suivantes : - une première étape d'encodage de données à encoder, formées par les données d'une première classe, pour obtenir des données encodées ; et - une mise en oeuvre des étapes suivantes, successivement pour au moins une autre classe: - mélange des données de ladite autre classe avec des données encodées ou à encoder d'une étape d'encodage précédente ; et -4- - encodage de données à encoder formées par lesdites données mélangées, pour obtenir des données encodées. Lesdites données mélangées sont les données résultant du mélange des 5 données de ladite autre classe avec les données à encoder d'une étape d'encodage précédente. Chaque étape de mélange de données peut consister par exemple en un entrelacement, ou une simple concaténation. Un entrelacement peut consister à organiser d'une manière non contiguë des données reçues. On 10 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 d'erreurs dépasse la capacité de l'encodage correcteur d'erreur, il ne parvient 15 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. 20 L'invention prévoit avantageusement d'ajouter avant chaque étape d'encodage de nouvelles informations à encoder. On peut aussi prévoir plusieurs étapes d'encodage des même données avant l'ajout de nouvelles informations à encoder. On peut prévoir au moins une étape intermédiaire, avant une étape de 25 mélange des données de ladite autre classe avec les données encodées ou à encoder d'une étape d'encodage précédente, consistant en la mise en oeuvre : - d'un mélange des données à encoder ou encodée de l'étape d'encodage précédente ; et - d'un encodage de données à encoder formées par lesdites 30 données mélangées. 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 35 cours de la transmission sur un canal. 2972878 -5- Cette protection différente provient d'un nombre d'informations de redondance différent, en fonction du nombre de fois 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 d'une première classe, en tant que données de ladite autre classe et/ou en tant que données à encoder ou encodée lors d'une étape d'encodage précédent. 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 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. Chaque classe d'une trame peut ainsi être encodée avec un schéma 20 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. Par ailleurs, le procédé selon l'invention permet de réaliser un encodage 25 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 réseau que les données encodées avec les procédés et dispositifs de l'art 30 antérieur, à protection égale. Le procédé selon l'invention permet d'augmenter la capacité d'un canal de transmission des données numériques sources et/ou la couverture géographique des données numériques dites sources. Le procédé selon l'invention permet que les différentes classes d'une 35 même trame soient encodées par un unique procédé d'encodage correcteur 2972878 -6- d'erreur, à l'inverse des procédés d'encodage UEP connus dans lesquels 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 5 données des différentes classes d'une même trame, pour les encoder 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. 10 Le procédé selon l'invention permet ainsi de réduire un retard en 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 éviter une étape de resynchronisation après transmission. 15 Le procédé selon l'invention permet aussi de simplifier la modulation des données ayant été encodées, toute les classes d'une trame pouvant être modulées ensemble. Il permet d'appliquer un unique schéma de modulation. 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ême données. Cependant, on a modifié le schéma 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. L'au moins une étape de mélange peut apporter une distribution aléatoire des données numériques dans le résultat final. 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 particulièrement robuste aux erreurs. On peut prévoir que certaines données de la trame ne soient pas encodées. 2972878 -7- De préférence, un niveau de priorité est attribué à chacune des classes, des étapes d'encodage étant réalisées pour les classes 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 éviter ainsi 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 Les étapes de : - mélange des données de ladite autre classe avec données encodées ou à encoder d'une étape d'encodage précédente ; et 15 - encodage de données à encoder formées par lesdites données mélangées, pour obtenir des données encodées, peuvent être mises en oeuvre pour l'ensemble des autre classes de la trame . Ainsi, toutes les données numériques source peuvent être protégées. 20 Selon un mode de réalisation avantageux, le procédé d'encodage selon l'invention est dit « en série », et on mélange des données de ladite autre classe avec des données encodées d'une étape d'encodage précédente. Selon autre mode de réalisation avantageux, le procédé d'encodage selon l'invention est dit « en parallèle », et on mélange des données de ladite 25 autre classe avec des données à encoder d'une étape d'encodage précédente. Chacun des deux modes de réalisation dit « en série » ou « en parallèle » présente des redondances et complexités différentes et leur utilisation respective est faite selon la nature du système de transmission. 30 Avantageusement, au moins une des étapes d'encodage met en oeuvre un code convolutionnel récursif et systématique. Il s'agit du type de code traditionnellement mis en oeuvre dans les turbo codes. Ce type de code présente de bonnes performances pour protéger des données à transmettre par le calcul de données de redondance. 2972878 -8- Selon l'invention, au moins une des étapes d'encodage peut mettre en oeuvre un encodage numérique quelconque. En particulier, au moins une des étapes d'encodage peut mettre en 5 oeuvre au moins un code parmi : - un code BCH ; - un code en bloc ; - un code convolutionnel concaténé ; - un code à poids constant ; 10 - un code convolutionnel ; - un code fontaine ; - un code de groupe ; - un code de Golay ; - un code de Goppa ; 15 - un code de Hadamard ; - un code de Hagelbarger ; - un code de Hamming ; - un code à vérification de parité faible densité dit code LDPC ; - un code à transformée de Luby dit code LT ; 20 - un code en bloc à concaténation parallèle dit code PCDC ; - un code raptor ; - un code convolutionnel récursif non systématique ; - un code de Reed-Solomon ; - un code de Reed-Müller ; 25 - un code répétition-accumulation ; - un code de répétition ; - un code Tornado ; - un code turbo ; - un code turbo multiple parallèle ou série; 30 - un code de Walsh-Hadamard ; - un code Woven ; et - un code zigzag. Il s'agit d'une liste non exhaustive de code connus, utilisés dans le domaine des transmissions de données pour protéger des données 35 numériques sources à transmettre. 2972878 -9- Chaque étape d'encodage peut mettre en oeuvre un code différent. On peut prévoir de mettre en oeuvre un poinçonnage suite à la mise en oeuvre d'une étape de codage. Cela peut impliquer au moins une étape de dépoinçonnage lors d'un décodage. Le dépoinçonnage consiste à retrouver 5 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. L'invention concerne également un dispositif d'encodage pour la mise 10 en oeuvre du procédé d'encodage correcteur d'erreur 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 une pluralité de classes. Le dispositif d'encodage selon l'invention comprend : - un premier module d'encodage agencé pour encoder des données à encoder 15 formées par les données d'une première classe, et obtenir des données encodées; - au moins un ensemble, chaque ensemble étant associé à une autre classe et comprenant : - un mélangeur, agencé pour mélanger les données de ladite 20 autre classe et les données encodées ou à encoder par un module d'encodage précédent, et - un module d'encodage, agencé pour encoder des données à encoder formées par la sortie du mélangeur correspondant et pour obtenir des données encodées. 25 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 conformément au procédé d'encodage selon l'invention. De préférence, les données numériques sources, encodées 30 conformément au procédé selon l'invention, sont transmises via un canal de transmission. On reçoit donc après transmission des données dites reçues pouvant être affectées d'erreurs intervenues en particulier au cours de la transmission. Avantageusement, le procédé de décodage selon l'invention est appliqué 35 à ces données reçues. 2972878 -10- 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. Selon une variante avantageuse, le procédé de décodage selon 5 l'invention comprend les étapes suivantes : - pour une des classes, une première étape de décodage réalisant les opérations suivantes : - décodage des données encodées de ladite classe, - fourniture d'au moins une donnée, dite extrinsèque, 10 prévue pour être utilisée comme donnée a priori pour au moins un décodage des données d'une autre classe ; - fourniture d'au moins une donnée, dite « soft », pour une estimation des données de la classe, - une étape de décodage pour au moins une autre classe encodée, 15 réalisant les opérations suivantes : - décodage des données encodées de ladite autre classe, 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, 20 - fourniture d'au moins une donnée, dite extrinsèque, - fourniture d'au moins une donnée dite « soft » pour une estimation de ladite autre classe. Selon une première variante du procédé de décodage selon l'invention, 25 celui-ci est adapté à un encodage dit « en série ». Dans ce cas, l'au moins une donnée extrinsèque prévue pour être utilisée comme donnée a priori pour une étape de décodage des données d'une autre classe peut comprendre des informations relatives aux données encodées. 30 Selon une deuxième variante du procédé de décodage selon l'invention, celui-ci est adapté à un encodage dit « en parallèle ». Dans ce cas, le procédé selon l'invention comprend en outre une étape initiale de démultiplexage réalisant la séparation des données encodées de chaque classe. 2972878 -11- Les données encodées de chaque classe peuvent alors être utilisées chacune pour une étape de décodage correspondante. Les données encodées d'une classe correspondent de préférence aux 5 données encodées obtenues lors du premier encodage des données de ladite classe. On parle de premier encodage, puisque les données d'une classe peuvent être encodées plusieurs fois, une première fois en tant que donnée d'une classe, une autre fois en tant que donnée à encoder ou encodée d'une 10 étape d'encodage précédente. 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 posteriori peut être calculée avec l'algorithme BCJR (algorithme de Bahl, 15 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. 20 Avant leur utilisation comme donnée a priori pour une étape de décodage, 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. 25 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 données encodées reçues, ces valeurs probabilistiques venant d'une source 30 autre que les données encodées reçues du canal. 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. 2972878 -12- 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. Les données extrinsèques comprennent de préférence des données dites 5 « a priori » fournissant une donnée supplémentaire pour estimer les données des autres classes. On peut se référer notamment à l'ouvrage suivant : Todd K Moon, "Error Correction Coding - Mathematical Methods and Algorithms", John Wiley & Sons 2005. 10 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 des données encodées de ladite autre classe, en fonction 15 d'au moins une donnée extrinsèque fournie par 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 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. 25 On peut prévoir en outre une étape spécifique d'estimation de données soft pour retrouver les valeurs de la classe correspondante. Avantageusement, une étape de décodage est réalisée successivement pour toutes les classes. La première étape de décodage peut être réalisée pour la dernière classe à avoir été encodée, et les étapes de décodage suivantes peuvent être réalisées pour les classes considérées dans l'ordre inverse de celui dans lequel elles ont été encodées. 30 35 -13- De façon non contradictoire, 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. Au moins une étape de décodage 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. On peut donc utiliser des données extrinsèques provenant du décodage de plusieurs autres classes. Chacune des étapes de décodage peut être réitérée au moins une fois, en fonction de données extrinsèques fournies par l'étape ou les étapes de décodage des données de toute autre classe à avoir été encodée. Avant leur utilisation pour une réitération d'une étape de décodage, 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. 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. 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. 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. 35 Une classe fortement protégée bénéficiera d'un taux d'erreur d'autant moins -14- 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, un taux d'erreur binaire donné. L'invention permet ainsi une économie d'énergie, de redondance et de délai. Selon un mode de réalisation privilégié, l'ensemble des étapes de décodage correspondant à chacune des classes (leur première itération) compose une phase de décodage, le procédé de décodage selon l'invention comprenant une itération de ladite phase de décodage au moins deux fois, et à partir de la deuxième itération, l'étape de décodage des données de la dernière classe a avoir été encodée peut être réalisée en fonction de données a priori correspondant à des données extrinsèques fournies par l'étape de décodage des données de la première classe à avoir été encodée. 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é à mettre en oeuvre le procédé de décodage selon l'invention. Le dispositif de décodage selon l'invention peut comprendre : - un premier module de décodage agencé pour décoder les données encodées d'une classe, pour fournir au moins une donnée dite extrinsèque à au moins un autre module de décodage, et pour fournir au moins une donnée dite « soft » pour une estimation de ladite classe ; - pour chacune des autres classes, un module de décodage agencé pour recevoir comme donnée a priori au moins une donnée extrinsèque fournie par au moins un autre module de décodage, pour décoder les données encodées de ladite autre classe, et pour fournir au moins une donnée dite extrinsèque, et au moins une donnée dite « soft » pour une estimation de ladite autre classe. 30 35 2972878 -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 D'autres avantages et particularités de l'invention apparaîtront à la lecture de la description détaillée de mises en oeuvre et de modes de 20 réalisation nullement limitatifs, et des dessins annexés suivants : - la figure 1 illustre sous forme de diagramme un exemple dit « en série » de procédé d'encodage selon l'invention, - la figure 2 illustre sous forme de diagramme un exemple dit « en série » de procédé de décodage selon l'invention, 25 - la figure 3 illustre sous forme de diagramme un exemple dit « en parallèle » de procédé d'encodage selon l'invention, - la figure 4 illustre sous forme de diagramme un exemple dit « en parallèle » de procédé de décodage selon l'invention, - la figure 5 illustre un mode de réalisation particulier du procédé 30 d'encodage dit « en parallèle » selon l'invention, - la figure 6 illustre un mode de réalisation particulier du procédé de décodage dit « en parallèle » selon l'invention, - la figure 7 illustre un mode de réalisation particulier du procédé d'encodage dit « en série » selon l'invention, 2972878 -16- - la figure 8 illustre un mode de réalisation particulier du procédé de décodage dit « en série » selon l'invention, et - la figure 9 illustre des courbes de taux d'erreur binaire obtenu avec un procédé de décodage selon l'invention. 5 Dans tout le texte, un multiplexage peut désigner une concaténation, 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 10 multiplexage donné, le démultiplexage étant l'opération inverse dudit multiplexage. 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. 15 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. 20 La figure 1 est une représentation sous forme de diagramme d'un exemple de procédé d'encodage dit « en série », conformément au procédé selon l'invention. La figure 1 présente un cas particulier où on effectue en outre un poinçonnage après chaque étape d'encodage. 25 Dans l'exemple représenté sur la figure 1, une trame de données 102 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. Le procédé 100 comprend une première étape de codage 1041 qui comprend : - un encodage 1101 des données de la classe 1021i - un poinçonnage 1301 des données encodées à l'encodage 1101. 2972878 -17- Cette étape 1041 est suivie d'une deuxième étape de codage 1042 réalisant : - un entrelacement 1082 des données poinçonnées au poinçonnage 1301 avec les données de la classe 1022; 5 - un encodage 1102 des données entrelacées fournies par l'entrelacement 1082, et - un poinçonnage 1302 des données encodées à l'encodage 1102. Le procédé 100 comprend après l'étape 1042 une étape de codage 1043 10 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 poinçonnées au poinçonnage 130;_1 avec les données de la classe 102; ; - un encodage 110; des données entrelacées fournies par l'entrelacement 15 108;, et - un poinçonnage 130; des données encodées à l'encodage 110;. En sortie, on obtient des données encodées A. 20 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. Les données A sont de préférences modulées puis transmises sur un 25 canal de transmission. Après transmission, on reçoit les données A qui peuvent être entachées d'erreurs. La figure 2 est une représentation sous forme de diagramme d'un 30 exemple de procédé de décodage en série 500 conformément au procédé selon l'invention représenté à la figure 1. Dans l'exemple représenté sur la figure 2, des données A sont décodées. 2972878 -18- Une première étape de décodage 5O8n des données de la classe 1O2n comprend les étapes suivantes : - un dépoinçonnage 52On des données poinçonnées au poinçonnage 13On (chaque dépoinçonnage 520; consistant à retrouver des données de la 5 taille de celles obtenues avant le poinçonnage 130;), - un décodage 51On des données encodées de la classe 1O2n, utilisant les données dépoinçonnées, et fournissant des données dites extrinsèques et des données dites "soft" - un désentrelacement 55On d'une part des données soft, pour fournir 10 une estimation des données de la classe 1O2n, et d'autre part des données extrinsèques utiles dont certaines au moins sont utilisées comme donnée a priori à l'étape de décodage suivante. Le désentrelacement 55On est suivi d'une nouvelle étape de décodage 5O8n_1 des données de la classe 1O2n_1. Le procédé 500 comprend après 15 l'étape 5O8n_1 une étape décodage 5O8n_2 et ainsi de suite jusqu'à l'étape 5082. Chacune des étapes 508; pour n-1>_i>_2 comprend les opérations suivantes : - un dépoinçonnage 520; (inverse du poinçonnage 130;) des données extrinsèques utiles obtenues au désentrelacement précédent, - un décodage 510; des données encodées de la classe 102;, utilisant 20 comme donnée a priori des données extrinsèques utiles obtenues à l'étape de décodage précédente, et fournissant des données extrinsèques et des données soft, - un désentrelacement 550; d'une part des données soft, pour fournir une estimation des données de la classe 102;, et d'autre part des données 25 extrinsèques utiles dont certaines au moins sont utilisées comme donnée a priori à l'étape de décodage suivante. Une dernière étape de décodage 5081 comprend : - un dépoinçonnage 5201 (inverse du poinçonnage 1301) des données extrinsèques utiles obtenues au désentrelacement précédent, 30 - un décodage 5101 des données encodées de la classe 1021r utilisant comme donnée a priori des données extrinsèques utiles obtenues à l'étape de décodage précédente, et fournissant des données extrinsèques et soft. 2972878 -19- Le procédé de décodage 500 représenté à la figure 2 comprend également un rebouclage non représenté, qui consiste à utiliser des données extrinsèques fournies à une étape de décodage pour réitérer une autre étape de décodage. 5 Les données extrinsèques utilisées pour une réitération d'une étape de décodage peuvent être 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. 10 La figure 3 est une représentation sous forme de diagramme d'un exemple de procédé d'encodage dit « en parallèle » conformément au procédé selon l'invention. La figure 3 présente le cas particulier où on effectue en outre un poinçonnage après chaque étape d'encodage. 15 Dans l'exemple représenté sur la figure 3, une trame de données 102 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 20 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. Le procédé 300, représenté sur la figure 3, comprend une première étape de codage qui se limite à l'encodage 3061 des données de la classe 1021 puis au poinçonnage 3101 des données encodées. 25 Cette étape est suivie d'une deuxième étape de codage réalisant (en même temps, après voire même avant l'encodage 3061): - un entrelacement 3042 des données de la classe 1021 avec les données de la classe 1022; - un encodage 3062 des données entrelacées fournies par 30 l'entrelacement 3042 ; - un poinçonnage 3102 des données encodées obtenues. Le procédé 300 comprend également une troisième étape de codage et ainsi de suite jusqu'à l'étape n. Chacune des étapes i pour i>_3 comprend les opérations suivantes : 2972878 -20- - un entrelacement 304; des données de la classe 102; avec les données entrelacées par l'entrelacement 304;_1 ; - un encodage 306; des données entrelacées fournies par l'entrelacement 304; ; 5 - un poinçonnage 310; des données encodées obtenues. En sortie, la trame encodée A est obtenue par multiplexage 340 des données encodées poinçonnées fournies à chaque poinçonnage. Les données de la trame 102 sont modulées et transmises ensemble 10 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. Les données A sont de préférences modulées puis transmises sur un canal de transmission. 15 Après transmission, on reçoit les données A qui peuvent être entachées d'erreurs. La figure 4 est une représentation sous forme de diagramme d'un exemple de procédé de décodage en parallèle 400 conformément au procédé 20 selon l'invention représenté à la figure 3. Dans l'exemple représenté sur la figure 4, des données A sont décodées. Ces données A ont été encodées conformément au procédé d'encodage en parallèle 300 selon l'invention. Le procédé 400 comprend une étape préliminaire de démultiplexage 25 402 permettant de séparer parmi les données A les données encodées obtenues respectivement aux étapes de poinçonnage 31O1_,n du procédé d'encodage en parallèle 300. Chaque étape de décodage des données de la classe 102; comprend les étapes suivantes, i allant de 1 à n : 30 - un dépoinçonnage 430; des données encodées poinçonnées à l'étape de poinçonnage 310; ; - un décodage 410; des données dépoinçonnées, en fonction d'une donnée a priori, qui est nulle si les données des autres étapes de décodages ne sont pas utilisables (cas du décodage 410; effectué en premier dans l'ordre chronologique, et pour lequel on ne dispose pas 2972878 -21- encore de données a priori provenant d'une étape de décodage précédente); - un désentrelacement 416; mettant en oeuvre une fonction d'entrelacement inverse de la fonction d'entrelacement mise en oeuvre 5 à l'entrelacement 304; du procédé 300 d'encodage en parallèle, permettant d'isoler une estimation des données de la classe 102;, correspondant à des données soft, et des données dont certaines au moins peuvent être utilisées comme donnée a priori dans une autre étape de décodage, correspondant à des données extrinsèques. 10 Le procédé de décodage 400 adapté à l'encodage en parallèle comprend également au moins un rebouclage non représenté, 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. 15 Les données extrinsèques utilisées pour une réitération d'une étape de décodage peuvent être entrelacées pour retrouver des données dites a priori, de la même dimension et dans le même ordre que les données en sortie de l'étape d'encodage correspondant. 20 On va maintenant décrire, en référence à la figure 5, un mode de réalisation particulier du procédé d'encodage 300 dit « en parallèle » selon l'invention, dans le cas où chaque encodeur met en oeuvre un code convolutionnel récursif et systématique. Un tel code permet d'obtenir des données encodées formées par des 25 données dites « de parité » (redondance) et des données dites « systématiques » (identiques aux données à encoder). 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»). 30 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. 35 Les données de la classe 1021 sont désignées par le symbole al. 2972878 -22- 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é 300 selon l'invention comprend une première étape d'encodage 3061 des données de la classe 1021. 5 On obtient des données de parité PI, c'est-à-dire des données de redondance relatives aux données al. Les données P1 obtenues sont appelées « parité de la classe 1021 ». Le procédé 300 selon l'invention comprend ensuite (ou simultanément) 10 une étape 3042 d'entrelacement des données al avec les données a2 de la classe 1022. On obtient des données entrelacées bl. Les données entrelacées bl sont ensuite encodées au cours d'une étape 15 d'encodage 3062r qui fournit des données de parité P2, c'est-à-dire des données de redondance relatives aux données bl. Les données bl étant formées par 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. 20 Les données P2 obtenues sont appelées « parité des classes 1021 et 1022 ». Le procédé 300 selon l'invention comprend ensuite (ou simultanément) une étape 3043 d'entrelacement des données bl avec les données a3 de la 25 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 3063r qui fournit des données de parité P3, c'est-à-dire des 30 données de redondance relatives aux données b2. Les données b2 étant formées par 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 al et a2. Les données P3 obtenues sont appelées « parité des classes 1021r 35 1022 et 1023 ». 2972878 -23- On obtient en sortie les données A regroupant l'ensemble des parités PI, P2 et P3, ainsi qu'une sortie S3 dite systématique correspondant aux données b2 à encoder lors de la dernière étape d'encodage 3063. La sortie 5 systématique est due à l'utilisation des codes convolutionnels récursifs et systématiques. On va maintenant décrire, en référence à la figure 6, un mode de réalisation particulier du procédé de décodage 400 dit « en parallèle » selon 10 l'invention, correspondant au procédé d'encodage de la figure 5, et dans le cas où chaque encodeur met en oeuvre un code convolutionnel récursif et systématique. Une première étape de démultiplexage 402 permet de séparer, parmi les données A reçues, les parités PI, P2, P3, et la sortie systématique S3. 15 Le procédé 400 selon l'invention comprend un premier décodage comprenant une étape de décodage 4103 de la parité Par en fonction de la sortie systématique S3 et d'une donnée a priori initialement mise à zéro. On obtient une sortie Lsoft(b2), et des données dites extrinsèques Lext(b2) 20 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 utilisation avantageuse pour cette réalisation particulière de l'algorithme de 25 décodage appelé MAX LOG MAP. D'une part, on met en oeuvre les étapes suivantes : - désentrelacement 4163 de la sortie Lsoft(b2), le désentrelacement 4163 mettant en oeuvre une fonction de désentrelacement inverse de la 30 fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 3043 ; - démultiplexage 4183 pour séparer les données Lsoft(a3) et Lsoft(bi)- La sortie Lsoft(a3) correspond à une estimation des données a3 de la classe 1023. 35 La sortie Lsoft(bl) correspond à une estimation des données bl. -24- En effet, les données b2 correspondent aux données a3 entrelacées avec les données bl. Les données dites extrinsèques Lext(b2) comprennent notamment des 5 informations relatives à une estimation des données de la classe 1023. D'autre part, on met en oeuvre les étapes suivantes : - désentrelacement 4123 de la sortie Lext(b2), le désentrelacement 4123 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 10 3043 ; - démultiplexage 4143 pour séparer les données Lpriori(a3) et Lpriori(bl)- 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. 15 Les données Lpriori(bl) sont utilisées comme informations à priori à l'étape de décodage suivante. Le démultiplexage 4143 est suivi d'un deuxième décodage comprenant une étape de décodage 4102 de la parité Per en fonction 20 de Lpriori(bl) et de la sortie systématique S3 à laquelle on a appliqué un désentrelacement 4202 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 3043r et un démultiplexage pour séparer les informations systématiques correspondant aux données bl et les données de la classe a3. 25 Seules les données systématiques bl sont utiles pour ce décodage. On obtient une sortie Lsott(bl), et des données dites extrinsèques Lext(b 1) La sortie Lsott(bl) permet une estimation des données bl. 30 D'une part, on met en oeuvre les étapes suivantes : - désentrelacement 4162 de la sortie Lsott(bl), le désentrelacement 4162 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 3042 ; 35 - démultiplexage 4182 pour séparer les données Lsott(a2) et L'sott(al). 2972878 -25- La sortie Lsott(a2) correspond à une estimation des données a2 de la classe 1022. Les données dites extrinsèques Lext(bl) comprennent des informations 5 relatives à une estimation des données des classes 1021 et 1022. D'autre part, on met en oeuvre les étapes suivantes : - désentrelacement 4122 de la sortie Lext(bl), le désentrelacement 4122 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 10 3042 ; - démultiplexage 4142 pour séparer les données Lpriori(a2) et Lpriori(al)- Les données Lpriori(a2) correspondent aux probabilités pour chaque bit des données de la classe 1022 de valoir 0 ou 1. 15 Les données Lpriori(al) sont utilisées comme informations à priori à l'étape de décodage suivante. Le démultiplexage 4142 est suivi d'un troisième décodage comprenant une étape de décodage 4101 de la parité PI, en fonction 20 de Lpriori(al) et de la sortie systématique S3 à laquelle on a appliqué un désentrelacement 4202 puis 4201r mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 3043 respectivement 3042r et les démultiplexages appropriés pour obtenir les données systématiques de la classe al. 25 On obtient des données extrinsèques Lext(al) et une estimation des données de la classe 1021, Lsott(al)- Le procédé de décodage 400 présente un rebouclage comprenant les étapes suivantes : 30 - entrelacement 4221 des données Lext(al) et Lpriori(a2), pour obtenir une donnée entrelacée L'ext(bl), et mettant en oeuvre une fonction d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 3042 du procédé 300 d'encodage en parallèle ; - entrelacement 4222 des données L'ext(bl) et L'ext(a3), pour obtenir une 35 donnée entrelacée Lpriori(b2), et mettant en oeuvre une fonction 2972878 -26- d'entrelacement similaire à la fonction d'entrelacement mise en oeuvre à l'entrelacement 3043 du procédé 300 d'encodage en parallèle (L'ext(a3) étant une donnée de la taille de a3 mais prenant des valeurs nulles) ; - nouvelle itération de l'étape de décodage 4103r en prenant en compte comme donnée a priori Lpriori(b2) ; - nouvelle itération des étapes suivant l'étape de décodage 4103. 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 10 meilleure précision que si elles avaient été encodées séparément des classes mieux protégées. On va ensuite décrire, en référence à la figure 7, un mode de réalisation dit « en série » de procédé d'encodage correcteur d'erreur 100 15 selon l'invention, dans le cas où chaque encodeur met en oeuvre un code convolutionnel récursif et systématique. 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 20 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. 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 25 d'encodage 1101 des données de la classe 1021. On obtient des données encodées P1 et Si. 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 30 « systématique de la classe 1021 ». Le procédé 100 selon l'invention comprend ensuite : - 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 35 données a2 de la classe 1022. -27- On obtient des données entrelacées bl. 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 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 bl». 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 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. 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 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 systématique S3. On va maintenant décrire, en référence à la figure 8, un mode de 35 réalisation particulier du procédé de décodage 500 dit « en série » selon 2972878 -28- l'invention, correspondant au procédé d'encodage de la figure 7, et dans le cas où chaque encodeur met en oeuvre un code convolutionnel récursif et systématique. 5 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. 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. 10 D'une part, on met en oeuvre les étapes suivantes : - désentrelacement 5163 de la sortie Lsoft(b2), le désentrelacement 5163 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 15 1083 ; - démultiplexage non représenté pour séparer les données Lsoft(A2) et Lsoft(a 3) La sortie Lsoft(a3) correspond à une estimation des données a3 de la classe 1023. 20 La sortie Lsoft(A2) correspond à une estimation des données A2. Les données dites extrinsèques Lext(A) comprennent des informations relatives à une estimation des données de la classe 1023. D'autre part, on met en oeuvre les étapes suivantes : 25 - 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 mettant en oeuvre une fonction de désentrelacement inverse de la fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 30 1083 ; - démultiplexage non représenté des données désentrelacées, pour obtenir une donnée Lpriori(a3) et Lpriori(A2)- Les données Lpriori(a3) correspondent aux probabilités logarithmiques 35 pour chaque bit des données de la classe 1023 de valoir 0 ou 1. 2972878 -29- Les données Lpriori(A2) sont utilisées comme informations à priori à l'étape de décodage suivante. Le démultiplexage non représenté pour obtenir une donnée Lpriori(a3) et 5 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. On obtient une sortie Lsott(bl), et des données dites extrinsèques Lext(A2) 10 La sortie Lsott(bl) permet une estimation des données bl. D'une part, on met en oeuvre les étapes suivantes : - désentrelacement 5162 de la sortie Lsott(bl), le désentrelacement 5162 mettant en oeuvre une fonction de désentrelacement inverse de la 15 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 Lsott(a2) La sortie Lsott(a2) correspond à une estimation des données a2 de la 20 classe 1022. La sortie Lsott(Al) correspond à une estimation des données Al. Les données dites extrinsèques Lext(A2) comprennent des informations relatives à une estimation des données de la classe 1022. 25 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; - désentrelacement 5122 de la sortie Lext(S2), le désentrelacement 5122 mettant en oeuvre une fonction de désentrelacement inverse de la 30 fonction d'entrelacement mise en oeuvre à l'étape d'entrelacement 1082 ; - démultiplexage non représenté des données désentrelacées, pour obtenir une donnée Lpriori(a2) et Lpriori(Al)- 2972878 -30- 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 à l'étape de décodage suivante. 5 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. On obtient une donnée extrinsèque Lext(Al) et une estimation des données 10 de la classe 1021 Lsott(al)- Le procédé de décodage 500 présente un rebouclage comprenant les étapes suivantes : - entrelacement 5221 des données Lext(A1) et Lpriori(a2), pour obtenir une 15 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 Lext(P2), pour former une donnée L'ext(A2) ; 20 - 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) étant une donnée de la taille de a3 mais prenant une suite de valeurs 25 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. Ce rebouclage permet que chaque classe bénéficie de la précision de 30 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. -31- 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 9, 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 9, 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 9, 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. 2972878 -32- 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 : - 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. 2972878 -33- 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 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 l'invention.