DE3486408T2 - Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes. - Google Patents

Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.

Info

Publication number
DE3486408T2
DE3486408T2 DE3486408T DE3486408T DE3486408T2 DE 3486408 T2 DE3486408 T2 DE 3486408T2 DE 3486408 T DE3486408 T DE 3486408T DE 3486408 T DE3486408 T DE 3486408T DE 3486408 T2 DE3486408 T2 DE 3486408T2
Authority
DE
Germany
Prior art keywords
code
error
decoding
syndrome
pointer
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
DE3486408T
Other languages
English (en)
Other versions
DE3486408D1 (de
Inventor
Tadashi Fukami
Kentaro Odaka
Shinya Ozaki
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP24052583A external-priority patent/JPH0628343B2/ja
Priority claimed from JP1983198079U external-priority patent/JPS60104947U/ja
Application filed by Sony Corp filed Critical Sony Corp
Application granted granted Critical
Publication of DE3486408D1 publication Critical patent/DE3486408D1/de
Publication of DE3486408T2 publication Critical patent/DE3486408T2/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Executing Machine-Instructions (AREA)
  • Selective Calling Equipment (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Decodierung eines Fehlerkorrekturcodes.
  • Produktcodes sind weithin bekannt, bei denen Informationssymbole in zweidimensionaler Form angeordnet sind und die Fehlerkorrekturcodes sind für jede Zeile und Spalte der zweidimensionalen Anordnung so codiert, daß jedes Informationssymbol in zwei Fehlerkorrekturcodereihen enthalten ist. Zur Decodierung des Produktcodes wird der Fehlerkorrekturcode für jede Spalte decodiert und der Fehlerkorrekturcode kann für jede Zeile decodiert werden unter Verwendung der Decodierungsinformation. Die Decodierungsinformation wird als Zeiger (Pointer) bezeichnet.
  • Bei den herkömmlichen Methoden ist es, da jedes Informationssymbol mit einem Zeiger verbunden ist, erforderlich, daß die Gesamtanzahl der Zeiger wenigstens gleich der Anzahl der Informationssymbole ist.
  • Weiterhin existiert in dem Fall, wenn die Löschkorrektur durch die Verwendung von Zeigern durchgeführt wird, das Problem, daß, da die Zeiger von einem Zeigerspeicher ausgelesen werden und der Fehlerwert für jede Zeile berechnet wird, die Anzahl der Verarbeitungsschritte, wie Speicherzugriffe, Berechnungen usw. unvermeidlich ansteigt.
  • Andererseits besteht in dem Fall, wenn komplizierte Codes wie die BCH-Codes als Fehlerkorrekturcodes eingesetzt werden, das Problem, daß da die Rechenoperationen zum Erhalt der Fehlerwerte unvermeidbar kompliziert werden, eine große Anzahl von Programmschritten in dem Fall benötigt wird, wenn die Berechnungen in der Hardware implementiert sind.
  • Das IBM Technical Disclosure Bulletin, Vol. 17, Nr. 2, Juli 1974, Seiten 473-475 beschreibt ein Fehlerkorrektursystem für aufgezeichnete Daten, wobei Fehlerzeiger von der Spaltendecodierung zur Fehlerkorrektur von Datenzeilen verwendet werden.
  • Die EP-A2-0 096 109 (Tokyo Shibaura Denki K.K.) ist Stand der Technik gemäß Artikel 54(3) EPÜ und beschreibt ein Decodierungsverfahren, das einen einzelnen Reed-Solomon-Code verwendet.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zur Decodierung von Fehlerkorrekturcodes zu liefern, die die zur Decodierung erforderliche Anzahl von Zeigern verringert und auch die Anzahl von Speicherregionen für die Zeiger und die Anzahl der erforderlichen Lese- und Schreiboperationen der Zeiger verringert.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist, ein Verfahren und eine Vorrichtung zur Decodierung eines Fehlerkorrekturcodes zu liefern, das die Anzahl der Verarbeitungsschritte aufgrund der Tatsache reduziert, daß die Zeiger bezüglich jeder Zeile die gleichen sind.
  • Noch eine weitere Aufgabe der vorliegenden Erfindung ist es, eine Vorrichtung zur Decodierung eines Fehlerkorrekturcodes zu liefern, die die Anzahl der Verarbeitungsschritte bei einer Löschkorrektur verringert.
  • Eine weitere Aufgabe der vorliegenden Erfindung ist es, ein Verfahren zur Decodierung eines Fehlerkorrekturcodes zu liefern, das die Fehlerwerte bei der Decodierung liefern kann und einen einfachen Aufbau und eine geringe Anzahl von Verarbeitungsschritten aufweist.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zur Decodierung und Korrektur eines Reed-Solomon-Codes vorgeschlagen aufweisend die folgenden Verfahrensschritte:
  • Lösen der Gleichung
  • wobei, v = 0 bis d - 2
  • n : Anzahl der Löschungen
  • Xk : Ort des k-ten Elements
  • Sv : Syndrom
  • Yk : Fehlergröße beim Löschen des k-ten Elements
  • d : Mindest-Distanz des Codes, um die Wurzeln des Ausdrucks zu erhalten;
  • Durchführung der Löschkorrektur der im Reed-Solomon-Code codierten Fehler in Übereinstimmung mit den Wurzeln, dadurch gekennzeichnet, daß die Wurzeln durch Lösen des Ausdrucks
  • erhalten werden,
  • wobei nij : Koeffizient von zj von
  • l : Jede ganze Zahl größer oder gleich 0, die die Bedingung erfüllt: l < d-n-1.
  • Die vorliegende Erfindung schlägt auch eine Vorrichtung zur Decodierung und Korrekturlöschung eines Reed-Solomon-Codes vor in Übereinstimmung mit den Wurzeln von
  • wobei, v = 0 bis d - 2
  • n : Anzahl der Löschungen
  • Xk : Ort des k-ten Elements
  • Sv : Syndrom
  • Yk : Fehlergröße beim Löschen des k-ten Elements
  • d : Mindest-Distanz des Codes.
  • aufweisend eine Syndrom-Registereinrichtung zur Speicherung des Syndroms Sv; und gekennzeichnet durch
  • eine Logikschaltung, um die Wurzeln Yi zu erhalten durch Lösen des Ausdrucks:
  • wobei &Lambda;nij : Koeffizient von zj von
  • l : Jede ganze Zahl größer oder gleich 0, die die Bedingung erfüllt:
  • l < d-n-1.
  • wobei die Logikschaltung aufweist
  • eine Registereinrichtung zur Speicherung des Syndroms Sv,
  • eine Registereinrichtung zur Speicherung von Xiv Yi,
  • eine Registereinrichtung zur Speicherung von Xi,
  • eine Addiereinrichtung zur Addition von Sv und Xiv Yi und um der Registereinrichtung und der Syndrom-Registereinrichtung die Summe Sv+Xiv Yi zu liefern;
  • eine Multiplikatoreinrichtung zur Multiplikation von Xi und Xiv Yi und um Xiv Yi der Registereinrichtung zu liefern.
  • Die Erfindung wird weiter beschrieben mittels eines Ausführungsbeispiels unter Bezugnahme auf die beiliegenden Zeichnungen in denen:
  • Fig. 1 ein schematisches Blockdiagramm einer Codiervorrichtung entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung ist;
  • Fig. 2 ein schematisches Blockdiagramm ist, das den Betrieb eines Ausführungsbeispiels der vorliegenden Erfindung zeigt;
  • Fig. 3 ein schematisches Blockdiagramm ist, das eine Decodiervorrichtung gemäß einem Ausführungsbeispiel der Erfindung zeigt;
  • Fig. 4 ein Blockdiagramm ist, das einen Fehlerkorrektur-Decoder gemäß Fig. 3 zeigt;
  • Fig. 5 ein Blockdiagramm eines Teils der Fehlerpositions- und Fehlerwert- Berechnungsschaltung von Fig. 4 zeigt;
  • Fig. 6 ein Blockdiagramm ist, das den Aufbau eines zweiten Ausführungsbeispiels zur Verwendung mit der vorliegenden Erfindung zeigt; und
  • Fig. 7 ein Blockdiagramm der Verarbeitungsschaltung von Fig. 6 ist.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung wird in Bezug auf die Zeichnungen beschrieben. Fig. 1 zeigt die Struktur einer Codiervorrichtung für einen Produktcode. Bezugszeichen 1 bezeichnet einen Eingangsanschluß, Bezugszeichen 2 einen zweiten Fehlerkorrekturcode-C&sub2;-Paritätsgenerator. Die Eingangsdaten vom Eingangsanschluß 2 werden dem C&sub2;-Paritätsgenerator 2 und einem Eingangsanschluß einer Wahlschaltung 3 zugeführt. Die C&sub2;-Paritätsdaten, die durch den C&sub2;- Paritätsgenerator 2 gebildet werden, werden dem anderen Eingangsanschluß der Wahlschaltung 3 zugeführt. Die Wahlschaltung 3 wiederholt k&sub1;-mal die Operation zur Auswahl von (n&sub2; - k&sub2;)-Paritätsdaten, nachdem k&sub2;-Informationssymbole ausgewählt wurden. Während dieser Operation werden die Informationssymbole und die Paritätsdaten in einem RAM (Direktzugriffsspeicher) 4 nacheinander unter Steuerung durch eine Adressensteuerung 5 abgespeichert.
  • Die von dem RAM 4 ausgelesenen Daten werden einem C&sub1; (der erste Fehlerkorrekturcode)-Paritätsgenerator 6 und einem Eingangsanschluß einer Wahlschaltung 7 zugeführt und die von dem C&sub1;-Paritätsgenerator 6 gebildeten C&sub1;- Paritätsdaten werden dem anderen Eingangsanschluß der Wahlschaltung 7 zugeführt. Die Wahlschaltung 7 wählt [(n&sub1; - k&sub1;) x k&sub2;]-Paritätsdaten aus, nachdem (k&sub1; x n&sub2;) Symbole einschließlich der C&sub2;-Paritätsdaten ausgewählt wurden. Die von einem Ausgangsanschluß 8 der Wahlschaltung 7 abgeleiteten Digitaldaten werden übertragen oder beispielsweise von einem Magnetkopf auf ein magnetisches Band (nicht dargestellt) aufgezeichnet. In dem Fall ist es möglich, die codierten Ausgangsdaten noch einmal in dem RAM 4 zu speichern und in einer anderen Reihenfolge zur Aufzeichnung auszulesen.
  • Fig. 2 zeigt eine Konfiguration des durch den wie oben beschriebenen Codierer gebildeten Codes. Die Informationssymbole sind in zwei Dimensionen (k&sub1; x k&sub2;) angeordnet. Die k&sub2;-Informationssymbole in jeder seitlichen Richtung, d.h. in jeder Zeile der zweidimensionalen Anordnung werden dem Codierungsverfahren für den C&sub2;- Code unterworfen. Die k&sub1;-Informationssymbole in jeder vertikalen Richtung, d.h., in jeder Spalte, werden dem Codierungsverfahren für den C&sub1;-Code unterworfen. Die C&sub2;- Paritätsdaten werden auch im C&sub1;-Code codiert. Der C&sub1;-Code ist z.B. ein (n&sub1;, k&sub1;)-Reed- Solomon-Code, mit es möglich ist, Fehler von bis zu (n&sub1; - k&sub1;)/2 Symbolen zu korrigieren.
  • Das allgemeine Verfahren zur Decodierung des Reed-Solomon-Codes wird im folgenden beschrieben.
  • Die Hamming-Distanz des (n, k)-Reed-Solomon-Codes (wobei n die Codelänge und k die Anzahl der Informationssymbole bezeichnet) in einem Galois-Feld GF (2m) kann ausgedrückt werden als (d = n - k + 1) und das erzeugte Polynom kann ausgedrückt
  • werden als
  • Wenn die empfangenen Wörter (r&sub0;, r&sub1;, r&sub2;, ..., rn-1) sind,
  • kann das Syndrom durch Berechnung des folgenden Ausdrucks erhalten werden:
  • Ein Fehlerpositionspolynom (z) und ein Fehlerevaluationspolynom &omega;(z) werden mittels des Syndroms Sj erhalten. Als Verfahren wurden Euclids gegenseitiges Divisionsverfahren, das Varlay-Camp-Verfahren und Petersons Verfahren usw. vorgeschlagen.
  • Durch Lösen von (z) = 0 kann man die Fehlerposition Xi erhalten. Zu diesem Zweck wird ein Chien-Suchverfahren verwendet.
  • Dann kann der Fehlerwert Yi auf Basis der Fehlerposition Xi und des Fehlerbewertungspolynoms &omega;(z) erhalten werden.
  • Die obigen Berechnungen in den Decodierungsschritten werden mit Xi (i = 1, 2, ..., e; wobei e die Anzahl der Fehler bezeichnet) als Fehlerposition und Yi als Fehlerwert erklärt. Da der Reed-Solomon-Code ein linearer Code ist, kann das Syndrom ausgedrückt werden als:
  • wenn das Syndrom durch ein Polynom ausgedrückt wird als:
  • wird ein folgender Ausdruck erhalten;
  • Wenn das Fehlerpositionspolynom und das Fehlerbewertungspolynom definiert sind als:
  • dann kann &omega;(z) ausgedrückt werden als
  • Der Fehlerwert Yi kann durch Einsetzen von Xi&supmin;¹ in z und durch das Umformen des Ausdrucks wie folgt erhalten werden;
  • Als Beispiel wird ein (32, 24)-Reed-Solomon-Code mit den Wurzeln &alpha;&sup0; bis &alpha;&sup7; erklärt. Da dieser Code (d = 8) ist, ist es möglich, die Fehler von bis zu vier Symbolen zu korrigieren. Wenn die Fehlerpositionen der vier Symbole X&sub1; bis X&sub4; sind und die Fehlerwerte Y&sub1; bis Y&sub4; sind, wird das Syndrom aus dem folgenden Ausdruck erhalten:
  • Von vier Syndromen lautet S&sub0; nämlich wie folgt:
  • Wenn die Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3; erhalten werden können, kann der vierte Fehlerwert Y&sub4; wie folgt ohne komplizierte Berechnungen erhalten werden:
  • Y&sub4; = S&sub0; - Y&sub1; - Y&sub2; - Y&sub3;.
  • In Codes in GF(2m) ist eine Subtraktion einer Addition von (mod. 2) äquivalent.
  • Fig. 3 zeigt eine Konfiguration des Decoders dieses Ausführungsbeispiels. In Fig. 3 werden die wiedergegebenen Daten von einem mit dem Bezugszeichen 11 bezeichneten Eingangsanschluß einem C&sub1;-Decoder 12 zugeführt. In dem C&sub1;-Decoder 12 wird der C&sub1;- Code decodiert. Alle Fehler bis zu (n&sub1; - k&sub1;)/2 Symbolen werden beim C&sub1;-Decodieren korrigiert. In diesem Fall wird jedoch, wenn die Anzahl der Fehler in einer einzigen Zeile des C&sub1;-Codes größer oder gleich (n&sub1; - k&sub1;)/2 ist, der C&sub1;-Zeiger dieser Zeile auf "1" und die anderen Zeiger auf "0" gesetzt. In den Figuren 2 und 3 bezeichnet Bezugszeichen 13 einen Zeigerspeicher zur Speicherung der Zeiger des C&sub1;-Codes, der n&sub2;-Bits hat. Das Ausgangssignal des C&sub1;-Decoders 12 wird vorübergehend in einem RAM 14 aufeinanderfolgend unter Steuerung einer Adressteuerung 15 gespeichert.
  • Das aus dem RAM 14 ausgelesene Ausgangssignal wird einem C&sub2;-Decoder 16 zugeführt, um der Decodierung des C&sub2;-Codes unterworfen zu werden. Dem C&sub2;-Decoder 16 werden die C&sub1;-Zeiger aus dem Zeigerspeicher 13 zugeführt. Da der C&sub1;-Zeiger allen Werten der k&sub1;-Zeile des C&sub2;-Codes gemeinsam ist, ist es möglich, den C&sub2;-Code in Übereinstimmung mit der gleichen Prozedur in jeder Zeile zu decodieren. Der C&sub2;- Decoder 16 korrigiert Fehler von bis zu (n&sub2; - k&sub2;)/2 Symbolen und erzeugt eines von drei Typen von Zeigern im C&sub2;-Code, die in einem Zeigerspeicher 17 gespeichert sind.
  • Wenn eine Fehlerkorrektur durch den C&sub2;-Decoder 16 ausgeführt wird, wird der C&sub2;- Zeiger bezüglich der Zeile auf "0" gesetzt. Wenn eine Fehlerkorrektur durch den C&sub2;- Decoder 16 nicht ausgeführt werden kann und die C&sub1;-Zeiger aufgrund ihrer hohen Verläßlichkeit kopiert werden, wird der C&sub2;-Zeiger auf "1" gesetzt. Wenn eine Fehlerkorrektur durch den C&sub2;-Decoder 16 nicht ausgeführt werden kann und alle Symbole als fehlerhafte Symbole bestimmt sind aufgrund der geringen Verläßlichkeit des C&sub1;-Zeigers, werden die C&sub2;-Zeiger auf "2" gesetzt. Daher haben die C&sub2;-Zeiger 2 Bit und der Zeigerspeicher 17 hat 2 k&sub1; Bit.
  • Die Zeigerspeicher 13 und 17 sind getrennt vom RAM 14 zur Speicherung von Informationssymbolen und Paritätsdaten zur Decodierung angeordnet oder können gemeinsam mit dem RAM 14 angeordnet sein, wobei ein Teil der Speicherbereiche des RAM 14 verwendet wird.
  • Ohne auf ein Bit begrenzt zu sein, kann der C&sub1;-Pointer 2 Bit oder mehr aufweisen. Weiterhin ist es möglich, die Fehlerkorrekturcodeverarbeitung des C&sub2;-Codes für die C&sub1;- Parität auszuführen, wobei ein C&sub2;-Speicher von (2n&sub1;) Bit vorgesehen ist.
  • Die Ausgangsdaten des C&sub2;-Decoders 16 werden einer Interpolationsschaltung 18 zugeführt, um die Fehler in den Symbolen, die nicht korrigiert worden sind, zu verdecken. Die Interpolationsschaltung 18 führt beispielsweise eine Mittelwert- Interpolation durch. Die Interpolationsschaltung 18 wird durch eine Steuerschaltung 19 gesteuert, welcher die C&sub1;-Zeiger und die C&sub2;-Zeiger von den Zeigerspeichern 13 und 17 zugeführt werden. Die Ausgangsdaten der Interpolationsschaltung 18 werden an einem Ausgangsanschluß 20 abgeleitet. Die Steuerschaltung 19 bestimmt bei jedem Informationssymbol, ob eine Interpolation auf Basis des C&sub1;-Zeigers und des C&sub2;-Zeigers notwendig ist. In Fig. 2 sind alle Kombinationen von C&sub1;-Zeigern, die mit 13' bezeichnet sind und C&sub2;-Zeigern, die mit 17' bezeichnet sind, vorhanden.
  • Wenn der C&sub2;-Zeiger "0" ist ungeachtet der Tatsache, ob der C&sub1;-Zeiger "0" oder "1" ist, arbeitet die Interpolationsschaltung 18 nicht. Wenn der C&sub2;-Zeiger "1" ist und der C&sub1;-Zeiger "0" ist, wird keine Interpolation ausgeführt, da bestimmt wurde, daß das Informationssymbol keinen Fehler aufweist. Wenn der C&sub2;-Zeiger "1" ist, und der C&sub1;- Zeiger "1", wird die Interpolation ausgeführt, da bestimmt wurde, daß es ein fehlerhaftes Symbol ist. Wenn weiterhin der C&sub2;-Zeiger "2" ist ungeachtet der Tatsache, ob der C&sub1;-Zeiger "0" oder "1" ist, wird die Interpolation ausgeführt, da bestimmt wurde, daß es ein fehlerhaftes Symbol ist.
  • Die Verläßlichkeit des C&sub1;-Zeigers wird durch den C&sub2;-Decoder bewertet. Z.B. wird, unter der Voraussetzung, daß bis zu zwei Symbolfehler mittels des C&sub2;-Codes korrigiert werden können, wenn die Korrektur durch den C&sub2;-Code trotz der Tatsache, daß nur ein C&sub1;-Zeiger "1" ist, nicht durchgeführt werden kann, die Zuverlässigkeit des C&sub1;-Zeigers als gering bestimmt, da das Obengenannte nicht normal ist. Selbst wenn die Fehler durch den C&sub2;-Code nicht korrigiert werden, ist es möglich, die Notwendigkeit der Interpolation durch Vorsehen von drei Arten 0, 1, 2 des C&sub2;-Zeigers und durch Entfernen aller Fehler von den Kopien des C&sub1;-Zeigers zu beseitigen.
  • Bei dem oben erwähnten C&sub2;-Decoder 16 wird, wenn die C&sub1;-Zeiger kopiert werden, die Löschkorrektur durchgeführt, wenn der Gesamtwert des C&sub1;-Zeigers kleiner oder gleich (n&sub2; - k&sub2;) ist und wenn diese Korrektur ausgeführt wird, wird der C&sub2;-Zeiger auf "0" gesetzt.
  • Wie oben beschrieben, wird die Decodierung des Reed-Solomon-Codes durch Berechnung des Fehlerpositionspolynoms (z) und des Fehlerbewertungspolynoms &omega;(z) in jeder Zeile und durch Anwendung des bei n&sub2;-Symbolen in jeder Zeile erhaltenen Syndroms ausgeführt. Im Falle der Löschkorrektur ist es, da die Positionen, wo die C&sub1;- Zeiger "1" sind, als die Fehlerpositionen bestimmt werden, möglich, den Fehlerwert Yi aus der Fehlerposition Xi und dem Fehlerbewertungspolynom &omega;(z) zu erhalten. Das heißt, durch Ersetzen von z durch Xi&supmin;¹ kann Yi wie folgt wie im Ausdruck (8) erhalten werden:
  • (wobei i 1, 2, 3, ..., s; wobei s die Anzahl der Symbole bezeichnet) Bei dem obigen Ausdruck kann der Nenner nur durch die Fehlerpositionen bestimmt werden. Z.B. sind, vorausgesetzt daß die durch den C&sub1;-Zeiger angezeigten Fehlerpositionen X&sub1;, X&sub2;, X&sub3; sind, die Terme des Nenners der Ausdrücke zur Erhaltung der Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3;:
  • Nenner von Y&sub1;: (1 - X&sub2;X&sub1;&supmin;¹) (1 - X&sub3;X&sub1;&supmin;¹)
  • Nenner von Y&sub2;: (1 - X&sub1;X&sub3;&supmin;¹) (1 - X&sub2;X&sub3;&supmin;¹)
  • Nenner von Y&sub3;: (1 - X&sub1;X&sub2;&supmin;¹) (1 - X&sub3;X&sub2;&supmin;¹).
  • Hier sind die im Zeigerspeicher 13 gespeicherten Zeiger die gleichen wie in der gesamten k&sub2;-Zeile des C&sub2;-Codes. Daher ist es ausreichend, die Berechnung des Terms des Nenners des obigen Ausdrucks auszuführen, um nur einmal einen Fehlerwert bezüglich der ki-Zeile zu erhalten.
  • Fig. 4 zeigt die Konfiguration eines Fehlerkorrekturdecoders zur Verwendung mit den oben erwähnten C&sub1;- und C&sub2;-Decodern. Die empfangenen Daten werden einem mit dem Bezugszeichen 21 bezeichneten Eingangsanschluß, einer Verzögerungsschaltung 22 und einer Syndromerzeugungsschaltung 23 zugeführt. Die durch die Syndromerzeugungsschaltung 23 erzeugten Syndrome werden einer Fehlerpositions-/Fehlerwert-Berechnungsschaltung 24 zugeführt. Die Fehlerdaten von der Fehlerpositions-/Fehlerwert-Berechnungsschaltung 24 werden einem Exclusiv-ODER- Gatter 25 zugeführt und zu den emplangenen Daten von der Verzögerungsschaltung 22 (mod. 2) addiert. Die von der Verzögerungsschaltung 22 erhaltenen Daten und die fehlerkorrigierten Daten von dem Exclusiv-ODER-Gatter 25 werden einer Wahlschaltung 26 zugeführt. Die Wahlschaltung 26 wird durch die Fehlerpositionsdaten gesteuert. An den Fehlerpositionen wird das Ausgangssignal des Exclusiv-ODER- Gatters 25 durch die Wahlschaltung 26 gewählt und an einem Ausgangsanschluß 27 anstelle der empfangenen Daten zur Verfügung gestellt.
  • Im Falle eines Audio-PCM-Signal-aufzeichnenden und -wiedergebenden Geräts, werden die wiedergegebenen Daten einmal in ein RAM eingeschrieben. Bei Verwendung der aus dem RAM ausgelesenen Daten wird das Syndrom erzeugt, auf dessen Basis die Fehlerpositionen und Fehlerwerte berechnet werden. Fig. 5 zeigt einen Teil der Fehlerpositions-/Fehlerwert-Berechnungsschaltung 24. In Fig. 5 bezeichnet Bezugszeichen 28 einen Datenbus, durch den Daten, Syndrome usw. übertragen werden.
  • In Fig. 5 bezeichnet Bezugszeichen 29 ein Syndromregister, in dem das Syndrom S&sub0; über den Datenbus 28, einem Buspuffer 30 und ein Exclusiv-ODER-Gatter 31 gespeichert werden. Das Syndrom S&sub0; weist im Fall eines Reed-Solomon-Codes auf GF(2m) m Bit auf. Das Syndrom S&sub0; von dem Syndromregister 29 wird dem Exclusiv- ODER-Gatter 31 und dem Bus-Pufferspeicher 32 geliefert.
  • Wenn das Syndrom S&sub0; im Syndromregister 29 gespeichert ist, werden die erhaltenen Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3; dem Exclusiv-ODER-Gatter 31 nacheinander vom Datenbus 28 über den Bus-Pufferspeicher 30 zugeführt. Daher ist das Ausgangssignal des Exclusiv- ODER-Gatters 31 (S&sub0; Y&sub1;), (S&sub0; Y&sub1; Y&sub2;) und (S&sub0; Y&sub1; Y&sub2; Y&sub3; = Y&sub4;). Der Fehlerwert Y&sub4; verbleibt im Syndromregister 29 und der Fehlerwert Y&sub4; wird über den Bus-Pufferspeicher 32 auf den Datenbus 28 ausgegeben, um für die Fehlerkorrektur verwendet zu werden.
  • Fig. 6 zeigt ein weiteres Beispiel einer Hardware-Anordnung zur Decodierung bei einer Löschkorrektur. Ein Haupt-RAM 35 ist über ein Schreiberegister 33 und ein Leseregister 34 mit dem Datenbus 28 verbunden. Das Syndromregister 29, ein Arbeits- RAM 36 und eine Rechenlogikschaltung 37 sind ebenfalls am Datenbus 28 vorgesehen.
  • Die Löschkorrektur durch den Reed-Solomon-Code kann durch Lösen des folgenden linearen Gleichungssystem n-ter Ordnung in gleicher Weise wie im Ausdruck (2) erhalten werden:
  • wobei v = 0 bis d - 2
  • n : Anzahl der Löschungen
  • Xk : k-te Position
  • Sv : Syndrom
  • Yk : Größe des Fehlers der k-ten Löschung
  • d : Mindestdistanz des Codes.
  • Hierbei sind n, Xk und Sv bekannt und Yk unbekannt.
  • Um die obige Gleichung zu lösen, wird normalerweise das folgende Verfahren angewandt: wenn
  • kann Yi wie in Ausdruck (8) wie folgt erhalten werden:
  • Bei diesem Verfahren ist jedoch, wenn die Anzahl der tatsächlichen Berechnungsschritte gezählt wird, wenn beispielsweise d = 9 und n = 8 ist:
  • (i) Entwicklung von &Lambda;(z)
  • Anzahl der Multiplikationen: 1 + 2 + ... + 7 = 28
  • Anzahl der Additionen : 1 + 2 + ... + 7 = 28
  • (ii) Vorausgehende Berechnungen zur Erhaltung des Nenners von
  • Anzahl der Reziprokwerte : 1 x 8 = 8
  • Anzahl der Multiplikationen : (7 + 6) x 8 = 104
  • Anzahl der Additionen : 7 x 8 = 56
  • (iii) Berechnungen zum Erhalten von &omega;(z) = S(z) &Lambda;(z), mod. Z&sup8;
  • Anzahl der Multiplikationen : 1 + 2 + ... + 7 = 28
  • Anzahl der Additionen : 1 + 2 + ... + 7 = 28
  • (iv) Berechnungen zum Erhalten von &omega;(Xi&supmin;¹)
  • Anzahl der Reziprokwerte : 1 x 8 = 8
  • Anzahl der Multiplikationen : 7 x 8 = 56
  • Anzahl der Additionen : 7 x 8 = 56
  • (V) Berechnungen zum Erhalten von Yi
  • Anzahl der Divisionen : 1 x 8 = 8.
  • Wenn jede dieser Berechnungen einen Schritt benötigt, so beträgt die Anzahl der Schritte insgesamt 408.
  • In der in Fig. 6 gezeigten Schaltung werden die Wurzeln des Ausdrucks (9) berechnet durch:
  • wobei &Lambda;njj : Koeffizient von Zj von
  • l : Jede ganze Zahl größer oder gleich 0, die die Bedingung l &le; d - n - 1 erfüllt.
  • Das heißt, um die Löschkorrektur auszuführen, werden l = 0, i = n wie folgt in den Ausdruck (11) eingesetzt:
  • Durch diese Berechnung wird Yn erhalten und YnXnv wird zu jedem Syndrom S wie folgt addiert:
  • Sv E Sv + YnXnv
  • wobei v = 0 bis n - 2.
  • Da die Daten an der Position Xn korrekt sind, umfaßt das Syndrom (n-1) Löschungen. Daher kann durch Reduzierung von n um 1 Yn-1 erhalten werden:
  • Durch diese Berechnung wird Yn-1 erhalten und Yn-1 Xn-1v wird zu jedem Syndrom S wie folgt addiert:
  • Sv E Sv + Yn-1Xn-1v
  • wobei v = 0 bis n - 3.
  • Durch Wiederholen des beschriebenen Vorgangs erhält man die letzte verbleibende Löschung Y&sub1; als
  • Y&sub1; = S&sub0;.
  • Eine Löschkorrektur kann wie oben erklärt implementiert werden. In diesem Fall wird die tatsächliche Anzahl der Berechnungsschritte auf die gleiche Weise wie bei dem konventionellen Verfahren gezählt, wobei angenommen sei, daß d = 9 und n = 8.
  • (i) Entwicklung von &Lambda;nnj
  • Anzahl der Multiplikationen : 1 + 2 + ... + 6 = 21
  • Anzahl der Additionen : 1 + 2 + ... + 6 = 21
  • (ii) Vorangegangene Berechnungen zum Erhalten des Nenners von
  • wobei es ausreicht II&sub3; bis II&sub8; zu erhalten, da II&sub2; = X&sub1; + Y&sub2; = &Lambda;&sub3;&sub3;&sub1;.
  • Anzahl der Multiplikationen : 1 + 2 + ... + 6 = 21
  • Anzahl der Additionen : 1 + 2 + ... + 6 = 21
  • (iii) Berechnungen zum Erhalten des Zählers von Yn
  • Anzahl der Multiplikationen : 7 + 6 + ... + 1 = 28
  • Anzahl der Additionen : 7 + 6 + ... + 1 = 28
  • (iv) Berechnungen zum Erhalten von Yn, da Y&sub1; = S&sub0;
  • Anzahl der Divisionen : 7
  • (v) Sv E Sv + YnXnv
  • Anzahl der Multiplikationen : 6 + 5 + ... + 1 = 21
  • Anzahl der Additionen : 7 + 6 + ... + 1 = 28
  • Die Anzahl der obigen Berechnungsschritte beträgt insgesamt 202.
  • Daher ist es im Fall des Ausdrucks (11) möglich, die Anzahl der Berechnungsschritte auf 50% derjenigen im herkömmlichen Fall bei dem Ausdruck (10) zu reduzieren.
  • Weiterhin entspricht in dem Fall, in dem der oben erwähnte Korrekturcode ein Produktcode ist, angenommen, daß 30 Symbole in der vertikalen und 128 Symbole in der seitlichen Richtung angeordnet sind, und der C&sub1;-Code in vertikaler und der C&sub2;-Code in seitlicher Richtung angeordnet ist, die Löschung der Position der C&sub1;-Zeiger und die Position Xk (k= 1 bis n) ist in allen C&sub2;-Codereihen die gleiche. Das heißt, daß es möglich ist, vorher &Lambda;nnj und
  • in dem Ausdruck (11)' zu berechnen, ohne diese Terme bei jeder C&sub2;-Decodierung zu berechnen. Das heißt bei diesem Beispiel wird die obige Berechnung nur einmal ausgeführt, während die C&sub2;- Decodierung 30mal ausgeführt wird.
  • Daher ist bei der Anzahl der obigen Berechnungsschritte, da die Anzahl der Berechnungen von (i) und (ii) nur einmal je 30 C&sub2;-Decodierungen ausgeführt wird unter der Annahme, daß die Anzahl der Schritte von (i) und (ii) 90/30 = 3 ist, die Gesamtanzahl der Schritte gleich 115. Verglichen mit dem herkömmlichen Verfahren, wo die Anzahl der Schritte in (i) und (ii) 224/3 = 74,7 ist und die Gesamtzahl der Schritte 191,5 ist, ist es möglich, die Anzahl der Schritte um ca. 40% zu verringern.
  • Entsprechend hat das oben beschriebene Verfahren Vorteile, derart, daß es möglich ist, die Anzahl der Berechnungsschritte, die Bearbeitungszeit, die Hardwarebelastung zur Verarbeitung usw. verglichen mit dem herkömmlichen Verfahren merklich zu reduzieren.
  • Zusätzlich kann, obwohl die obigen Berechnungen unter Verwendung der Berechnungslogik 37 durchgeführt wurden, in dem Fall, in dem z.B. Sv E Sv + XivYi erhalten wird, eine Anordnung wie sie in Fig. 7 dargestellt ist, verwendet werden. In Fig. 7 bezeichnen die Bezugszeichen 38, 39 und 40 Register, das Bezugszeichen 41 einen Addierer, das Bezugszeichen 42 eine Multiplizierer, das Bezugszeichen 43 eine Wahlschaltung, die alle in die Rechenlogik 37 eingebaut sind. In dieser Schaltung ist:
  • [1] S&sub0; wird in das Register 38, Yi in das Register 39 und Xi in das Register 40 jeweils über den Datenbus 28 von dem Syndromregister 29 und dem Arbeits-RAM 36 usw. eingegeben. S&sub0; + Yi wird vom Addierer 41 dem Datenbus 28 ausgegeben.
  • [2] Der Inhalt des Multiplizierers 42, XiYi wird über die Wahlschaltung 43 zum Register 39 zurückgeführt und S&sub1; wird vom Datenbus 28 in das Register 38 geladen. Daher wird es S&sub1; + XiYi Addierer 41 dem Datenbus 28 ausgegeben.
  • [3] Weiterhin wird der Inhalt des Multiplizierers 42, Xi²Yi über die Auswahlschaltung 43 zum Register 39 zurückgeführt und S&sub2; wird vom Datenbus 28 in das Register 38 geladen. Daher wird S&sub2; + Xi²Yi vom Addierer 41 dem Datenbus 28 ausgegeben.
  • [4] Durch Wiederholen der obigen Schritte werden S&sub3; + Xi³Yi, S&sub4; + Xi&sup4;Yi, ... nacheinander erhalten und über den Datenbus 28 dem Syndromregister 29 eingegeben, so daß jeder Wert überschrieben wird. Die Berechnungen werden wie oben beschrieben ausgeführt.
  • Bei der obigen Erklärung ist es, obwohl alle X&sub1; bis Xn als Löschungen angenommen sind, in dem Fall, wenn X&sub1; bis Xn-1 Löschungen und Xn Fehler sind, möglich, die Symbole zu korrigieren. In diesem Fall ist die Anzahl der unbekannten Größen (n+1) von Y&sub1; bis Yn und Xn kann durch Verwendung der obigen &Lambda;nnj wie folgt erhalten werden:
  • Daher sind die unbekannten Größen Y&sub1; bis Yn und diese unbekannten Größen können daher auf die gleiche Weise wie bei der Löschkorrektur erhalten werden.
  • Z.B. ist in dem Fall, wenn d = 9 (6 Löschungen + 1 Fehler) beim Produktcode ist,
  • [1] Überprüfen der Positionen der Löschungen X&sub1;, X&sub2;, ..., X&sub6;.
  • [2] Erhalten und Speichern von &Lambda;nnj, hier insgesamt 21 Symbole von &Lambda;&sub2;&sub2;&sub1; = X&sub1;, &Lambda;&sub3;&sub3;&sub1; = &Lambda;&sub2;&sub2;&sub1; + X&sub2;, &Lambda;&sub3;&sub3;&sub2; = &Lambda;&sub2;&sub2;&sub1;X&sub2;, ..., &Lambda;&sub7;&sub7;&sub1;, ..., &Lambda;&sub7;&sub7;&sub6;.
  • [3] Erhalten und Speichern von insgesamt 5 Symbolen von (n = 2 bis 6).
  • Die obige Verarbeitung wurde einmal für jede der 30 Codierungszyklen durchgeführt.
  • [4] Berechnen der Syndrome S&sub0; bis S&sub7;.
  • [5] Erhalten von X&sub7; durch folgenden Ausdruck:
  • [6] Erhalten von Y&sub7; durch folgenden Ausdruck und Iteration des Syndroms Y&sub7;X&sub7;:
  • Anschließend werden Y&sub6; bis Y&sub1; (=S&sub0;) nacheinander erhalten.
  • Obwohl in diesem Beispiel ein Fall gezeigt ist, bei dem der Ausdruck (11)' verwendet wird, ist die Berechnung die gleiche, wenn 1&ne;0 ist.
  • Wie oben beschrieben ist, ist es möglich, die Korrektur von Fehlern einschließlich Löschungen und einem Fehler durchzuführen. In diesem Fall kann die Anzahl von Berechnungsschritten wie bei der oben beschriebenen Löschkorrektur verringert werden.
  • Der Beweis der obigen Ausdrücke (11) und (12) wird im folgenden beschrieben: [Lemma] Wenn
  • wird zweifellos der folgende Ausdruck erhalten:
  • [Theorem 1] Das lineare Gleichungssystem n- ter Ordnung
  • (v = 0 bis n-1 : Y&sub1; ist die unbekannte Größe)
  • besitzt folgende Wurzeln; (Beweis)
  • Rechte Seite= (Folgesatz 1)
  • (Beweis) Es ist klar erwiesen durch Einsetzen in die obige Gleichung:
  • [Theorem 2] Wenn Xi bis Xn-1: Löschung und Xn ist ein Fehler,
  • (Beweis) Aus Folgesatz 1, Rechte Seite linke Seite
  • Daher ist aus Theorem 1 zu erkennen, daß Fehler bei der Löschkorrektur durch Verwendung irgendeiner von S&sub1; bis Sn, S&sub2; bis Sn+1, ..., Sd-1-n bis Sd-2 der Folgen S&sub0; bis Sn-1 korrigiert werden können. Das heißt, n aufeinanderfolgende Syndrome sind für n Löschkorrekturen notwendig, die verbleibenden Syndrome sind zur Überprüfung verwendbar, so daß n &le; d-1.
  • Um Xn aus Theorem 2 zu erhalten, ist weiterhin eine Gesamtzahl von n+1 Syndromen Sl bis Sn+l notwendig, so daß n &le; d-2. In diesem Fall ist die Anzahl der Löschungen n-1 &le; d-3. Die verbleibenden Syndrome können wie im obigen Fall zur Überprüfung verwendet werden.
  • Bei dem herkömmlichen Verfahren sind Zeigerbereiche für die Gesamtzahl von Daten (n&sub1;, n&sub2;) entsprechend dem Fehlerkorrekturcode erforderlich. Gemäß der vorliegenden Erfindung ist es jedoch möglich, die Anzahl der Zeiger auf (n&sub2; + 2n&sub1;) und weiterhin die Kapazität des zur Decodierung erforderlichen Speichers zu verringern. Weiterhin ist es gemäß der vorliegenden Erfindung möglich, die Anzahl der Schritte zum Schreiben und Lesen der Zeiger zu verringern.
  • Weiterhin ist es erfindungsgemäß möglich, in dem Fall, wenn die Löschkorrektur bei der C&sub2;-Decodierung durch Verwendung von Zeigern ausgeführt wird, die bei der C&sub1;- Decodierung gebildet werden, die Berechnung nur einmal auszuführen, da das Muster der Zeiger aller Zeilen des C&sub2;-Codes gemeinsam ist und ein Teil der Rechenoperationen zum Erhalten des Fehlerwertes gemeinsam wird. Daher ist es möglich, die Anzahl der Verarbeitungsschritte bei der Decodierung merklich zu verringern und eine Hochgeschwindigkeits-Decodierungsverarbeitung zu realisieren.
  • Weiterhin ist es erfindungsgemäß ohne die Notwendigkeit, alle Fehlerwerte mittels eines komplizierten Fehlerbewertungspolynoms zu ermitteln, möglich, einen der Fehlerwerte durch eine einfache Konstruktion zu erhalten und so die Anzahl der Verfahrensschritte zu verringern.
  • Weiterhin ist es gemäß der vorliegenden Erfindung möglich, die Anzahl der Verarbeitungsschritte bei der Löschkorrektur merklich zu verringern.
  • Die vorliegende Erfindung beschreibt Gegenstände, die in der anhängigen Patentanmeldung EP-A-0 167 627 (85 900 195.0) beansprucht sind, von der die vorliegende Anmeldung abgeteilt ist.

Claims (2)

1. Verfahren zur Decodierung und Korrektur eines Reed-Solomon-Codes umfassend die Verfahrensschritte: Lösen der Gleichung
wobei, v = 0 bis d - 2
n : Anzahl der Löschungen
Xk : Ort des k-ten Elements
Sv : Syndrom
Yk : Fehlergröße beim Löschen des k-ten Elements
d : Mindest-Distanz des Codes,
um die Wurzeln des Ausdrucks zu erhalten;
Durchführung der Löschkorrektur der im Reed-Solomon-Code codierten Fehler in Übereinstimmung mit den Wurzeln,
dadurch gekennzeichnet,
daß die Wurzeln durch Lösen des Ausdrucks
erhalten werden,
wobei &Lambda;nij : Koeffizient von zj von
l : Jede ganze Zahl größer oder gleich 0, die die Bedingung erfüllt:
l < d - n -1.
2. Vorrichtung zur Decodierung und Korrekturlöschung eines Reed-Solomon-Codes in Übereinstimmung mit den Wurzeln von
wobei, v = 0 bis d - 2
n : Anzahl der Löschungen
Xk : Ort des k-ten Elements
Sv : Syndrom
Yk : Fehlergröße beim Löschen des k-ten Elements
d : Mindest-Distanz des Codes;
aufweisend eine Syndrom-Registereinrichtung (29) zur Speicherung des Syndroms Sv; sund gekennzeichnet durch
eine Logikschaltung (37), um die Wurzeln Yi zu erhalten durch Lösen des Ausdrucks:
wobei &Lambda;nij : Koeffizient von zj von
l :Jede ganze Zahl größer oder gleich 0, die die Bedingung erfüllt:
l &le; d - n - 1,
wobei die Logikschaltung (37) aufweist
eine Registereinrichtung (38) zur Speicherung des Syndroms Sv,
eine Registereinrichtung (39) zur Speicherung von Xiv Yi,
eine Registereinrichtung (40) zur Speicherung von Xi,
eine Addiereinrichtung (41) zur Addition von Sv und Xiv Yi und um der Registereinrichtung (38) und der Syndrom-Registereinrichtung (29) die Summe Sv + Xiv Yi zu liefern;
eine Multiplikatoreinrichtung (42) zur Multiplikation von Xi und Xiv Yi und um Xiv Yi der Registereinrichtung (39) zu liefern.
DE3486408T 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes. Expired - Fee Related DE3486408T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24052583A JPH0628343B2 (ja) 1983-12-20 1983-12-20 積符号の復号方法
JP1983198079U JPS60104947U (ja) 1983-12-23 1983-12-23 エラ−訂正復号器

Publications (2)

Publication Number Publication Date
DE3486408D1 DE3486408D1 (de) 1995-11-02
DE3486408T2 true DE3486408T2 (de) 1996-03-14

Family

ID=26510757

Family Applications (3)

Application Number Title Priority Date Filing Date
DE3486471T Expired - Fee Related DE3486471T2 (de) 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code
DE3486408T Expired - Fee Related DE3486408T2 (de) 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.
DE85900195T Expired - Fee Related DE3486200T2 (de) 1983-12-20 1984-12-19 Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE3486471T Expired - Fee Related DE3486471T2 (de) 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE85900195T Expired - Fee Related DE3486200T2 (de) 1983-12-20 1984-12-19 Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.

Country Status (8)

Country Link
US (1) US4719628A (de)
EP (3) EP0167627B1 (de)
KR (1) KR930003997B1 (de)
AT (2) ATE177570T1 (de)
BR (1) BR8407228A (de)
DE (3) DE3486471T2 (de)
HK (1) HK118795A (de)
WO (1) WO1985002958A1 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS601673A (ja) * 1983-06-17 1985-01-07 Sony Corp 誤り検出方法
AU594995B2 (en) * 1986-01-24 1990-03-22 Sony Corporation Data transmission method suitable for a disc
DE3776161D1 (de) * 1986-03-04 1992-03-05 Sony Corp Digitalwiedergabegeraet.
JPS63193723A (ja) * 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
AU622626B2 (en) * 1987-06-03 1992-04-16 Sony Corporation Method of processing data
US4845714A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Multiple pass error correction process and apparatus for product codes
US5020060A (en) * 1987-06-30 1991-05-28 Matsushita Electric Industrial Co., Ltd. Error code correction device having a galois arithmetic unit
US4849976A (en) * 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
JP2563389B2 (ja) * 1987-11-13 1996-12-11 松下電器産業株式会社 誤り検出訂正方法
US4847842A (en) * 1987-11-19 1989-07-11 Scs Telecom, Inc. SM codec method and apparatus
US4956709A (en) * 1988-03-11 1990-09-11 Pbs Enterprises, Inc. Forward error correction of data transmitted via television signals
FR2634035B1 (fr) * 1988-07-07 1994-06-10 Schlumberger Ind Sa Dispositif pour le codage et la mise en forme de donnees pour enregistreurs a tetes tournantes
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
JP2881773B2 (ja) * 1988-07-30 1999-04-12 ソニー株式会社 誤り訂正装置
JP2722647B2 (ja) * 1989-04-11 1998-03-04 富士通株式会社 磁気テープ制御装置
CA2013484A1 (en) * 1989-06-26 1990-12-26 Can A. Eryaman Erasure arrangement for an error correction decoder
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5040179A (en) * 1989-08-18 1991-08-13 Loral Aerospace Corp. High data rate BCH encoder
EP0437865B1 (de) * 1990-01-18 1997-04-16 Koninklijke Philips Electronics N.V. Aufzeichnungsvorrichtung zum umkehrbaren Speichern von digitalen Daten auf einem Mehrspuren-Aufzeichnungsträger, Dekodiervorrichtung, Informationswiedergabegerät für die Verwendung mit einem solchen Aufzeichnungsträger und Aufzeichnungsträger für die Verwendung mit einer solchen Aufzeichnungsvorrichtung, mit einer solchen Dekodiervorrichtung und/oder mit einem solchen Informationswiedergabegerät
US6085348A (en) * 1990-10-17 2000-07-04 Canon Kabushiki Kaisha Error correction code encoder and decoder
US5323402A (en) * 1991-02-14 1994-06-21 The Mitre Corporation Programmable systolic BCH decoder
US5315583A (en) * 1991-04-11 1994-05-24 Usa Digital Radio Method and apparatus for digital audio broadcasting and reception
US5432800A (en) * 1991-10-29 1995-07-11 Hitachi, Ltd. Methods and apparatuses for transmission and reception of information signals
JP2824474B2 (ja) * 1992-02-17 1998-11-11 三菱電機株式会社 誤り訂正方式及びこの誤り訂正方式を用いた復号器
KR0133505B1 (ko) * 1992-07-16 1998-04-22 구자홍 디지탈 브이씨알의 오류정정 부호화 방법
JPH06236632A (ja) * 1993-02-09 1994-08-23 Matsushita Electric Ind Co Ltd 光ディスクおよび光ディスク再生装置
US5517509A (en) * 1993-03-31 1996-05-14 Kabushiki Kaisha Toshiba Decoder for decoding ECC using Euclid's algorithm
KR0141240B1 (ko) * 1993-06-28 1998-07-15 김광호 에러정정용 메모리장치
KR950010768B1 (ko) * 1993-10-20 1995-09-22 주식회사 Lg전자 에러 정정 코드 복호 장치 및 그 방법
US5483236A (en) * 1993-12-20 1996-01-09 At&T Corp. Method and apparatus for a reduced iteration decoder
JP3255386B2 (ja) * 1993-12-27 2002-02-12 キヤノン株式会社 誤り訂正符号の復号器
JP3154607B2 (ja) * 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
US5677919A (en) * 1994-06-10 1997-10-14 Hughes Electronics Faster linear block decoding apparatus and method for receivers in digital cellular communication and other systems
JP3328093B2 (ja) * 1994-07-12 2002-09-24 三菱電機株式会社 エラー訂正装置
US5835509A (en) * 1994-10-24 1998-11-10 Sony Corporation Method of and apparatus for recording and reproducing data and transmitting data
US5680156A (en) * 1994-11-02 1997-10-21 Texas Instruments Incorporated Memory architecture for reformatting and storing display data in standard TV and HDTV systems
KR100229015B1 (ko) * 1996-08-06 1999-11-01 윤종용 디지탈 처리시스템의 에러정정장치 및 방법
JP3562544B2 (ja) * 1996-08-13 2004-09-08 ソニー株式会社 復号化装置および復号化方法
TW311189B (en) * 1996-09-30 1997-07-21 United Microelectronics Corp The error-corrected decoding method and its apparatus for Reed-Soloman code
NL1006174C2 (nl) * 1997-04-17 1998-12-01 United Microelectronics Corp Foutdecoderingswerkwijze alsmede apparaat voor het decoderen.
US6304992B1 (en) * 1998-09-24 2001-10-16 Sun Microsystems, Inc. Technique for correcting single-bit errors in caches with sub-block parity bits
JP3214478B2 (ja) * 1998-12-28 2001-10-02 日本電気株式会社 誤り訂正復号装置
US7134069B1 (en) * 1999-06-16 2006-11-07 Madrone Solutions, Inc. Method and apparatus for error detection and correction
KR100611954B1 (ko) * 1999-07-08 2006-08-11 삼성전자주식회사 고밀도 디스크를 위한 에러 정정방법
US6625774B1 (en) * 1999-10-29 2003-09-23 Stmicroelectronics, Inc. Redundancy system and method for locating errors in interleaved code words
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US7159164B1 (en) * 2000-06-05 2007-01-02 Qualcomm Incorporated Method and apparatus for recovery of particular bits of a frame
US6631492B2 (en) * 2001-01-02 2003-10-07 Eastman Kodak Company Multitrack data recording and read out of recorded multitrack digital data for error correction
US8656246B2 (en) * 2001-04-16 2014-02-18 Qualcomm Incorporated Method and an apparatus for use of codes in multicast transmission
US20030061558A1 (en) * 2001-09-25 2003-03-27 Fackenthal Richard E. Double error correcting code system
DE10216999A1 (de) * 2002-04-16 2003-11-06 Thomson Brandt Gmbh ECC-Block-Enkodierer und -Dekodierer mit reduziertem RAM-Speicherbedarf
US7100101B1 (en) * 2002-11-08 2006-08-29 Xilinx, Inc. Method and apparatus for concatenated and interleaved turbo product code encoding and decoding
TWI254283B (en) * 2003-06-03 2006-05-01 Sunplus Technology Co Ltd Error correction device of block code and method thereof
JP4056488B2 (ja) * 2004-03-30 2008-03-05 エルピーダメモリ株式会社 半導体装置の試験方法及び製造方法
US7328395B1 (en) * 2004-04-13 2008-02-05 Marvell International Ltd. Iterative Reed-Solomon error-correction decoding
GB2415873A (en) * 2004-06-30 2006-01-04 Nokia Corp Erasure information generation in Forward Error Correction decoding
US8433979B2 (en) 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
US9058291B2 (en) 2011-02-28 2015-06-16 International Business Machines Corporation Multiple erasure correcting codes for storage arrays
US8499219B2 (en) * 2011-12-13 2013-07-30 Broadcom Corporation Encoding methods and systems for binary product codes
US8874995B2 (en) * 2012-02-02 2014-10-28 International Business Machines Corporation Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
US9252815B2 (en) 2013-12-16 2016-02-02 International Business Machines Corporation Extension of product codes with applications to tape and parallel channels
US10417090B2 (en) 2013-12-23 2019-09-17 Cnex Labs, Inc. Computing system with data protection mechanism and method of operation thereof
US10547332B2 (en) * 2017-02-01 2020-01-28 Tsofun Algorithm Ltd. Device, system and method of implementing product error correction codes for fast encoding and decoding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3714629A (en) * 1971-06-01 1973-01-30 Ibm Double error correcting method and system
US4030067A (en) * 1975-12-29 1977-06-14 Honeywell Information Systems, Inc. Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes
US4044328A (en) * 1976-06-22 1977-08-23 Bell & Howell Company Data coding and error correcting methods and apparatus
US4107650A (en) * 1976-08-13 1978-08-15 The Johns Hopkins University Error correction encoder and decoder
US4142174A (en) * 1977-08-15 1979-02-27 International Business Machines Corporation High speed decoding of Reed-Solomon codes
US4205324A (en) * 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
US4236247A (en) * 1979-01-15 1980-11-25 Organisation Europeene De Recherches Spatiales Apparatus for correcting multiple errors in data words read from a memory
CA1161565A (en) * 1980-06-20 1984-01-31 Yoichiro Sako Method of error correction
GB2093238B (en) * 1981-02-18 1985-04-17 Kokusai Denshin Denwa Co Ltd Error correcting system for simultaneous errors in a code
GB2107496B (en) * 1981-09-30 1985-11-20 Hitachi Ltd Error flag processor
JPS58171144A (ja) * 1982-04-01 1983-10-07 Mitsubishi Electric Corp 復号化装置
JPS58219648A (ja) * 1982-06-15 1983-12-21 Toshiba Corp ガロア体における除算装置
JPS5943646A (ja) * 1982-09-03 1984-03-10 Mitsubishi Electric Corp 復号化システム
JPH0812612B2 (ja) * 1983-10-31 1996-02-07 株式会社日立製作所 誤り訂正方法及び装置

Also Published As

Publication number Publication date
EP0426657A3 (de) 1995-03-15
EP0426657A2 (de) 1991-05-08
DE3486471D1 (de) 1999-04-15
EP0387924A2 (de) 1990-09-19
KR930003997B1 (ko) 1993-05-19
ATE177570T1 (de) 1999-03-15
WO1985002958A1 (en) 1985-07-04
BR8407228A (pt) 1985-11-26
DE3486471T2 (de) 1999-09-02
ATE128585T1 (de) 1995-10-15
US4719628A (en) 1988-01-12
EP0167627A1 (de) 1986-01-15
AU581202B2 (en) 1989-02-16
EP0387924B1 (de) 1995-09-27
DE3486200D1 (de) 1993-09-16
HK118795A (en) 1995-07-28
EP0426657B1 (de) 1999-03-10
KR850700196A (ko) 1985-10-25
DE3486408D1 (de) 1995-11-02
EP0167627B1 (de) 1993-08-11
AU3781285A (en) 1985-07-12
EP0167627A4 (de) 1988-04-27
DE3486200T2 (de) 1993-12-02
EP0387924A3 (de) 1991-03-20

Similar Documents

Publication Publication Date Title
DE3486408T2 (de) Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.
DE3854791T2 (de) Reed-Solomon Code verwendendes Fehler-Korrektur-Verfahren
DE3852999T2 (de) Galois-feld-recheneinheit.
DE3854393T2 (de) Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode.
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE3852474T2 (de) Nachschlagetabellen verwendende Fehlerkorrektur.
DE69121307T2 (de) Mehrfachpegel-Fehlerkorrektursystem
DE3854939T2 (de) Bch-fehlerkorrekturkode-dekodierungsverfahren in echtzeitbetrieb
DE68920523T2 (de) Verfahren zur Korrektur von Mehr-Byte-Fehlern.
DE2916710C2 (de)
DE69424877T2 (de) Reed-solomon-dekoder
DE2853892C2 (de)
DE69129444T2 (de) On-Line-Wiederherstellung von Redundanz-Information in einem redundanten Matrixsystem
DE3887200T2 (de) Verfahren zur Erfassung von Kodefehlern.
DE68924944T2 (de) Fehlerkorrekturschaltung.
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE3855101T2 (de) Anordnung zur sofortigen Fehlerkorrektur
DE2834963A1 (de) Verfahren und einrichtung zur fehlerkorrektur von uebertragenen daten
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE4324299A1 (de) Fehlerkorrekturcode-System und -Verfahren
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE3750526T2 (de) Dekodierer.
DE3787034T2 (de) Digitale Signalfehlerkorrektur.
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee