Brevet FR2599916A1 — publié le 19871211

i PROCEDE ET DISPOSITIF POURLE DECODAGED'UN BLOCDE SYMBOLES DE CODE QUI EST REPARTI DE DEUX MANIERES SUR DES MOTS DE CODE QUI SONT CHACUN PROTEGES PAR UN CODE A DISTANCE MAXIMUM DE SEPARATION. Description: POINT DE DEPART DE L'INVENTION ET ETAT EXEMPLAIRE DE LA TECHNIQUE. La présente invention-concerne un procédé pour 5 corriger un bloc de symboles de code qui est réparti sur une première série de premiers mots de code d'un premier code à distance maximum de séparation, et qui est d'autre part réparti sur une seconde série de seconds mots de code d'un second code à distance 10 maximum de séparation, chaque mot de code correct dans un code possédant une distance minimum par rapport à tout autre mot de code correct d'au moins trois calculé sur les symboles et tous les symboles de code non redondants faisant partie à la fois d'un premier mot de 15 code et d'un second mot de code. Un tel procédé est décrit dans la demande européenne antérieure 156 440 (PHQ 84.008C) qui se base sur deux demandes de priorité japonaises 84/57595/6. Dans ce cas, le code à distance minimum de séparation (MSD) est un code de Reed-Solomon 20 (abrégé), mais d'autres codes organisés selon des symboles peuvent aussi être utilisés. Un symbole est un groupe d'un nombre fixe de bits, supérieur à un, dans une réalisation avantageuse toujours de huit bits. Le plus souvent, on utilise des codes systématiques au 25 niveau des symboles, dans lesquels une séparation existe entre des symboles redondants et des symboles non redondants, mais l'invention n'y est pas limitée. Le système connu a trait au stockage de données numériques selon le format qualifié de "Compact Disc" pour 30 de l'information audio de haute qualité, qui est rendu encore plus fiable pour certaines applications, par exemple pour le stockage de programmes d'ordinateurs. Dans le système connu, l'information est tout d'abord décodée de la même manière que celle qui est courante 35 pour de l'information audio, auquel cas la redondance de deux codages de Reed-Solomon est utilisée pour corriger les erreurs et, en outre, pour détecter d'autres erreurs qui sont ou sont probablement incorrigibles. Ces codes de Reed-Solomon font appel a une 5 technique d'imbrication qui convient pour corriger de longs groupes d'erreurs et qui peut, en outre, avantageusement être traitée en temps réel. En outre, un code de pseudo-produit est prévu au niveau de blocs ou de secteurs de code, qui est à même d'utiliser la détec10 tion d'erreur des deux premiers codages comme information indicatrice pour rendre la correction ultérieure des erreurs plus fiable. Ceci signifie que le décodage en question doit permettre la réception, par symbole, d'au moins un bit supplémentaire. L'augmentation de 15 cette largeur de bits de transfert constitue parfois un inconvénient. Dans certaines autres applications du code du type spécifié dans le préambule, une telle information indicatrice n'est même pas du tout présente, soit parce 20 que le décodage des deux premiers codages ne fournit pas une telle information indicatrice, soit parce qu'un tel code d'imbrication est entièrement absent parce que le code est appliqué dans un autre environnement. En soi, dans le cas d'une distance minimum entre les mots 25 de code de trois ou de plus de trois sur les symboles, pour chaque mot de code, au moins un symbole peut certes toujours être corrigé, mais le risque d'une correction erronée augmente rapidement à mesure que la longueur des mots de code s'accroît. Dans le cas d'une 30 distance minimum supérieure a trois, le risque d'une correction erronée est bien sûr moins élevé, mais reste malgré tout significatif dans le cas de longs mots de code (nombreux symboles). BUT SELECTIONNE DE L'INVENTION. L'invention a pour but de rendre le décodage fiable en faisant en sorte que l'exécution finale d'une correction dans un mot de code dépende d'informations d'indication d'erreur supplémentaires qui ne se rapportent pas à l'ensemble du mot de code, mais uniquement au symbole de code qui peut potentiellement y être corrigé, et ainsi de rendre la correction des erreurs plus fiable. L'invention suppose dans ce cas qu'une correction incorrecte pourrait notamment provoquer la 10 conversion d'un symbole de code jusqu'alors non perturbé en un symbole erroné. RESUME DE L'INVENTION. L'invention réalise ce but par le fait que le procédé décrit dans le préambule comprend les pas 15 suivants: a. le rassemblement d'un bloc entier de symboles de code; b. la détermination de tous les symboles de syndrome des premiers mots de code et des seconds mots de 20 code et la formation d'un drapeau pour chaque mot de code pour lequel le syndrome diffère de zéro; c. la sommation du nombre de drapeaux pour l'ensemble des premiers mots de code et la sommation séparée de la première du nombre de drapeaux pour l'ensem25 ble des seconds mots de code; d. la détermination, pour un premier mot de code à syndrome différent de zéro, d'un emplacement d'erreur d'une erreur corrigible; e. la détection d'un second mot de code indiqué comme 30 perturbé qui comporte cet emplacement d'erreur et la correction de l'erreur en question uniquement dans le cas d'un résultat de détection positif, mais dans le cas contraire, l'exécution du pas d sur un premier mot de code suivant; 35 f. après une correction selon le pas e, le réajustement des syndromes du premier mot de code en question et du second mot de code en question et, exclusivement dans le cas o les deux syndromes sont alors nuls, le réajustement des deux drapeaux en question et la décrêmentation des résultats de sommation des nombres de drapeaux, et ensuite l'exécution du pas d sur un premier mot de code suivant; g. après l'exécution de ce pas sur au moins tous Ies premniers mots de code indiqués comme étant perturbés, l'échange de fonction entre les premiers mots de code et les seconds mots de code et la répétition des pas d, e et f jusqu'à l'absence de 15 nouvelle modification après deux exécutions successives des pas d, e, f pour tous les premiers mots de code alors en vigueur; h. la fourniture d'un bloc de symboles de code accompagnée de la signalisation que celui-ci est correct 20 ou incorrect. Il semble qu'ainsi de nombreuses configurations de symboles perturbés peuvent être corrigées rapidement et correctement, en évitant notamment qu'un mot de code soit trop rapidement signalé comme étant correct. 25 L'invention concerne aussi un dispositif pour l'exécution du procédé, ce dispositif étant pourvu de moyens de réception pour recevoir et rassembler un bloc entier de symboles de code, de premiers moyens de calcul alimentés par les moyens de réception pour former, à 30 partir des symboles reçus, pour chaque mot de code, un certain nombre de symboles de syndrome, de moyens de retenue alimentés par les premiers moyens de calcul pour stocker un drapeau pour chaque mot de code pour lequel le syndrome est différent de zéro et retenir 35 pour les premiers mots de code et séparément pour les seconds mots de code, un résultat de sommation du nombre de drapeaux, de seconds moyens de calcul alimentés par les premiers moyens de calcul pour déterminer pour chaque mot de code, si possible et nécessaire, un ou plusieurs symboles de correction, de moyens de correction alimentés par les moyens de réception et les seconds moyens de calcul pour ajouter un symbole de correction à un symbole perturbé et d'un dispositif de sortie pour présenter un bloc si possible correct à un dispositif d'utilisateur et étant caractérisé par la présence d'un dispositif de commande de séquence avec un certain nombre de positions pour, dans une position pour un quelconque premier mot de code, déterminer un symbole de correction et un symbole de 15 localisateur, ce dispositif de commande de séquence étant pourvu de moyens d'adressage pour, à l'aide du dit symbole de localisateur, adresser un syndrome d'un second mot de code en question et d'un premier détecteur pour, exclusivement sous la commande d'un syndrome 20 mentionné en dernier lieu qui est différent de zéro, corriger le -symbole de code qui est adressé par le symbole de localisateur mentionné en dernier lieu et réajuster un quelconque syndrome qui s'y rapporte, et étant pourvu d'un deuxième détecteur pour, exclusi25 vement sous la commande d'un syndrome alors égal à zéro du second mot de code en question, commander les moyens de retenue pour le réajustement des drapeaux pour le premier et le second mot de code en question et décrémenter les résultats de sommation, puis pour exécuter 30 le traitement sur un premier mot de code suivant, par le fait que ce dispositif de commande de séquence comprend un dispositif d'échange pour, après passage par toutes les positions correspondant au moins aux premiers mots de code perturbés, opérer un échange de fonction entre des premiers et des seconds mots de code et activer d'autres des dites positions, et par le fait qu'un troisième détecteur est présent pour, lors de l'activation du dit dispositif d'échange, détecter toute modification apportée pendant les deux parcours 5 les plus récents dans des premiers mots de code alors pertinents, et en cas d'un résultat de détection négatif, activer le dispositif de sortie mentionné. En prévoyant un certain nombre de détections élémentaires, on réalise une implémentation attrayante. D'autres propriétés avantageuses de l'invention sont reprises dans les autres revendications. Elles concernent chaque fois des réalisations d'aspects qui accroissent la vitesse de traitement et/ou la fiabilité et/ou la capacité de décodage. 15 COURTE DESCRIPTION DES FIGURES. L'invention sera décrite ci-après plus en détail avec référence à quelques figures, parmi lesquelles: la Fig. 1 illustre symboliquement un exemple 23 d'une structure d'un bloc de symboles de code; la Fig. 2 illustre plus en détail un bloc de symboles de code du genre de celui utilisé pour un format dit CD-ROM; la Fig. 3 indique la matrice de contrôle de 25 parité des codes Reed-Solomon utilisés; la Fig. 4 illustre symboliquement un dispositif de décodage conforme à l'invention; la Fig. 5 est un organigramme de l'invention; la Fig. 6 illustre quelques exemples de motifs 30 d'erreurs. L'appendice A donne une liste de légendes se rapportant à la Fig. 5. DESCRIPTION D'UNE FORME D'EXECUTION PREFEREE. La Fig. 1 montre symboliquement, a titre 35 d'exemple général, la structure d'un bloc de symboles de code, o chaque case indique un symbole. Un symbole est un groupe d'un nombre fixe de bits, par exemple trois ou quatre, mais le plus souvent davantage. Une valeur avantageuse est huit. Pour des symboles plus 5 longs, la complication croissante des opérations est souvent un inconvénient. Par souci de simplicité, on suppose que le code est systématique au niveau des symboles, mais ceci n'est pas nécessaire pour la réalisation de l'invention. Le bloc comporte, dans cet 10 exemple, soixante dix symboles de données portant les numéros D10b...D19, D20...D29, D30...D79. Le bloc comporte dix premiers mots de code d'un premier code de Reed-Solomon, ceux-ci contiennent chacun sept symboles de données et deux symboles redondants. Le premier mot 15 de cette série contient ainsi les symboles de données D10...D70 et les symboles redondants P10, P20. Le deuxième mot contient les neuf symboles de la deuxième colonne. Le dixième mot contient les neuf symboles de la dixième colonne. Si la longueur des symboles est 20 suffisamment grande, la distance minimum entre deux mots de code non perturbés possibles telle que déterminée sur les symboles peut être égale à trois pour ces mots de code. Cela signifie qu'un symbole perturbé est corrigible (ou, par ailleurs, qu'au maximum deux 25 symboles de code perturbés sont détectables). D'autre part, le bloc comporte neuf seconds mots de code d'un second code de Reed-Solomon. Ceux-ci contiennent chacun trois symboles redondants et dix autres symboles. Les autres symboles peuvent être des symboles de données ou 30 des symboles redondants de premiers mots du premier code de Reed-Solomon. Le premier mot de cette seconde série contient ainsi les symboles de données D10...D19 et les symboles redondants Qll, Q12, Q13. Le deuxième mot contient les treize symboles de la deuxième rangée. 35 Le neuvième mot contient les treize symboles de la neuvième rangée, a savoir les symboles redondants P20...P29 qui appartiennent chacun à un premier mot de code du premier code de ReedSolomon et les symboles redondants du second code de Reed-Solomon Q91, Q92, 5 Q93. Si la longueur des symboles est suffisamment grande, la distance minimum entre deux mots de code non perturbés possibles déterminée sur les symboles peut être égale à quatre pour ces derniers mots de code. Cela signifie qu'un symbole perturbé est corrigible et, 10 qu'en outre, un deuxième symbole perturbé est détectable (ou, par ailleurs, que trois symboles de code perturbés au maximumn sont détectables). Pour tous les mots de code du premier code de Reed-Solomon, la matrice de générateur utilisée était la même. Pour tous 15 les mots de code du deuxième code de Reed-Solomon, la matrice de générateur utilisée était la même. Dans ce cas, la onzième jusqu'à la treizième colonne -incluse forment chacune aussi un premier mot de code du premier code de Reed-Solomon dans lequel les symboles 20 Q81...Q82, Q91...93 se comportent comme des symboles redondants et les symboles Qll...13, Q21...23,...,Q71...73 comme des symboles de données. Tous les symboles font ainsi partie chaque fois d'un premier mot de code du premier code et font aussi partie chaque 25 fois d'un second mot de code du second code. Une telle configuration est qualifiée de code de produit (réel). La structure du bloc peut être modifiée. Ainsi, les nombres de symboles de données par mot de code peuvent être différents, ils peuvent aussi être 30 les mêmes pour les deux codes. Les nombres de symboles redondants par mot de code peuvent être différents, mais pour une correction sur base d'un seul mot de code, le minimum nécessaire est de deux. De plus, il peut s'agir d'un code de pseudoproduit dans lequel 35 tous les symboles redondants ne font pas tous aussi partie de deux mots de code. Par exemple: les mots de code verticaux sont formés de la même manière que sur la Fig. 1. Les mots de code horizontaux ne sont pas formés, mais sont remplacés par des mots de code 5 diagonaux: parmi ceux-ci, le premier mot de code est par exemple constitué par les symboles D10, D21, D32,..., D76, P17, P28, D19, Q21, Q32, Q43. Le deuxième est constitué par les symboles D20, D31,..., D75, P16, D18, D29,..., Q31,..., Q53 et ainsi de suite. 10 Dans ce cas également, pour tous les mots de code verticaux et pour tous les mots de code diagonaux, les mêmes matrices de générateurs sont chaque fois utilisées. Mais les symboles Qll...Q93 ne font alors pas partie d'un mot de code vertical. D'autres possi15 bilités existent pour une telle formation d'un code de pseudo-produit. Dans ce cas, l'indication d'un symbole de code à corriger peut être obtenu de diverses manières à partir d'un ou de plusieurs mots de code dont le symbole de code potentiellement corrigible fait 20 partie. En plus du précité, il existe aussi d'autres codes de correction de symboles que les codes de ReedSolomon, par exemple des codes b-adjacents. La Fig. 2 illustre avec plus de détails la structure d'un bloc de symboles de code tel qu'il est 25 utilisé dans le cas d'un format dit CD- ROM, servant de forme d'exécution préférée. Il y a 43x24 symboles de données, chacun de 8 bits. Il y a 43 mots de code P d'un code de Reed- Solomon (26,24), ils sont tous disposés suivant une colonne. Il y a 26 mots d'un code 30 de Reed-Solomon (45,43). En ce qui concerne les symboles de données, ceux-ci sont disposés selon la diagonale indiquée. Les symboles redondants sont indiqués dans les deux lignes inférieures. Les redondances Q ne font donc pas partie des mots P. 35 LA PHILOSOPHIE DU DECODAGE. Le format de code de la Fig. 2 signifie que pour chaque mot de code, un symbole d'erreur peut chaque fois être corrig6 ou que deux symboles d'erreur 5 peuvent être détectés. Sous ce rapport, la Fig. 3 indique les matrices de parité Hp, HQ des codes de Reed-Solomon utilisés. Le polynôme de générateur du corps de Galois en question est (xS+x4+x3+x2+1l) dont a est une racine et donc un élément primitif de ce corps 10 de Galois. Tous les calculs sont effectués dans ce corps. Lorsqu'un symbole d'erreur est corrig6 dans un mot de code, mais qu'en fait plus d'un symbole est perturbé, le risque que ceci ne soit pas remarqué est d'environ n/2m, o m est la-longueur du symbole en bits 15 et n, la longueur du mot de code en symboles. Pour le code P ou Q. le risque en question est respectivement d'environ 10% et de 18%. Le risque qu'un mot de code perturbé ne soit pas détecté comme tel est de 1/22m=l,5xlO-5 (pour trois symboles redondants par mot 20 de code de 1/23m). Pour le décodage, on obtient une accélération sensible en ne calculant tous les syndromes qu'une seule fois et en ne déterminant pour la correction d'un symbole de code que la contribution de la correction 25 aux_ symboles de syndrome. Par exemple: supposons qu'un symbole quelconque du premier mot de code P (première colonne sur la Fig. 2) soit corrigé. Dans ce cas, les symboles de syndrome du mot Q dont ce symbole fait partie doivent être corrigés selon 30 SO' = So0 + Y SI' = SI + a44Y. Lorsque le symbole corrigé porte, par exemple le numéro 0946, le mot Q associé est donc formé des symboles 946, 990, 1034, 1078, 4, 48,..., 558, 602. 35 L'exposant (44) provient directement de la matrice de parité HQ. Dans ce cas, Y est la grandeur de la correction (exprimée en symbole). Pour d'autres symboles à corriger, les syndromes sont corrigés par la correction de symbole Y multiplée dans GF(28) par la puissance appropriée de a. Il y a donc autant de symboles de syndrome que de symboles redondants: 2x43+2x26=138. Les symboles de données sont numérotés de 0000 à 1031. Les symboles redondants des mots P sont numérotés de 1032 à 1117. Le symbole redondant portant le numéro 10 d'ordre MP appartenant aux mots de code portant le numéro d'ordre NP porte alors le numéro ((43xMP)+IN?). Les symboles redondants des mots Q sont numérotés de 1118 à 1169. Le symbole redondant portant le numéro d'ordre MQ appartenant au mot de code portant le numéro 15 d'ordre NQ porte alors le numéro (44xMQ+43xNQ) mod. 1118. Lors du décodage des mots P, le numéro d'ordre NP en question est évidemment connu. Par le décodage, le numéro d'ordre MP du symbole à corriger peut être 20 connu. A partir de MP et de NP, MQ et NQ peuvent être trouvés pour, au départ de la correction, trouver la modification à apporteur *aux symboles de syndrome du code Q. L'inverse est d'application lors de la correction d'un mot du code Q. Pour les numéros des symboles 25 de données, il est à noter que: NP = MQ 43 x MP + NP = (44 x MQ + 43 x NQ) mod.1118. Il en résulte, dans le cas d'une correction P: MQ = NP NQ = MP - NP mod.26. Et dans le cas d'une correction Q: NP = MQ MP = MQ - NQ mod.26. Cette dernière équation ne vaut que pour les numéros de symboles 0-1117, parce que les symboles de redondance Q ne font pas partie d'un quelconque mot d'un code P. Dans le cas d'un code de produit vrai 5 (Fig. 1), pour une correction, il faut toujours que les syndromes des deux mots de code dont le symbole de code en question fait partie, soient modifiés. Dans ce cas, en outre, MQ=NP et MP=NQ. EXEMPLE DE REALISATION D'UN DISPOSITIF DE LECTURE DANS 10 LEQUEL UN DISPOSITIF DECODEUR CONFORME A L'INVENTION EST INCORPORE. La Fig. 4 est un schéma synoptique d'un dispositif à utiliser aux fins de l'invention. Le milieu de stockage est un disque de 12 cm de diamètre 15 sur lequel des bits de canal sont stockés selon la technique des creux à lecture optique devenue classique pour le "compact disc". Le bloc 20 indique une platine avec un moteur, un système d'asservissement, un système de centrage, un système à laser, un système de pour20 suite de piste, etc. L'invention ne se rapporte pour le reste pas du tout au fonctionnement spécifique de ces éléments. Le système de lecture produit des bits de canal. Dans le démodulateur 22, une série de 17 bits de canal successifs (y compris des bits d'espacement) est 25 convertie en un symbole de code de 8 bits de code. Dans le premier décodeur 24, une séquence de 32 symboles de code est formée par désembrouillage. Cette séquence est décodée au moyen de symboles redondants y contenus, de sorte que 28 symboles de code subsistent. Lors du 30 décodage, une correction d'un ou de plusieurs symboles peut ou non avoir lieu. Par souci de concision, ce décodage ne sera pas décrit plus en détail. Le code est un code de Reed-Solomon. D'autres codes de correction de symboles peuvent aussi être utilisés. Dans l'élément 35 de désimbrication 26, les 28 symboles de code sont désimbriqués sur autant de séquences de chacune 28 symboles. Dans le deuxième décodeur 28, une telle séquence est décodée au moyen de quatre symboles redondants qui y sont contenus, ce qui laisse subsister 5 24 symboles de code. Lors de ce décodage, une correction d'un ou de plusieurs symboles peut ou non avoir lieu. Par souci de concision, ce décodage ne sera pas non plus décrit plus en détail. Les symboles décodés apparaissent à raison de 8 bits en parallèle sur la 10 ligne 38. Dans ce cas, un certain regroupement des symboles est encore effectué par symbole, lequel n'est pas décrit par souci de concision. Les symboles à la sortie de l'élément 28 sont organisés en secteurs selon le format de la Fig. 2. 15 Eventuellement, un autre dispositif est présent à cet effet dans l'élément 28 pour reconfigurer l'ordre de succession des symboles comme décrit dans la demande de brevet précitée. Le désembrouillage, la désimbrication et la reconfiguration peuvent, dans de nombreux cas, 20 avantageusement s'effectuer à l'aide d'une mémoire à accès aléatoire (RAM), dans laquelle un grand nombre de lignes à retard de files d'attente ou FIFO à temps d'attente/longueurs différents sont mis en oeuvre. Ceci est en soi généralement courant et l'appareillage 25 utilisé à cet effet ne sera pas décrit plus en détail. Les blocs 22-28 ont dès lors surtout un effet de spécification de fonction; au niveau matériel, l'organisation est le plus souvent centrée sur un bus qui coopère avec une unité arithmétique et logique, une 30 M mémoire et des sous-systèmes E/S. Un secteur contient avant tout de l'information de synchronisation, puis de l'information d'entête, puis éventuellement de l'information de sousentête et finalement l'information restante. L'élément 30 35 est un détecteur. Ce détecteur est activé par l'infor- mation de synchronisation, ce qui est possible par le fait que l'information de synchronisation a un contenu qui ne se présente en principe plus dans le flux d'information. Après l'identification de cette infor5 mation, un compteur de symboles est activé dans le détecteur pour décompter les symboles reçus. Le moment o l'information de synchronisation est suivie par l'autre information qui est protégée par les codes à distance maximum de séparation est ainsi connu. 10 Eventuellement, un symbole spécifique peut indiquer que ce code est effectivement réalisé ou a été négligé. Le signal de détection est appliqué par la ligne 40 comme signal d'initialisation au décodeur 34. Ce signal a pour effet de positionner des compteurs d'adresses sur 15 des valeurs initiales déterminées et de régler d'autres grandeurs, comme décrit ci-après avec référence à la Fig. 5. Le décodeur 34 peut ainsi être un (micro)processeur programmé, avec des éléments tels que décrits, mais pour un autre code, dans la demande de 20 brevet néerlandais antérieure 8400629, correspondant à la demande de brevet américain n 705 752 de la Demanderesse, ici citée à titre de référence. Sont présentes une unité pour l'exécution des opérations dans le corps de Galois en question, une mémoire de données, une 25 mémoire de syndromes, une mémoire pour les drapeaux des premiers et seconds mots de code et un mécanisme de comptage pour en déterminer deux résultats, une mémoire de programme et des moyens d'adressage et de décodage pour celle-ci ainsi que des moyens de connexion pour 30 l'interconnexion des dits composants. Pour un secteur, on peut donc stocker au moins 1032 symboles de données et 138 symboles redondants (ou 138 symboles de syndrome), 69 drapeaux, deux résultats de comptage et un certain nombre de grandeurs auxiliaires (voir ci35 après). Après le décodage, l'information reformée peut être rendue disponible par l'intermédiaire de la sortie 36 pour un dispositif d'utilisateur non représenté pour plus de simplicité. Dans ce cas, la correction peut déjà avoir été effectuée, mais il est aussi possible que seules les grandeurs de correction elles-mêmes (localisateur + correcteur) soient présentées lorsque l'information des données a déjà été mise autrement à la disposition du dispositif d'utilisateur. De plus, le 10 dispositif 34 donne une information correct/incorrect, selon la qualité du résultat du décodeur. STRATEGIE DU DECODAGE. La stratégie générale est à présent la suivante, avec référence à l'organigramne de la Fig. 5. En tout premier lieu, le contenu total d'un secteur est rassembl4, du moins dans la mesure o il concerne la partie qui est protégée par le code de pseudo-produit (100). Dans ce cas, tous les symboles de syndrome des mots P sont déterminés. Tous les mots P avec un 20 syndrome différent de zéro reçoivent une première étiquette (drapeau) et ces premières étiquettes sont comptées pour l'ensemble du bloc du code: CP. Ensuite, tous les symboles de syndrome pour les mots Q sont déterminés. Tous les mots Q avec un syndrome différent 25 de zéro reçoivent une seconde étiquette et ces secondes étiquettes sont comptées pour l'ensemble du bloc de code: CQ. Pour certaines applications, on peut travailler avec des drapeaux tri- ou polyvalents. Les drapeaux ont alors, par exemple, comme signification 30 "00": le mot de code est correct et a toujours été correct; "11": le mot de code a un syndrome différent de zéro; "10": le mot de code est corrigé de telle manière que le syndrome devienne nul par la suite (01 ne se présente donc pas dans ce cas). Ainsi, un certain 35 degré de signalisation de la quantité d'erreurs cor- rigées reste présent, même après correction. Apres la détermination des deux résultats de comptage, le système décide si le décodage débute par les mots de code P ou par les mots de code Q. Lorsque le nombre 5 d'étiquettes P est le plus élevé ou est égal au nombre d'étiquettes Q, le décodage débute par les mots P: x:P; y:=Q. Dans le cas (moins probable) o les étiquettes Q sont plus nombreuses que les étiquettes P, le décodage débute par les mots Q: y:=P; x:=Q. Il-semble que, 10 par ce choix, le nombre d'erreurs par mot de code à décoder est premièrement en moyenne diminué, ce qui augmente -la probabilité d'obtenir directement un succès. Lorsque le premier et le second code possèdent une distance minimum différente entre les mots de code 15 en question, il est le plus souvent avantageux de débuter par les mots de code du code présentant la plus grande distance. Finalement, on règle un certain nombre de paramètres de calcul, sur les valeurs correctes, comme le nombre de mots x et y, un numéro d'ordre pour 20 un mot actuel et les valeurs d'une grandeur bivalente coorx sur "faux" (incorrect) et d'une grandeur bivalente corrysur "vrai" (correct). Le système passe ensuite au bloc 102 dans lequel le premier mot de code x suivant est sollicité: donc à présent le premier. 25 Dans le bloc 104 est détecté si le syndrome de ce mot est égal à zéro. Dans l'affirmative, l'étiquette (étiquette x) de ce mot de code est mise à zéro (réajusté) et le résultat pour les étiquettes en question décrémenté (106), bien entendu si cette étiquette avait 30 la valeur-l. Si cette étiquette avait la valeur zéro, le système passe au bloc 108 sans qu'une quelconque action soit entreprise. Un fonctionnement plus rapide est réalise par le fait que dans le bloc 102, le premier mot de code suivant présentant une étiquette 35 différente de zéro est sollicité. Dans le bloc 108 est alors détecté si le mot x en question était le dernier de la série de mots à étiquette x. Le plus souvent, cela ne sera pas le cas et le système revient au bloc 102. Lorsque dans le bloc 104, un syndrome différent de zéro est détecté, le système passe au bloc 110. Dans ce bloc, la localisation du symbole perturbé supposé unique est calculée. Dans le bloc 112 est détecté si le symbole en question fait partie d'un mot y dont l'étiquette a aussi la valeur 1. Diverses possibilités 10 existent: a. la localisation du symbole perturbé tombe en dehors des limites du mot de code par le fait que le numéro de symbole est supérieur à 45, ou à 23; b. le symbole perturbé en question ne fait partie que 15 d'un mot de code; c. le mot y en question a une étiquette qui a la valeur "0"; d. le mot y en question a une étiquette qui a la valeur "1". Dans le cas a, la correction est donc impossible et ceci indique qu'une erreur certainement impossible à corriger à ce moment est présente, par exemple parce qu'en fait deux symboles du mot de code en question sont perturbés. Cette erreur peut éventuellement être 25 corrigée effectivement plus tard (voir ci-après). Le cas b est corrigé, mais à titre de protection supplémentaire, l'étiquette appartenant à ce mot de code reste non modifiée. Le cas c est considéré comme trop peu sûr et la correction n'est pas effectuée; les 30 étiquettes restent aussi non modifiées (il pourrait toutefois s'agir d'une correction correcte dans le cas o le mot y en question comportait une erreur indétectable). Le cas d est considéré comme une correction suffisament "sure" et est exécuté. Dans les cas a, c, 35 le système revient donc au bloc 108. Lorsque le test dans le bloc 112 est positif (Y), le système passe au bloc 114, o l'erreur est corrigée. Ceci est toujours possible. La grandeur corrx est rendue "vraie" (si elle l'était déjà, elle le reste). Ceci indique que pendant 5 le parcours des mots x, au moins une correction est exécutée. Ensuite, dans le bloc 114, le syndrome du mot de code x en question est mis à zéro. Celui-ci est toujours correct à cause de la distance minimum de trois. De plus, dans le bloc 116, le syndrome du mot y 10 en question est réajusté pour tenir compte de la correction effectuée. Le réajustement exige moins de calcul que le recalcul total du syndrome pour le mot en question. Lorsque la distance minimum d'un code est supérieure à trois, la correction d'un mot de code 15 fournit aussi un syndrome zéro, de sorte qu'il peut dans ce cas aussi directement être posé égal à zéro. Dans le bloc 113 est détecté si le syndrome y modifié a la valeur 0. Dans la négative, le système revient au bloc 102.. Dans l'affirmative, les deux étiquettes sont 20 mises à zéro (réajustées) dans le bloc 120 et les deux résultats de comptage sont décrémentées. Le système revient ensuite au bloc 102. Les cas a à d inclus mentionnés ci-dessus sont indiqués au niveau des transitions en question. Des détections implicites des 25 cas a, b respectivement dans les blocs 110, 114 sont omises par souci de simplicité. Lorsque le dernier mot a été traité (le bloc 108 donne une réponse positive), le système passe au bloc 122. Dans ce bloc est détecté si le nombre d'éti30 quettes x est tout au plus égal à deux. Lorsque le nombre est supérieur a deux, le système passe au bloc 130. Dans ce bloc est contr8ôlé si une quelconque correction a eu lieu dans la dernière opération de correction (mots x) ou dans l'avant dernière opération 35 de correction. Dans la négative, aucune amélioration ne peut plus se produire et le système passe au bloc 134: erreur. Le bloc de code est impossible à corriger. Après la première opération de correction, ceci ne peut pas se produire parce que, par le postulat initial de corry, une opération de correction factice "de rang zéro" est engendrée. Lorsqu'une correction a effectivement eu lieu, le système passe au bloc 132: dans ce bloc, les fonctions de x et y sont échangées. De plus, la grandeur corrx est réglée sur "pas vraie". Une des mesures d'initialisation dans le bloc 100 est d'une manière correspondante que corry acquiert aussi une valeur déterminée, à savoir "vraie". De plus, le compteur de mots est positionné sur une valeur initiale, de sorte que le bloc 102 sollicitera effectivement le premier mot. Lorsqu'il est détecté dans le bloc 122 qu'une ou deux étiquettes x subsistent, le système procède à une correction des mots y, alors que les étiquettes x servent d'information indicatrice. Lorsque le nombre d'étiquettes x est égal à zéro, il s'agit là d'une opération factice et le système passe directement au bloc 126. Lorsque le nombre d'étiquettes x est de 1 ou de 2, on suppose que tous les mots y avec un syndrome différent de zéro sont précisément perturbés dans cet emplacement de mot x. Lorsque finalement le système atteint le bloc 126, au moyen d'une information CRC incluse dans les symboles de données du bloc de code, qui est connue d'après la référence bibliographique, il est détecté si la correction est à présent bonne. Dans l'affirmative, 30 le système passe au bloc 128 et l'information d'utilisateur peut être rendue disponible. Dans la négative, le système passe au bloc 134. D'autres tentatives éventuelles pour retrouver l'information (à l'aide d'un nouvel essai de lecture, d'une information d'ombre, etc.) sortent du cadre de l'invention. Dans le bloc 134, il est signalé que la correction est impossible. Lorsque dans le bloc 122 il est détecté que le nombre de drapeaux est de trois ou plus de trois (au moins 5 égal à la distance minimum des mots de code y), le système passe au bloc 130. Dans ce bloc est détecté si une quelconque correction a eu lieu. Après la première tentative, une tentative de rang zéro (corry) est alors engendrée. Lorsqu'aucune modification ne s'est produite 10 (N), la correction est impossible et le système passe au bloc 134. Lorsqu'une certaine modification a eu lieu, le système passe au bloc 132. Dans certains cas, seule la valeur corrx peut être considérée dans le bloc 130. Dans le bloc 132, la valeur de corrx est trans15 mise, corrx est initialisé. Et les fonctions des mots x et y sont échangées en une seule opération (indiquée par des parenthèses). Le système revient ensuite au bloc 102. Les Fig. 6a à 6f indiquent quelques motifs 20 d'erreurs spécifiques, dans l'hypothèse d'un code de produit vrai présentant une distance minimum de trois sur les symboles. La Fig. 6a indique six erreurs (petites croix) dans un bloc de 8x8 symboles. Ces erreurs se rapportent chaque fois à une autre rangée et 25 à une autre colonne (mot P ou mot Q), de sorte qu'après une exécution du traitement dans un sens, toutes les corrections seront effectuées. Sur la Fig. 6b, toutes les erreurs se trouvent dans une seule colonne. La correction du mot de code de cette colonne est donc 30 impossible. La correction des mots de rangées fournit cependant directement un bloc de code entièrement corrigé. Sur la Fig. 6c, une seule rangée est impossible à corriger. Une seule colonne aussi est impossible à corriger. Toutes les autres rangées et aussi 35 toutes les autres colonnes peuvent toujours être corrigées. Lors de la première série d'analyses, tous les mots de rangées (à l'exception de cette seule et unique) peuvent alors être corrigés. Lors de la série d'analyses suivante, tous les mots de colonnes peuvent être corrigés. La seule amélioration possible dans le cas de la Fig. 6d peut résulter de la correction du seul mot de rangée ne pr6sentant qu'un seul symbole perturbé. Il y a alors dans les deux directions, deux mots présentant deux symboles perturbés. Les deux mots 10 de colonnes perturbés sont alors, par exemple, corrigés, tandis que l'indication des emplacements de rangées perturbés (étiquettes) servent d'information indicatrice. Il s'agit là d'un exemple d'un motif qui est corrigé selon le bloc 124 de la Fig. 5. La Fig. 6e 15 indique un motif selon lequel tous les mots de rangée peuvent être corrigés avec l'aide d'une information indicatrice formée sur une colonne. La Fig. 6f indique un exemple d'un motif simple qui est impossible à corriger. Appendice A: :démarrage 102:mot à x étiquette x suivant 104:syndrome = zéro? 106: supprimer étiquette x, décrémenter compte x 108:dernier mot à étiquette x? :calculer emplacement d'erreur 112:correspond à mot à étiquette y? 114:corriger symbole; corrx:= vrai; syndrome x: =-0 10 116: modifier syndrome y 118: syndrome y modifié = zéro? :supprimer étiquette x; décrémenter compte x supprimer étiquette y; décrémenter compte y 122: 0 126:C.R.C. O.K.? 128: O.K, STOP : corrx + corry = vrai? 132:corrx.= corry; corrx:= faux; (y: = x; x:= y) 134:erreur, stop. RE V E N D I C A T I ON S __________________________1.- Procédé pour corriger un bloc de symboles de code qui est réparti sur une première série de 5 premiers mots de code d'un premier code à distance maximum de séparation, et qui est d'autre part réparti sur une seconde série de seconds mots de code d'un second code à distance maximum de séparation, chaque mot de code correct dans un code possédant une distance 10 minimum par rapport à tout autre mot de code correct d'au moins trois calculé sur les symboles et tous les symboles de code non redondants faisant partie à la fois d'un premier mot de code et d'un second mot de code, ce procédé comportant les pas suivants: a. le rassemblement d'un bloc entier de symboles de code; b. la détermination de tous les symboles de syndrome des premiers mots de code et des seconds mots de code et la formation d'un drapeau pour chaque mot 20 de code pour lequel le syndrome diffère de zéro; c. la sommation du nombre de drapeaux pour l'ensemble des premiers mots de code et la sommation séparée de la première du nombre de drapeaux pour l'ensemble des seconds mots de code; d. la détermination, pour un premier mot de code à syndrome différent de zéro, d'un emplacement d'erreur d'une erreur corrigible; e. la détection d'un second mot de code indiqué comme perturbé qui comporte cet emplacement d'erreur et 30 la correction de l'erreur en question uniquement dans le cas d'un résultat de détection positif, mais dans le cas contraire, l'exécution du pas d'un premier mot de code suivant; f. après une correction selon l'étape e, le réajus35 tement des syndromes du premier mot de code en question et du second mot de code en question et, exclusivement dans le cas o les deux syndromes sont alors nuls, le réajustement des deux drapeaux en question et la décrèmentation des résultats de 5 sommation des nombres de drapeaux, et ensuite l'exécution du pas d sur un premier mot de code suivant; g. après l'exécution de ce pas sur au moins tous les premiers mots de code indiqués comme étant per10 turbés, l'échange de fonction entre les premiers mots de code et les seconds mots de code et la répétition des pas d, e et f jusqu'à l'absence de nouvelle modification après deux exécutions successives des pas d, e, f pour tous les premiers mots 15 de code alors en vigueur; h. la fourniture d'un bloc de symboles de code accompagnée de la signalisation que celui-ci est correct ou incorrect. 2.- Procédé suivant la revendication 1, 23 caractérisé en ce que pour un premier mot de code d'un code à distance max-imum de séparation qui présente une distance minimum sur les symboles de code de trois, après l'exécution d'une correction, le syndrome en question est toujours positionné sur zéro. 3.- Procédé suivant la revendication 1 ou 2, caractérisé en ce que lors de l'exécution du traitement du pas d sur un premier mot de code sous la commande d'un drapeau formé pour ce mot de code, un syndrome différent de zéro est détecté et que dans le cas inverse, -le drapeau en question est réajusté et le résultat de sommation en question est remis à jour. 4.- Procédé suivant la revendication 1, 2 ou 3, caractérisé en ce que lorsqu'on atteint un résultat de sommation des drapeaux des premiers mots de code qui 35 est tout au plus égal à la distance minimum pour les seconds mots de code alors en vigueur diminuée d'une unité, ces seconds mots de code sont ensuite corrigés dans un mode d'effacement, o un quelconque drapeau d'un premier mot de code sert d'indicateur d'erreur. 5.- Procédé suivant l'une quelconque des revendications 1 à 4, caractérisé en ce qu'au terme de la dite correction, un dernier pas comprend un recalcul d'un code de détection d'erreurs présent dans le bloc de code en vue de former la dite signalisation de 10 l'état correct ou incorrect. 6.- Dispositif pour l'exécution du procédé suivant la revendication 1, pour la correction d'un bloc de symboles de code qui est réparti sur une première série de premiers mots de code d'un premier 15 code à distance maximum de séparation et qui est - d'autre part réparti sur une seconde série de seconds mots de code d'un second code à distance maximum de séparation, chaque mot de code correct dans un code possédant une distance minimum par rapport à tout autre 20 mot de code correct d'au moins trois calculé sur les symboles et tous les symboles de code non redondants faisant partie à la fois d'un premier mot de code et d'un second mot de code, ce dispositif étant pourvu de moyens de réception pour recevoir et rassembler un bloc 25 entier de symboles de code, de premiers moyens de calcul alimentés par les moyens de réception pour former, à partir des symboles reçus, pour chaque mot de code, un certain nombre de symboles de syndrome, de moyens de retenue alimentés par les premiers moyens de 30 calcul pour- stocker un drapeau pour chaque mot de code pour lequel le syndrome est différent de zéro et retenir pour les premiers mots de code et séparément pour les seconds mots de code, un résultat de sommation du nombre de drapeaux, de seconds moyens de calcul 35 alimentés par les premiers moyens de calcul pour déterminer pour chaque mot de code, si possible et nécessaire, un ou plusieurs symboles de correction, de moyens de correction alimentés par les moyens de réception et les seconds moyens de calcul pour ajouter un symbole de correction à un symbole perturbé et d'un dispositif de sortie pour présenter un bloc si possible correct à un dispositif d'utilisateur, caractérisé par la présence d'un dispositif de commande de séquence avec un certain nombre de positions pour, dans une 10 position pour un quelconque premier mot de code, déterminer un symbole de correction et un symbole de localisateur, ce dispositif de commande de séquence étant pourvu de moyens d'adressage pour, à l'aide du dit symbole de localisateur, adresser un syndrome d'un 1S second mot de code en question et d'un premier détecteur pour, exclusivement sous la commande d'un syndrome mentionné en dernier lieu qui est différent de zéro, corriger le symbole de code qui est adressé par le symbole de localisateur mentionné en dernier lieu et 20 réajuster un quelconque syndrome qui s'y rapporte, et étant pourvu d'un deuxième détecteur pour, exclusivement sous la commande d'un syndrome alors égal à zéro du second mot de code en question, commander les moyens de retenue pour le réajustement des drapeaux pour le 25 premier et le second mot de code en question et décrémenter les résultats de sommation, puis pour exécuter le traitement sur un premier mot de code suivant, par le fait que ce dispositif de commande de séquence comprend un dispositif d'échange pour, après passage par toutes.les positions correspondant au moins aux premiers mots de code perturbés, opérer un échange de fonction entre des premiers et des seconds mots de code et activer d'autres des dites positions, et par le fait qu'un troisième détecteur est présent pour, lors de 35 l'activation du dit dispositif d'échange, détecter 27 5 1 2599916 toute modification apportée pendant les deux parcours les plus récents dans des premiers mots de code alors pertinents, et en cas d'un résultat de détection négatif, activer le dispositif de sortie mentionné. 7.- Dispositif suivant la revendication 6, caractérisé en ce qu'un quatrième détecteur est présent pour détecter un drapeau non réajusté et activer, exclusivement sous la commande d'un résultat de détection positif, la position du dispositif de commande de séquence pour le premier mot de code en question. 8.- Dispositif suivant la revendication 6 ou 7, caractérisé en ce qu'un cinquième détecteur est présent pour un résultat de sommation des drapeaux des premiers mots de code qui est tout au plus égal à la distance minimum pour les seconds mots de code alors en 15 vigueur diminuée d'une unité pour, sous la commande d'un résultat de détection positif, activer le dispositif d'échange et activer ensuite les seconds moyens de calcul pour ensuite corriger les premiers mots de code alors en vigueur dans un mode d'effacement, ou un 20 quelconque drapeau d'un second mot de code alors en vigueur fonctionne comme un indicateur d'erreur.