Brevet FR2789824A1 — publié le 20000818

L'invention est du domaine général des systèmes de communication. Elle concerne en particulier un code externe qui permet la correction d'erreurs résiduelles à la sortie d'un turbo-décodeur, en tenant compte des contraintes imposées par l'utilisation d'un turbo-code de manière générale, et plus particulièrement d'un turbo-code basé sur un entrelaceur de type dit "x vers xe" Elle s'applique aussi bien au codage de données représentatives d'une grandeur physique, au codage de données sous forme de codes susceptibles de moduler une grandeur physique, au décodage de signaux modulés en données, qu'au décodage de données représentatives de grandeurs physiques. Ces données peuvent, par exemple, représenter des images, des sons, des données informatiques, des grandeurs électriques, ou des données mémorisées. L'invention trouve une application dans le domaine des codes convolutifs. Lorsqu'on utilise ces derniers pour mettre en oeuvre un décodage itératif, ces codes sont fortement améliorés lorsque leurs codeurs contiennent un dispositif de permutation ("entrelaceur"). Dans ce cas, ils sont habituellement appelés " turbo-codes" et le décodeur itératif correspondant est appelé "turbo-décodeur ". Par commodité: - on appelle l'opération effectuée par le turbo-codeur, un "turbo- codage "et cette opération fournit une séquence dite " turbo-codée"; - on appelle l'opération effectuée par le turbo-décodeur, un "turbo- décodage "et cette opération fournit une séquence dite "turbo-décodée ". Sur ces sujets, des documents qui servent de référence sont, d'une part, I'article de C. BERROU, A. GLAVIEUX et P. THITIMAJSHIMA intitulé "Near Shanon limit error-correcting coding and decoding: turbocodes" publié dans les comptes-rendus de la conférence ICC'93, 1993, pages 1064 à 1070, et d'autre part, l'article de C. BERROU et A. GLAVIEUX intitulé "Near Optimum error-correcting coding and decoding: turbo-codes" publié dans IEEE Transactions on Communications, Volume 44, pages 1261 à 1271, en octobre 1996. Un turbo-codeur parallèle (figure 1) de rendement égal à 1/3 peut être considéré comme une paire de codeurs convolutifs récursifs systématiques (CRS) avec des polynômes diviseurs tels que le premier codeur 120 produise une séquence de contrôle à partir de la séquence de symboles à coder a et que le second codeur 122 produise une séquence de contrôle à partir d'une séquence a* obtenue par entrelacement (ou "permutation" dans un entrelaceur 121) de la séquence a. Dans ce contexte, le retour à zéro simultané des deux codes est un problème classique. Une manière de le résoudre a été trouvée par un des inventeurs et elle est résumée ci-dessous. Dans un but de clarté, on supposera, dans toute la suite, que les deux polynômes diviseurs du turbo-codeur sont égaux et appelés g(x). Soit m le degré du polynôme g(x) et soit No le plus petit entier tel que g(x) soit un diviseur du polynôme 1 + xNo. Pour des raisons décrites plus loin, on choisit un polynôme g(x) dont aucun diviseur n'est le carré d'un polynôme de degré égal ou supérieur à 1, et ceci entraîne que No soit un nombre impair. Soit N la taille de la séquence a choisie de sorte qu'elle soit un multiple impair de No: N = M'No. Une séquence quelconque de symboles d'information u pour être turbo- codée doit alors posséder une représentation polynômiale u(x) avec des coefficients binaires de degré N-m-1. Cette séquence u(x) est pré-codée (ou "formatée ") en: N-1 a(x) = u(x) + ax' i=N-m o les m symboles binaires ai sont choisis de telle manière que a(x) soit un multiple de g(x). En conséquence de ce formatage (précodage) et des valeurs choisies des paramètres, si a(x) est un multiple de g(x), alors a*(x) = a(xe) modulo I + xN est aussi multiple de g(x) pour toute valeur de e qui est une puissance de 2. Il est nécessaire de considérer que g(x) n'a pas de facteur multiple parce que, en général, a*(x) possède a garantie d'être divisible seulement par les facteurs irréductibles de g(x). Dans la suite de la description, on appelle "x vers xe " le type des permutations et des entrelaceurs exposés ci-dessus. Avec les turbocodes généraux, le décodage est essentiellement une procédure itérative (voir à ce propos le document de C. BERROU et A. GLAVIEUX, "Near optimum error-correcting and decoding: turbocodes ", IEEE Trans. On Comm., vol. COM-44, pages 1261-1271, octobre 1996). Deux documents d'art antérieur présentent quelques points de similitudes avec le problème à résoudre de correction d'erreurs résiduelles à la sortie d'un turbo-décodeur. Un document brevet US 4 276 646 de Texas-Instruments décrit une méthode et un dispositif de détection et de correction d'erreurs dans un ensemble de données. Dans ce brevet il est décrit une méthode consistant à mettre les informations sous forme de sous-ensembles et à ajouter à chaque sous-ensemble un CRC (Cyclic Redundancy Check) de manière à corriger ledit sous-ensemble. Un article de J. Andersen (" Turbocoding for deep space applications", Proc. IEEE 1995 International Symposium on Information Theory, Whistler, Canada, Sept. 1995) propose l'utilisation d'un code BCH pour la correction des erreurs résiduelles à la sortie d'un turbo-décodeur. Ces deux documents présentent des solutions qui possèdent une efficacité assez limitée pour la correction des erreurs résiduelles, notamment si on les appliquent aux turbo-codes du type "x vers xe ". Il existe deux raisons principales à cela La première raison tient au fait qu'ils ne tiennent pas compte de la structure des erreurs résiduelles. En effet, l'étude des turbo-décodeurs avec un entrelaceur du type "x vers xe ", par un des inventeurs, a révélé que les erreurs résiduelles présentent une structure particulière, pour autant que les itérations du décodeur soient poursuivies jusqu'à ce que leur résultat se stabilise. La seconde raison est que les solutions proposées ci-dessus fournissent des séquences codées dont le polynôme associé n'est pas divisibles par le polynôme diviseur g(x) (leurs sorties ne sont pas formatées). Une fonction de formatage est donc nécessaire avant le turbo-codage. L'invention a donc pour but de remédier aux inconvénients précités d'efficacité de correction d'erreurs résiduelles à la sortie d'un turbodécodeur. L'invention propose à cet effet un procédé de transmission de données binaires u par un émetteur vers un récepteur à travers un canal de transmission, caractérisé en ce que ledit procédé comporte une fonction de formatage intégrée avec une fonction de codage externe des données binaires u. Cette invention est utilisable dans de nombreux systèmes de télécommunications. Elle s'applique en particulier dans le cas o l'émetteur utilise un turbo-codeur à entrelaceur" x vers xe ", et le récepteur utilise un turbo-décodeur à entrelaceur" x vers xe" Selon un mode plus particulier de réalisation, les données binaires u sont stockées dans une matrice initiale U de L lignes et K colonnes, L et K étant prédéterminées, et un code correcteur d'erreurs (No, K) est affecté à chaque ligne, formant ainsi une matrice intermédiaire U1. Selon un mode encore plus particulier de réalisation, un code détecteur d'erreurs (M, L) est affecté à chaque colonne de la matrice intermédiaire U1, formant ainsi une matrice formatée A, présentant M lignes et No colonnes. Cette disposition permet de détecter les colonnes en erreur, sur le principe d'un code produit. Selon un mode plus particulier de réalisation, le code détecteur d'erreurs (M, L) est réalisé par le rajout de cinq bits supplémentaires calculés avec le polynôme générateur gi(y)=(l+y)(1+y+ y4), o y = x No, No étant le nombre de colonnes de ladite matrice formatée A. On comprend que y est une variable binaire évaluée le long des colonnes de la matrice A. Le terme (1 +y) du polynôme générateur g1(y) permet d'assurer que le codage des données binaires u par les codes (No, K) et (M, L) fournit une séquence qui soit divisible par le polynôme g(x). Le terme (l+y+ y4) est un exemple de polynôme utilisé pour la détection d'erreurs. Dans une mise en oeuvre particulière, le code correcteur d'erreurs (No, K) possède une distance minimale (d) supérieure à un nombre prédéterminé, représentant le nombre de colonnes corrigibles de la matrice reçue A'. L'invention vise également un procédé de formatage de données binaires pour procédé de transmission selon la revendication, ledit procédé de formatage étant mis en oeuvre par une unité centrale, à partir de données (M, No, L, K) préalablement mémorisées dans une mémoire non volatile, et étant caractérisé en ce qu'il comporte des étapes suivantes: - réception de données binaires u transmises par une source, - stockage des données ligne par ligne dans une matrice initiale U de L lignes et K colonnes, codage de chaque ligne de la matrice initiale U avec le code (No, K), formant ainsi une matrice intermédiaire U1. Le procédé de formatage comporte alors préférentiellement en outre les étapes suivantes - codage de chaque colonne de la matrice intermédiaire U1 avec le code (M, L), formant ainsi une matrice formatée A, de taille M x No - lecture de la matrice A ligne par ligne, et génération d'une séquence a, envoyée au turbo-codeur. L'invention vise aussi un procédé de décodage de données reçues sur un canal de transmission, pour procédé de transmission tel qu'exposé ci- dessus, ledit procédé de décodage étant mis en oeuvre par une unité centrale, à partir de données (M, No, L, K, g, gl) préalablement mémorisées dans une mémoire non volatile, et étant caractérisé en ce qu'il utilise une méthode de récupération de données par colonnes entières. L'invention vise également un procédé de décodage de données reçues sur un canal de transmission, pour procédé de transmission selon l'exposé précédent, ledit procédé de décodage étant mis en oeuvre par une unité centrale, à partir de données (M, No, L, K) préalablement mémorisées dans une mémoire non volatile, et étant caractérisé en ce qu'il comporte des étapes suivantes: - réception de données binaires à fournies par un turbo-décodeur, - stockage des données ligne par ligne dans une matrice reçue A' de M lignes et No colonnes, - décodage de chaque colonne j de la matrice reçue A' avec le code (M, L), effacement de la colonne j si une erreur est détectée, formant ainsi une matrice intermédiaire reçue Ul'de taille L x No, Le procédé de décodage comporte alors préférentiellement en outre les étapes suivantes: - décodage de chaque ligne i de la matrice intermédiaire reçue UI' avec le décodeur à effacements (No, K), formant ainsi une matrice finale reçue U' de taille L x K, - lecture de la matrice finale reçue U' ligne par ligne, et génération de la séquence _, envoyée à une destination. L'invention vise sous un autre aspect un dispositif de transmission de données binaires u comportant un émetteur, un récepteur, caractérisé en ce que ledit dispositif comporte des moyens adaptés à réaliser de façon intégrée une fonction de formatage et une fonction de codage externe des données binaires u. Selon une disposition préférée, l'émetteur comporte un turbo- codeur à entrelaceur " x vers xe ", et le récepteur comporte un turbodécodeur à entrelaceur" x vers xe ". Selon un mode de réalisation préféré, le dispositif comporte des moyens de stockage des données binaires u dans une matrice de L lignes et K colonnes, L et K étant prédéterminées, et d'affectation d'un code correcteur d'erreurs (No, K) à chaque ligne et d'un code détecteur d'erreurs (M, L) à chaque colonne. L'invention vise aussi un réseau, un ordinateur, une caméra, un télécopieur, un appareil photographique, un téléviseur, une imprimante, un scanner et un lecteur audio/vidéo, caractérisés en ce qu'ils comportent un dispositif tel que succinctement exposé ci-dessus. L'invention vise aussi: - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique caractérisé en ce qu'il permet la mise en oeuvre du procédé de l'invention telle que succinctement exposée ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, et lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique caractérisé en ce qu'il permet la mise en oeuvre du procédé de l'invention telle que succinctement exposée cidessus. Les avantages de ce dispositif, de ce réseau, de cet ordinateur, de cette caméra, de ce télécopieur, de cet appareil photographique, de ce téléviseur, de cette imprimante, de ce scanner, de ce lecteur audio/vidéo, et de ces moyens de stockage étant les mêmes que ceux du procédé tel que succinctement exposé ci-dessus, ils ne sont pas rappelés ici. La description et les dessins qui suivent permettront de mieux comprendre les buts et avantages de l'invention. Il est clair que cette description est donnée à titre d'exemple, et n'a pas de caractère limitatif. Dans les dessins: -la figure 1 est un schéma fonctionnel d'un turbo codeur; la figure 2 est un schéma fonctionnel d'un système de communication mettant en oeuvre des turbo codes avec un entrelaceur "x vers xe "avec concaténation de codes pour la correction d'erreurs résiduelles; - la figure 3 montre l'organisation de la séquence a avec les poids binaires correspondants dans une matrice pour No = 7 et M = 21; - la figure 4 montre un exemple typique d'erreurs résiduelles, dans le même cas No= 7 et M = 21; - la figure 5 illustre un codage externe appliqué sur une matrice U à K colonnes et L lignes; - la figure 6 illustre un exemple de codage ligne Reed-Solomon (7, ) sur GF(8); - la figure 7 représente, schématiquement, un dispositif électronique incorporant le codeur; - la figure 8 représente, schématiquement, un dispositif électronique incorporant le décodeur; - la figure 9 représente, schématiquement, un organigramme de fonctionnement du codeur externe; - la figure 10 représente, schématiquement, un organigramme de fonctionnement du décodeur externe. De façon générale, l'invention est destinée à prendre place dans un système de communication comportant une partie émission 1 et ou une partie réception 2, ces parties étant reliées par un canal de transmission 3, éventuellement bruité et donc source d'erreurs pour le signal reçu (figure 2). Pour tenir compte de ces erreurs éventuelles de transmission, et parvenir cependant à une transmission correcte des données initiales, des codes correcteurs et détecteurs d'erreurs sont insérés dans le signal émis pour corriger les erreurs de transmission. Dans le cas particulier de l'invention, les parties émission 1 et réception 2 utilisent des dispositifs connus de l'homme de l'art sous le nom de turbo-codeur 12 et turbo-décodeur 22. Encore plus précisément, ils utilisent des turbo-codeur 12 et turbo-décodeur 22 à entrelaceurs de type "x vers xe " décrit plus haut. Avant de décrire un mode particulier de réalisation de la présente invention, nous donnons ci-dessous une présentation mathématique de son fonctionnement. On rappelle ici qu'on a supposé que les deux polynômes diviseurs du turbo-codeur 12 sont égaux et appelés g(x). Soit m le degré du polynôme g(x) et soit No le plus petit entier tel que g(x) soit un diviseur du polynôme I + No x. On choisit un polynôme g(x) dont aucun diviseur n'est le carré d'un polynôme de degré égal ou supérieur à 1, et ceci entraîne que No est un nombre impair. Comme on l'a dit, l'invention propose un codage externe qui intègre la fonction de formatage et est adaptée à une structure particulière des erreurs résiduelles en sortie de turbo-décodeur 22. Cette structure particulière est décrite dans ce qui suit. Soit aà la version estimée de la séquence a à la sortie du turbo- décodeur 22. En écrivant la séquence a ligne par ligne dans une matrice formatée A' de M lignes et No colonnes (la figure 3 montre l'ordre d'écriture dans la matrice pour M=21 et No=7), la structure des erreurs traitée par la présente invention est la suivante: - les erreurs sont groupées par paires dans le sens des colonnes et se répartissent sur un nombre faible de colonnes (typiquement 1 colonne) (la figure 4 donne un exemple typique pour M=21 et No=7). Comme on le voit sur la figure 2, qui montre un schéma fonctionnel d'un dispositif avec concaténation de codes pour la correction d'erreurs résiduelles, dans la partie émission 1, une source 10 fournit une séquence d'informations binaires u de taille R = N-m. Avant le turbo- codage, ces données sont codées et formatées en une séquence a de taille N, équivalente à une matrice A. A la réception, les opérations inverses sont effectuées pour donner successivement une version estimée à de la séquence a, puis une version estimée û de la séquence d'information u. La concentration des erreurs résiduelles sur peu de colonnes de la matrice reçue A' suggère alors une méthode de récupération par colonnes entières. De ce fait, dans la matrice formatée A, un code correcteur d'erreurs est affecté a chaque ligne et un CRC (code détecteur d'erreurs) est affecté à chaque colonne pour permettre la détection des colonnes de la matrice reçue A' comportant au moins une erreur, sur le principe d'un code produit. La localisation des colonnes en erreur permet d'augmenter la capacité du code correcteur qui peut donc être un code très peu complexe. Deux codes sont donc définis: 1/ un code (No, K) correcteur d'erreurs appliqué à chaque ligne de la matrice initiale U, 2/ un code (M, L) détecteur d'erreurs appliqué à chaque colonne de la matrice intermédiaire U1 ainsi obtenue. La figure 5 illustre ces deux codages externes, avec les N0-K colonnes supplémentaires (par rapport à la matrice initiale U) ajoutées à droite en fin de chaque ligne dans la matrice A, et les M-L lignes ajoutées (par rapport à la matrice intermédiaire U1) en fin de chaque colonne. Les valeurs de K et L sont déterminées par le choix des codes correspondants. Le choix de chacun des deux codes est donné dans ce qui suit. Tout d'abord on note que l'organisation des données a en une matrice formatée A présentant M lignes et No colonnes (matrice M x No) permet également d'écrire le polynôme a(x) sous les formes suivantes NO-1M-1 NO-1 M-1 a(x) aNO+ixo = c" (xN).xi = Id,(x).x",avec: j=o i=o j=o i=o M-1 Cj(X) = aiNO+jxi le polynôme correspondant à la colonne j, et i=0 NO-1 d(x) = aNO+jxi le polynôme correspondant à la ligne i. ]=O NO-i No N-1 Posons y = x No, on a alors a(x)= 3 cj(y).xj j=0 A la réception on peut exprimer chaque colonne de la matrice reçue A' par pj(y) = cj( y) + ej( y), o ej( y) est un polynôme erreur sur la colonnej. Supposons qu'il existe w paires d'erreurs aux positions Pi, P2,.... Pw, le polynôme ej( y) peut s'écrire donc: ej(y)=yP (1 +y)+y p2 (1 +y)+.-+y pw (1 +y) =(1 +y).e'i(y) o le polynôme e'j(y) représente les erreurs singulières (erreurs uniques) sur la colonne j. Il est à noter que la division de chaque polynôme associé à une colonne par (1+y) divise le nombre d'erreurs par deux en réduisant toutes les paires d'erreurs en erreurs singulières. Un bit est donc réservé sur chaque colonne de la matrice formatée A pour assurer la divisibilité du polynôme associé à chaque colonne de la matrice_formatée A par (1 +y). Ce bit permet également la détection d'un nombre impair d'erreurs, mais il reste insuffisant dans ce cas précis de paires d'erreurs. Pour augmenter la capacité de détection du code, un ou plusieurs bits supplémentaires doivent être réservés à la détection sur chaque colonne de la matrice A. Dans la description donnée ici à titre d'exemple non limitatif, quatre bits supplémentaire sont réservés à la détection et calculés en utilisant le polynôme générateur: 1 +y+y4. Dans ce cas, on applique à chaque colonne dans la matrice intermédiaire U1 le code (M, L = M - 5) ayant comme polynôme générateur: g1(y)=(1+y)( 1+y+ y4), ce qui revient à dire que I-on ajoute cinq lignes en bas de la matrice U1 formant ainsi la matrice formatée A. En plus de la fonction de détection, ce choix de codage sur les colonnes induit une propriété importante sur la divisibilité du polynôme a(x) par g(x); cette propriété est démontrée dans ce qui suit. NO-1 N On a vu que a(x) = -cj(y).xJavec y = xN . j=0 On voit que pour que a(x) soit divisible par g(x) il suffit que cj(y) soit divisible par g(x). D'après la construction du code (M, L), cj (y) est divisible par (1+y) et donc par (1 + xN ), or par hypothèse g(x) divise (1 + xN ), et par conséquent ci (y). En résumé, le fait que le polynôme associé à chaque colonne (cq (y)) soit divisible par (1 +y) assure que le polynôme a(x) est divisible par g(x). C'est une propriété importante qui permet au code externe d'assurer implicitement la divisibilité du polynôme a(x) par le polynôme g(x). Ceci justifie l'intérêt de la combinaison de la fonction de formatage des données avec le codage externe, ce qui permet ainsi un gain significatif en débit utile et en simplicité de traitement. Lorsque des erreurs sont détectées dans une colonne de la matrice reçue A' par le code (M, L) toute la colonne est effacée car la position des erreurs est inconnue. Le code (No,K) est utilisé comme un décodeur à effacement seulement. Soit d la distance minimale du code (No, K). Si on suppose qu'il n'y a que des effacements sur chaque ligne, ce code permet la correction d'au plus d-1 colonnes. Le choix du code (No, K) dépend donc du degré de fiabilité qu'on veut avoir. Quelques exemples de codes ayant des capacités de correction ou des rendements différents sont donnés ci-dessous: Avec un code XOR (No, No1), 1 colonne peut être corrigée, et le rendement est de (No-1)/No. Avec un code de Hamming (7, 4), 2 colonnes peuvent être corrigées, et le rendement est de 0,57. Avec un code Reed-Solomon (7, 5), 2 colonnes peuvent être corrigées, et le rendement est de 0,71. Avec un code de Hamming (15, 11), 2 colonnes peuvent être corrigées, et le rendement est de 0,73. Un premier exemple de code simple est le codage XOR (No, No-1) qui permet la récupération d'une seule colonne effacée. Dans ce cas, pour l'opération de codage, les éléments de la dernière colonne de la matrice formatée A (matrice de taille M x No) sont calculés de la manière suivante: NO-2 aiNO+NO1 = E aNO+j pour 0 _ identique au code de Hamming (7, 4), ce code présente un meilleur rendement. Ce code utilise des symboles de trois bits. Pour avoir une longueur des mots de code de 7, chaque symbole est codé sur trois lignes de la matrice à 7 colonnes. La figure 6 illustre alors un exemple de codage ligne Reed-Solomon (7, 5) sur GF(8). Les considérations techniques exposées ci-dessus sont indépendantes du rendement du turbocode et peuvent, en conséquence, s'appliquer aussi bien à des turbocodes convolutifs de rendement inférieur ou égal à 1/3 qu'à des turbocodes convolutifs de rendement supérieur à 1/3. La description d'un mode particulier de réalisation de la présente invention va maintenant se poursuivre en regard des figures 7 à 10. Dans cette description, le canal de transmission utilisé est de type semi-duplex (connu de l'homme du métier sous son nom anglais de "half-duplex"). Cependant, l'homme du métier peut, sans difficulté réaliser l'invention dans le cas d'un canal duplex (connu de lui sous son nom anglais "full-duplex"). La figure 7 représente un dispositif électronique émetteur, incorporant un turbo-codeur 12. Dans un tel dispositif, une source 10 alimente un port entrée-sortie 14, conjointement avec un clavier 15 et un lecteur de dispositif de stockage (par exemple lecteur de disque amovible) 16. Le port d'entrée-sortie 14 est relié par un bus 17 de type classique à une unité centrale 18, à un dispositif de mémorisation non volatile (ROM) 19, et à un dispositif de mémoire volatile 24 (RAM). Un écran 25, relié au port entrée-sortie 14, permet l'affichage de données pour l'utilisateur. Le port entrée-sortie 14, le bus 17, l'unité centrale 18 et les dispositifs de mémorisation 19, 20, sont typiquement intégrés dans un boîtier de micro-ordinateur de type classique. Le port entrée-sortie 14 est enfin relié au turbo-codeur 12, qui lui- même alimente un émetteur 13 de type connu. La mémoire non volatile 19 est adaptée à stocker d'une part un programme permettant la mise en oeuvre du procédé selon l'invention, et d'autre part les données de codage (L, K, M, No, g, gl) caractéristiques du type de codage préalablement choisi. La mémoire volatile 24 est adaptée à stocker des informations de position dans une matrice (i, j) et de nombre de bits (nbrbit). De même, la figure 8 représente un dispositif électronique récepteur, incorporant un turbo-décodeur 13. Ce dispositif, sensiblement identique à l'émetteur, comporte un récepteur 23 classique, qui envoie le signal reçu à un turbo-décodeur 22, lequel alimenté un port entrée-sortie 14. Ce port entrée-sortie 14 est également relié à un clavier 15, à un lecteur de dispositif de stockage 16, à un écran 25. Le port d'entrée- sortie 14 est ici encore relié par un bus 17 de type classique à une unité centrale 18, à un dispositif de mémorisation non volatile (ROM) 19, et à un dispositif de mémoire volatile 24 (RAM). Le port entrée-sortie 14, le bus 17, l'unité centrale 18 et les dispositifs de mémorisation 19, 20, sont intégrés dans un boîtier de micro-ordinateur de type classique. Le port entrée-sortie 14 envoie les informations traitées par I'unité centrale 18 à une destination d'informations 20. Il est clair qu'un même dispositif peut comporter à la fois une partie émetteur et une partie récepteur, la plupart des moyens étant communs à ces deux fonctions. Le procédé de formatage et de codage externe est mis en oeuvre par l'unité centrale 18, à partir des données préalablement mémorisées dans la mémoire non volatile 19. Ce procédé est par exemple illustré par l'organigramme de la figure 9. Il comporte des étapes suivantes: E1 - mise à zéro de la variable nbrbit, E2 - réception des données binaires u transmises par la source 10, et incrémentation de la variable nbrbit, tant que la variable nbrbit est inférieure au produit L x K, E3 - stockage des données ligne par ligne dans une matrice de L lignes et K colonnes, E4 - mise à zéro de la variable numéro de ligne i, E5 - codage de la ligne i de la matrice avec le code (No, K) tant que le numéro de ligne i est inférieur ou égal à L-1, et incrémentation du numéro de ligne i, tant que le numéro de ligne i est inférieur à L-1, E6 - mise à zéro de la variable numéro de colonne j,E7 - codage de la colonne j de la matrice avec le code (M, L) tant que le numéro de colonne j est inférieur ou égal à N0-1, et incrémentation du numéro de colonne j, tant que le numéro de colonne jest inférieur à No-1, E8 - lecture de la matrice M x No ligne par ligne, et génération de la séquence a, envoyée au turbo-codeur 12. De façon analogue, I'organigramme fonctionnement du décodeur externe, illustré par la figure 10, comporte des étapes suivantes: El0 - mise à zéro de la variable nbrbit, El - réception des données binaires a fournies par le turbo- décodeur 23, et incrémentation de la variable nbr bit, tant que la variable nbr bit est inférieure au produit M x No, E12 - stockage des données ligne par ligne dans une matrice de M lignes et No colonnes, E13 mise à zéro de la variable numéro de colonne j, E14 - décodage de la colonne j de la matrice avec le code (M, L), effacement de la colonne j si une erreur est détectée tant que le numéro de colonne jest inférieur ou égal à N0-1, et incrémentation du numéro de colonne j, tant que le numéro de colonne jest inférieur à No-1, E15 - mise à zéro de la variable numéro de ligne i, E16 - décodage de la ligne i de la matrice avec le décodeur à effacements (No, K) tant que le numéro de ligne i est inférieur ou égal à L-1, et incrémentation du numéro de ligne i, tant que le numéro de ligne i est inférieur à L-1, E17 - lecture de la matrice L x K ligne par ligne, et génération de la séquence û, envoyée à la destination 20. Dans le mode de réalisation décrit plus haut, on a utilisé comme polynôme générateur du code (M, L) le polynôme gi(y)=(1+y)( l+y+ y4). Plus généralement, le code détecteur d'erreurs (M, L) est réalisé en utilisant le polynôme générateur gl(y)=(1+y)g2(y), o g2(y) est un polynôme, de degré quelconque, choisi de façon à augmenter la capacité de détection dudit code (M, L). Jusqu'à maintenant un sens privilégié (par défaut) a été choisi pour le l'écriture/lecture et codage/décodage des matrices. Il est cependant évident que la mise en oeuvre de l'invention reste principalement identique si on change dans tout l'exposé ci-dessus toutes les colonnes en lignes et toutes les lignes en colonnes. Il est par exemple possible d'écrire les données binaires u colonne par colonne sur une matrice de K lignes et L colonnes, et d'affecter un code (No, K) à chaque colonne, etc. Il est bien clair que de façon plus générale l'invention utilise en fait un procédé de transmission (ainsi qu'un procédé de formatage et un procédé de décodage) exécuté vecteur par vecteur, la notion de vecteur pouvant designer aussi bien une ligne qu'une colonne. On comprend que l'invention s'applique, entre autres à un réseau, un ordinateur, une caméra, un télécopieur, un appareil photographique, un téléviseur, une imprimante, un scanner ou un lecteur audio/vidéo. Bien entendu, la présente invention ne se limite pas aux détails des formes de réalisation décrits ici à titre d'exemple, mais s'étend au contraire aux modifications à la portée de l'homme de l'art. REVENDICATIONS 1. Procédé de transmission de données binaires u par un émetteur 1 vers un récepteur 2 à travers un canal de transmission 3, caractérisé en ce que ledit procédé comporte une fonction de formatage intégrée avec une fonction de codage externe des données binaires u. 2. Procédé selon la revendication 1, caractérisé en ce que l'émetteur 1 utilise un turbo-codeur 12 à entrelaceur" x vers xe ", et en ce que le récepteur 2 utilise un turbo-décodeur 22 à entrelaceur" x vers xe ". 3. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que les données binaires u sont stockées dans une matrice initiale U de L lignes et K colonnes, L et K étant prédéterminées, et en ce que un code correcteur d'erreurs (No, K) est affecté à chaque ligne, formant ainsi une matrice intermédiaire U1. 4. Procédé selon la revendication 3, caractérisé en ce qu'un code détecteur d'erreurs (M, L) est affecté à chaque colonne de la matrice intermédiaire U1, formant ainsi une matrice formatée A. 5. Procédé selon la revendication 4, caractérisé en ce que le code détecteur d'erreurs (M, L) est réalisé par rajout d'au moins un bit sur chaque colonne de la matrice intermédiaire U1, et en ce que, un des bits rajoutés est calculé de sorte à assurer la divisibilité du polynôme associé à chaque colonne de la matrice formatée A par (1 +y), o y = x No, No étant le nombre de colonnes de ladite matrice formatée A. 6. Procédé selon la revendication 5, caractérisé en ce que le code détecteur d'erreurs (M, L) est réalisé en utilisant le polynôme générateur gl(y)=(1+y)-g2(y), O g2(y) est un polynôme, de degré quelconque, choisi de façon à augmenter la capacité de détection dudit code (M, L). 7. Procédé selon la revendication 3, caractérisé en ce que le code correcteur d'erreurs (No, K) possède une distance minimale (d) supérieure à un nombre prédéterminé, représentant le nombre de colonnes corrigibles de la matrice. 8. Procédé de formatage de données binaires pour procédé de transmission selon la revendication 2, ledit procédé de formatage étant mis en oeuvre par une unité centrale 18, à partir de données (M, No, L, K) préalablement mémorisées dans une mémoire non volatile 19, et étant caractérisé en ce qu'il comporte des étapes suivantes: - réception de données binaires u transmises par une source 10, - stockage des données ligne par ligne dans une matrice initiale U de L lignes et K colonnes, codage de chaque ligne de la matrice initiale U avec le code (No, K), formant ainsi une matrice intermédiaire U1, 9. Procédé de codage selon la revendication 8, caractérisé en ce qu'il comporte des étapes suivantes: codage de chaque colonne de la matrice intermédiaire U1 avec le code (M, L), formant ainsi une matrice formatée A, de taille M x No - lecture de la matrice A ligne par ligne, et génération d'une séquence a, envoyée au turbo-codeur 12. 10. Procédé de décodage de données reçues sur un canal de transmission 3, pour procédé de transmission selon l'une quelconque des revendications 1 à 2, ledit procédé de décodage étant caractérisé en ce qu'il comporte des étapes suivantes: - réception de données binaires à fournies par un turbo-décodeur 23, - stockage des données ligne par ligne dans une matrice reçue A' de M lignes et No colonnes, - décodage de chaque colonne j de la matrice reçue A' avec le code (M, L), effacement de la colonne j si une erreur est détectée, formant ainsi une matrice intermédiaire reçue Ul' de taille L x No, 11. Procédé de décodage selon revendication 10, caractérisé en ce qu'il comporte des étapes suivantes: - décodage de chaque ligne i de la matrice intermédiaire reçue UI' avec le décodeur à effacements (No, K), formant ainsi une matrice finale reçue U' de taille L x K, - lecture de la matrice finale reçue U' ligne par ligne, et génération de la séquence Ci, envoyée à une destination 20. 12. Dispositif de transmission de données binaires u comportant un émetteur 1, un récepteur 2, caractérisé en ce que ledit dispositif comporte des moyens adaptés à réaliser de façon intégrée une fonction de formatage et une fonction de codage externe des données binaires u. 13. Dispositif selon la revendication 12, caractérisé en ce que l'émetteur 1 comporte un turbo-codeur 12 à entrelaceur "x vers xe n, et en ce que le récepteur 2 comporte un turbo-décodeur 22 à entrelaceur" x vers xe ". 14. Dispositif selon l'une quelconque des revendications 12 à 13, caractérisé en ce qu'il comporte des moyens de stockage des données binaires u dans une matrice de L lignes et K colonnes, L et K étant prédéterminées, et d'affectation d'un code correcteur d'erreurs (No, K) à chaque ligne et d'un code détecteur d'erreurs (M, L) à chaque colonne. 15. Dispositif selon l'une quelconque des revendications 12 à 14, comportant une unité centrale 18, une mémoire non volatile 19, une mémoire volatile 24, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre des étapes suivantes: - réception de données binaires u transmises par une source 10, - stockage des données ligne par ligne dans une matrice de L lignes et K colonnes, - codage de chaque ligne i de la matrice avec le code (No, K), 16 Dispositif selon la revendication 15, caractérisé en ce qu'il comporte en outre des moyens adaptés à mettre en oeuvre des étapes suivantes: - codage de la colonne j de la matrice avec le code (M, L), - lecture de la matrice M x No ligne par ligne, et génération de la séquence a, envoyée au turbo-codeur 12. 17. Dispositif de réception de données reçues sur un canal de transmission 3, pour dispositif de transmission selon l'une quelconque des revendications 12 à 13, ledit dispositif de réception comportant une unité centrale 18, une mémoire non volatile 19, une mémoire volatile 24 et étant caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre des étapes suivantes: - réception de données binaires a fournies par un turbo-décodeur 22, - stockage des données ligne par ligne dans une matrice de M lignes et No colonnes, - décodage de la colonne j de la matrice avec le code (M, L), effacement de la colonne j si une erreur est détectée. 18 Dispositif selon la revendication 17, caractérisé en ce qu'il comporte en outre des moyens adaptés à mettre en oeuvre des étapes suivantes: -décodage de la ligne i de la matrice avec le décodeur à effacements (No, K), - lecture de la matrice L x K ligne par ligne, et génération de la séquence _, envoyée à une destination 20. 19 Téléphone, caractérisé en ce que il comporte un dispositif selon l'une quelconque des revendications 12 à 18. Appareil photographique, caractérisé en ce que il comporte un dispositif selon l'une quelconque des revendications 12 à 18. 21 Imprimante, caractérisée en ce qu'elle comporte un dispositif selon l'une quelconque des revendications 12 à 18. 22 Scanner, caractérisé en ce que il comporte un dispositif selon l'une quelconque des revendications 12 à 18. 23 Caméra, caractérisée en ce qu'elle comporte un dispositif selon l'une quelconque des revendications 12 à 18. 24 Ordinateur, caractérisé en ce que il comporte un dispositif selon I'une quelconque des revendications 12 à 18. Télécopieur, caractérisé en ce que il comporte un dispositif selon l'une quelconque des revendications 12 à 18. 26 Téléviseur, caractérisé en ce que il comporte un dispositif selon l'une quelconque des revendications 12 à 18. 27 Lecteur audio/vidéo, caractérisé en ce que il comporte un dispositif selon l'une quelconque des revendications 12 à 18.