DE60004958T2 - Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM - Google Patents

Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM Download PDF

Info

Publication number
DE60004958T2
DE60004958T2 DE60004958T DE60004958T DE60004958T2 DE 60004958 T2 DE60004958 T2 DE 60004958T2 DE 60004958 T DE60004958 T DE 60004958T DE 60004958 T DE60004958 T DE 60004958T DE 60004958 T2 DE60004958 T2 DE 60004958T2
Authority
DE
Germany
Prior art keywords
code words
decoding
code
decoder
memory
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
DE60004958T
Other languages
English (en)
Other versions
DE60004958D1 (de
Inventor
Alexander Kravtchenko
Friedrich Rominger
Jürgen Vogel
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.)
Deutsche Thomson Brandt GmbH
Original Assignee
Deutsche Thomson Brandt GmbH
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 Deutsche Thomson Brandt GmbH filed Critical Deutsche Thomson Brandt GmbH
Publication of DE60004958D1 publication Critical patent/DE60004958D1/de
Application granted granted Critical
Publication of DE60004958T2 publication Critical patent/DE60004958T2/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
    • H03M13/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • H03M13/2721Coding, 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 using interleaving techniques the interleaver involving at least two directions the interleaver involves a diagonal direction, e.g. by using an interleaving matrix with read-out in a diagonal direction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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
    • 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

Landscapes

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

Description

  • Die Erfindung bezieht sich auf ein Verfahren und auf eine Vorrichtung zur Korrektur von Fehlern in einem Datenstrom unter Verwendung eines Verfahrens zum Dekodieren eines cross-interleaved Reed-Solomon-Codes (CIRC).
  • Hintergrund
  • Es besteht ein Bedarf für erhöhte Qualität von Audio-Aufzeichnungs- und -Wiedergabe-Systemen wie auch bei anderen Arten von Kommunikation.
  • Ein Problem bei Aufzeichnungsmedien sind die Defekte in den Medien, die von Bereichen mit ungenau aufgezeichneten digitalen Daten herrühren oder von Daten, die nicht zuverlässig wiedergegebenen werden können. Im Ergebnis treten Fehler in den wiedergegebenen Daten wie auch in den Übertragungen von digitalen Daten auf. Während der Aufzeichnung, der Wiedergabe und der Übertragung von digitalen Daten treten Fehler in den digitalen Daten mit einer gewissen endlichen Wahrscheinlichkeit auf. Die Daten setzen sich üblicherweise aus binären Einheiten zusammen, eine Gruppe von binären Einheiten (z. B. 8) macht ein Daten-Byte aus, und Gruppen von Bytes (z. B. 2) machen ein Datenwort aus. Zusätzlich sind die Daten in Datenblöcken angeordnet (z. B. in Blöcke mit 32 oder 28 Bytes).
  • Es gibt zwei verschiedene Arten von Fehlern. Die erste Art ist ein einzelner Bit-Fehler, der die Substitution eines von zwei möglichen Werten eines binären Bits für seinen entgegengesetzten Wert ist. Solche Fehler treten üblicherweise willkürlich in einem digitalen Signal auf. Eine zweite Fehlerart besteht aus einer kontinuierlichen Sequenz von fehlerhaften Bits. Solche Fehler werden als Bündelfehler bezeichnet. Die Länge dieser Bündel und die Häufigkeit ihres Auftretens sind ebenfalls willkürlich.
  • Ein Fehlerkorrektur-Code, der üblicherweise bei Kompakt-Audio-Platten verwendet wird, ist ein sogenannter CIRC-Korrektur-Code. CIRC ist ein Akronym für cross-interleaved Reed-Solomon-Code. Der CIRC verwendet einen Zweistufen-Prozess. Beim Durchgang durch einen ersten Kodierer werden 24 aufeinanderfolgende Daten-Bytes, die ein Daten-Polynom darstellen, durch ein Generator-Polynom geteilt. Bei diesem Prozess werden 4 Paritäts-Bytes hinzugefügt. Das Ergebnis ist ein Block von 24 Daten-Bytes und 4 Paritäts-Bytes (C2-Code). Diese aufeinanderfolgende Sequenz von Bytes wird mit anderen kodierten Daten-Bytes verschachtelt oder darin verteilt.
  • Die verschachtelten Daten durchlaufen einen zweiten Kodierer. Der zweite Kodierer ist identisch mit dem ersten Kodierer, mit Ausnahme, dass die Bytes wegen der Verschachtelung in einer anderen Reihenfolge dargestellt werden, wobei Paritäts-Bytes zusammen mit Daten-Bytes kodiert werden, Blöcke von 28 Bytes (28 Daten-Bytes plus 4 Paritäts-Bytes) anstatt von 24 Byte-Blöcken kodiert werden und 4 zusätzliche Paritäts-Bytes hinzugefügt werden. Das Ergebnis des zweiten Kodier-Prozesses ist ein 32-Byte-Block (C1-Code), der sich aus 24 Daten-Bytes und 8 Paritäts-Bytes zusammensetzt.
  • Im Falle des CIRC-Korrektur-Codes wird der Kodier-Prozess des (28, 24) Reed-Solomon-Codes für 24 Datensymbole (Bytes) ausgeführt, wobei jedes Symbol aus 8 Bits besteht. Bei üblichen Audio-Anwendungen umfasst jeder Abtastwert 16 Bits und wird aus zwei Symbolen von jeweils 8 Bits gebildet. Somit ist jedes 8-Bit-Symbol entweder die obere oder die untere Seite eines Audio-Abtastwerts von einem der beiden Kanäle von stereophonen Audio-Daten.
  • Die kodierten Daten werden optisch aufgezeichnet und anschließend wiedergegeben. Nach der Wiedergabe der kodierten Daten gibt es wahrscheinlich einzelne Bit- oder Bündelfehler aufgrund von Aufzeichnungs-, Wiedergabe- oder Übertragungs-Problemen.
  • Konventionelle Fehlerkorrektur-Verfahren sind für die Verwendung in der CIRC-Dekodierung bekannt. Beispiele solcher Verfahren sind in US-A-4,546,474, US-A-4,476,562 und US-A-4,497,058 offenbart. Gemäß den konventionellen Verfahren zum Dekodieren von CIRC-Fehlern läuft die Verarbeitung auf der Basis eines sogenannten Lösch-Korrektur-Verfahrens. Bei dem Lösch-Korrektur-Verfahren wird der Ort der Fehlersymbole durch Zeiger-Informationen angegeben. Eine Fehlerkorrektur wird mit diesem Fehlersymbol ausgeführt. Im Falle der oben erwähnten C1- und C2-Codes kann die Feststellung und Korrektur von bis zu zwei Fehlern ausgeführt werden. Wenn jedoch der Fehlerort bereits bekannt ist, kann eine Fehlerkorrektur von bis zu vier Löschungen ausgeführt werden. Um daher die Fehlerkorrektur-Fähigkeit zu erhöhen, ist die Anwendung des Lösch-Korrektur-Verfahrens bevorzugt worden. Außerdem wurde gefunden, dass das Lösch-Korrektur-Verfahren besonders wirksam bei der Korrektur von Fehlerbündeln ist.
  • Gemäß dem verwendeten konventionellen Verfahren zum Dekodieren von CIRC-Fehlern wird in dem C1-Dekodierer eine Korrektur von bis zu zwei Fehlern ausgeführt. Wenn drei Fehler oder mehr auftreten, die natürlich nicht korrigiert sind, wird eine Cl-Zeiger-Information zu dem C2-Dekodierer in der nächsten Stufe gesendet, so dass eine Fehlerkorrektur in dem C2-Dekodierer unter Verwendung der Cl-Zeiger-Informationen ausgeführt wird.
  • Die mehrfache Verwendung der CIRC-Korrektur-Codes bei der Dekodierung führt zu einer Erhöhung der Korrekturfähigkeit von Fehlerkorrektur-Systemen. Konventionelle Dekodier-Verfahren (CIRC-Dekodierer) sind jedoch nicht in der Lage, Blöcke mit CIRC-Code mehrfach zu verarbeiten. Um dieses Problem zu lösen, kann man entweder konventionelle CIRC-Dekodierer mit zusätzlichen Mitteln oder Vorrichtungen versehen, die eine mehrfache Verarbeitung erlauben, oder konventionelle CIRC-Dekodierer für eine mehrfache Verarbeitung brauchbar machen.
  • Ein Verfahren (konventioneller CIRC-Dekodierer) für mehrfache Verarbeitung von CIRC-Codes ist in US-A-4,852,099 offenbart worden. Das bekannte Verfahren verwendet das Lösch-Korrektur-Verfahren, um die Korrekturfähigkeit von Fehlerkorrektur-Systemen zu erhöhen. Es wird vorgeschlagen, eine C1-Dekodierung und eine C2-Dekodierung zweimal in einer bestimmten Reihenfolge durchzuführen. Diese Reihenfolge kann zum Beispiel C1-Dekodierung, gefolgt von C2-Dekodierung, gefolgt von Cl-Dekodierung, gefolgt von C2-Dekodierung sein.
  • Gemäß diesem Beispiel werden Cl-Code-Worte einem Cl-Dekodierer zugeführt, indem eine tatsächliche Dekodierung des (32, 28) Reed-Solomon-Codes ausgeführt wird. Es wird eine Fehlerkorrektur von bis zu zwei Fehlern ausgeführt. Wenn von dem Cl-Dekodierer drei oder mehr Fehler festgestellt werden, wird ein C1-Zeiger für alle Symbole in Cl-Code-Worten gesetzt. Dann werden mittels des C1-Dekodierers korrigierte Daten und Fehler-Zeiger in einer Entschachtelungs-Verarbeitungsstufe weiterverarbeitet. Ein Ausgang des Entschachtelers wird dem C2-Deködierer zugeführt. Eine Lösch-Korrektur von bis zu 4 Löschüngen wird in dem C2-Dekodierer unter Verwendung von C1-Zeiger-Informationen ausgeführt. Bei Vollendung der Lösch-Korrektur in dem C2-Dekodierer wird der Cl-Zeiger gelöscht, und es wird keine Zeiger-Information zu dem zweiten C2-Dekodier-Zyklus übertragen.
  • In einem zweiten Zyklus werden Daten von dem C2-Dekodierer dem Verschachteler zugeführt, der die Daten in dieselbe Anordnung zurückführt, die sie bei der Reproduktion hatten. Danach entspricht die Verarbeitung in dem zweiten Dekodier-Zyklus der Verarbeitung in dem ersten Dekodier-Zyklus. Bei Verwendung dieses Dekodierverfahrens kann eine mehrfache Verarbeitung von CIRC-Codes ausgeführt werden, aber es wird zusätzliche Hardware (Verschachtelungs-Block) benötigt.
  • Ein anderes bei der CIRC-Dekodierung verwendetes Verfahren, das eine mehrfache Verarbeitung von CIRC benutzt, ist in US-A-4,637,021 offenbart. Fehler-Feststellung und Fehlerkorrektur werden durch Verarbeitung von Blöcken aus digitalen Daten-Bytes mit einem C1-Dekodierer und einem C2-Dekodierer erzielt. Um die Rate zu maximieren, mit der die Daten verarbeitet werden, wirken die Dekodierer C1 und C2 tatsächlich gleichzeitig auf Daten ein, die in einem System-Speicher gespeichert sind, wobei der C1-Dekodierer auf Daten vor dem C2-Kodierer wirkt. Gemäß dem offenbarten Dekodier-Verfahren des CIRC-Korrektur-Codes wird die Fehlerverarbeitung bis hin zu Doppelfehlerkorrektur bei der C1-Dekodierung in einer ersten Stufe ausgeführt, und eine Doppelfehlerkorrektur wird bei der C2-Dekodierung in der nächsten Stufe ausgeführt, wobei auf die C1-Zeiger-Information Bezug genommen wird, die von dem C1-Dekodierer abgeleitet wird. In diesem Fall wird die C1-Zeiger- Information nicht dazu verwendet, die Fehlerkorrektur-Fähigkeit von Fehlerkorrektur-Systemen zu erhöhen. Die Cl-Zeiger-Information dient zur Prüfung der Qualität des Dekodier-Prozesses.
  • Bei dem Verfahren gemäß US-A-4,637,021 werden Daten-Bytes mittels C1- und C2-Dekodierern aus dem System-Speicher gemäß dem folgenden Ablauf gelesen. Ein erster C1-Dekodierer verarbeitet einen Cl-Block aus Daten-Bytes (32 Bytes). Ein erster C2-Dekodierer verarbeitet dann einen C2-Block von Daten-Bytes (28 Bytes), der bereits von dem C1-Dekodierer verarbeitet worden ist; dies beendet einen ersten Durchlauf. Ein zweiter C1-Dekodierer verarbeitet Daten-Bytes, die bereits durch den ersten Durchlauf verarbeitet worden sind, und ein zweiter C2-Dekodierer verarbeitet Daten-Bytes, die bereits durch den ersten Durchlauf und den zweiten C1-Dekodierer verarbeitet worden sind; dies beendet einen zweiten Durchlauf. Ein Dekodierer-Zyklus umfasst die Ausführung sowohl des ersten als auch des zweiten Durchlaufs. Am Ende von jedem Dekodierer-Zyklus wird ein Adressenzähler fortgeschaltet, und der Dekodierer-Zyklus wird wiederholt. Neue Daten werden sofort in Speicherplätze geschrieben, wenn die Daten (C1-Block) in dem Eingangs-Puffer bereit sind. Somit schreitet während der Operation das Lesen der vier Dekodierer kontinuierlich durch den Speicher fort, bis verfügbare Daten verarbeitet worden sind. Das Verfahren gemäß US-A-4,637,021 für die Benutzung bei der CIRC-Dekodierung wird unter Verwendung eines Entschachtelers und eines speziellen Verfahrens zur Datensteuerung ausgeführt. Ein Entschachtelungs-Block ist in einem System-Speicher (256 × 32 Bytes) vorgesehen und besteht aus zwei Blöcken, einem C1-Speicherblock (128 × 32 Bytes) und einem C2-Speicherblock (128 × 32 Bytes). Der C1-Speicherblock enthält Adressen in Reihen 112 bis 239. Der C2-Speicherblock enthält Adressen in Reihen 240 bis 255 und dann in Reihen 0 bis 111. Der System-Speicher ist zirkular. Die am niedrigsten bezifferte System-Speicher-Adresse "folgt" der am höchsten bezifferten. Dies ist in 7 dargestellt.
  • Gemäß dem bekannten Verfahren verarbeitet der erste C1-Dekodierer den C1-Speicherblock aus 32 Daten-Bytes. Der C1-Dekodierer ist zunächst so positioniert, dass er den C1-Speicherblock an der Adresse 112 liest. Bei jedem folgenden Dekodierer-Zyklus (Ausführung von zwei Durchläufen durch die beiden C1- und C2-Dekodierer) wird der C1-Dekodierer so positioniert, dass er den C1-Speicherblock bei der nächstfolgenden höheren Adresse liest. Somit wird der C1-Speicherblock für den zweiten Zyklus an der Position 113 positioniert.
  • Der erste C2-Dekodierer verarbeitet einen C2-Speicherblock aus 28 Daten-Bytes. Der C2-Dekodierer ist zunächst so positioniert, dass er den C2-Speicherblock bei der Adresse 0 des System-Speichers liest. Jene Bytes, die den C2-Speicherblock bilden, sind entlang einer Diagonalen des System-Speichers angeordnet (siehe 7). Jene Bytes, die den C2-Speicherblock bilden, werden in aufeinanderfolgende Dekodier-Zyklen geändert.
  • Am Beginn des zweiten C1-Durchlaufs wird der C1-Dekodierer so positioniert, dass er den C1-Speicherblock an der Adresse 240 des System-Speichers liest. Am Beginn des zweiten C2-Durchlaufs wird der C2-Dekodierer zunächst so positioniert, dass er den C2-Speicherblock an der Adresse 113 des System-Speichers liest. Die Ausführung der vier Dekodier-Durchläufe (ein Dekodierer-Zyklus) schreitet kontinuierlich durch den System-Speicher fort. Wenn sich in dem System-Speicher noch unverarbeitete Daten befinden, werden die Dekodier-Zyklen fortgesetzt. Wenn alle Daten in dem System-Speicher korrigiert sind, ist die Operation des Fehlerkorrektur-Systems beendet.
  • Aus US-A-5,870,366 ist ein Aufzeichnungs/Wiedergabegerät bekannt, bei dem das Verschachtelungs-Schema des Norm-CIRC-Kodierverfahrens so modifiziert wird, dass es die Daten eines Datenrahmens nicht wie üblich über 108 Datenrahmen, sondern über 98 Datenrahmen ausbreitet, was die Größe eines Sektors ist, also wird durch Anpasung der Verschachtelungstiefe an die Sektorgröße die Anzahl der Sektoren auf die in einer Lese-Operation Zugriff genommen werden muss, auf zwei reduziert.
  • Weitere Dokumente, die C1- und C2-Kodier/Dekodier-Prozesse in Platten-Aufzeichnungs/Wiedergabegeräten beschreiben, sind EP-A-0 652 561 und US-A-5,506,823.
  • Erfindung
  • Das oben beschriebene Verfahren zur Dekodierung von CIRC-Korrektur-Codes hat die folgenden Nachteile:
    • a) Daten in dem System-Speicher werden während 256 Zyklen verarbeitet (vier Dekodier-Durchläufe in jedem Dekodierer-Zyklus). Sobald alle Daten in dem System-Speicher korrigiert sind, ist die Operation des Fehlerkorrektur-Systems vollendet. Wenn ausreichend Daten in dem Eingangs-Puffer verfügbar sind, tritt eine Unterbrechung in der System-Speicher-Verarbeitung auf, damit der C1-Speicherblock in den System-Speicher geschrieben werden kann. Unterbrechungen können mehrmals während der System-Speicher-Verarbeitung (256 Zyklen) auftreten. Daher können irgendwelche Daten in dem System-Speicher nicht zweimal verarbeitet werden (erste C1-, C2-Durchläufe und zweite C1-, C2-Durchläufe).
    • b) Es müssen gleichzeitig zwei Dekodierer (C1-Dekodierer und C2-Dekodierer) für Daten verwendet werden, die in dem System-Speicher gespeichert sind. Daher ist zusätzliche Hardware erforderlich.
    • c) Das Lösch-Korrektur-Verfahren für Reed-Solomon-Codes kann nicht in Verbindung mit dem oben beschriebenen Verfahren verwendet werden.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Vorrichtung für die Verwendung beim Dekodieren eines cross-interleaved Reed-Solomon-Codes (CIRC) zu offenbaren, das bzw. die wirksam Fehler in einem Datenstrom korrigiert, während der Hardware-Aufwand vermindert wird.
  • Eine weitere Aufgabe der Erfindung ist das Aufzeigen eines Verfahrens und einer Vorrichtung beim Dekodieren eines cross-interleaved Reed-Solomon-Codes, das beziehungsweise die Fehler in einem Datenstrom durch Verwendung des sogenanten Lösch-Korrekturverfahrens korrigiert.
  • Gemäß einem Aspekt der Erfindung ist ein Fehlerkorrektur-Verfahren für die Verwendung in einem Prozess zum Dekodieren von cross-interleaved Reed-Solomon-Codes (CIRC) vorgesehen, das Fehler in einem Block aus 109 Cl-Code-Worten, von denen jedes aus 32 Daten-Bytes besteht, und in einem Block aus 109 C2-Code-Worten, von denen jedes aus 28 Bytes besteht, korrigiert, wobei der Block aus Cl-Code-Worten in einem Speicher positioniert ist, der einen Speicherblock mit Speicherplätzen Nij für die Daten-Bytes mit i = 0, ..., 217; j = 0, ..., 31 an den Plätzen i = 109, ..., 217 und j = 0, ..., 31 umfasst; wobei der Block aus C2-Code-Worten entlang von Diagonalen des Speichers lokalisiert ist, wobei die Diagonalen an den Positionen i = 0, ..., 108 und j = 0 beginnen und an den Positionen i = 108, ..., 216 und j = 27 enden; wobei ein vorhergehender Block aus Cl-Code-Worten im Speicher an den Positionen i = 0, ..., 108 und j = 0, ..., 31 positioniert ist, wobei das Verfahren die folgenden Schritte umfasst:
    • a1) Lesen und Dekodieren (450) der C1-Code-Worte in dem gegenwärtigen Block aus den Plätzen Nij unter der Verwendung von Dekodiermitteln (5), beginnend mit i = 109 und j = 0;
    • a2) Korrigieren der C1-Code-Worte wenigstens teilweise;
    • b1) Lesen und Dekodieren (460) der C2-Code-Worte aus den Plätzen Nij unter Verwendung der Dekodierermittel (5) entlang den Diagonalen des Speichers, beginnend mit der Position i = 0 und j = 0; und
    • b2) Korrigieren der C2-Code-Worte wenigstens teilweise;
    • c) Wiederholen der Schritte a1, a2 und b1, b2.
  • Dieses Verfahren sieht das Lesen und Dekodieren von C1- und C2-Code-Worten in einer neuen Weise vor. Dies bedeutet, dass das neue Verfahren spezifische Regelungen mit sich bringt, bei der Definition welche Datenworte für die C1- und C2-Dekodierung und für die Verarbeitungs-Reihenfolge verwendet werden sollen. Der System-Speicher für eine Entschachteler-Ausführung kann im Vergleich zu konventionellen System-Speichern eine kleinere Größe haben. Außerdem braucht nur ein einziger CIRC-Dekodierer zur Ausführung des erfindungsgemäßen Verfahrens verwendet zu werden.
  • Die Korrektur eines großen Fehlerbündels in C1-Code-Worten kann sehr wirksam für eine niedrige Eingangs-Fehlerrate ausgeführt werden.
  • Gemäß einem anderen Aspekt der Erfindung ist eine neue Vorrichtung zur Ausübung des oben vorgesehenen Fehler-Korrekturverfahrens im Anspruch 11 offenbart.
  • Vorteilhafte Merkmale der Erfindung sind in den Unteransprüchen offenbart.
  • Zeichnungen
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend ausführlicher erläutert. In den Zeichnungen stellen dar:
  • 1 ein Beispiel eines System-Speichers, der in Verbindung mit einem konventiellen Fehlerkorrektur-Verfahren verwendet wird;
  • 2 ein Blockschaltbild eines CIRC-Dekodierers, der zur Ausführung des erfindungsgemäßen Verfahrens geeignet ist;
  • 3 eine schematische Darstellung eines Speicherblocks mit Speicherblöcken B1 und B2 gemäß der Erfindung;
  • 4 ein Flussdiagramm des erfindungsgemäßen Verfahrens;
  • 5 den Speicherblock von 3 mit Speichersektoren;
  • 6 den Speicherblock von 5 mit in den Speicherblock B2 bewegtem Speicherblock B1; und
  • 7 ein Diagramm, das Ergebnisse eines konventionellen Fehlerkorrektur-Verfahrens mit dem erfindungsgemäßen Fehlerkorrektur-Verfahren vergleicht.
  • Ausführungsbeispiele
  • 1. System-Komponenten
  • 2 ist ein Blockschaltbild eines erfindungsgemäßen CIRC-Dekodierers.
  • Ein Datenstrom aus einem Erfassungsteil wird in einer Eingangs-Logik 1 gespeichert. Die Eingangs-Logik 1 ist in der Lage, 109 C1-Code-Worte (32 Bytes) in einem Eingangs-Puffer zu speichern. Wenn ausreichend Daten in dem Eingangs-Puffer verfügbar sind, wird ein Datenblock (119 × 32) in einen System-Speicher 2 geschrieben, der vorzugsweise ein RAM ist. Im System-Speicher 2 werden zwei Speicherblöcke B1, B2 zur Speicherung von Daten-Bytes gebildet.
  • Ein Element 3 "Verzögerung von einem Symbol" wird zur Datenverzögerung – wie aus konventionellen CIRC-Dekodierern bekannt ist – verwendet.
  • Mittel zum Adressieren und Bestimmen von Speicherplätzen in dem System-Speicher 2, an denen Lese-, Schreib- und Fehlerkorrektur-Operationen betrieben werden sollen, sind in einem Timing- und Steuerelement 4 angeordnet.
  • Zum besseren Verständnis werden Daten-Bytes im System-Speicher 2 so betrachtet, als seien sie Elemente eines zweidimensionelen kartesischen Koordinatensystems, wie in 3 dargestellt ist. Diese Annahme ist unabhängig von einer realen Hardware-Ausführung des System-Speichers 2. Jede vertikale oder i-Achsen-Position enthält 32 Bytes von C1-Code-Worten (siehe 3). Jede horizontale oder j-Rchsen-Position stellt ein 8-Bit-Byte an jeder j-Achsen-Position dar. Bytes sind der Reihe nach innerhalb jeder j-Position von links nach rechts nummeriert. Dies entspricht der Systematik des Reed-Solomon-(RS)-Codes. Paritäts-Bytes sind in den Positionen 28 bis 31.
  • Gemäß 2 ist ein konventioneller RS-Dekodierer 5 mit dem System-Speicher 2 und dem Timing- und Steuerelement 4 verbunden. In dem konventionellen RS-Dekodierer 5 wird ein sogenanntes Lösch-Korrektur-Verfahren des RS-Codes ausgeführt. Der RS-Dekodierer 5 ist in der Lage, vier Löschungen oder zwei Fehler oder irgendwelche Kombinationen von Fehlern und Löschungen zu korrigieren gemäß: 2*t + E < d, worin t die Zahl der Fehler in einem Code-Wort, E die Zahl von Löschungen und d der Hamming-Abstand des RS-Codes ist. Für Kompakt-Audio-Platten-Anwendungen ist d gleich 4.
  • Das Adressieren und Bestimmen von Plätzen in dem System-Speicher 2 und die Steuerung von übertragenen Daten-Bytes während Lese-, Schreib- und Korrektur-Operationen wird unter Verwendung eines Timing- und Steuerelements 4 ausgeführt.
  • Eine Verzögerung von zwei Symbolen wird in einem Element 6" verzögert von zwei Symbolen" ausgeführt. Ein C2-Code-Wort wird korrigiert, nachdem ein zweiter Dekodierer-Zyklus des CIRC-Dekodierers in einen Ausgangs-Puffer 7 geschrieben wird.
  • 2. Ausführliche Operationen eines erfindungsgemäßen Fehlerkorrektur-Verfahrens
  • Unter Bezugnahme auf 4 werden Operationen des neuen Dekodierungs-Verfahrens für mehrfache Verarbeitung eines CIRC-Korrektur-Codes in Einzelheiten beschrieben. Sobald in der Eingangs-Logik 1 genügend Daten verfügbar sind, wird ein Datenblock (109 × 32 Bytes) in i-Positionen 109, 110, ..., 217 des System-Speichers 2 geschrieben (siehe 3), Schritte 410 und 420.
  • Ein Zähler-Durchlauf eines B1-Speicherblocks wird zunächst mit 1 (430 in 4) initialisiert. Dann wird eine Bedingung Count ps = 2 – ? analysiert, Schritt 440. Wenn das Ergebnis nein ist, dann wird der Schritt 450 ausgeführt. Beim Schritt 450 wird ein RS-Dekodierer 5, der zu dieser Zeit in der C1-Stufe ist, für das Lesen des C1-Code-Wortes (32 Bytes entlang j-Positionen für j = 0, 1, ..., 31) an der i-Position 109 positioniert. Bei jedem folgenden C1-Dekodierer-Zyklus wird der RS-Dekodierer 5 vorwärts positioniert und liest das C1-Code-Wort an der folgenden nächst höherwertigen i-Position. Somit wird während des zweiten C1-Dekodierer-Zyklus der RS-Dekodierer 5 an der i-Position 110 positioniert. In derselben Weise wird die Adressierung fortgesetzt, bis die i-Position 217 für alle j-Positionen (j = 0, 1, ..., 31) gelesen ist.
  • Bei jedem C1-Dekodierer-Zyklus versucht der RS-Dekodierer 5 bis zu zwei Fehler zu korrigieren. wenn drei oder mehr Fehler auftreten, die natürlich nicht korrigiert werden, werden Lösch-Flags allen nicht-korrigierten Daten-Bytes des C1-Code-Wortes zugeordnet. Lösch-Flags werden in einem zusätzlichen Speicherblock (nicht dargestellt) des System-Speichers 2 gespeichert.
  • Im allgemeinen führt der RS-Dekodierer 5 (in der C1-Stufe) kontinuierlich 109 Dekodierungs- und Korrektur-Zyklen (450 in 4) aus. Dann ist der B1-Speicherblock (siehe 3) voll verarbeitet worden, d.h. der erste Durchlauf der C1-Dekodierung ist vollendet. Danach wird der RS-Dekodierer 5, der zu dieser Zeit in der C2-Stufe ist, zum Lesen eines C2-Code-Wortes (28 Bytes) an der i-Position 0 (460 in 4) positioniert. C2-Code-Worte werden entlang von Diagonalen von B1- und B2-Speicherblöcken gelesen. Das Adressieren von B2-Code-Worten (C2-CCW) in Lese-Operationen erfolgt gemäß dem folgenden Algorithmus:
    Figure 00150001
    worin Speicher [i][j] ein Platz in dem System-Speicher 2 ist.
  • Bei jedem C2-Dekodierer-Zyklus versucht der RS-Dekodierer 5 bis zu vier Löschungen oder zwei Fehler oder irgendwelche Kombinationen von Fehlern und Löschungen auf der Basis der folgenden Bedingung zu korrigieren: 2*t + e < d, worin t die Zahl von Fehlern in einem Code-Wort, E die Zahl von Löschungen und d der Hamming-Abstand vom RS-Code ist.
  • Die während der C1-Dekodierungs-Zyklen zugeordnete Löschungs-Information (C1-Zähler-Information) wird bei der C2-Dekodierung und Korrektur-Operationen verwendet. Beim Schritt 460 werden unkorrigierbare C2-Code-Worte nicht markiert, d.h. Lösch-Flags werden nicht zugeordnet.
  • Insgesamt führt der RS-Dekodierer 5 (in der C2-Stufe) kontinuierlich 109 C2-Dekodierungs- und Korrektur-Zyklen durch (Schritt 460 in 4). Nach jenen Operationen werden 109 C2-Code-Worte verarbeitet, und der erste Durchlauf der C2-Dekodierung ist vollendet. Nach 109 C2-Dekodierungs- und Korrektur-Zyklen wird der Inhalt des Zählers Count ps (Zähler von Durchläufen; 470 in 4) erhöht und wird 2.
  • Während des Schrittes 440 wird erneut die Bedingung Count ps = 2-? analysiert. Wenn das Ergebnis ja ist, muss ein Schritt 480 ausgeführt werden, und die Lösch-Flags aller Daten-Bytes in dem B1-Speicherblock werden gelöscht. Dann wird der RS-Dekodierer 5 (in der C1-Stufe) erneut zum Lesen von C1-Code-Worten an der i-Position 109 während des Schritts 490 positioniert. Bei jedem folgenden C1-Dekodierer-Zyklus wird der RS-Dekodierer 5 vorwärts positioniert, und das C1-Code-Wort bei der nächstfolgenden höheren i-Position wird gelesen. Somit wird während des zweiten C1-Dekodierer-Zyklus der RS-Dekodierer 5 an der i-Position 110 positioniert. In derselben Weise wird die Adressierung bis zur i-Position 217 fortgesetzt. Während jedes C1-Dekodierer-Zyklus versucht der RS-Dekodierer 5 bis zu zwei Fehler zu korrigieren. Wenn drei oder mehr Fehler auftreten, die natürlich nicht korrigiert werden, werden Lösch-Flags allen nicht korrigierten Bytes des C1-Code-Wortes zugeordnet.
  • Im allgemeinen führt der RS-Dekodierer 5 (in der C1-Stufe) kontinuierlich erneut 109 Dekodierungs- und Korrektur-Zyklen durch (Schritt 490 in 4). Dann ist der B1- Speicherblock voll verarbeitet worden, d. h. der zweite Durchlauf der C1-Dekodierung ist vollendet. Anschließend wird der RS-Dekodierer 5 (in der C2-Stufe) erneut positioniert, um das C2-Code-Wort (28 Bytes) an der i-Position 0 zu lesen. C2-Code-Worte werden entlang Diagonalen von B2- und B1-Speicherblöcken beim Schritt 500 gelesen. Das Adressieren von C2-Code-Worten in Lese-Operationen wird gemäß dem oben erwähnten Algorithmus (1) ausgeführt.
  • Der RS-Dekodierer 5 versucht erneut bis zu vier Löschungen oder zwei Fehler oder irgendwelche Kombinationen von Fehlern und Löschungen durch jeden C2-Dekodierer-Zyklus zu korrigieren. Wenn der RS-Dekodierer 5 nicht in der Lage ist, das gegenwärtige C2-Code-Wort zu korrigieren, werden Daten-Bytes mit Flags versehen. Danach werden die verarbeiteten C2-Code-Worte in den Ausgangs-Puffer 7 geschrieben (siehe 2).
  • Der RS-Dekodierer führt (in der C2-Stufe) kontinuierlich 109 C2-Dekodierungs- und Korrektur-Zyklen durch. Nachdem 109 C2-Code-Worte verarbeitet worden sind, ist ein zweiter Durchlauf der C2-Dekodierung vollendet. Dann wird der B1-Speicherblock mit Lösch-Informationen in den B2-Speicherblock des System-Speichers 7 bewegt (siehe Schritt 510 in 4). Ein Signal ERLEDIGT wird in dem Timing- und Steuerelement 4 erzeugt. Dieses Signal gibt die Information, dass alle Daten-Bytes in dem System-Speicher 2 genau zweimal verarbeitet worden sind. Dann wird der Schritt 410 erneut ausgeführt.
  • 3. Bündelfehler-Korrektur
  • Nachfolgend wird die Bündelfehler-Korrektur unter Verwendung des erfindungsgemäßen Verfahrens erläutert.
  • A) Korrektur eines C1-Code-Wort-Bündels mit hoher Eingangs-Fehler-Rate (C1-Code-Worte werden vollständig oder nahezu vollständig zerstört)
  • Ausführliche Operationen des Korrekturverfahrens des CIRC-Korrektur-Codes gemäß der Erfindung werden in Verbindung mit dem Bündelfehler beschrieben. Es wird angenommen, dass der B2-Speicherblock bereits korrigiert worden ist (in einer vorhergehenden Stufe) und sich in dem B2-Speicherblock keine Fehler befinden. Der B1-Speicherblock wird aus der Eingangs-Logik 1 geladen. Bei i-Positionen 130, ..., 140 gibt es ein Bündelfehler (11 beschädigte C1-Code-Worte, siehe 5).
  • Der RS-Dekodierer 5 startet (in der C1-Stufe) und versucht aufeinanderfolgend 109 Cl-Code-Worte in dem B1-Speicherblock zu dekodieren und zu korrigieren. Code-Worte bei i-Positionen 130, ..., 140 sind nicht korrigierbar und werden daher mit Flags versehen (jedem Byte in jedem C1-Code-Wort wird das Lösch-Flag zugeordnet).
  • Dann startet der RS-Dekodierer 5 (in der C2-Stufe und versucht nacheinander 109 C2-Code-Worte in B1- und B2-Speicherblöcken zu dekodieren und zu korrigieren. Während dieser Operation muss der RS-Dekodierer 5 (in der C2-Stufe) Bytes aus den Speichersektoren 2B1 und 1B2 lesen (siehe 5). Nach Vollendung des ersten Durchlaufs des RS-Dekodierers 5 (109 Cl-Durchläufe und 109 C2-Durchläufe) werden mit Flags versehene Bytes an den i-Positionen (130– 140) innerhalb des Speichersektors 2B1 korrigiert, während mit Flags versehene Bytes an den i-Positionen (130–140) innerhalb des Speichersektors 1B1 unkorrigiert bleiben.
  • In einem zweiten Durchlauf versucht der RS-Dekodierer 5 (in der C1-Stufe) aufeinanderfolgend 109 C1-Code-Worte in dem B1-Speicherblock zu dekodieren und zu korrigieren. Code-Worte an den Positionen 130, ..., 140 werden erneut mit Flags versehen, aber tatsächlich sind zu dieser Zeit Fehler nur in dem Speichersektor 1B1 vorhanden. Dann startet der RS-Dekodierer 5 (in der C2-Stufe) und versucht aufeinanderfolgend 109 C2-Code-Worte in B1- und B2-Speicherblöcken zu dekodieren und zu korrigieren.
  • Bei einer nächsten Stufe wird der korrigierte B1-Speicherblock mit Lösch-Informationen in den B2-Speicherblock des System-Speichers kopiert (siehe 6). Danach wird ein neuer Datenblock aus der Eingangs-Logik 1 in den B1-Speicherblock geladen, und der CIRC-Dekodierer startet erneut. Nun sind (existieren) verbleibende Fehler in dem Speichersektor 1B2 (Bytes mit Lösch-Informationen). Der RS-Dekodierer 5 (in der C1-Stufe) startet und versucht aufeinanderfolgend 109 C1-Code-Worte in dem B1-Speicherblock zu dekodieren und zu korrigieren.
  • Dann startet der RS-Dekodierer 5 (in der C2-Stufe) und versucht aufeinanderfolgend 109 C2-Code-Worte in B1- und B2-Speicherblöcken zu dekodieren und zu korrigieren. Während dieser Stufe werden Fehler im Speichersektor 1B2 (verbleibende Fehler an den i-Positionen 21, ..., 31) korrigiert.
  • Der CIRC-Dekodierer, der das erfindungsgemäße Verfahren ausführt, ist in der Lage, 14 beschädigte C1-Code-Worte (Grenze) mit einer hohen Eingangs-Fehler-Rate zu korrigieren.
  • B) Korrektur eines C1-Code-Wort-Bündels mit niedriger Eingangs-Fehler-Rate (jedes C1-Code-Wort mit 3 bis 6 Fehlern)
  • Der CIRC-Dekodierer, der das erfindungsgemäße Verfahren ausführt, arbeitet sehr wirksam, wenn beschädigte C1-Code-Worte eine niedrige Eingangs-Fehler-Rate haben. Dies wird nachfolgend erläutert.
  • Bei der C2-Code-Wort-Fehlerkorrektur (erster Durchlauf des CIRC-Dekodierers) kann der RS-Dekodierer 5 (in der C2-Stufe), jede willkürliche Kombination von Löschungen (bis zu vier Löschungen) korrigieren, d.h. während des zweiten Durchlaufs des CIRC-Kodierers ist der RS-Dekodierer 5 (in der Cl-Stufe), alle C1-Code-Worte zu korrigieren, die noch nicht während des ersten Durchlaufs des CIRC-Dekodierers korrigiert worden sind (in der Cl-Stufe). Daher ist es während des zweiten Durchlaufs des CIRC-Dekodierers möglich, alle C2-Code-Worte zu korrigieren, die während des ersten Durchlaufs des CIRC-Dekodierers nicht korrigiert worden sind (in der C2-Stufe).
  • Dies kann unter Bezugnahme auf 7 gezeigt werden. In 7 sind Ergebnisse der Fehlerkorrektur für zwei CIRC-Dekodierer dargestellt – ein konventioneller CIRC-Dekodierer und ein das erfindungsgemäße Verfahren ausführender CIRC-Dekodierer. Ergebnisse eines konventionellen CIRC-Dekodierers sind durch gestrichelte Linien dargestellt. Ergebnisse eines die Erfindung verwendenden CIRC-Dekodierers sind als durchlaufende Linien dargestellt.
  • Ergebnisse sind für die folgenden Fehler-Kombinationen dargestellt:
    • 1. Bündelfehler von 20 C1-Code-Worten mit 3 Fehlern in jedem C1-Code-Wort (willkürliche Fehler).
    • 2. Bündelfehler von 20 C1-Code-Worten mit 4 Fehlern in jedem C1-Code-Wort.
    • 3. Bündelfehler von 20 C1-Code-Worten mit 5 Fehlern in jedem C1-Code-Wort.
    • 4. Bündelfehler von 20 C1-Code-Worten mit 6 Fehlern in jedem C1-Code-Wort.
    • 5. Bündelfehler von 30 Cl-Code-Worten mit 3 Fehlern in jedem C1-Code-Wort.
    • 6. Bündelfehler von 30 C1-Code-Worten mit 4 Fehlern in jedem C1-Code-Wort.
    • 7. Bündelfehler von 30 C1-Code-Worten mit 5 Fehlern in jedem C1-Code-Wort.
    • B. Bündelfehler von 30 C1-Code-Worten mit 6 Fehlern in jedem C1-Code-Wort.
    • 9. Bündelfehler von 40 C1-Code-Worten mit 3 Fehlern in jedem C1-Code-Wort.
    • 10. Bündelfehler von 40 Cl-Code-Worten mit 4 Fehlern in jedem C1-Code-Wort.
    • 11. Bündelfehler von 40 C1-Code-Worten mit 5 Fehlern in jedem C1-Code-Wort.
    • 12. Bündelfehler von 40 C1-Code-Worten mit 6 Fehlern in jedem C1-Code-Wort.
  • Ergebnisse von Bündelfehler-Korrektur von 20 C1-Code-Worten mit verschiedenen vielen Fehlern in jedem C1-Code-Wort sind in 7 dargestellt (Kreise). Der das erfindungsgemäße Verfahren ausführende CIRC-Dekodierer ist in der Lage, einen Bündelfehler von 20 C1-Code-Worten mit 3 und 4 Fehlern in jedem C1-Code-Wort zu korrigieren. Wenn 5 und 6 Fehler in C1-Code-Worten auftreten, ist der das erfindungsgemäße Verfahren ausführende CIRC-Dekodierer nicht in der Lage, einen Bündelfehler von 20 C1-Code-Worten zu korrigieren. Jedoch ist die Ausgangs-Lösch-Rate von CIRC-Dekodierern, die das erfindungsgemäße Verfahre ausführen, für Audio-Daten beträchtlich niedriger.
  • Für den das erfindungsgemäße Verfahren ausführenden CIRC-Dekodierer wird eine bessere Fehlerkorrekturleistung bei der Korrektur von Bündelfehlern von 30 C1-Code-Worten im Vergleich zu einem konventionellen CIRC-Dekodierer erreicht. Der das erfindungsgemäße Verfahren ausführende CIRC-Dekodierer ist in der Lage, einen Bündelfehler von 30 C1-Code-Worten mit 3 Fehlern in jedem Code-Wort zu korrigieren. Die Ausgangs-Lösch-Rate von Audio-Daten in dem das erfindungsgemäße Verfahren ausführenden CIRC-Dekodierer ist auch niedriger (Ergebnisse sind mittels rechteckiger Punkte dargestellt). Vorteile des das erfindungsgemäße Verfahren ausführenden CIRC-Dekodierers nehmen ab bei weiterem Anwachsen der Eingangs-Fehler-Rate.
  • Begrenzung für sowohl den konventionellen CIRC-Dekodierer als auch den das erfindungsgemäße Verfahren ausführenden CIRC-Dekodierer sind Bündelfehler von 14 (vollständig beschädigten) C1 Code-Worten. In diesem Fall unterscheidet sich die Fehlerkorrekturleistung für einen konventionellen CIRC-Dekodierer und für einen das erfindungsgemäße Verfahren ausführenden CIRC-Dekodierer nicht.

Claims (12)

  1. Fehlerkorrektur-Verfahren für die Verwendung in einem Prozess zum Dekodieren eines cross-interleaved Reed-Solomon-Codes CIRC, bei dem Fehler in einem Block aus 109 C1-Code-Worten, von denen jedes aus 32 Daten-Bytes besteht, und in einem Block aus 109 C2-Code-Worten, von denen jedes aus 28 Daten-Bytes besteht, korrigiert werden, wobei der Block aus C1-Code-Worten in einem Speicher positioniert ist, der einen Speicherblock mit Speicherplätzen Nij für die Daten-Bytes mit i = 0, ..., 217; j = 0, ..., 31 an den Plätzen i = 109, ..., 217, und j = 0, ..., 31 umfasst; wobei der Block aus C2-Code-Worten entlang von Diagonalen des Speichers lokalisiert ist, wobei die Diagonalen an den Positionen i = 0, ..., 108 und j = 0 beginnen und an den Positionen i = 108, ..., 216 und j = 27 enden; wobei ein vorhergehender Block aus C1-Code-Worten in dem Speicher an den Positionen i = 0, ..., 108 und j = 0, ..., 31 positioniert ist; wobei das Verfahren die folgenden Schritte umfasst: a1) Lesen und Dekodieren (450) der C1-Code-Worte in dem gegenwärtigen Block aus den Plätzen Nij unter Verwendung von Dekodiermitteln, beginnend mit i = 109 und j = 0 ; a2) Korrigieren der C1-Code-Worte wenigstens teilweise; b1) Lesen und Dekodieren (460) der C2-Code-Worte aus den Plätzen Nij unter Verwendung der Dekodierermittel (5) entlang den Diagonalen des Speichers, beginnend mit der Position i = 0 und j = 0; und b2) Korrigieren der C2-Code-Worte wenigstens teilweise; c) Wiederholen der Schritte a1, a2 und b1, b2.
  2. Verfahren nach Anspruch 1, bei dem das Korrigieren der C1-Code-Worte und der C2-Code-Worte mittels eines Lösch-Korrektur-Verfahrens des Reed-Solomon-Codes ausgeführt wird.
  3. Verfahren nach Anspruch 2, das den Schritt einschließt, erste Lösch-Informationen durch Zuordnen von ersten Lösch-Flags zu Daten-Bytes der C1-Code-Worte vorzusehen, die fehlerhaft sind und nicht beim Schritt a2) korrigiert wurden.
  4. Verfahren nach Anspruch 3, das den Schritt einschließt, die ersten Lösch-Informationen zur Fehlerkorrektur im Schritt b2) zu verwenden.
  5. Verfahren nach Anspruch 3 oder 4, das den Schritt einschließt, zweite Lösch-Informationen durch Zuordnen von zweiten Lösch-Flags zu Daten-Bytes der C1-Code-Worte vorzusehen, die fehlerhaft sind und nicht beim Wiederholen des Schrittes a2) korrigiert wurden.
  6. Verfahren nach Anspruch 5, das den Schritt einschließt, die zweiten Lösch-Informationen zur Fehlerkorrektur in dem Schritt zur Wiederholung des Schrittes b2) zu verwenden.
  7. Verfahren nach Anspruch 5 oder 6, das den Schritt einschließt, dritte Lösch-Informationen durch Zuordnen dritter Lösch-Flags zu Daten-Bytes der C2-Code-Worte vorzusehen, die fehlerhaft sind und nicht bei der Wiederholung des Schrittes b2) korrigiert wurden.
  8. Verfahren nach einem der Ansprüche 1 bis 7, bei dem die Schritte zur Korrektur der gelesenen C1-Code-Worte bzw, zur Korrektur der gelesenen C2-Code-Worte auf der Basis von 2*t + E < d ausgeführt werden, wobei t die Zahl der Fehler, E die Zahl von Löschungen und d der Hamming-Abstand ist.
  9. Verfahren nach Anspruch 8, bei dem d = 5 ist.
  10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die mehreren Plätze Nij einen Speicherblock B2 mit B2-Plätzen N1 ij (i = 0, ..., 108; j = 0, ..., 31) und einen Speicherblock B1 mit B1-Plätzen N2 ij (i = 109, ..., 217; j = 0, ..., 31) bilden, wobei jeder der B1-Plätze N1 ij und B2-Plätze Ni2 ij eines der Daten-Bytes enthalten, wobei das Verfahren den Schritt einschließt, in dem Speicherblock B1 enthaltene Daten in den Speicherblock B2 zu bewegen.
  11. Vorrichtung zur Feststellung und Korrektur von Fehlern in einem Prozess zum Dekodieren eines crossinterleaved Reed-Solomon-Codes CIRC, die Fehler in einem Datenstrom korrigiert, wobei die Vorrichtung umfasst – Speichermittel (2), die einen Speicherblock mit Speicherplätzen Nij mit i = 0, ..., 217; J = 0, ..., 31 umfassen, um den Datenstrom als 109 C1-Code-Worte, von denen jedes aus 32 Daten-Bytes besteht, in den Speicherplätzen an den Positionen i = 109, ..., 217 und j = 0, ..., 31 zu speichern; wobei jeder der Speicherplätze Nij ein Daten-Byte des Datenstroms enthält, und um den Datenstrom als 109 C2-Code-Worte, von denen jedes aus 28 Daten-Bytes besteht, entlang von Diagonalen der Speichermittel (2) zu speichern, wobei die Diagonalen an den Positionen i = 0, ..., 108 und j = 0 beginnen und an den Positionen i = 108, ..., 216 und j = 27 enden; – Mittel zum Lesen der C1-Code-Worte in einem ersten Durchlauf, der bei i = 109 und j = 0 beginnt; – Mittel zum Dekodieren der gelesenen C1-Code-Worte des ersten Durchlaufs; – Mittel zum Korrigieren der dekodierten C1-Code-Worte des ersten Durchlaufs; – Mittel zum Lesen der C2-Code-Worte in einem ersten Durchlauf, der an der Position i = 0 und j = 0 beginnt; – Mittel zum Dekodieren der gelesenen C2-Code-Worte des ersten Durchlaufs; und – Mittel zum Korrigieren der kodierten C2-Code-Worte des ersten Durchlaufs; – Mittel zum Lesen der C1-Code-Worte in einem zweiten Durchlauf, der bei i = 109 und j = 0 beginnt; – Mittel zum Dekodieren der gelesenen C1-Code-Worte des zweiten Durchlaufs; – Mittel zum Korrigieren der dekodierten C1-Code-Worte des zweiten Durchlaufs; – Mittel zum Lesen der C2-Code-Worte in einem zweiten Durchlauf, der an der Position i = 0 jnd j = 0 beginnt; – Mittel zum Dekodieren der gelesenen C2-Code-Worte des zweiten Durchlaufs; und – Mittel zum Korrigieren der dekodierten C2-Code-Worte des zweiten Durchlaufs.
  12. Vorrichtung nach Anspruch 11, bei der die Mittel zum Dekodieren der gelesenen C1-Code-Worte und die Mittel zum Dekodieren der gelesenen C2-Code-Worte in einem Dekodierer vorgesehen sind, der zum Dekodieren von cross-interleaved Reed-Solomon-Code-CIRC geeignet ist.
DE60004958T 1999-12-21 2000-12-09 Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM Expired - Fee Related DE60004958T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99250443 1999-12-21
EP99250443A EP1111800A1 (de) 1999-12-21 1999-12-21 Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM

Publications (2)

Publication Number Publication Date
DE60004958D1 DE60004958D1 (de) 2003-10-09
DE60004958T2 true DE60004958T2 (de) 2004-07-15

Family

ID=8241169

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60004958T Expired - Fee Related DE60004958T2 (de) 1999-12-21 2000-12-09 Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM

Country Status (5)

Country Link
US (1) US6718505B1 (de)
EP (1) EP1111800A1 (de)
JP (1) JP2001244823A (de)
CN (1) CN1311640C (de)
DE (1) DE60004958T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3603884B2 (ja) * 2002-07-30 2004-12-22 ソニー株式会社 データ記録方法および装置
US7831869B2 (en) * 2003-01-27 2010-11-09 Hewlett-Packard Development Company, L.P. DDS logical data grouping
JP2004288283A (ja) * 2003-03-20 2004-10-14 Hitachi Ltd 情報記録フォーマット、情報記録再生符号化方法・回路およびこれを用いた磁気ディスク記録再生装置、情報記録再生装置、並びに情報通信装置
CN100392986C (zh) * 2003-12-15 2008-06-04 联发科技股份有限公司 交叉循环码的编码方法与装置
US7328395B1 (en) 2004-04-13 2008-02-05 Marvell International Ltd. Iterative Reed-Solomon error-correction decoding
US9178534B2 (en) * 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1161565A (en) * 1980-06-20 1984-01-31 Yoichiro Sako Method of error correction
JPS5710558A (en) 1980-06-20 1982-01-20 Sony Corp Error correcting method
CA1170776A (en) 1980-07-18 1984-07-10 Yoichiro Sako Method of error correction of blocks of data
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
JPS63193723A (ja) * 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
JP2696867B2 (ja) * 1987-12-25 1998-01-14 ソニー株式会社 エラー訂正回路の制御装置
JP2829963B2 (ja) * 1988-05-16 1998-12-02 ソニー株式会社 ディジタルデータ記録/再生装置
JP3440952B2 (ja) * 1993-02-24 2003-08-25 ソニー株式会社 データ記録方法及びデータ再生方法
US5412667A (en) * 1993-07-08 1995-05-02 Commodore Electronics Limited Decoder for cross interleaved error correcting encoded data
JPH07130092A (ja) * 1993-11-05 1995-05-19 Sony Corp ディスク記録装置、ディスク再生装置およびディスク状記録媒体
JP3951317B2 (ja) * 1995-09-28 2007-08-01 ソニー株式会社 データ記録/再生のための装置および方法
EP1111799B1 (de) * 1999-12-21 2003-09-03 Deutsche Thomson-Brandt Gmbh Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM

Also Published As

Publication number Publication date
EP1111800A1 (de) 2001-06-27
US6718505B1 (en) 2004-04-06
JP2001244823A (ja) 2001-09-07
DE60004958D1 (de) 2003-10-09
CN1309472A (zh) 2001-08-22
CN1311640C (zh) 2007-04-18

Similar Documents

Publication Publication Date Title
DE3124425C2 (de) Verfahren und Vorrichtung zu Fehlererkennung und Fehlerkorrektur
DE3040004C2 (de)
DE3416047C2 (de) Fehlerkorrekturverfahren für digitale Informationsdaten
DE3590661C2 (de)
DE3418912C2 (de) Verfahren zum Umgruppieren digitaler Informationsdaten für eine Fehlerermittlung und/oder -korrektur
DE2830925C2 (de)
DE2938503A1 (de) Verfahren und vorrichtung zur aufnahme und wiedergabe von audio-signalen mit digitaler aufzeichnung
DE60129897T2 (de) Datenverarbeitungsverfahren und Gerät, Datenaufzeichnungsmedium, Wiedergabeverfahren und Gerät welcher dieses Verfahren anwendet
DE3701763C2 (de) Verfahren zum Codieren und Decodieren digitaler Benutzersymbole sowie Decodieranordnung zur Durchführung des Verfahrens
CH665726A5 (de) Verfahren und anordnung zum schreiben und/oder lesen von information.
DE112018005762T5 (de) Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff
DE3039688A1 (de) Verfahren und vorrichtung zum codieren eines digitalsignals mit minimaler gleichkomponente
DE69835345T2 (de) Verfahren zur kodierung von mehrwortinformation
DE2821305A1 (de) Verfahren und anlage zum uebertragen und empfang von kodierten datenwoertern
DE3735979A1 (de) Pcm-signalwiedergabevorrichtung mit fehler/loeschkorrekturschaltung
DE3131764A1 (de) Digitalsignal-uebertragungssystem
DE2427463B2 (de) Verfahren und Schaltungsanordnung zur Korrektur von durch zeitliche Verschiebungen entstandenen Fehler beim Lesen von auf einem bewegten Aufzeichnungsträger seriell aufgezeichneten Zeichengruppen
DE3006958A1 (de) Digitalsignal-uebertragungssystem
DE3132840A1 (de) Verfahren und vorrichtung zum edieren von digitalsignalen
DE3717223A1 (de) Verfahren und anordnung zum decodieren eines codesymbolblocks, der zwei arten von codewoertern enthaelt, die durch je einen maximalabstandsseparierbaren code geschuetzt sind
DE3729730C2 (de) Vorrichtung zum Verarbeiten digitaler Daten
DE2606931A1 (de) Verfahren zur erzeugung von werten mathematischer funktionen
DE60004958T2 (de) Fehlerkorrektur mit einem cross interleave Reed-Solomon Code, insbesondere für CD-ROM
DE102017129990A1 (de) Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband
DE2053836B2 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee