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 sindInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2921—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2927—Decoding strategies
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
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.
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.
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.
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:
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.
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.
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.
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.
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)
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)
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)
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 |
-
1986
- 1986-06-05 NL NL8601446A patent/NL8601446A/nl not_active Application Discontinuation
-
1987
- 1987-01-16 US US07/005,515 patent/US4802173A/en not_active Expired - Lifetime
- 1987-05-22 DE DE3717223A patent/DE3717223C2/de not_active Expired - Fee Related
- 1987-06-01 GB GB8712836A patent/GB2191318B/en not_active Expired - Lifetime
- 1987-06-02 JP JP62137823A patent/JP2664680B2/ja not_active Expired - Lifetime
- 1987-06-02 SE SE8702295A patent/SE466578B/sv not_active IP Right Cessation
- 1987-06-03 IT IT20780/87A patent/IT1204677B/it active
- 1987-06-03 KR KR1019870005605A patent/KR950010399B1/ko not_active IP Right Cessation
- 1987-06-04 FR FR878707791A patent/FR2599916B1/fr not_active Expired
- 1987-06-04 CA CA000538897A patent/CA1293327C/en not_active Expired - Lifetime
Patent Citations (3)
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 |
---|---|
SE8702295D0 (sv) | 1987-06-02 |
FR2599916A1 (fr) | 1987-12-11 |
KR950010399B1 (ko) | 1995-09-16 |
IT8720780A0 (it) | 1987-06-03 |
US4802173A (en) | 1989-01-31 |
JP2664680B2 (ja) | 1997-10-15 |
JPS62292026A (ja) | 1987-12-18 |
FR2599916B1 (fr) | 1989-03-24 |
KR880001118A (ko) | 1988-03-31 |
DE3717223A1 (de) | 1987-12-10 |
GB8712836D0 (en) | 1987-07-08 |
SE8702295L (sv) | 1987-12-06 |
GB2191318B (en) | 1990-08-15 |
SE466578B (sv) | 1992-03-02 |
GB2191318A (en) | 1987-12-09 |
NL8601446A (nl) | 1988-01-04 |
CA1293327C (en) | 1991-12-17 |
IT1204677B (it) | 1989-03-10 |
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 | |
DE3124425C2 (de) | Verfahren und Vorrichtung zu Fehlererkennung und Fehlerkorrektur | |
DE3853206T2 (de) | Verfahren und gerät zur byteschreibfehlerkodierung. | |
DE2532149C2 (de) | Fehlerkorrekturanordnung | |
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 | |
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 | |
DE102013016681B4 (de) | Codieren und Decodieren von Daten zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern | |
DE3701763A1 (de) | Verfahren und anordnung zum einschreiben und lesen digital codierter information, beliebig geschuetzt durch einen fehlerkorrigierenden code oder nicht | |
DE69835345T2 (de) | Verfahren zur kodierung von mehrwortinformation | |
DE102006005817B4 (de) | Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder | |
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 | |
DE69324327T2 (de) | Verfahren für Fehler und Löschungskorrektur in digitaler Information und geeignete Vorrichtung zur Durchführung des Verfahrens | |
DE3851651T2 (de) | Schaltungsanordnung zur Erzeugung von Adressen. | |
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 | |
DE102005022107B9 (de) | Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge | |
DE2655653C2 (de) | Anordnung zur Feststellung der richtigen Zuordnung von Adresse und Speicherwort in einem wortorganisierten Datenspeicher | |
DE60004958T2 (de) | Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM | |
DE102013219088B9 (de) | Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes | |
EP0073979B1 (de) | System zur Übertragung digitaler Informationssignale |
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 |