DE3717223C2 - Verfahren und Anordnung zum Decodieren eines Codesymbolblocks, der zwei Arten von Codewörtern enthält, die durch je einen maximalabstandsseparierbaren Code geschützt sind - Google Patents

Verfahren und Anordnung zum Decodieren eines Codesymbolblocks, der zwei Arten von Codewörtern enthält, die durch je einen maximalabstandsseparierbaren Code geschützt sind

Info

Publication number
DE3717223C2
DE3717223C2 DE3717223A DE3717223A DE3717223C2 DE 3717223 C2 DE3717223 C2 DE 3717223C2 DE 3717223 A DE3717223 A DE 3717223A DE 3717223 A DE3717223 A DE 3717223A DE 3717223 C2 DE3717223 C2 DE 3717223C2
Authority
DE
Germany
Prior art keywords
code
codewords
codeword
symbols
arrangement
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.)
Expired - Fee Related
Application number
DE3717223A
Other languages
English (en)
Other versions
DE3717223A1 (de
Inventor
Constant Paul Marie Joz Baggen
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE3717223A1 publication Critical patent/DE3717223A1/de
Application granted granted Critical
Publication of DE3717223C2 publication Critical patent/DE3717223C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • H03M13/1515Reed-Solomon 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies

Description

Die Erfindung betrifft ein Verfahren und eine Anordnung zum Korrigieren eines Code­ symbolblocks, der in eine erste Reihe erster Codewörter eines ersten maximalabstands­ separierbaren Codes und in eine zweite Reihe zweiter Codewörter eines zweiten maximal­ abstandsseparierbaren Codes verteilt ist, wobei jedes richtige Codewort in einem Code einen Mindestabstand in bezug auf jedes andere richtige Codewort von mindestens drei Symbolen enthält, und alle nichtredundanten Codesymbole sowohl Teile eines ersten Codeworts als auch eines zweiten Codeworts sind.
Aus der europäischen Patentanmeldung EP 0155038 A1 ist ein Decoder bekannt, der zur Decodierung von Codeworten ausgelegt ist, die gegen das Auftreten mehrerer Fehler pro Codeworte mittels eine Reed-Solomon-Codes geschützt sind. Zur Korrektur des Codewortes werden zuerst Syndromsymbole mittels Multiplikation erzeugt. Die Syndromsymbole werden so modifiziert, dass diejenigen Syndromsymbole, die sich auf ein möglicher Weise fehlerhaftes Symbol beziehen, nicht mehr von den übrigen Symbolen beeinflusst werden. Dies ermöglicht es, die Positionen von fehlerhaften Symbolen aufzufinden. Diese werden dann, wo nötig, modifiziert.
Ferner ist in der früheren europäischen Patentanmeldung 156440, der zwei japanische Prioritätsanmeldungen 84/57595 und 84/57596 zugrunde liegen, ein ähnliches Verfahren beschrieben. In diesem Fall ist der maximalabstandsseparierbare (MDS) (maximum distance separable) Code ein (verkürzter) Reed-Solomon-Code, aber auch andere symbol­ organisierte Codes sind verwendbar. Ein Symbol ist eine Gruppe einer festen Bitanzahl größer als eins, in einer vorteilhaften Ausführung stets acht Bits. Häufig werden systema­ tische Codes auf Symbolebene verwendet, in denen eine Trennung zwischen redundanten und nichtredundanten Symbolen besteht, aber die Erfindung beschränkt sich nicht darauf. Das bekannte System bezieht sich auf die Speicherung digitaler Daten nach dem Format der sog. "Compact Disc" für hochqualitative Audioinformation, die für bestimmte An­ wendungen, beispielsweise für die Speicherung von Rechnersoftware, noch zuverlässiger gemacht wird. Im bekannten System wird die Information zunächst genau so decodiert, wie es für Audioinformation üblich ist, wobei die Redundanz von zwei Reed-Solomon- Codierungen zur Fehlerkorrektur und weiter zum Detektieren weiterer nicht oder wahr­ scheinlich nicht korrigierbarer Fehler verwendet wird. Diese Reed-Solomon-Codes arbeiten mit einer Verschachtelungstechnik, die sich zum Korrigieren langer Ausfallsfehler eignet und sich weiter vorteilhaft auf Echtzeitbasis verarbeiten lässt. Obendrein ist auf Codeblock- oder Sektorebene ein Pseudoproduktcode vorgesehen, der eine Fehlerdetektion der ersten zwei Codierungen als Anzeigeinformation zur Vergrößerung der Zuverlässigkeit der weiteren Fehlerkorrektur verwenden kann. Das bedeutet, dass die betreffende Deco­ dierung symbolweise wenigstens ein Zusatzbit empfangen können muss. Die Vergrößerung dieser Übertragungsbitbreite ist manchmal ein Nachteil.
In bestimmten anderen Anwendungen der eingangserwähnten Codes fehlt derartige An­ zeigeinformation sogar vollständig dadurch, dass die Decodierung der ersten zwei Co­ dierungen derartige Anzeigeinformation nicht liefert, oder weil ein derartiger Verschach­ telungscode völlig fehlt, weil der Code in einer anderen Umgebung angewandt wird. An sich ist bei einem Mindestabstand zwischen den Codewörtern von drei oder mehr Sym­ bolen immerhin stets je Codewort zumindest ein Symbol korrigierbar, aber die Möglich­ keit einer fehlerhaften Korrektur wird bei wachsender Länge der Codewörter schnell größer. Bei einem Mindestabstand größer als drei ist die Möglichkeit einer fehlerhaften Korrektur zwar kleiner, bleibt im Falle langer Codewörter (viele Symbole) dennoch bedeutsam.
Der Erfindung liegt die Aufgabe zugrunde, der Decodierung dadurch eine größere Zuver­ lässigkeit zu Verleihen, dass die endgültige Durchführung einer Korrektur in einem Code­ wort von zusätzlicher Fehleranzeigeinformation abhängig gemacht wird, die sich nicht auf das ganze Codewort bezieht, sondern nur auf das darin potentiell zu korrigierende Code­ symbol, um auf diese Weise die Fehlerkorrekturen zuverlässiger zu machen. Dabei wird für die Erfindung davon ausgegangen, dass eine unrichtige Korrektur insbesondere verur­ sachen könnte, dass ein bis dahin ungestörtes Codesymbol in ein fehlerhaftes Symbol umgesetzt wird.
Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 und einer Anordnung mit den Merkmalen des Patentanspruchs 6 gelöst. Vorteilhafte Weiter­ bildungen sind in den Unteransprüchen angegeben.
Es zeigt sich, dass mittels der Erfindung viele Konfigurationen gestörter Symbole rasch und richtig korrigierbar sind, wobei insbesondere das allzu rasche Signalisieren eines Codeworts als "richtig" vermieden wird.
Die Erfindung bezieht sich ebenfalls auf eine Anordnung zur Durchführung des Ver­ fahrens, bei der eine Anzahl elementarer Detektionen vorgesehen wird und die eine vor­ teilhafte Implementierung darstellt.
Weitere vorteilhafte Eigenschaften der Erfindung werden in weiteren Unteransprüchen erwähnt. Hiermit werden jeweils Eigenschaften verwirklicht, die die Verarbeitungsge­ schwindigkeit und/oder die Zuverlässigkeit und/oder die Decodierungskapazität ver­ größern.
Kurze Beschreibung der Zeichnung
Ausführungsbeispiele der Erfindung werden nachstehend anhand der Zeichnung näher erläutert. Es zeigen
Fig. 1 symbolisch ein Beispiel eines Aufbaus eines Codesymbolblocks,
Fig. 2 einen Codesymbolblock, wie er in einem sog. CD-ROM-Format verwendet wird,
Fig. 3 die Paritätsprüfmatrix der benutzten Reed-Solomon-Codes,
Fig. 4 symbolisch eine Decoderanordnung nach der Erfindung,
Fig. 5 ein Ablaufdiagramm nach der Erfindung,
Fig. 6 einige Beispiele von Fehlermustern, Anhang A ein Verzeichnis von Bezeichnungen zu Fig. 5.
Beschreibung eines bevorzugten Ausführungsbeispiels
In Fig. 1 ist als allgemeines Beispiel symbolisch der Aufbau eines Codesymbolblocks darge­ stellt, in dem jedes Viereck ein Symbol bezeichnet. Ein Symbol ist eine Gruppe einer festen Bitanzahl, beispielsweise drei oder vier Bits, aber meistens mehr. Ein vorteilhafter Wert ist acht. Für längere Symbole ist die wachsende Kompliziertheit der Bearbeitungen häufig ein Nachteil. Der Einfachheit halber sei angenommen, dass der Code auf Symbolebene syste­ matisch ist, aber dies ist für die Verwirklichung der Erfindung nicht notwendig. Der Block enthält in diesem Beispiel 70 Datensymbole mit der Nummerierung D10 . . . D19, D20 . . . D29, D30 . . . D79. Der Block enthält zehn erste Codewörter eines ersten Reed- Solomon-Codes, sie enthalten je sieben Datensymbole und zwei redundante Symbole. So enthält das erste Wort dieser Reihe die Datensymbole D10 . . . D70 und die redundanten Symbole P10, P20. Das zweite Wort enthält die neun Symbole der zweiten Spalte. Das zehnte Wort enthält die neun Symbole der zehnten Spalte. Ist die Symbollänge groß genug, kann für diese Codewörter der Mindestabstand zwischen zwei möglichen ungestör­ ten Codewörtern, nach der Zahl der Symbole gerechnet, gleich drei sein. Das bedeutet, dass ein gestörtes Symbol korrigierbar ist (oder andererseits, dass bis zu höchstens zwei gestörte Codesymbole detektierbar sind). Zum anderen enthält der Block neun zweite Codewörter eines zweiten Reed-Solomon-Codes. Sie enthalten je drei redundante Symbole und zehn übrige Symbole. Die übrigen Symbole können Datensymbole oder redundante Symbole erster Wörter des ersten Reed-Solomon-Codes sein. So enthält das erste Wort dieser zweiten Reihe die Datensymbole D10 . . . D19 und die redundanten Symbole Q11, Q12, Q13. Das zweite Wort enthält die dreizehn Symbole der neunten Zeile, nämlich die redundanten Symbole P20 . . . P29, die je einem ersten Codewort des ersten Reed-Solomon- Codes zugehören, und die redundanten Symbole des zweiten Reed-Solomon-Codes Q91, Q92, Q93. Wenn die Symbollänge groß genug ist, kann für diese letzten Codewörter der Mindestabstand zwischen zwei möglichen ungestörten Codewörtern, nach Symbolen ge­ zählt, gleich vier sein. Das bedeutet, dass ein gestörtes Symbol korrigierbar und außerdem ein zweites gestörtes Symbol detektierbar ist (oder andererseits, dass bis zu höchstens drei gestörte Codesymbole detektierbar sind). Für alle Codewörter des ersten Reed-Solomon- Codes ist untereinander die gleiche Generatormatrix verwendet. In diesem Fall bilden auch die elfte bis zur dreizehnten Spalte je ein erstes Codewort des ersten Reed-Solomon-Codes, in dem die Symbole Q81 . . . 83, Q91 . . . 93 als redundante Symbole und die Symbole Q11 . . . 13, Q21 . . . 23, . . ., Q71 . . . 73 als Datensymbole arbeiten. Auf diese Weise bilden alle Symbole jedes Mal Teile eines zweiten Codeworts des zweiten Codes. Eine derartige Konfiguration wird mit (Echt-)Produktcode bezeichnet.
Der Aufbau des Blocks ist abänderbar. So kann die Anzahl von Datensymbolen je Code­ wort anders sein, sie kann für beide Codes auch gleich sein. Die Anzahl redundanter Sym­ bole je Codewort kann anders sein, aber für eine Korrektur auf Basis nur eines Codeworts muss es sich wenigstens um zwei handeln. Weiter kann es ein Pseudoproduktcode sein, in dem nicht alle redundanten Symbole auch Teile von zwei Codewörtern bilden. Ein Bei­ spiel ist folgendes: die vertikalen Codewörter werden genau so wie in Fig. 1 gebildet. Die horizontalen Codewörter werden nicht gebildet, stattdessen jedoch diagonale Codewörter: davon besteht das erste Codewort beispielsweise aus den Symbolen D10, D21, D32, . . ., D76, P17, P28, D19, Q21, Q32, Q43. Das zweite Codewort besteht dabei aus den Sym­ bolen D20, D31, . . ., D75, P16, . . ., D18, D29, . . ., Q31, . . ., Q53, usw. In diesem Fall werden wieder für alle vertikalen und für alle diagonalen Codewörter jeweils untereinander gleiche Generatormatrizen benutzt. Jedoch bilden die Symbole Q11 . . . Q93 dabei keine Teile eines vertikalen Codeworts. Auch sind auf diese Weise andere Möglichkeiten zur Bildung eines Pseudoproduktcodes möglich. In diesem Fall kann die Anzeige für ein zu korrigierendes Codesymbol auf verschiedene Weisen aus einem oder mehreren Code­ wörtern, von denen das potentiell zu korrigierende Codesymbol einen Teil bildet, abge­ leitet werden. Zu obiger Beschreibung gibt es auch andere symbolkorrigierende Codes als Reed-Solomon-Codes, beispielsweise b-Nachbar-Codes (Englisch: b-adjacent codes).
In Fig. 2 ist der Aufbau eines Codesymbolblocks nach der Verwendung in einem sog. CD- ROM-Format dargestellt, der als bevorzugtes Ausführungsbeispiel arbeitet. Es gibt 43 × 24 Datensymbole von je 8 Bits. Es gibt 43 P-Codewörter eines (26, 24) Reed-Solomon- Codes, sie sind alle in einer Spalte angeordnet. Es gibt 26 Wörter eines (45, 43) Reed- Solomon-Codes. Sie sind hinsichtlich der Datensymbole nach der angegebenen Diagonale angeordnet. Die redundanten Symbole sind in den zwei unteren Zeilen angegeben. Die Q- Redundanten bilden also keinen Teil der P-Wörter.
Die Philosophie der Decodierung
Das Codeformat nach Fig. 2 bedeutet, dass je Codewort jeweils ein Fehlersymbol korri­ gierbar ist oder auch, dass zwei Fehlersymbole detektierbar sind. In diesem Zusammenhang zeigt Fig. 3 die Paritätsmatrizen Hp, HQ der benutzten Reed-Solomon-Codes. Das Genera­ torpolynom des betreffenden Galois-Feldes ist (x8 + x4 + x3 + x2 + 1), in dem a eine Wurzel und also ein primitives Element dieses Galois-Feldes ist. Alle Berechnungen werden in diesem Körper durchgeführt. Wenn in einem Codewort ein einziges Fehlersymbol korrigiert wird, aber faktisch mehr als ein Symbol gestört ist, ist die Möglichkeit, dass dies nicht festgestellt wird, etwa n/2m, wobei m die Länge des Symbols in Bits und n die Länge des Codeworts in Symbolen ist. Für den P- bzw. Q-Code beträgt die betreffende Möglichkeit etwa 10 bzw. 18%. Die Möglichkeit des Nichtdetektierens eines gestörten Codeworts als solches ist 1/22m = 1,5 × 10-5 (bei drei redundanten Symbolen je Codewort 1/2 3m).
Beim Decodieren wird eine erhebliche Beschleunigung dadurch erreicht, dass die Syndrome alle nur einmal berechnet werden und bei der Korrektur eines Codesymbols nur der Beitrag der Korrektur zu den Syndromsymbolen bestimmt wird. Beispielsweise:
angenommen sei, dass irgendein Symbol des ersten P-Codeworts (erste Spalte in Fig. 2) korrigiert wird. Dabei müssen die Syndromsymbole des Q-Wortes, von dem dieses Symbol ein Teil ist, korrigiert werden nach der Gleichung:
S0' = S0 + Y
S1' = S1 + a44Y.
Wenn das korrigierte Symbol beispielsweise die Nummer 0946 ist, ist das zugeordnete Q- Wort also aus den Symbolen 946, 990, 1034, 1078, 4, 48, . . ., 558, 602 aufgebaut. Der Exponent (44) folgt direkt aus der Paritätsmatrix HQ. Hierbei ist Y die Größe der Korrek­ tur (als Symbol ausgedrückt). Für andere zu korrigierende Symbole werden die mit der Symbolkorrektur Y korrigierten Syndrome in GF(2 8) mit der geeigneten Potenz von a multipliziert. Es gibt also genau so viel Syndromsymbole wie redundante Symbole 2 × 43 + 2 × 26 = 138. Die Datensymbole sind von 0000-1031 nummeriert. Die redun­ danten Symbole der P-Wörter sind von 1032 bis 1117 nummeriert. Das redundante Sym­ bol mit der Rangnummer MP, das zum Codewort mit der Rangnummer NP gehört, hat dabei die Nummer ((43 × MP) + NP). Die redundanten Symbole der Q-Wörter sind von 1118 bis 1169 nummeriert. Das redundante Symbol mit der Rangnummer MQ, das zum Codewort mit der Rangnummer NQ gehört, hat dabei die Nummer (44 × MQ + 43 × NQ) mod. 1118.
Beim Decodieren der P-Wörter ist selbstverständlich die betreffende Rangnummer NP bekannt. Aus der Decodierung kann die Rangnummer MP des zu korrigierenden Symbols bekannt werden. Aus MP und NP können MQ und NQ gefunden werden, um aus der Korrektur die in die Syndromsymbole des Q-Codes einzuführende Änderung herauszu­ finden. Gleiches gilt umgekehrt bei der Korrektur eines Wortes des Q-Codes.
Für die Nummern der Datensymbole gilt:
NP = MQ
43 × MP + NP = (44 × MQ + 43 × NQ) mod. 1118.
Es folgt daraus bei einer P-Korrektur:
MQ = NP
NQ = MP - NP mod. 26.
und bei einer Q-Korrektur
NP = MQ
NP = MQ - NQ mod. 26.
Letzteres gilt nur für die Symbolnummern 0-1117, weil die Q-Redundanzsymbole keinen Teil eines Wortes eines P-Codes bilden. Bei einem Echtproduktcode (Fig. 1) müssen bei einer Korrektur immer die Syndrome beider Codewörter, von denen das betreffende Codesymbol einen Teil bildet, geändert werden. Dabei gilt außerdem MQ = NP, und MP = NQ.
Ausführungsbeispiele einer Ausleseanordnung mit einer erfindungsgemäßen Decoder­ anordnung
In Fig. 4 ist ein Blockschaltbild einer Anordnung zum erfindungsgemäßen Einsatz darge­ stellt. Das Speichermittel ist eine auf der Kanalbits in der für Compact Disc bekannt gewordenen Technik mit optisch lesbaren Vertiefungen gespeichert sind. Der Block 20 steht für einen Plattenteller mit Motor, Servosystem, Zentriersystem, Lasersystem, Spur­ nachführungssystem, usw. Die Erfindung bezieht sich weiter nicht auf die spezifische Funktionsart dieser Elemente. Das Auslesesystem erzeugt Kanalbits. Im Demodulator 22 wird eine Reihe von 17 aufeinanderfolgenden Kanalbits (einschließlich Zwischenraumbits) in ein Codesymbol von acht Codebits umgewandelt. Im ersten Decoder 21 bildet sich durch Entwürfeln ein Rahmen von 32 Codesymbolen. Dieser Rahmen wird durch darin enthaltene redundante Symbole decodiert, wodurch 28 Codesymbole übrig bleiben. Bei der Decodierung kann möglicherweise eine Korrektur eines oder mehrere Symbole er­ folgen. Der Kürze halber wird diese Decodierung nicht näher erläutert. Der Code ist ein Reed-Solomon-Code. Andere symbolkorrigierende Codes sind ebenfalls anwendbar. Im Entschachtelungselement 26 werden die 28 Codesymbole über genauso viele Rahmen von je 28 Symbolen entschachtelt. Im zweiten Decoder 28 wird ein derartiger Rahmen mittels vier darin enthaltener redundanter Symbole decodiert, wodurch 24 Codesymbole übrig­ bleiben. Bei dieser Decodierung kann möglicherweise eine Korrektur eines oder mehrerer Symbole erfolgen. Auch diese Decodierung wird der Kürze halber nicht weiter erläutert. Die decodierten Symbole erscheinen acht-Bit-parallel auf der Leitung 38. Dabei wird noch eine gewisse symbolweise Neugruppierung der Symbole durchgeführt, die der Kürze halber nicht beschrieben wird.
Die Symbole am Ausgang des Elements 28 sind als Sektoren nach dem Format in Fig. 2 organisiert. Gegebenenfalls ist dazu im Element 28 eine weitere Anordnung zum Neukon­ figurieren der Reihenfolge der Symbole wie aus der genannten Patentanmeldung vorge­ sehen. Das Entwürfeln, Entschachteln und Neukonfigurieren kann in vielen Fällen vor­ teilhaft mit einem Speicher mit Direktzugriff (RAM) erfolgen, in dem eine Vielzahl von Verzögerungsleitungen oder FIFOs mit verschiedenen Verzögerungszeiten/Längen imple­ mentiert sind. Etwas derartiges ist an sich allgemein üblich und die Geräte sind hierzu nicht näher angegeben. Die Blöcke 22 bis 28 sind somit insbesondere funktionsspezifi­ zierend; auf Hardwareebene zentriert sich die Organisation häufig um einen Bus, der mit ALU, Speicher und E/A-Untersystemen zusammenarbeitet.
Ein Sektor enthält zunächst Synchronisationsinformation, danach Vorlaufinformation, dann möglicherweise Untervorlaufinformation und schließlich Restinformation. Das Element 30 ist ein Detektor. Es wird von der Synchronisationsinformation aktiviert, was dadurch möglich ist, dass die Synchronisationsinformation einen Inhalt hat, der weiter im Informationsfluss grundsätzlich nicht auftritt. Nach dem Erkennen der Synchronisationsinformation wird im Detektor ein Symbolzähler aktiviert, der die erhaltenen Symbole ab­ wärts zählt. Damit ist also bekannt, wann der Synchronisationsinformation die weitere Information folgt, die die maximalabstandsseparierbaren Codes schützen. Ggf. kann ein spezifisches Symbol angeben, dass dieser Code tatsächlich implementiert oder auch unter­ blieben ist. Das Detektorsignal gelangt über die Leitung 40 als Einleitungssignal zum Decoder 34. Dieses Signal stellt Adresszähler auf bestimmte Anfangswerte und andere Größen ein, wie anhand der Fig. 5 beschrieben wird. Der Decoder 34 kann damit ein programmierter (Mikro-)Prozessor mit Elementen sein, wie sie für einen anderen Code in der eingangsnähererläuterten europäischen Patentanmeldung EP 0155038 A1 beschrieben sind. Es sind eine Einheit zur Durchführung von Bearbeitungen im betreffenden Galois- Feld, ein Datenspeicher, ein Syndromspeicher für die Trennmarken der ersten und zweiten Codewörter und eine Zähleinrichtung zum Bestimmen von zwei Summen daraus, ein Pro­ grammspeicher und Adressier- und Decodiermittel dafür sowie Verbindungsmittel zum gegenseitigen Verbinden der genannten Bausteine vorgesehen. Für einen Sektor können also zumindest 1032 Datensymbole und 138 redundante Symbole (bzw. 138 Syndrom­ symbole) 69 Trennmarken, zwei Zählsummen und eine Anzahl Hilfsgrößen (siehe weiter unten) gespeichert werden.
Nach der Decodierung kann die reformierte Information über den Ausgang 36 einer der Einfachheit halber nicht dargestellten Benutzeranordnung zur Verfügung gestellt werden. Dabei kann die Korrektur bereits stattgefunden haben. Auch ist es möglich, dass nur die Korrekturgrößen selbst (Lokator + Korrektor) dargestellt werden, wenn die Dateninforma­ tion schon auf andere Weise der Benutzeranordnung zur Verfügung gestellt würde. Außer­ dem liefert die Anordnung 34 eine Information richtig/unrichtig je nach der Qualität des Decoderergebnisses.
Strategie der Decodierung
Die allgemeine Strategie ist jetzt wie folgt, wobei auf das Ablaufdiagramm nach Fig. 5 ver­ wiesen wird. Zunächst wird der ganze Inhalt eines Sektors erfasst, wenigstens soweit es sich um jenen Teil handelt, den der Pseudoproduktcode schützt (100). Dabei werden alle Syn­ dromsymbole der P-Wörter bestimmt. Alle P-Wörter mit einem sich von Null unterschei­ denden Syndrom erhalten ein erstes Etikett (Trennmarke) und diese ersten Etiketten werden für den ganzen Codeblock gezählt: CP. Anschließend werden alle Syndromsymbole für die Q-Wörter bestimmt. Alle Q-Wörter mit einem sich von Null unterscheidenden Syndrom erhalten ein zweites Etikett und diese zweiten Etikette werden für den ganzen Codeblock gezählt: CQ. In bestimmten Anwendungen kann mit drei- oder mehrwertigen Trennmarken gearbeitet werden. Dabei bedeutet z. B. eine Trennmarke "00": Codewort richtig und immer richtig gewesen; "11"; Codewort mit sich von Null unterscheidendem Syndrom; "10"; Codewort derart korrigiert, dass danach das Syndrom auf Null kam. (01 kommt dabei also nicht vor). So ist auch nach der Korrektur ein gewisses Maß der Signa­ lisierung der Menge korrigierter Fehler vorhanden. Nach der Bestimmung der zwei Zähl­ salden entscheidet das System, ob die Decodierung mit den P-Codewörtern oder mit den Q-Codewörtern startet. Wenn die Anzahl von P-Etiketten die größte oder gleich der An­ zahl von Q-Etiketten ist, fängt die Decodierung mit den P-Wörtern an: x := P; y := Q. Im (weniger wahrscheinlichen) Fall, dass es mehr Q-Etiketten als P-Etiketten gibt, fängt die Decodierung mit den Q-Wörtern an: y := P; x := Q. Es stellt sich dabei heraus, dass durch diese Wahl die Anzahl von Fehlern je zu decodierendes Codewort zunächst im Mittel ver­ ringert wird, so dass sich die Möglichkeit vergrößert, dass direkter Erfolg eintritt. Wenn der erste und der zweite Code einen verschiedenen Mindestabstand zwischen den betref­ fenden Codewörtern besitzen, ist es meistens vorteilhaft, mit den Codewörtern des Codes mit dem größten Abstand anzufangen. Schließlich wird eine Anzahl von Berechnungspara­ metern auf die richtigen Werte eingestellt, wie die Anzahl von x- und y-Wörtern, eine Rangnummer für ein aktuelles Wort und die Werte einer zweiwertigen Größe corrx auf "false" (nicht wahr), und einer zweiwertigen Größe corry auf "true" (wahr). Danach geht das System zum Block 102, in dem das nächste x-Codewort aufgerufen wird: zunächst also das erste. Im Block 104 wird detektiert, ob das Syndrom dieses Worts gleich Null ist. Wenn das der Fall ist, wird das Etikett (x-Etikett) dieses Codeworts auf Null gesetzt (aktu­ alisiert) und das Saldo der betreffenden Etiketten dekrementiert (106), selbstverständlich nur wenn dieses Etikett den Wert 1 hatte. Wenn dieses Etikett den Wert Null hatte, geht das System zum Block 108, ohne dass irgendeine Behandlung durchgeführt wurde. Eine schnellere Wirkungsweise wird dadurch verwirklicht, dass im Block 102 das nächste erste Codewort mit von Null verschiedenem Etikett aufgerufen wird. Dabei wird im Block 108 detektiert, ob das betreffende x-Wort das letzte der Reihe etikettierter x-Wörter war. Häufig wird dies nicht der Fall sein und das System kehrt zum Block 102 zurück. Wenn im Block 104 ein sich von Null unterscheidendes Syndrom detektiert wird, geht das System zum Block 110 weiter. Darin wird der Platz des vermutlich einzigen gestörten Symbols berechnet. Im Block 112 wird detektiert, ob das betreffende Symbol ein Teil eines y- Wortes ist, dessen Etikett ebenfalls den Wert 1 hat. Es gibt mehrere Möglichkeiten:
  • a) der Platz des gestörten Symbols liegt ausserhalb der Grenzen des Codeworts dadurch, dass die Symbolnummer grösser als 45 bzw. 23 ist;
  • b) das betreffende gestörte Symbol ist nur ein Teil aus einem einzigen Codewort;
  • c) das betreffende y-Wort hat ein Etikett mit dem Wert "0";
  • d) das betreffende y-Wort hat ein Etikett mit dem Wert "1".
Im Fall a ist die Korrektur also ausgeschlossen, und dies gibt an, dass ein zu diesem Zeitpunkt bestimmt unkorri­ gierbarer Fehler vorliegt, beispielsweise dadurch, dass faktisch zwei Symbole des betreffenden Codeworts gestört sind. Ggf. ist dieser Fehler später tatsächlich doch korri­ gierbar (siehe weiter unten). Im Fall b wird korrigiert, aber als zusätzlicher Schutz wird das zu diesem Codewort gehörende Etikett unverändert gelassen. Im Fall c wird es als zu unsicher betrachtet und die Korrektur wird nicht durchgeführt; auch die Etikette bleiben ungeändert (es würde jedoch eine richtige Korrektur betreffen können, wenn das betreffende y-Wort einen undetektierbaren Fehler enthielt). Der Fall d wird als eine genügend "sichere" Korrektur betrachtet und durchgeführt. In den Fällen a, c kehrt das System also zum Block 108 zurück. Wenn die Prüfung im Block 112 positiv ist (Y), geht das System zum Block 114 weiter, in dem der Fehler korrigiert wird. Dies ist immer möglich. Die Grösse corrx wird "wahr" gemacht (wenn sie bereits wahr war, bleibt sie unverändert). Dies bedeutet, dass beim Umlauf längs der x-Wörter mindestens eine Korrek­ tur durchgeführt wurde. Anschliessend wird im Block 114 das Syndrom des betreffenden x-Codeworts auf Null einge­ stellt. Dies ist immer richtig durch den Mindestabstand von drei. Ausserdem wird im Block 116 das Syndrom des betreffenden y-Wortes aktualisiert, um die durchgeführte Korrektur zu berücksichtigen. Die Aktualisierung erfordert weniger Berechnung als gesamtes Neuberechnen des Syndroms des betreffenden Wortes. Auch wenn der Mindestabstand eines Codes größer als drei ist, ergibt die Korrektur eines Codeworts ein Syndrom Null, so dass es dabei sofort auf Null postulierbar ist. Im Block 118 wird detektiert, ob das geänderte y-Syndrom den Wert 0 hat. Ist dies nicht der Fall, kehrt das System zum Block 102 zurück. Wenn dies tatsächlich der Fall ist, werden im Block 120 beide Etiketten auf Null gestellt (aktualisiert) und beide Zählsalden werden dekrementiert. Danach kehrt das System zum Block 102 zurück. Die Fälle a bis d aus obiger Beschreibung sind bei den betreffenden Verbindungen angegeben. Implizite Detektierungen von Fällen a und b in Blöcken 110 bzw. 114 sind der Einfach­ heit halber ausgelassen.
Wenn das letzte Wort bearbeitet ist (der Block 108 gibt eine positive Antwort) geht das System zum Block 122 weiter. Darin wird detektiert, ob die Anzahl der x-Etiketten höchstens gleich zwei ist. Ist diese Anzahl größer als zwei, geht das System zum Block 130 weiter. In diesem Block wird untersucht, ob in der letzten Korrekturbearbeitung (x-Wörter) oder in der zweitletzten Bearbeitung eine Korrektur erfolgt ist. Wenn dies nicht der Fall ist, kann keine Verbesserung mehr erfolgen und das System geht zu Block 134 weiter: Fehler. Der Codeblock ist nicht korrigierbar. Nach der ersten Korrekturbearbei­ tung kann dies nicht erfolgen, weil durch die Anfangspostulierung von corry eine blinde "Null"-te Korrekturbearbeitung emuliert ist. Wenn tatsächlich eine Korrektur erfolgt ist, geht das System zum Block 132: dort werden die Funktionen von x und y vertauscht. Außerdem wird die Größe corrx auf "nicht wahr" gestellt. Eine der Einleitungsmaßnah­ men im Block 100 ist auf entsprechende Weise, wie auch corry einen bestimmten Wert bekommt, insbesondere "wahr". Weiter wird der Wortzähler auf einen Anfangswert einge­ stellt, so dass der Block 102 tatsächlich das erste Wort aufruft.
Wenn im Block 122 detektiert wird, dass eines oder zwei x-Etikette übriggeblieben sind, führt das System eine Korrektur der y-Wörter aus, wobei die x-Etiketten als Anzeigeinfor­ mation arbeiten. Wenn die Anzahl von x-Etiketten Null beträgt, ist dies eine blinde Bear­ beitung und das System geht sofort zum Block 126 weiter. Wenn die Anzahl der x-Etiketten 1 oder 2 beträgt, sei angenommen, dass alle y-Wörter mit einem Syndrom ungleich Null gerade an diesem x-Wortplatz gestört sind.
Wenn schließlich das System den Block 126 erreicht, wird mit einer aus der angeführten Literaturstelle EP 0155038 A1 bekannten und in die Datensymbole des Codeblocks aufge­ nommen CRC-Information detektiert, ob die Korrektur jetzt richtig ist. Wenn dies der Fall ist, geht das System zum Block 128 und die Benutzerinformation kann zur Verfügung gestellt werden. Wenn dies nicht der Fall ist, geht das System zum Block 134. Mögliche weitere Versuche zum Lesen der Information (mittels eines erneuerten Leseversuchs, einer Schatteninformation und dergleichen) fallen nicht in den Rahmen der Erfindung. Im Block 134 wird signalisiert, dass die Korrektur nicht möglich ist. Wenn im Block 122 detektiert wird, dass die Anzahl der Trennmarken drei oder mehr beträgt (zumindest gleich dem Mindestabstand der y-Codewörter) geht das System zum Block 130. In diesem Block wird detektiert, ob eine Korrektur erfolgt ist. Nach dem ersten Versuch wird dabei ein null-ter Versuch (corry) emuliert. Wenn keine Änderung erfolgt ist (N), ist eine Korrektur nicht möglich und das System geht zum Block 134. Ist tatsächlich eine Änderung erfolgt, geht das System zum Block 132. In bestimmten Fällen kann im Block 130 nur corrx betrachtet werden. Im Block 132 wird der Wert von corrx übernommen, corrx bekommt einer Anfangswert. Die Funktionen von x- und y-Wörtern werden in einer Bearbeitung (durch Klammern angegeben) vertauscht. Danach kehrt das System zum Block 102 zurück.
In Fig. 6a-6f sind einige spezifische Fehlermuster dargestellt, wobei ein Echtproduktcode mit einem Mindestabstand von drei Symbolen angenommen sei. Fig. 6a zeigt sechs Fehler (Kreuze) in einem Block von 8 × 8 Symbolen.
Sie beziehen sich jeweils sowohl auf eine andere Zeile als auch auf eine andere Spalte (P-Wort, bzw. Q-Wort), so dass nach einmaligem Aufrufen in einer Richtung alle Korrekturen durchgeführt sein werden. In Fig. 6b befinden sich alle Fehler in einer Spalte. Korrektur des Codeworts dieser Spalte ist also nicht möglich. Korrektur der Zeilen­ wörter liefert jedoch sofort einen vollständig korrigierten Codeblock. In Fig. 6c ist eine Zeile nicht korrigierbar. Auch ist eine Spalte nicht korrigierbar. Stets sind alle anderen Zeilen und auch alle anderen Spalten tatsächlich korrigierbar. Bei der ersten Reihe von Abtastungen können dabei alle Zeilenwörter (mit Ausnahme dieser einen Zeile) korrigiert werden. Bei der folgenden Reihe von Abtastungen sind alle Spaltenwörter tatsächlich korrigierbar. In Fig. 6d kann nur dann eine Verbesserung erreicht werden, wenn das eine Zeilenwort mit nur einem gestörten Symbol korrigiert wird. Dabei gibt es in beiden Richtungen zwei Wörter mit zwei gestörten Symbolen. Dabei werden beispiels­ weise die zwei Spaltenwörter mit Störung korrigiert, während die Anzeige der gestörten Zeilenplätze (Etikette) als An­ zeigeinformation funktionieren. Dies ist ein Beispiel eines Musters, das gemäss dem Block 124 in Fig. 5 korrigiert wird. Fig. 6e zeigt ein Muster, bei dem nur Zeilenwörter unter Verwendung über eine Spalte gebildeter Anzeigeinfor­ mation korrigiert werden können. Fig. 6f gibt ein Beispiel eines einfachen Musters, das nicht korrigierbar ist.
Anhang A
100
Start
102
folgendes etikettierte x-Wort
104
Syndrom = Null?
106
x-Etikett entfernen, x-Zählung dekrementieren
108
letztes etikettiertes x-Wort?
110
Fehlerplatz berechnen
112
Entspricht dem etikettierten y-Wort?
114
Symbol korrigieren; corrx := wahr; x-Syndrom; = 0
116
y-Syndrom ändern
118
geändertes y-Syndrom = Null?
120
x-Etikett entfernen; x-Zählung dekrementieren y-Etikett entfernen; y-Zählung dekrementieren
122
O < x-Zählung <
3
?
124
1
,
2
Löschkorrektur in y-Richtung, x-Etikette orten
126
C.R.C. O.K.?
128
O.K, STOP
130
corrx + corry = wahr?
132
corrx: corry; corrx := falsch; (y := x; x := y)
134
Fehler, Stopp.

Claims (8)

1. Verfahren zum Korrigieren eines Codesymbolblocks, der eine erste Reihe erster Code­ wörter eines ersten maximalabstandsseparierbaren Codes und eine zweite Reihe zweiter Codewörter eines zweiten maximalabstandsseparierbaren Codes enthält, wobei jedes richtige Codewort in einem Code einen Mindestabstand in bezug auf jedes andere richtige Codewort von wenigstens drei Symbolen enthält und alle nichtredundanten Codesymbole sowohl Teile eines ersten Codeworts als auch eines zweiten Codeworts sind, wobei dieses Verfahren aus folgenden Schritten besteht:
  • a) das Sammeln eines vollständigen Codesymbolblocks;
  • b) das Bestimmen aller Syndromsymbole der ersten Codewörter und der zweiten Codewörter und das Bilden einer Trennmarke für jedes Codewort, dessen Syndrom sich von Null unterscheidet;
  • c) das Summieren der Anzahl von Trennmarken für insgesamt alle ersten Codewörter und das davon getrennte Summieren der Anzahl von Trennmarken für insgesamt alle zweiten Codewörter,
  • d) das Bestimmen einer Fehlerstelle eines korrigierbaren Fehlers für ein erstes Codewort mit sich von Null unterscheidendem Syndrom;
  • e) das Detektieren eines als gestört angezeigten zweiten Codeworts, das diese Fehlerstelle enthält, und das Korrigieren des betreffenden Fehlers lediglich bei positivem Detektier­ ergebnis, jedoch im entgegengesetzten Fall das Einsetzen eines folgenden ersten Codeworts gemäss dem Schritt d;
  • f) das Aktualisieren der Syndrome des betreffenden ersten Codeworts und des betref­ fenden zweiten Codeworts nach einer Korrektur entsprechend dem Schritt e, das Aktualisieren der betreffenden zwei Trennmarken und das Dekrementieren der Summierungsergebnisse der Anzahl von Trennmarken ausschließlich dann, wenn beide Syndrome gleich Null sind, und anschließend das Einsetzen eines folgenden ersten Codeworts gemäss dem Schritt d;
  • g) der Funktionswechsel erster Codewörter und zweiter Codewörter und das Wiederholen der Schritte d, e und f nach dem Einsetzen zumindest aller als gestört angezeigten ersten Codewörter bis zwei folgende Durchführungen der Schritte d, e und f für alle dabei aktuellen ersten Codewörter keine weitere Änderung ergeben;
  • h) das Ausgeben eines Codesymbolblocks unter Signalisierung dieses Blocks als richtig oder unrichtig.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für ein erstes Codewort eines maximalabstandsseparier­ baren Codes mit einem Mindestabstand von drei Codesymbolen nach der Durchführung einer Korrektur das betreffende Syn­ drom stets auf Null positioniert wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet, dass beim Einsetzen eines ersten Codeworts unter der Steuerung einer für dieses Codewort gebildeten Trenn­ marke gemäss dem Schritt d ein von Null verschiedenes Syndrom detektiert wird, und im entgegengesetzten Fall die betreffende Trennmarke aktualisiert und das betreffende Summierungsergebnis nachgestellt wird.
4. Verfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass beim Erreichen eines Summierungsergeb­ nisses der Trennmarken der ersten Codewörter, das höchstens gleich dem um eins verringerten Mindestabstand für die dabei aktuellen zweiten Codewörter ist, diese zweiten Code­ wörter anschliessend in einem Löschbetrieb korrigiert werden, wobei eine Trennmarke eines ersten Codeworts als Fehleranzeiger arbeitet.
5. Verfahren nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, dass am Ende des genannten Korrektur­ vorgangs in einem letzten Schritt eine Neuberechnung eines im Codeblock vorhandenen Fehlerdetektionscodes durchge­ führt wird, um die genannte Signalisierung als richtig oder auch als unrichtig zu bilden.
6. Anordnung zum Durchführen des Verfahrens nach Anspruch 1 zum Korrigieren eines Codesymbolblocks, der eine erste Reihe erster Codewörter eines ersten maximalabstands­ separierbaren Codes und eine zweite Reihe zweiter Codewörter eines zweiten maximal­ abstandsseparierbaren Codes enthält, wobei jedes richtige Codewort in einem Code einen Mindestabstand in bezug auf jedes andere richtige Codewort von wenigstens drei Symbo­ len einhält und alle nichtredundanten Symbole sowohl Teile eines ersten Codeworts als auch eines zweiten Codeworts bilden, wobei die Anordnung mit Empfangsmitteln zum Empfangen und Sammeln eines vollständigen Codesymbolblocks, mit von den Empfangs­ mitteln gespeisten ersten Berechnungsmitteln zur Bildung einer Anzahl von Syndrom­ symbolen aus den empfangenen Symbolen je Codewort, mit von den ersten Berechnungs­ mitteln gespeisten Aktualisierungsmitteln zum Speichern einer Trennmarke je Codewort, für welches das Syndrom sich von Null unterscheidet, und zum Aktualisieren eines Summierungsergebnisses für die Anzahl von Trennmarken für die ersten Codewörter und davon getrennt für die zweiten Codewörter, mit von den ersten Berechnungsmitteln gespeisten zweiten Berechnungsmitteln zum Bestimmen eines oder mehrerer Korrektur­ symbole je Codewort, wenn möglich und notwendig, mit von den Empfangsmitteln und zweiten Berechnungsmitteln gespeisten Korrekturmitteln zum Aufzählen eines Korrektur­ symbols bei einem gestörten Symbol, und mit einer Ausgangsanordnung zum Darstellen eines möglichst richtigen Blocks an einer Benutzeranordnung versehen ist, wobei eine Sequenzsteueranordnung mit mehreren Stellungen vorgesehen ist, um in einer Stellung für ein erstes Codewort ein Korrektursymbol und ein Lokatorsymbol zu bestimmen, wobei diese Sequenzsteueranordnung mit Adressierungsmitteln zum Adressieren eines Syndroms eines betreffenden zweiten Codeworts mittels des genannten Lokatorsymbols, und mit einem ersten Detektor versehen ist, um ausschließlich unter der Steuerung des letztgenann­ ten Syndroms, das sich von Null unterscheidet, das vom letztgenannten Lokatorsymbol adressierte Codesymbol zu korrigieren und ein sich darauf beziehendes Syndrom zu aktualisieren, und mit einem zweiten Detektor versehen ist, um ausschließlich unter der Steuerung eines den Wert Null aufweisenden Syndroms des betreffenden zweiten Code­ worts die Aktualisierungsmittel zum Aktualisieren der Trennmarken für das betreffende erste und zweite Codewort zu steuern und die Summierungsergebnisse zu dekrementieren, und anschließend ein folgendes erstes Codewort aufzurufen, wobei die erwähnte Sequenz­ steueranordnung eine Vertauschungsanordnung besitzt, die nach dem Durchlaufen aller mit zumindest den gestörten ersten Codewörtern übereinstimmenden Stellungen die Funktion der ersten und zweiten Codewörter vertauscht, und weitere der genannten Stellungen aktiviert und wobei ein dritter Detektor vorgesehen ist, der bei der Aktivierung der genannten Vertauschungsanordnung eine eingeführte Änderung während der zuletzt ausgeführten zwei Durchgänge entlang der dabei relevanten ersten Codewörter detektiert, und bei einem negativen Detektorergebnis die erwähnte Ausgangsanordnung aktiviert.
7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, dass ein vierter Detektor zum Detektieren einer nicht ak­ tualisierten Trennmarke und zum Aktivieren der Stellung der Sequenzsteueranordnung für das betreffende erste Codewort ausschliesslich unter der Steuerung eines positiven Detek­ torergebnisses vorgesehen ist.
8. Anordnung nach Anspruch 6 oder 7, dadurch gekenn­ zeichnet, dass ein fünfter Detektor für ein Summierungs­ ergebnis der Trennmarken der ersten Codewörter vorgesehen ist, das höchstens gleich dem um eins verringerten Mindest­ abstand für die dabei aktuellen zweiten Codewörter ist, um unter der Steuerung eines positiven Detektorergebnisses die Vertauschungsanordnung zu aktivieren und die zweiten Berechnungsmittel anschliessend zu aktivieren, um danach die dabei aktuellen ersten Codewörter in einem Löschbetrieb zu korrigieren, in dem eine Trennmarke eines dabei aktuellen zweiten Codeworts als Fehleranzeiger arbeitet.
DE3717223A 1986-06-05 1987-05-22 Verfahren und Anordnung zum Decodieren eines Codesymbolblocks, der zwei Arten von Codewörtern enthält, die durch je einen maximalabstandsseparierbaren Code geschützt sind Expired - Fee Related DE3717223C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8601446A NL8601446A (nl) 1986-06-05 1986-06-05 Werkwijze en inrichting voor het dekoderen van een blok kodesymbolen dat op twee manieren verdeeld is over kodewoorden die elk door een minimum-afstandssepareerbare kode beschermd zijn.

Publications (2)

Publication Number Publication Date
DE3717223A1 DE3717223A1 (de) 1987-12-10
DE3717223C2 true DE3717223C2 (de) 2003-02-27

Family

ID=19848119

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3717223A Expired - Fee Related DE3717223C2 (de) 1986-06-05 1987-05-22 Verfahren und Anordnung zum Decodieren eines Codesymbolblocks, der zwei Arten von Codewörtern enthält, die durch je einen maximalabstandsseparierbaren Code geschützt sind

Country Status (10)

Country Link
US (1) US4802173A (de)
JP (1) JP2664680B2 (de)
KR (1) KR950010399B1 (de)
CA (1) CA1293327C (de)
DE (1) DE3717223C2 (de)
FR (1) FR2599916B1 (de)
GB (1) GB2191318B (de)
IT (1) IT1204677B (de)
NL (1) NL8601446A (de)
SE (1) SE466578B (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2605271B2 (ja) * 1987-02-10 1997-04-30 ソニー株式会社 エラー訂正及びチエツク装置
JPH01226057A (ja) * 1988-03-07 1989-09-08 Toshiba Corp データエラー検出方法
JPH0229032A (ja) * 1988-07-18 1990-01-31 Canon Inc データ復号方法
US4965883A (en) * 1988-08-24 1990-10-23 Digital Equipment Corporation Method and apparatus for transmitting and receiving characters using a balanced weight error correcting code
US4916701A (en) * 1988-09-21 1990-04-10 International Business Machines Corporation Method and system for correcting long bursts of consecutive errors
NL9100218A (nl) * 1991-02-07 1992-09-01 Philips Nv Encodeer/decodeer-schakeling, alsmede digitaal video-systeem voorzien van de schakeling.
EP0523969B1 (de) * 1991-07-18 1997-12-29 Canon Kabushiki Kaisha Kodierungs- und Dekodierungssystem zur Fehlerkorrektur
MY109399A (en) * 1992-01-07 1997-01-31 Koninklijke Philips Electronics Nv Device for processing digital data, and digital video system comprising the device
KR940011663B1 (ko) * 1992-07-25 1994-12-23 삼성전자 주식회사 오류정정 시스템
US5799023A (en) * 1995-07-19 1998-08-25 Matsushita Electric Industrial Co., Ltd. Message receiver
KR100189531B1 (ko) * 1996-06-10 1999-06-01 윤종용 Cd-rom 드라이브에 있어서 섹터 데이타 디코딩방법 및 회로
FR2766036A1 (fr) * 1997-07-11 1999-01-15 Thomson Csf Procede de detection et de correction d'erreurs adaptes a des supports de transmission fonctionnant en environnement perturbe
US5974580A (en) * 1997-07-23 1999-10-26 Cirrus Logic, Inc. Concurrent row/column syndrome generator for a product code
US6378100B1 (en) * 1997-12-29 2002-04-23 U.S. Philips Corporation Method and apparatus for encoding multiword information with error locative clues directed to low protectivity words
US6421805B1 (en) 1998-11-16 2002-07-16 Exabyte Corporation Rogue packet detection and correction method for data storage device
JP4126795B2 (ja) 1999-02-12 2008-07-30 ソニー株式会社 疑似積符号復号装置及び方法
US20020199153A1 (en) * 2001-06-22 2002-12-26 Fall Thomas G. Sampling method for use with bursty communication channels
US7162678B2 (en) * 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
FR2858141A1 (fr) * 2003-07-21 2005-01-28 Canon Kk Codage d'informations par codes de reed-solomon raccourcis
US7328395B1 (en) * 2004-04-13 2008-02-05 Marvell International Ltd. Iterative Reed-Solomon error-correction decoding
US20100138717A1 (en) * 2008-12-02 2010-06-03 Microsoft Corporation Fork codes for erasure coding of data blocks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0155038A1 (de) * 1984-02-29 1985-09-18 Koninklijke Philips Electronics N.V. Schneller Decoder für Reed-Solomon-Codes, auch als Coder verwendbar und Aufzeichnungs- und Wiedergabegerät, das einen solchen Coder und Decoder enthält
EP0156440A2 (de) * 1984-03-24 1985-10-02 Koninklijke Philips Electronics N.V. Verfahren zur Informationsübertragung mit Fehlerkorrektur für Datenworte, ein Fehlerkorrektur-Dekodierverfahren für solche Datenworte, eine Anordnung zur Informationsübertragung zur Verwendung mit dem Verfahren, ein Gerät für Informationsdekodierung zur Verwendung mit dem Verfahren und eine Anordnung zur Verwendung mit solchem Gerät
US4564945A (en) * 1983-06-20 1986-01-14 Reference Technology, Inc. Error-correction code for digital data on video disc

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2122778B (en) * 1982-06-29 1985-09-11 Sony Corp Digital audio signal processing
US4653051A (en) * 1983-09-14 1987-03-24 Matsushita Electric Industrial Co., Ltd. Apparatus for detecting and correcting errors on product codes
JPS6069917A (ja) * 1983-09-26 1985-04-20 Pioneer Electronic Corp デ−タ伝送方式
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
JPH0812612B2 (ja) * 1983-10-31 1996-02-07 株式会社日立製作所 誤り訂正方法及び装置
JPS60217568A (ja) * 1984-04-12 1985-10-31 Ricoh Co Ltd 誤り訂正方式
JPS6113715A (ja) * 1984-06-28 1986-01-22 Mitsubishi Electric Corp 2段符号化された符号の復号装置
JPH084233B2 (ja) * 1984-06-29 1996-01-17 株式会社日立製作所 誤り訂正符号の復号装置
JP2539353B2 (ja) * 1984-10-05 1996-10-02 株式会社日立製作所 Pcm信号再生方法及び装置
US4706250A (en) * 1985-09-27 1987-11-10 International Business Machines Corporation Method and apparatus for correcting multibyte errors having improved two-level code structure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4564945A (en) * 1983-06-20 1986-01-14 Reference Technology, Inc. Error-correction code for digital data on video disc
EP0155038A1 (de) * 1984-02-29 1985-09-18 Koninklijke Philips Electronics N.V. Schneller Decoder für Reed-Solomon-Codes, auch als Coder verwendbar und Aufzeichnungs- und Wiedergabegerät, das einen solchen Coder und Decoder enthält
EP0156440A2 (de) * 1984-03-24 1985-10-02 Koninklijke Philips Electronics N.V. Verfahren zur Informationsübertragung mit Fehlerkorrektur für Datenworte, ein Fehlerkorrektur-Dekodierverfahren für solche Datenworte, eine Anordnung zur Informationsübertragung zur Verwendung mit dem Verfahren, ein Gerät für Informationsdekodierung zur Verwendung mit dem Verfahren und eine Anordnung zur Verwendung mit solchem Gerät

Also Published As

Publication number Publication date
US4802173A (en) 1989-01-31
GB2191318B (en) 1990-08-15
KR950010399B1 (ko) 1995-09-16
FR2599916A1 (fr) 1987-12-11
SE8702295D0 (sv) 1987-06-02
JPS62292026A (ja) 1987-12-18
IT1204677B (it) 1989-03-10
GB8712836D0 (en) 1987-07-08
GB2191318A (en) 1987-12-09
KR880001118A (ko) 1988-03-31
IT8720780A0 (it) 1987-06-03
NL8601446A (nl) 1988-01-04
DE3717223A1 (de) 1987-12-10
SE8702295L (sv) 1987-12-06
FR2599916B1 (fr) 1989-03-24
SE466578B (sv) 1992-03-02
JP2664680B2 (ja) 1997-10-15
CA1293327C (en) 1991-12-17

Similar Documents

Publication Publication Date Title
DE3717223C2 (de) Verfahren und Anordnung zum Decodieren eines Codesymbolblocks, der zwei Arten von Codewörtern enthält, die durch je einen maximalabstandsseparierbaren Code geschützt sind
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2532149C2 (de) Fehlerkorrekturanordnung
DE2106314C3 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE2657826A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage
DE2357004A1 (de) Verfahren und einrichtung zur fehlerkorrektur fuer daten
DE3231956A1 (de) Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes
DE3124425A1 (de) Verfahren zur fehlerkorrektur
DE69814465T2 (de) Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
DE2217935C3 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE3422461A1 (de) Decoder zum decodieren von codewoertern, die blockweise mittels eines reed-solomon-codes gegen mehrere symbolfehler je block geschuetzt sind, und leseanordnung mit einem derartigen decoder fuer optisch lesbare speicherkoerper
DE102013016681B4 (de) Codieren und Decodieren von Daten zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE102012208711B4 (de) Vorrichtung zum Erzeugen einer Prüfsumme
DE102012200197A1 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
DE3701763A1 (de) Verfahren und anordnung zum einschreiben und lesen digital codierter information, beliebig geschuetzt durch einen fehlerkorrigierenden code oder nicht
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE112016003638T5 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE2053836B2 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE2655653C2 (de) Anordnung zur Feststellung der richtigen Zuordnung von Adresse und Speicherwort in einem wortorganisierten Datenspeicher
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE60004958T2 (de) Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM
EP0073979B1 (de) System zur Übertragung digitaler Informationssignale
EP0639316B1 (de) Verfahren zum empfangen von teletextdaten

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL

8127 New person/name/address of the applicant

Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N

8304 Grant after examination procedure
8339 Ceased/non-payment of the annual fee
8364 No opposition during term of opposition
R082 Change of representative

Representative=s name: PODDIG, DIETER, DIPL.-ING., DE

R081 Change of applicant/patentee

Owner name: KONINKLIJKE PHILIPS N.V., NL

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, NL

Effective date: 20140402

R082 Change of representative

Representative=s name: PODDIG, DIETER, DIPL.-ING., DE

Effective date: 20140402