FR2540690A1 - Verificateur de codeur - Google Patents

Verificateur de codeur Download PDF

Info

Publication number
FR2540690A1
FR2540690A1 FR8401840A FR8401840A FR2540690A1 FR 2540690 A1 FR2540690 A1 FR 2540690A1 FR 8401840 A FR8401840 A FR 8401840A FR 8401840 A FR8401840 A FR 8401840A FR 2540690 A1 FR2540690 A1 FR 2540690A1
Authority
FR
France
Prior art keywords
encoder
bit
polynomial
galois
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8401840A
Other languages
English (en)
Other versions
FR2540690B1 (fr
Inventor
Roger W Wood
Charles L Matson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ampex Corp
Original Assignee
Ampex Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ampex Corp filed Critical Ampex Corp
Publication of FR2540690A1 publication Critical patent/FR2540690A1/fr
Application granted granted Critical
Publication of FR2540690B1 publication Critical patent/FR2540690B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2215Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/01Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

L'INVENTION CONCERNE LES TECHNIQUES DE CODAGE NUMERIQUE. L'INVENTION CONSISTE EN UN VERIFICATEUR POUR UN CODEUR DE REED SOLOMON DANS LEQUEL DES DONNEES ET DES MULTIPLETS DE PARITE SONT CODES EN BLOCS DE DONNEES DE FACON QUE CHAQUE BLOC CONSISTE EN UN POLYNOME DE CORPS DE GALOIS DIVISIBLE PAR UN POLYNOME GENERATEUR QUI EST LE PRODUIT DE PLUSIEURS FACTEURS. LE VERIFICATEUR COMPREND UN DIVISEUR DE POLYNOMES 68, 70, 78, 80, 82, 90 QUI DIVISE DES MOTS DE CODE RESPECTIFS PAR L'UN DES FACTEURS DU POLYNOME GENERATEUR POUR PRODUIRE UN SIGNAL DE RESTE LIE AU RESTE D'UNE TELLE DIVISION. UN DISPOSITIF D'INDICATION 92 REAGIT AU SIGNAL DE RESTE EN INDIQUANT UN FONCTIONNEMENT DEFECTUEUX DU CODEUR LORSQUE LE SIGNAL DE RESTE CORRESPOND A UN RESTE DIFFERENT DE ZERO. APPLICATION AUX MAGNETOSCOPES.

Description

wjf 9 La présente invention concerne le codage de trains de données et en
particulier le test du fonctionnement d'un codeur destiné à placer un train de données d'entrée dans un format de code correcteur d'erreur qui permet la correction d'erreurs multiples L'invention concerne encore plus parti- culièrement le test d'un codeur du type Reed-Solomon pour un enregistreur numérique à large bande, comme par exemple pour
la télévision.
L'invention s'applique en particulier au contrôle de codeurs utilisés dans les systèmes correcteurs d'erreur qui sont décrits dans le brevet US 4 162 480 Des parties assez étendues de ce document seront répétées ici, et le
reste est incorporé dans la présente demande par référence.
Dans tout système de codage de données, le décoda-
ge est séparé du codage dans l'espace et/ou dans le temps, car sinon les données seraient aisément disponibles pour
l'utilisation sans codage Pour cette raison, il est impor-
tant de connaître au moment et au lieu du codage si le co-
deur fonctionne correctement ou non, car il n'y a aucun intérêt à poursuivre le codage de données si elles ne peuvent pas être décodées Dans le système du brevet précité, des erreurs de transmission, comme dans l'enregistrement et la reproduction, sont corrigées par des circuits correcteurs d'erreur Le bon fonctionnement de tels circuits dépend
cependant d'un codage correct conformément à un format parti-
culier Par conséquent, il est important d'être capable de dire au moment et au lieu de codage que le message est codé
dans un tel format.
L'information qui est transmise par un canal de communication, englobant une bande d'enregistreur magnétique, est généralement reçue sous la forme d'une combinaison de
l'information d'origine et d'une composante de bruit Llinté-
grité de l'information est préservée de façon pratiquement
complète lorsque le rapport signal/bruit du système est éle-
vé Par conséquent, des perfectionnements dans la conception
et la réalisation du matériel approprié permettent d'augmen-
ter la probabilité de transmission exempte d'erreur, théori-
quement jusqu'aux limites imposées par le canal lui-même.
Pour minimiser l'effet de limitations intrinsèques du canal, on emploie diverses techniques qui exigent finalement un com- promis entre la largeur de bande et la cadence de transfert d'information Diverses limitations imposées à la largeur de bande du canal, à la cadence de transfert d'information et au degré de complexité du matériel de réception et d'émission
contribuent à un taux d'erreur probable.
Bien que la redondance soit un élément commun à ces techniques, une simple répétition pénalise lourdement la cadence de transmission Par exemple, une seule répétition réduit la cadence de transfert d'information de 50 % et une seconde répétition (pour mettre en oeuvre une logique à décision majoritaire) réduit la cadence d'information de 66, 66 % D'autres moyens pour assurer l'intégrité du message
ont employé des techniques de codage très élaborées qui per-
mettent la détection, la localisation et la correction d'erreurs Parmi les exigences imposées à ces techniques de
codage figurent une cadence de transfert d'information éle-
vée et la possibilité de corriger des erreurs multiples dans
n'importe quel mot de code donné de données transmises.
Dans ce contexte, un mot de code résulte d'opéra-
tions de codage accomplies sur les éléments des données
d'origine comprenant k bits, pour donner un mot d'informa-
tion codé ("mot de code") ayant k bits d'information et r bits de contrôle La redondance codée sous la forme de r bits de contrôle est alors disponible pendant les opérations de décodage pour détecter et corriger des erreurs dans le mot de code (comprenant l'ensemble des k + r bits), jusqu'à une certaine limite, ou simplement pour détecter des erreurs
jusqu'à une certaine limite plus élevée.
On a étudié de nombreux codes de ce type, ayant des propriétés mathématiques spécifiques, et on a imaginé des
procédures de décodage efficaces au point de vue mathémati-
que, mais la mise en pratique avec l'efficacité associée-exi-
ge un ordinateur spécialisé Par exemple, on trouve certaines classes de codes en associant à chaque élément d'information d'un mot de code un élément d'un corisde Galois. Très brièvement, le corps de Galois est un corps fini, dont les éléments peuvent être représentés par des polynômes dans un élément primitif particulier du corps, à coefficients dans le sous-corps des nombres premiers Les
positions d'erreurs et la valeur exacte des éléments d'infor-
mation erronés sont déterminées après construction de cer-
tains polynômes définis dans le corps de Galois et détermina-
tion des racines de ces polynômes Il est donc nécessaire de disposer d'un décodeur capable d'effectuer des opérations
conformément à l'arithmétique dans un corps de Galois.
Parmi les codes correcteurs d'erreurs, une classe.
particulière de ces codes, décrite séparément par Bose, Chaudhuri etHocquenhem (d'o le nom de codes "BCH") est
capable de corriger des erreurs multiples Les codes Reed-
Solomon (RS), en relation avec lesquels on décrira l'inven-
tion, sont des cas spéciaux de tels codes.
Une façon d'aborder le problème de la correction d'erreur suffisamment rapide pour des données codées en code BCH a été décrite sous la forme d'un algorithme publié dans l'ouvrage de Berlekamp, intitulé Algebraic Coding Theory
(McGraw-Hill, 1968) Dans l'utilisation de l'algorithme pré-
cité qui a été faite dans l'art antérieur, on a employé dans
un cas un ordinateur universel commandant un dispositif con-
sistant fondamentalement en une unité arithmétique périphéri-
que réalisant des opérations dans un corps de Galois Certai-
nes unités arithmétiques de l'art antérieur ont utilisé de grandes tables enregistrées pour réaliser des inversions
apparaissant dans des procédures de décodage.
Le brevet précité décrit un calculateur destiné à
mettre en oeuvre l'arithmétique et l'algèbre dans un corps-
de Galois Le calculateur a moins de composants, moins de
chemins de données et une plus grande vitesse qu'un ordina-
teur universel employé dans ce but Il comprend trois sous-
structures distinctes avec une configuration telle que des opérations arithmétiques sur les données soient effectuées dans une sous-structure d'unité arithmétique, tandis que l'adressage de mémoire pour cette unité arithmétique est effectué séparément dans une sous-structure de générateur d'adresse, et chaque sous-structure est commandée par une
sous-structure d'unité de commande, grâce à quoi ces sous-
structures peuvent fonctionner simultanément en synchronisme.
Le brevet précité comprend un examen général des aspects importants de la théorie du codage, applicable aux
codes BCH non binaires en général et aux codes RS en particu-
lier L'ouvrage Algebraic Coding Theory, mentionné ci-dessus, est recommandé à titre de référence générale Dans un mode de réalisation binaire, on peut considérer que de tels codes ont trois paramètres entiers positifs principaux, n, m et t, n étant la longueur totale d'un mot d'information codée, avec des caractères à m bits, et n= 2 m-1, tandis que t est la capacité de correction d'erreur du code En supposant qu'il n'y ait pas moins de 2 t caractères redondants ou caractères de contrôle, un tel mot de code est capable de procurer une
redondance d'information suffisante pour détecter et corri-
ger n'importe quel ensemble comprenant au plus t erreurs indépendantes, dans le mot de code d'information codée, ou pour corriger n'importe quel ensemble comprenant au plus 2 t "effacements" indépendants On peut définir un "effacement" comme étant une erreur de position connue dans le mot de
code reçu.
On peut résumerbrièvement les propriétés d-'un corps algébrique fini En ce qui concerne l'invention, on peut définir un corps de manière non formelle comme étant
un ensemble d'éléments comprenant l'élément nul, O, et l'élé-
ment unité, 1, sur lequel sont définies des opérations d'addition, de multiplication et de division L'addition et la multiplication sont associatives et commutatives, et la
multiplication est distributive par rapport à l'addition.
Tout élément du corps comporte un opposé unique tel que l'opposé d'un élément donné additionné à cet élément donné lui-même donne l'élément nul ou O En outre, tout élément
différent de zéro possède un inverse unique tel que le pro-
duit d'un tel élément par son inverse donne l'élément unité,
1 Les éléments qui constituent le corps peuvent être consi-
dérés comme des représentations symboliques de nombres binai-
res, ternaires ou à base q On comprendra mieux la descrip-
tion de l'invention en considérant un corps dont les éléments
sont des nombres à base deux.
Le corps fini général est appelé le corps de Galois et il est spécifié par deux paramètres: un nombre premier p et un nombre entier m, de façon que GF (p m) décrive un corps fini particulier (le corps de Galois d'ordre pm) ayant pm éléments Dans un tel corps, toutes les opérations entre des éléments appartenant au corps donnent des-résultats qui sont à nouveau des éléments du corps Par exemple, l'opération d'addition effectuée sur des éléments du corps fini GF( 2) est définie, modulo 2, conformément à des relations qui n'admettent pas une "retenue" Ainsi, les tables d'addition binaire sont: 0 + 1 = 1 et 0 + 0 = 1 + 1 = 0 Arithmétiquement, ceci est une addition "sans retenue", quelquefois appelée une demi-addition ou plus commodément désignée par la fonction OU- EXCLUSIF On voit que l'absence de retenue limite la
valeur de la somme résultante au corps fini.
La base mathématique des codes de Reed-Solomori et de leur décodage, qui est envisagée de façon plus détaillée au Chapitre 10 de l'ouvrage Algebraic Coding Theory, est la suivante: Soit " un élément primitif de GF( 2 m) Le polyn 8 me générateur du code est défini par la relation f+d2 g(X) = 2 (x)) i=f dans laquelle d est la distance prévue du code La longueur de bloc du code de Reed-Solomon est n= 2 m -1 Les mots de code sont constitués par tous les polyn 3 mes ayant des degrés
inférieurs à N qui sont des multiples de g(x).
Soit C(x) le mot de code transmis:
C(x) = Cixi.
i=O
Si le bruit du canal ajoute à ce mot de code la configura-
d'erreur E(x) = E x, i=O le mot de code reçu est alors: n-1
R(x) = Rix = C(x) + E(x).
i= O On peut faire passer le mot de code reçu dans un re-codeur (encore appelé générateur de syndrome) qui produit en sortie le reste de la division de polynôme: S(x) = Reste de lR(x)/g(x)l = Reste de UE(x)/g(x)l à partir duquel on peut déterminer les fonctions symétriques de somme de puissance pondérée qui sont définies par Si = S(oi) = E (oi) Du fait que C(x) est un multiple de g(x), il en résulte que pour i=f, f+l, f+d-2, C(c 4)=o, d'o: Si=R(çi) i=f,f+l, f+d-2 La fonction génératrice des S peut être définie par oo S(x) = Sf+j_lz j=l Pour corriger les erreurs, le décodeur peut déterminer les positions d'erreur et les valeurs d'erreur correspondantes Si: n-1 E(x) = E x, i=O la position d'erreur d'ordre j peut être définie par ej Xj=j en désignant par ej les entiers particuliers qui sont tels que: E /0 e i J
On peut associer de façon similaire les positions d'efface-
ment à des éléments du corps, et on peut définir les valeurs de correction correspondantes par: Yj =Ee J Pour déterminer les X et Y inconnus, il est utile de définir les polynômes suivants: Polynôme localisateur d'erreur: cr(z) = 1 T ( 1 xiz) Xi = positions d'erreur Polynôme localisateur d'effacement: X(z) = T ( 1 Xiz) i Xi = positions d'effacement Polynôme localisateur de correction: p(z)=u(z)} (z) Polynôme évaluateur de correction: t(z)= z Xif Yi ( 1 Xj) correction j/i Pour trouver les X et Y, le décodeur multiplie
tout d'abord S(z) par %(Z) pour obtenir la fonction généra-
trice de syndrome modifiée: T(z) = (z) (z) Le polynôme évaluateur de correction, inconnu, et le polynôme localisateur d'erreur, inconnu, sont liés par l'équation clé: T(z) oez) = W(z) mod zd T(z) étant donné, on peut trouver les solutions de degré faible de a(z) etc O(z) en résolvant cette équation clé en utilisant l'algorithme itératif qui est présenté dans
l'ouvrage Algebraic Coding Theory, et qui a été décrit ulté-
rieurement de façon plus, succincte par Sugiyama, et col, dans'"A Method For Solving Key Equations for Decoding Goppa Codes'" Information and Control, Vol 27, N O 1, janvier 1975,
pages 87-99 -
Une fois que les coefficients de 6 (z) sont connus, le décodeur peut évaluer les polyn 8 mes 6 ( 1), (-1), C(o -2),
C( -3),
) deg ( J= 1 Si C(a 2 i)o, le caractère reçu à la position ai est présumé correct (à moins qu'il soit effacé) Si C(C-i)=O ou si 7 (E-i)=o, O i est une position de correction, et le caractère reçu à cette position doit être corrigé par la valeur donnée dans l'équation ( 10 32) de l'ouvrage Algebraic Coding Theory:1 f 1) x.lf w(Xi-) y i Y =- Yi=-1 l j 7 ( 1Xj Xi j 4 i Comme indiqué ci-dessus, il est souhaitable de vérifier le bon fonctionnement d'un codeur au moment du codage Bien que le décodeur du brevet précité puisse être
utilisé pour une telle vérification, par exemple en l'utili-
sant pour effectuer un décodage (sans correction) et en com-
parant ensuite les signaux décodés avec les signaux d'origi-
ne, ceci revient à utiliser des possibilités surabondantes, lorsqu'il n'est pas nécessaire, ou même souhaitable, de corriger les signaux On n'utilise pas l'invention pour rechercher l'information qui a été enregistrée, mais pour savoir si le codeur fonctionne correctement ou non, afin que les signaux reçus ou reproduits puissent être corrigés des
erreurs apparues dans la transmission, comme en enregistre-
ment et en reproduction A titre d'exemple, une utilisation
préférée de l'invention est relative à de petits magnétosco-
pes relativement portables, dans lesquels l'espace et l'éner-
gie sont limités, ou le poids est un facteur important Le calculateur correcteur d'erreur du brevet précité est lourd, volumineux, complexe et consomme beaucoup d'énergie Il est
également coûteux.
Une autre possibilité pour vérifier le fonctionne-
ment du codeur consiste simplement à employer un second
codeur identique et à comparer leurs signaux de sortie Tou-
te différence indiquerait un fonctionnement défectueux de l'un d'eux Une possibilité connexe consiste à utiliser un re-codeur Ces deux possibilités exigent un second codeur complet, ce qui conduit à un gaspillage de matière, d'argent,
d'énergie et d'espace.
L'invention procure un circuit de vérification
léger, petit, simple, économisant l'énergie et économique.
L'invention est basée sur les propriétés du code particulier que génère le codeur On décrira un circuit particulier pour un code de Reed-Solomon ( 255, 243), qui est un code dans lequel le train de données consiste en mots de code de 255 multiplets de longueur, parmi lesquels 12 multiplets sont des multiplets de parité Dans la notation ci-dessus n = 2 M-1 = 255, m = 8 Dans un tel code, les mots de code se présenteront sous la forme du polynôme de multiplets à 8 bits de la forme:
254 253 1
C(x) =C 25 x + 05 x +C 1 x+ C x-254 x 253 O 1 Tout mot de code est un multiple du polynôme générateur,
c'est-à-dire que tout mot de code peut être divisé exacte-
ment par le générateur en donnant un reste égal à zéro Le générateur luimême est un polynôme du douzième degré, de la forme: 12 il 1 g(x) = g 12 x + g 1 x + g 9 x 1+ g O qui est à son tour le produit de 12 facteurs g (X) =' (x + Okf x + &f+) (x + kf+ 11 Dans l'exemple particulier présenté ci-après, f= 122 Tout mot de code peut donc être divisé exactement par l'un quelconque de ces facteurs du premier degré, de façon à donner un reste égal à zéro.
Conformément à l'invention, un circuit vérifica-
teur de codeur comprend des moyens pour diviser des mots de code respectifs par un facteur choisi dans l'ensemble f + 11 133 X-O à x-c ", et en particulier Z 3 dans l'exemple ci-dessous, et des moyens pour déterminer si le reste d'une telle division est ou non différent de zéro Des moyens réagissant à un tel reste différent de zéro indiquent alors
un fonctionnement défectueux du codeur On utilise la divi-
sion de polynômes et-la multiplication dans un corps de
Galois qui sont décrites dans le brevet précité.
Le vérificateur de codeur de la présente invention examine des mots de code codés (données et parité), de façon à contrôler une relation de parité relativement simple Ce contrôle de parité donne un résultat positif pour tous les mots de code valides mais donne un résultat négatif pour des défauts du codeur qu'on peut raisonnablement envisager, du fait que le vérificateur est lié à la forme décomposée en produit de facteurs du polynôme générateur, tandis que le
codeur est basé sur la forme normale du polynôme générateur.
Un aspect important de l'invention porte donc sur la réalisation de moyens pour vérifier le bon fonctionnement d'un codeur de Reed-Solomon en divisant dans le corps de Galois les mots de code codés par un facteur du polynôme générateur Un autre aspect porte sur la réalisation d'un
circuit diviseur de polynômes pour une telle division.
D'autres caractéristiques et avantages de l'inven-
tion seront mieux compris à la lecture de la description qui
va suivre de modes de réalisation et en se référant aux dessins annexés sur lesquels: La figure 1 est un schéma synoptique d'un système
de traitement de données, comprenant un codeur de Reed-
Solomon, dans lequel on peut utiliser le vérificateur de codeur de l'invention; La figure 2 est une représentation schématique d'un circuit effectuant une division de polynômes dans un corps de Galois, utile pour le codage de données dans le système représenté sur la figure 1, ou dans un re-codeur La figure 3 est une représentation simplifiée d'un circuit effectuant une division de polynômes dans un corps de Galois, utile dans le vérificateur de codeur de l'invention La figure 4 est une représentation schématique de la multiplication d'un multiplet de 8 bits par un élément primitif a; La figure 5 est une représentation schématique d'une multiplication par " 128 dans le corps de Galois, de la figure 4; La figure 6 est une représentation schématique d'une forme préféree-d'un vérificateur de codeur conforme à l'invention, destiné à vérifier le fonctionnement du codeur de Reed-Solomon du système représenté sur la figure 1; et La figure 7 est une représentation schématique d'un autre mode de réalisation du vérificateur de codeur
conforme à l'invention, destiné à contrôler le fonctionne-
ment du codeur de Reed-Solomon, ce vérificateur de codeur.
contrôlant le codage correct de tous les mots de code.
La figure 1 est une représentation sous forme synoptique d'un exemple d'un système de traitement de données dans lequel on peut utiliser un vérificateur de codeur 10
conforme à l'invention Un tel système de traitement de don-
nées comprend successivement une section d'entrée de données 12, un codeur de Reed-Solomon 14, un système de transmission de données 16, un décodeur 18 et une section de sortie de
données 20.
Dans l'exemple particulier, la section d'entrée de données 12 comprend une source de données 22 et un circuit
de changement de cadence 24 La source de données peut com-
prendre par exemple une caméra de télévision et des moyens pour présenter les données résultantes sous forme numérique, en multiplets de 8 bits en parallèle, à une cadence de 13,2 mégamultiplets par seconde En enregistrant les données et en les présentant en sortie plus rapidement qu'il ne les a reçues, le circuit de changement de cadence 24 reproduit les données à une cadence de 14,6 mégamultipiets par seconde, avec des trous dans les données pour recevoir des bits de
parité insérés par le codeur 14, et des mots de synchronisa-
tion, dans un but de récupération de la synchronisation.
Le codeur 14 de l'exemple est un codeur de Reed-
Solomon ( 255, 243) qui est basé sur les principes présentés ci-dessus et décrits de façon plus détaillée dans le brevet US 4 162 480 Un tel codeur assemble les données en mots de code de 255 multiplets de longueur, chacun d'eux contenant 243 multiplets de données suivis par 12 multiplets de parité, conformément au code de Reed-Solomon ( 255, 243) Les mots de code sont entrelacés jusqu'à une profondeur S de 16 Les mots de code sont ensuite appliqués au système de transmission
de données 16 à la cadence de 14,6 mégamultiplets par seconde.
Dans le système de transmission 16, les mots de code sont convertis sous forme série par un convertisseur parallèle-série 26, et le signal résultant est à une cadence de 116,8 mégabits par seconde Les bits *série sont appliqués à une section de brassage, d'insertion de synchronisation et de pré-codage, 28, qui fonctionne d'une manière classique, de façon à placer les données sous une meilleure forme pour
l'enregistrement, par des opérations de brassage et d'inser-
tion de signaux de synchronisation Les signaux brassés sont
appliqués à un circuit de démultiplexage et d'attaque d'enre-
gistrement, 30, qui démultiplexe le signal entre les têtes d'enregistrement d'un enregistreur à bande magnétique 32,
ayant pour fonction d'enregistrer les signaux pour une repro-
duction ultérieure.
A la reproduction, les signaux enregistrés sont lus sous forme analogique par des têtes de lecture, sur la bande de l'enregistreur 32, et ils sont appliqués à un circuit préamplificateur et multiplexeur, 36, qui reçoit les signaux provenant des différentes têtes de lecture, les combine et les amplifie Ces signaux sont appliqués à une section de
détection, d'extraction de synchronisation et de réarrange-
ment, 38, qui convertit les signaux analogiques sous forme numérique, supprime les signaux de synchronisation et réarrange les signaux pour annuler l'effet du brassage Dans la mesure o tout s'est bien passé dans la transmission (enregistrement et reproduction), les signaux présents à la
sortie de la section de détection, d'extraction de synchro-
nisation et de réarrangement 38 sont sous la même forme qu'à l'entrée de la section de brassage, d'insertion de
synchronisation et de pré-codage 28 Ces signaux sont conver-
tis par un circuit de conversion série-parallèle 40 pour
donner les multiplets à 8 bits en parallèle qui sont appli-
qués au système de transmission de données 16.
Le signal de sortie du système de transmission de
données est décodé par le décodeur 18 Le décodeur 18 com-
prend un re-codeur et il est basé sur les principes présen-
tés ci-dessus et décrits de façon plus détaillée dans le brevet US 4 162 480 Un tel décodeur supprime les bits de parité et corrige les erreurs présentes dans les données (qui sont habituellement produites par l'enregistrement et
la reproduction), de la manière décrite dans le brevet préci-
té Les signaux corrigés sont ensuite appliqués à la section
de sortie de données 20.
La section de sortie de données 20 comprend un
circuit de changement de cadence 42 et un circuit d'utilisa-
tion de données 44 Le circuit de changement de cadence 42 a pour action de ramener les données à la forme et à la cadence des données à l'entrée du circuit de changement de
254069-0
cadence 24 Le circuit d'utilisation de données 44, qui peut comprendre un moniteur, agit ensuite sur les données reçues
de n'importe quelle manière désirée.
Comme indiqué ci-dessus, dans le fonctionnement habituel du système de transmission de données 16, l'enre- gistreur 32 enregistre des données sans que le décodeur 18 ou la section de sortie de données soit disponible Pour avoir une certitude raisonnable que les données codées sont enregistrées d'une manière qui autorise le décodage avec
correction d'erreur, le vérificateur de codeur 10 de l'in-
vention est connecté à la sortie du codeur 14.
On peut comprendre plus complètement le fonction-
nement du codeur 14 en se référant à la figure 2.
La théorie générale des codeurs pour des codes cycliques est décrite dans l'ouvrage Algebraic Coding Theory, pages 119 à 125 Les paramètres d'un code cyclique sont les suivants: a) le corps arithmétique contenant les symboles de mots de code, b) le nombre, n, de symboles dans un mot de code,
c) le nombre, k, de symboles dans un bloc de messa-
ge,
d) un polyn 8 me, g(x), appelé le polynôme généra-
teur.
Le degré de g(x) est n-k et g(x) divise xn 1.
On teste une séquence de longueur N pour détermi-
ner si elle constitue un mot de code, en construisant un
polyn 8 me dont les coefficients sont les termes de la séquence.
Le premier terme est le coefficient de xn-1 (cn * c 0) -> C(x) = x
n-l'O i= O2.
Pour que (eni l co) soit un mot de code, C(x) doit être
divisible par g(x).
Il y a plusieurs façons de produire des mots de code à partir de messages Le codeur 14 préféré utilise la méthode suivante Soit (mi, m 2,, mk) le message à coder; on forme: M(x) = m xn-i i=l i et on utilise l'algorithme de division d'Euclide pour trou-
ver le quotient et le reste lorsqu'on divise M(x) par g(x).
M(x) = Q(x) g(x) + P(x) avec P(x) = PO + p 1 x * + Pn-k-1 Dans ces conditions, M(x) P(x) est divisible par g(x) et (ml' mk' -Pn-k-l' Po) est un mot de code Le codeur 14 accomplit ce processus de
division.
Dans le décodeur 18, la première étape consiste à faire passer les données dans un re-codeur qui divise de façon similaire le mot reçu par le polynôme générateur Le polynôme de reste est appelé un syndrome et est uniquement fonction des erreurs, et dans le cas du code de Reed-Solomon, il contient toute l'information qu'on peut extraire au sujet
de la configuration d'erreur.
Le codeur 14 permet de construire certains polynô-
mes générateurs et il fait appel à une technique de concep-
tion du matériel qui réduit la quantité de circuits arithmé-
tiques dans un rapport de deux, par rapport à des structures
basées sur une réalisation directe de la division de polynô-
mes. Dans la conception de codeurs de Reed-Solomonï une
fois que le corps est choisi, on doit choisir l'élément pri-
mitif
Le choix de X et la construction du polynôme géné-
rateur sont effectués de la façon suivante: Si N est la longueur cyclique et t est le nombre d'erreurs à corriger, le degré de g(x) est 2 t et ce polyn 8 me est formé de la manière suivante: jmax g(x) = i T (x-oj) j=jmin 2 t = gix i=O avec j minn+ 1 n-i avec jmin = t et jmax = 2 + t Le choix particulier de jmin et jmax conduit à go = g 2 = 1 et g 2 t-i = gi
L'opération principale d'un codeur de Reed- Solomon consiste à multiplier le signal de sortie de l'étage supérieur
d'un registre par go g 1 g 2 t-1 et à additionner simultanément les produits résultants dans une version décalée du registre (voir la figure 2) On choisit l'élément v de façon qu'il soit égal à la racine nième de l'unité, ce qui minimise le volume de ce circuit lorsque
les éléments sont représentés sous forme de matériel.
Une description détaillée de la mise en oeuvre du
processus de division lorsque le corps arithmétique est
l 0,1 (arithmétique binaire) et de la façon dont il est uti-
lisé dans un codeur est donnée dans l'ouvrage Algebraic Coding Theory On se référera en particulier à la figure
5.01 de ce document On généralise aisément cette descrip-
tion en considérant que chaque étage d'un registre contient
un symbole appartenant au corps, au lieu d'un seul bit.
Dans le circuit, un multiplicateur doit être incorporé dans certaines lignes Le circuit général est représenté sur la
figure 2.
Le choix de g(x) pour le codeur 14 conduit à une simplification considérable Tout d'abord, du fait que
g 2 t = 1, aucun circuit de division n'est nécessaire Le cir-
cuit de la figure 2 correspond à celui qui est représenté à la figure 1 de l'article de Elwyn R Berlekamp "Bit-Serial
Reed-Solomon Encoder," IEEE Transactions on Information Théo-
ry, Vol II-28, n O 6, pages 869-874, novembre 1982 Du fait que g O = 1, aucun circuit de multiplication n'est nécessaire pour l'étage situé le plus à droite En outre, du fait que gi = g 2 t-i' il suffit de construire seulement la moitié des multiplicateurs et d'utiliser les sorties en commun De plus, aux vitesses de fonctionnement du codeur 14, il est possible d'utiliser les circuits d'addition en temps partagé, ce qui réduit les circuits d'addition dans un rapport de deux. Enfin, pour des codes entrelacés, chaque étage du registre à décalage est remplacé par une mémoire vive dont l'espace d'adresse est supérieur ou égale à la profondeur d'entrelacement Lorsqu'une adresse donnée est sélectionnée, les termes d'un code parent donné sont disponibles pour la
lecture et l'écriture.
Une explication plus détaillée de tels codeurs figure dans l'article cité, intitulé Bit-Serial Reed-Solomon Encoders, qui est incorporé ici par référence La figure 2 montre des registres à décalage 48 câblésconformément à
g(x) De plus, des lignes tracées représentent des caractè-
res à 8 bits Chaque symbole 50 représente une fonction OU-EXCLUSIF de deux mots de 8 bits, et chaque symbole 52
représente une multiplication dans le corps de Galois appro-
prié.
Le fonctionnement du codeur est basé sur la divi-
sion de polynômes Dans la division normale de polynômes, si le diviseur ne divise pas le dividende de façon exacte, le reste est différent de zéro Cependant, si on soustrait
le reste du dividende, et si on divise le dividende résul-
tant par le diviseur, le reste est alors zéro Le codeur 14 fonctionne de cette manière Le dividende est un polynôme de
degré 254 et le diviseur est un polynôme de degré 12.
* Le fonctionnement du codeur est le suivant: on introduit 243 multiplets de données dans les 243 positions
supérieures du dividende On emplit les 12 multiplets res-
tants, d'ordre inférieur, avec des zéros On divise le divi-
dende par le polynôme diviseur On soustrait ensuite le reste du dividende Le polynôme résultant est un mot de code
qui est divisible de façon exacte par le polynôme diviseur.
Ce mot est celui qui est enregistré sur la bande magnétique
de l'enregistreur 32.
Il est nécessaire de souligner une différence
importante de l'arithmétique du codeur par rapport à l'arith-
métique normale de polynômes Du fait que le codeur travaille dans un corps de Galois, GF ( 256), au lieu de travailler dans le corps de tous les nombres réels, les opérations
arithmétiques doivent être redéfinies L'addition et la sous-
traction correspondent à la même opération, qui est l'opéra-
tion OU-EXCLUSIF au niveau des bits La multiplication et la division sont calculées sur des tables et sont mises en oeuvre dans les circuits par des combinaisons OU-EXCLUSIF ou par des mémoires, tout ceci étant décrit dans l'ouvrage
Algebraic Coding Theory et dans le brevet US 4 162 480.
Le vérificateur de codeur 10 prélève le signal de
sortie du codeur et effectue une division qui lui est propre.
Il tiré parti d'une propriété du polynôme diviseur du codeur: le diviseur peut être décomposé en un produit de 12 polynômes du premier degré Le vérificateur 10 divise son information d'entrée par l'un de ces polynômes du premier degré Si -l'information d'entrée est un mot de code correct, le reste de cette division doit être égal à zéro Le vérificateur 10
présente le reste en sortie, indépendamment de sa valeur.
La figure 3 représente un circuit de division de polynômes simplifié pour le vérificateur de codeur 10 Dans ce cas, un signal d'entrée à bits en série est appliqué à une entrée d'une porte OU-EXCLUSIF 56, dont le signal de sortie est appliqué à l'entrée d'un multiplicateur de corps
de Galois 58 Le multiplicateur de corps de Galois 58 multi-
plie son signal d'entrée par un facteur constant " dans le
corps de Galois Le signal de sortie est appliqué à un regis-
tre de retard 60, qui applique son signal de sortie retardé
à l'autre entrée de la porte OU-EXCLUSIF 56.
On peut donner une explication du fonctionnement du
circuit de division de polynômes en utilisant un exemple sim-
ple dans lequel le mot de code codé peut être représenté par un polynôme du troisième degré Ax 3 + Bx 2 + Cx + D. Si on divise ce polynôme par un seul facteur x +f 3, le reste est: D Cil + B _ A 3 Comme indiqué cidessus, dans le corps de Galois, l'addition et la soustraction sont identiques et toutes deux peuvent être réalisées par un porte OU-EXCLUSIF, comme la porte OU-EXCLUSIF 56 Un signal d'entrée est le mot de code sous la forme A, B, C, D, introduit un bit à la fois Ainsi, le bit A est introduit et additionné par la porte OU-EXCLUSIF 56 à la quantité O présente sur son autre entrée, le signal
de sortie du multiplicateur étant fixé initialement à zéro.
La somme est multipliée par la constante a par le multiplica-
teur 58 pour former A# Ce signal est retardé par le circuit de retard 60 et il est additionné au bit suivant B par la porte OU-EXCLUSIF 56 pour former A + B Cette somme est multipliée par " dans le multiplicateur 50 pour former Ap 2 + Bp Ce signal est retardé et additionné au bit C pour former A 2 + BFS + C, ce signal étant multiplié par O < pour former Af 3 + B 2 + C^ Ce signal est retardé et additionné au bit suivant D pour former A 3 + B 2 + C(A + D, qui est
l'équivalent du reste de la division de polynômes ci-dessus.
Si ce reste est différent de zéro, le diviseur n'est pas un facteur du dividende Du fait que le dividende est un mot de code s'il a été codé correctement pour que le diviseur soit un facteur de ce dividende, tout reste indique un défaut dans le codage Par conséquent, le signal additionné après trois multiplications indique le reste et, s'il est différent de
zéro, un défaut de codage.
Dans l'exemple considéré ci-dessus pour un codeur de Reed-Solomon préféré, 14, le dividende est un polynôme de degré 254, mais le principe est le même que pour un polynôme
du troisième degré, à l'exception du fait que la multiplica-
tion et l'addition doivent être effectuées 254 fois En outre, dans cet exemple, les données sont codées en multiplets
de 8 bits de largeur Le signal de sortie du codeur est entre-
lacé jusqu'à un profondeur de 16 Ceci signifie que le codeur présente en sortie un multiplet d'un mot de codé, puis un multiplet d'un autre mot de code, etc, pour 16 mots de code, avant de présenter en sortie le multiplet suivant du mot de code d'origine qui a été observé Il y a également des
signaux d'horloge à chaque multiplet et un signal de fin de-
bloc à la fin de chaque mot de code, dans un but de synchro-
nisation Ces signaux de sortie sont les produits donnés du codeur 14 à partir desquels le vérificateur de codeur 10
détermine le fonctionnement du codeur.
Le multiplicateur de Galois peut comprendre une mémoire morte programmable d'une capacité de 256 x 8 (ou deux mémoires mortes programmables de 256 x 4) programmées d'une manière classique conformément aux principes connus de la multiplication de Galois Une telle multiplication d'un registre par une constante câblée est expliquée de façon assez détaillée dans l'ouvrage Algebraic Coding Theory, en particulier aux pages 44-47, qui sont incorporées ici par
référence On pourra voir également le brevet US 4 162 480.
De telles explications permettront à l'homme de l'art de
programmer la mémoire morte programmable de façon à multi-
plier les sommes respectives par la constante particulière
p correspondant à un facteur du polynôme générateur Le fac-
teur particulier choisi est x+î 133, bien que l'un quelconque des facteurs formant le polynôme générateur soit tout aussi valide. On pourra comprendre davantage la multiplication
dans un corps de Galois en considérant les figures 4 et 5.
La figure 4 représente un exemple de la réalisation d'une multiplication d'un octet par un élément primitif " Cette opération définit un corps de Galois GF( 256) dont l'élément nul est 00000000 et dont l'élément unité est 00000001 Dans cette réalisation, un octet appliqué au registre supérieur produit dans le registre inférieur un signal de sortie qui
est le produit de l'octet appliqué par l'élément primitif d.
La figure 5 représente une réalisation de la multiplication d'un octet par 128 dans le corps de Galois défini sur la figure 4 L'élément primitif d est un nombre choisi de façon qu'il n'y ait pas de duplication des signaux de sortie pour deux octects d'entrée différents quelconques, dont il existe 255 combinaisons possibles lorsque m = 8; c'est-à-dire 28 1 Bien que la multiplication par 128 puisse être réalisée avec des portes OU-EXCLUSIF appropriées pour la sommation, dans les modes de réalisation envisagés ci-après, cette multiplication est réalisée au moyen d'une mémoire morte programmable Du fait qu'il n'y a que 255 octets d'entrée possibles (en ne comptant pas l'élément nul), il
n'y a que 255 produits possibles d'un octet d'entrée quel-
conque par( 128, ou par n'importe quel nombre pour lequel la mémoire morte programmable est programmée En utilisant une mémoire morte programmable de capacité 255 x 8, les signaux d'entrée à 8 bits peuvent adresser l'un quelconque des 255
produits On peut donc programmer la mémoire morte program-
mable en introduisant les produits connus sous la forme d'une table à consulter qui est adressée par les signaux
d'entrée consistant en octets.
Les figures 6 et 7 montrent des formes d'un véri-
ficateur de codeur correspondant à deux modes de réalisation préférés de l'invention Dans la forme du vérificateur de codeur 10 qui est représentée sur la figure 6, le circuit de test divise l'horloge du codeur par 16, de façon qu'un octet
sur 16 seulement soit admis pour être divisé Dans le cir-
cuit de la figure 7, tous les mots de code sont divisés.
Les circuits des figures 6 et 7 attendent une impulsion positive de bit de contrôle de fin de bloc sur une ligne séparée, correspondant au dernier octet de chaque mot de code dans le signal de sortie entrelacé De tels signaux sont classiques et existent nécessairement pour des raisons
de changement de cadence et d'inversion de synchronisation.
Dans le circuit de la figure 6, on utilise ce bit de contrô-
le non seulement pour informer le circuit du fait qu'un mot s'est terminé, mais également pour changer les phases dans
le signal de sortie entrelacé Ceci permet au circuit de tes-
ter la totalité des 16 phases du signal de sortie Ce circuit
assure une division correcte en acceptant l'une de ces impul-
sions après un changement de phase et en utilisant cette-
impulsion pour restaurer tous les composants du circuit, de façon que le circuit soit prêt pour une nouvelle division,
ceci comprenant la remise à zéro du signal de sortie du mul-
tiplicateur Le circuit divise ensuite un mot de code complet
jusqu'à la fin du mot Lorsqu'il reçoit l'impulsion corres-
pondant à la fin de ce mot, il présente le reste en sortie et
commute sur la phase qui précède immédiatement la phase pré-
cédente Ceci est accompli en divisant une fois l'horloge du
codeur par 15, pour obtenir la nouvelle phase, et en repre-
nant ensuite la division de l'horloge du codeur par 16.
Dans le vérificateur de codeur 10 qui est représen-
té sur la figure 6, des impulsions d'horloge provenant du
codeur 14 sont appliquées sur une ligne 62, des bits de con-
trôle de fin de bloc sont appliqués sur une ligne 64 et des mots de code sous la forme d'octets sont appliqués sur des lignes 66 Les mots de code sont appliqués à des bascules 68 et ensuite à des bascules 70 Comme le montre la figure 6,
ces bascules 68 et 70 peuvent être constituées par des bascu-
les de type D appartenant à des circuits de bascules D maître-esclave du type 10176 Les bits de contrôle de fin de
bloc sont appliqués de façon similaire à des circuits de bas-
cules 72 et 74, qui peuvent également être constitués par des bascules D du type 10176 On utilise les impulsions d'horloge
pour attaquer diverses bascules et on les applique à un cir-
cuit diviseur par 16, 76, qui peut être constitué par un compteur binaire universel à 4 bits du type 10136 Les impulsions de sortie du circuit diviseur par 16, 76, sont utilisées comme impulsions d'horloge pour certaines bascules, de façon à séparer un seul mot de code à partir de-s mots de
code entrelacés Les mots de code sont appliqués par l'inter-
médiaire d'impulsions d'horloge sur des bornes d'entrée res-
pectives de portes OU-EXCLUSIF 78, dont les signaux de sortie
sont appliqués à des bornes d'entrée respectives d'un multi-
plicateur de corps de Galois 80, qui peut être constitué par deux mémoires mortes programmables 10149 ( 256 x 4) programmées conformément à des protocoles de Galois classiques, pour multiplier l'information d'entrée par le facteur approprié a X.
Les signaux de sortie sont appliqués à des circuits de bas-
cules 82, qui peuvent être des bascules D du type 10176 Les circuits de bascules 82 reçoivent, en tant qu'impulsions d'horloge, le signal de sortie du circuit diviseur par 16, 76, par l'intermédiaire d'une porte OUEXCLUSIF 83 >, pour sélectionner uniquement un produit sur 16, et ce produit est appliqué à la porte OU-EXCLUSIF 78 et il est additionné par cette dernière au seizième octet suivant, c'est-à-dire
l'octet suivant dans le même mot de code, ce qui sélectionne.
l'un des seize mots de code à partir de la séquence entrela-
cée. Le vérificateur de codeur 10 effectue ainsi une
division de polynômes, en divisant un mot-de code par un fac-
teur du polynôme générateur, de la manière décrite ci-dessus en relation avec la figure 3, jusqu'à ce que le dernier octet du mot de code soit reçu A ce moment, l'impulsion de bit de contrôle de fin de bloc est appliquée à un circuit diviseur par deux 84, qui peut consister en un compteur
binaire à 4 bits du type 10178 Le signal de-sortie du cir-
cuit diviseur par deux 84 est appliqué par une porte NON-OU 86 à une bascule D 88 Au moment de l'impulsion d'horloge suivante, le signal de sortie de la bascule D 88 valide un circuit de bascules 90 pour mémoriser en sortie du circuit de
bascules le reste de la division de polynômes qui a été ache-
vée Le circuit de bascules 90 peut être constitué par des quadruples bascules D, avec commande sélective de la sortie et validation par un état haut, du type 10133 Les signaux
de sortie du circuit de bascules 90 sont combinés par une por-
te OU câblée 91 et sont appliqués à un dispositif d'indication et de visualisation 92, qui fournit une indication d'un défaut
de fonctionnement du codeur chaque fois que son signal d'en-
trée indique un reste différent-de zéro Le dispositif d'indi-
cation et de visualisation 92 peut comporter une bascule avec une lampe et un élément de restauration Le bit de contrôle de fin de bloc restaure la sortie du multiplicateur 80 à zéro
pour le début du contrôle du mot de code suivant.
Pour tester le codeur 14 pour toutes les positions de mots de code entrelacés, on utilise le signal de sortie de la porte NON-OU 86 pour modifier le compte dans le circuit diviseur par 16, 76, afin de le synchroniser avec une autre position d'entrelacement, de façon qu'après l'achèvement du
test d'un mot de code à une première position d'entrelace-
ment, le vérificateur de codeur contrôle un mot de code ulté-
rieur à une autre position d'entrelacement Le signal de sor-
tie de la bascule D 88 agit également par l'intermédiaire
d'une porte NON-OU 94 de façon à restaurer le circuit divi-
seur par deux 84 Le multiplicateur de corps de Galois 80 est invalidé par le bit de contrôle de fin de bloc pendant la
mémorisation du reste dans les bascules 90.
La figure 7 représente une forme préférée de véri-
ficateur de codeur 10 qui contrôle en une seule fois le coda-
ge de la totalité de 16 mots de code entrelacés Dans ce mode de réalisation, les bits d'horloge d'octet sont appliqués sur la ligne 62 à une porte OU/NON-OU 96 et ils sont inversés par des portes OU/NON-OU 98 successives Les bits de contrôle de
fin de bloc sont appliqués par la ligne 64 à une porte OU/NON-
OU 100 Les octets de mot de contrôle sont appliqués par les
lignes 66 aux portes OU-EXCLUSIF 102, avec 8 bits en parallè-
le, et les signaux de sortie de ces portes sont appliqués à des bascules 104 qui peuvent être constituées par des hexu- ples bascules maîtreesclave D du type 10176, dans lesquelles les signaux sont mémorisés au moment de l'impulsion d'horloge suivante Les deux signaux de sortie de la porte OU/NON-OU
sont mémorisés de façon similaire dans les bascules 104.
Les signaux de sortie des bascules 104, qui sont liés aux mots de code, sont appliqués à un multiplicateur de corps de Galois 106 qui peut être constitué par une paire de mémoires mortes programmables de capacité 256 x 4, du type 10149, programmées pour multiplier par un nombre particulier G dans le corps de Galois Le produit de cette multiplication se présente sous la forme d'un octet et il est appliqué à un registre à décalage 108 qui peut être constitué par une paire de mémoires vives de capacité 16 x 4, du type 10145, adressées par un compteur 110 qui peut être constitué par un compteur universel à 4 bits du type 10136 Le compteur 110 adresse successivement 16 groupesde 8 bits L'information qui a été introduite précédemment dans chacune des positions de 8 bits est présentée sur les 8 lignes de sortie, puis l'information
provenant du multiplicateur de corps de Galois 106 est écri-
te aux adresses respectives De cette manière, les adresses sont incrémentées en un cycle de 16 adresses à chaque bit d'horloge Ceci trie les produits relatifs à des mots de code entrelacés respectifs et présente en sortie le produit
nécessaire pour l'addition courante par les portes OU-EXCLU-
SIF 102, auxquelles ce produit est appliqué La division se déroule ainsi comme dans le circuit de la figure 3, jusqu'à ce qu'un bit de fin de bloc apparaisse pour un mot de code particulier. Les sommes sont mémorisées dans des bascules 112 sous l'effet de l'impulsion d'horloge qui suit un bit de fin de bloc Les signaux de sortie des bascules 112 sont combinés
par une porte OU câblée 114 et ils sont appliqués à un dispo-
sitif d'indication et de visualisation 116, qui peut être.
similaire au dispositif d'indication et de visualisation 92.
Comme précédemment, tout reste différent de zéro au niveau de la porte OU câblée 114, à la fin d'un bloc, indique un défaut du codeur Le dispositif d'indication et de visualisation 1 16 reçoit le signal de reste au moment d'un tel-achèvement de la division d'un mot de code complet et il indique à l'opérateur que le codeur fonctionne mal, de façon à ne pas poursuivre inutilement l'enregistrement De façon similaire, le bit de fin de bloc est appliqué au multiplicateur de corps de Galois pour placer son signal de sortie à zéro afin d'initialiser le processus de division de polynômes pour la division du mot de
code suivant à la position entrelacée respective.
Bien qu'on ait décrit en détail deux modes de réa-
lisation préférés particuliers de l'invention, diverses modi-
fications peuvent être faites sans sortir du cadre de l'in-
vention Par exemple, le vérificateur de codeur 10 peut être connecté à la sortie du système de transmission de données 16 au lieu d'être connecté à son entrée Dans cette position, le vérificateur de codeur doit travailler sur le signal avant son application à l'enregistreur à bande magnétique 32, faute
de quoi l'enregistreur introduira des erreurs d'enregistre-
ment, comme des erreurs de perte d'information par affai-
blissement et du bruit Le vérificateur de codeur 10 ne pourrait pas alors déterminer si l'origine du défaut était dans le codeur 14 ou dans l'enregistreur à bande magnétique 32 D'autre part, en connectant le vérificateur de codeur 10 à la sortie du système de transmission de données 16 avec l'enregistreur à bande magnétique connecté dans le système, il serait possible de déterminer les performances d'erreur de
l'enregistrement sur bande et donc de déterminer approximati-
vement dans quelle mesure l'enregistrement était exempt d'erreur En effet, une fois qu'on a trouvé que le codeur 14 fonctionnait correctement, en effectuant un test avec l'enregistreur 32 hors circuit, l'accomplissement d'un test
avec l'enregistreur 32 dans le circuit fournirait une indica-
tion de la qualité de l'enregistrement lui-même Dans un tel test de l'enregistreur, le reste différent de zéro sur la porte OU câblée 114 pourrait être compté dans un compteur de taux d'erreur pour déterminer le taux d'erreur et donc la
qualité d'enregistrement.
On peut noter que le retard qui est introduit dans l'application du produit résultant de la multiplication d'une somme par la constante dans le multiplicateur de corps de Galois est destiné à faire en sorte que le produit soit appliqué aux portes OU-EXCLUSIF respectives en coïncidence avec le multiplet suivant du mot de code On peut introduire
un tel retard pour le produit avant ou après la multiplica-
tion réelle, ou en partie avant et en partie après.
On peut utiliser le vérificateur de codeur avec d'autres codes Le nombre m de bits dans un multiplet peut être n'importe quel nombre commode supérieur à 1 Le nombre qui représente le degré du polyn 8 me générateur peut être quelconque, à condition que ce polynôme puisse diviser le
mot de code On peut raccourcir le mot de code en ne trans-
mettant pas certains multiplets, au prix d'une certaine per-
te de la puissance du code.
Il va de soi que de nombreuses autres modifica-
tions peuvent être apportées au dispositif décrit et repré-
senté, sans sortir du cadre de l'invention.

Claims (8)

REVENDICATIONS
1 Vérificateur de codeur ( 10) destiné à contrôler le fonctionnement d'un codeur ( 14) dans lequel des données et des multiplets de parité sont codés de façon numérique en blocs de données-pour former pour chaque bloc de données un mot de code respectif en multiplets à plusieurs bits, sous la forme d'un polynôme de corps de Galois qui est divisible
dans le corps de Galois par un polynôme générateur, ce poly-
nôme générateur étant le produit de plusieurs facteurs, dans le corps de Galois, caractérisé en ce qu'il comprend:-des moyens de division de polynômes ( 68, 70, 78, 80, 92)-qui réagissent à des mots de code en effectuant une division de polynômes de mots de code respectifs dans un corps de Galois, par l'un des facteurs, pour produire un signal de
-reste lié de façon systématique au reste d'une telle divi-
sion, et des moyens indicateurs ( 92) qui réagissent à ce signal de reste en produisant une indication d'un défaut de fonctionnement du codeur ( 14) lorsque le signal de reste
correspond à un reste autre que zéro.
2 Vérificateur de codeur numérique ( 10) destiné à contrôler le fonctionnement d'un codeur de Reed-Solomon ( 14), dans lequel des données et des multiplets de parité
sont codés de façon numérique en blocs de données, pour for-
mer pour chaque bloc de données un mot de code respectif, en multiplets successifs à m bits, sous la forme d'un polynôme
de corps de Galois qui est divisible par un polynôme généra-
teur dans le corps de Galois, ce polynôme générateur étant le produit de plusieurs facteurs, dans le corps de Galois,et m étant un entier supérieur à 1, caractérisé en ce qu'il comprend des moyens d'addition dans le corps de Galois ( 78) destinés à additionner dans le corps de Galois un multiplet reçu à m bits et un multiplet à m bits retardé, pour produire une somme à m bits, des moyens ( 68, 70) destinés à appliquer
successivement des multiplets à m bits d'un mot de code res-
pectif aux moyens d'addition ( 78), des moyens de multiplica-
tion de corps de Galois ( 80) destinés à multiplier dans le
corps de Galois la somme à m bits par une constante prédé-
terminée correspondant à l'un des facteurs, pour donner un produit à m bits, des moyens ( 82) destinés à retarder le produit à m bits et à appliquer le produit retardé aux moyens d'addition ( 78), sous la forme d'un multiplet à m bits retardé, à un instant auquel le multiplet immédiatement suivant du mot de code respectif est appliqué aux moyens d'addition ( 78), et des moyens indicateurs ( 92) qui réagis
sent à l'achèvement de la réception et de l'addition du der-
nier multiplet à m bits d'un mot de code respectif et à la somme à m bits qui existe à ce moment, en produisant une indication d'un défaut de fonctionnement lorsque cette somme
à m est différente de zéro après l'addition du dernier multi-
plet à m bits.
3 Vérificateur de codeur numérique selon la revendication 2, caractérisé en ce que les moyens destinés à retarder le produit à m bits sont disposés au moins en partie dans un circuit compris entre les moyens d'addition ( 78) et les moyens de multiplication ( 80) pour retarder l'application
de la somme aux moyens de multiplication ( 80).
4 Vérificateur de codeur numérique selon la revendication 2, caractérisé en ce que le mot de code ne
comprend pas plus de 2 m 1 multiplets.
Vérificateur de codeur numérique selon la revendication 4, caractérisé en ce que m= 8 et le polynôme
générateur est un polynôme du douzième degré.
6 Vérificateur de codeur numérique selon la
revendication 2, prévu pour un codeur ( 14)-destiné à produi-
re des mots de code entrelacés jusqu'à une profondeur 6,
avec 6 supérieur à 1, et des impulsions d'horloge correspon-
dant à chaque multiplet des mots de code, caractérisé en ce
que ce vérificateur ( 10) comprend des moyens ( 76) qui réa-
gissent aux impulsions d'horloge en produisant une impulsion
de sélection toutes les S impulsions d'horloge, pour sélect-
tionner des multiplets d'un mot de code entrelacé respectif, et des moyens ( 70) destinés à appliquer les multiplets
sélectionnés aux moyens d'addition ( 78).
7 Vérificateur de codeur numérique selon la revendication 2, prévu pour un codeur ( 14) destiné à produire des mots de code entrelacés jusqu'à une profondeur 8, avec & supérieur à 1, et des impulsions d'horloge correspondant à chaque multiplet des mots de code, caractérisé en ce que les moyens de retard comprennent des moyens de mémoire ( 82, 108)
qui réagissent aux impulsions d'horloge en recevant des mul-
tiplets à m bits, en les enregistrant sur 8 impulsions
d'horloge et en les présentant en sortie.
8 Vérificateur de codeur numérique selon la revendication 7, caractérisé en ce que les moyens de mémoire
comprennent un registre à décalage ( 108).
9 Vérificateur de codeur numérique selon la
revendication 8, caractérisé en ce que le registre à décala-
ge ( 108) comprend une mémoire vive destinée à recevoir des multiplets dans des positions adressées et à émettre des multiplets à partir de positions adressées, et un compteur ( 110) qui réagit aux impulsions d'horloge en adressant
successivement & positions à m bits.
FR848401840A 1983-02-08 1984-02-07 Verificateur de codeur Expired - Lifetime FR2540690B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/464,845 US4527269A (en) 1983-02-08 1983-02-08 Encoder verifier

Publications (2)

Publication Number Publication Date
FR2540690A1 true FR2540690A1 (fr) 1984-08-10
FR2540690B1 FR2540690B1 (fr) 1991-10-11

Family

ID=23845479

Family Applications (1)

Application Number Title Priority Date Filing Date
FR848401840A Expired - Lifetime FR2540690B1 (fr) 1983-02-08 1984-02-07 Verificateur de codeur

Country Status (5)

Country Link
US (1) US4527269A (fr)
JP (1) JPS59151246A (fr)
DE (1) DE3404417A1 (fr)
FR (1) FR2540690B1 (fr)
GB (1) GB2136994B (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0154538A2 (fr) * 1984-03-05 1985-09-11 Ampex Corporation Générateur de parité et de syndrome pour la détection et la correction d'erreur dans les systèmes de transmission numérique
EP0280013A1 (fr) * 1987-01-29 1988-08-31 International Business Machines Corporation Dispositif pour vérifier le bon fonctionnement d'un générateur de code de contrôle

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8400629A (nl) * 1984-02-29 1985-09-16 Philips Nv Snelle decodeur voor reed-solomon-codes, welke mede als encodeur te gebruiken is, alsmede opname/reproduktie-apparaat voorzien van zo een encodeur/decodeur.
US4599722A (en) * 1984-04-03 1986-07-08 Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee Apparatus for encoding and decoding digital data to permit error correction
US4747103A (en) * 1985-03-21 1988-05-24 Canon Kabushiki Kaisha Signal processing apparatus for correcting decoding errors
FR2605769B1 (fr) * 1986-10-22 1988-12-09 Thomson Csf Operateur polynomial dans les corps de galois et processeur de traitement de signal numerique comportant un tel operateur
JPH01201736A (ja) * 1988-02-08 1989-08-14 Mitsubishi Electric Corp マイクロコンピュータ
JPH0267013A (ja) * 1988-09-01 1990-03-07 Mitsubishi Electric Corp ガロア体演算回路
US5537426A (en) * 1992-05-29 1996-07-16 Goldstar Co., Ltd. Operation apparatus for deriving erasure position Γ(x) and Forney syndrome T(x) polynomials of a Galois field employing a single multiplier
US5483542A (en) * 1993-01-28 1996-01-09 At&T Corp. Byte error rate test arrangement
JPH088760A (ja) * 1994-06-16 1996-01-12 Toshiba Corp 誤り訂正装置
US6108812A (en) * 1996-06-20 2000-08-22 Lsi Logic Corporation Target device XOR engine
US20040117601A1 (en) * 2002-12-12 2004-06-17 Spracklen Lawrence A General-purpose processor that can rapidly perform binary polynomial arithmetic operations
US8832523B2 (en) * 2006-03-03 2014-09-09 Ternarylogic Llc Multi-state symbol error correction in matrix based codes
US9203436B2 (en) * 2006-07-12 2015-12-01 Ternarylogic Llc Error correction in multi-valued (p,k) codes
US20090222712A1 (en) * 2008-03-03 2009-09-03 Legend Silicon Corp. Decoding scheme for correcting both erasures and errors of reed-solomon codes in a digital communication system
KR20220168737A (ko) * 2021-06-17 2022-12-26 삼성전자주식회사 반도체 메모리 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3801955A (en) * 1971-12-13 1974-04-02 Honeywell Inf Systems Cyclic code encoder/decoder
US4105999A (en) * 1976-01-12 1978-08-08 Nippon Electric Co., Ltd. Parallel-processing error correction system
US4242752A (en) * 1977-12-30 1980-12-30 Siemens Aktiengesellschaft Circuit arrangement for coding or decoding of binary data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5811145B2 (ja) * 1978-09-20 1983-03-01 株式会社日立製作所 Crc生成およびチエツク回路の動作確認方法
DE2847996A1 (de) * 1978-11-06 1980-05-22 Leilich Hans Otto Prof Dr Ing Verfahren zur blockweisen fehlererkennung und fehlerkorrektur mittels verkuerzter zyklischer codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3801955A (en) * 1971-12-13 1974-04-02 Honeywell Inf Systems Cyclic code encoder/decoder
US4105999A (en) * 1976-01-12 1978-08-08 Nippon Electric Co., Ltd. Parallel-processing error correction system
US4242752A (en) * 1977-12-30 1980-12-30 Siemens Aktiengesellschaft Circuit arrangement for coding or decoding of binary data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 21, no. 5, octobre 1978, pages 2060-2061, New York, US; A.M. ROBINS: "Cyclic redundancy check hardware test" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0154538A2 (fr) * 1984-03-05 1985-09-11 Ampex Corporation Générateur de parité et de syndrome pour la détection et la correction d'erreur dans les systèmes de transmission numérique
EP0154538A3 (en) * 1984-03-05 1987-08-26 Ampex Corporation Parity and syndrome generation for error and correction in digital communication systems
EP0280013A1 (fr) * 1987-01-29 1988-08-31 International Business Machines Corporation Dispositif pour vérifier le bon fonctionnement d'un générateur de code de contrôle

Also Published As

Publication number Publication date
GB8402494D0 (en) 1984-03-07
GB2136994A (en) 1984-09-26
FR2540690B1 (fr) 1991-10-11
DE3404417A1 (de) 1984-08-16
JPS59151246A (ja) 1984-08-29
GB2136994B (en) 1986-06-18
US4527269A (en) 1985-07-02

Similar Documents

Publication Publication Date Title
FR2540690A1 (fr) Verificateur de codeur
EP0269481B1 (fr) Procédé et dispositif de transmission de données numériques
EP0108655B1 (fr) Système de détection et de correction d&#39;erreurs de transmission d&#39;un message binaire utilisant un code cyclique détecteur et correcteur d&#39;erreurs de type Reed-Solomon entrelacé
JP3610329B2 (ja) 大最小距離を用いたターボ符号化方法及びそれを実現するシステム
JP5300170B2 (ja) 順方向のチェンサーチ方式のリードソロモンデコーダ回路
FR2785743A1 (fr) Dispositif et procede d&#39;adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
FR2724273A1 (fr) Circuit de traitement de signal pour mettre en oeuvre un algorithme de viterbi
CH653457A5 (fr) Procede de correction d&#39;erreurs dans des signaux de donnees digitales.
FR2860360A1 (fr) Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
KR20040075954A (ko) 에러 정정 디코더에서의 이중 치엔 탐색 블록
FR2790621A1 (fr) Dispositif et procede d&#39;entrelacement pour turbocodage et turbodecodage
FR2785741A1 (fr) Dispositif et procede de codage et d&#39;entrelacement pour des turbocodes series ou hybrides
EP0204612B1 (fr) Procédé de transmission, avec possibilité de correction de paquets d&#39;erreurs, de messages d&#39;information et dispositifs de codage et de décodage pour la mise en oeuvre de ce procédé
EP0204635B1 (fr) Procédé de transmission en blocs de mots d&#39;information numérique
FR2673341A1 (fr) Agencement de circuit pour detecter et corriger des defauts dans des mots de donnees.
EP0720759B1 (fr) Generateur de redondance/syndrome programmable
FR2866998A1 (fr) Decodage et correction d&#39;erreurs pour codes de geometrie algebrique
EP1076933B1 (fr) Dispositif de correction d&#39;erreurs et lecteur de disque optique comportant un tel dispositif
CA2031643C (fr) Decodeur de code bch et methode pour decoder un code bch
FR2863794A1 (fr) Procedes et dispositifs de localisation d&#39;erreurs pour les codes de geometrie algebrique
FR2776115A1 (fr) Dispositif de correction d&#39;erreurs et lecteur de disque optique comportant un tel dispositif
EP0165147B1 (fr) Codeur-décodeur de codes de blocs, paramètrable
FR2880218A1 (fr) Procede de decodage pour codes de geometrie algebrique et dispositif associe
FR2773287A1 (fr) Entrelaceur, dispositif de codage, procede de permutation, procede de codage, dispositif et procede de decodage et systemes les mettant en oeuvre
FR2624676A1 (fr) Dispositif de codage et de decodage de codes reed-solomon

Legal Events

Date Code Title Description
ST Notification of lapse