DE3486471T2 - Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code - Google Patents

Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code

Info

Publication number
DE3486471T2
DE3486471T2 DE3486471T DE3486471T DE3486471T2 DE 3486471 T2 DE3486471 T2 DE 3486471T2 DE 3486471 T DE3486471 T DE 3486471T DE 3486471 T DE3486471 T DE 3486471T DE 3486471 T2 DE3486471 T2 DE 3486471T2
Authority
DE
Germany
Prior art keywords
decoding
error
error correction
correction codes
code
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
DE3486471T
Other languages
English (en)
Other versions
DE3486471D1 (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 DE3486471D1 publication Critical patent/DE3486471D1/de
Publication of DE3486471T2 publication Critical patent/DE3486471T2/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)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Executing Machine-Instructions (AREA)
  • Selective Calling Equipment (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)

Description

    Titel der Erfindung
  • Verfahren und Vorrichtung zum Decodieren eines Fehlerkorrekturcodes
  • Technisches Gebiet
  • Diese Erfindung betrifft ein Verfahren und eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes.
  • Hintergrundwissen
  • Produktcodes, bei denen Informationssymbole in zweidimensionaler Form angeordnet sind, sind wohlbekannt, wobei Fehlerkorrekturcodes für jede Zeile und Spalte der zweidimensionalen Anordnung codiert sind, so daß jedes Informationssymbol in zwei Fehlerkorrekturcode-Serien enthalten ist. Beim Decodieren des Produktcodes wird der Fehlerkorrekturcode für jede Spalte decodiert und der Fehlerkorrekturcode kann für jede Zeile unter Verwendung der decodierten Information decodiert werden. Die decodierte Information wird ein Zeiger genannt.
  • Da in herkömmlichen Verfahren jedes Informationssymbol einem Zeiger zugeordnet ist, ist es erforderlich, daß die Gesamtanzahl der Zeiger wenigstens gleich der Anzahl der Informationssymbole ist.
  • Falls ferner die Fehlerkorrektur unter Verwendung der Zeiger ausgeführt wird, ergibt sich das Problem, da die Zeiger aus einem Zeigerspeicher ausgelesen werden und der Fehlerwert für jede Zeile berechnet wird, daß die Anzahl der Verarbeitungsschritte wie der Speicherzugriff, die Berechnungen usw. unvermeidbar ansteigt.
  • Falls andererseits komplizierte Codes wie BCH-Codes verwendet werden, ergibt sich ein Problem, da die Arbeitsschritte zum Erlangen der Fehlerwerte unvermeidbar kompliziert werden, daß eine große Anzahl von Programmschritten erforderlich ist, falls die Berechnungen durch Hardware durchgeführt werden.
  • Das IBM Technical Disclosure Bulletin, Vol. 17, Nr. 2, Juli 1974, S. 473-475 offenbart ein Fehlerkorrektursystem für bandaufgezeichnete Daten, bei dem Fehlerzeiger der Spaltendecodierung bei der Fehlerkorrektur der Zeilen der Daten verwendet werden.
  • EP-A-0 096 109 (Tokyo Shibaura Denki K.K.), die Stand der Technik gemäß Art. 54(3) EPÜ ist, offenbart ein Decodierverfahren, das einen einzelnen Reed-Solomon-Code verwendet.
  • GB-A-210749 offenbart einen Fehlermerker-Decodierer, bei dem die Speicherung, die für Fehlermerker erforderlich ist, durch die Verwendung eines Leseadreßzählers und eines Vollbild- bzw. Rahmenlesezählersatzes mit einem speziellen Offset reduziert werden kann und bei dem Fehlermerker in Paritätsbits für einen vorbestimmten Rahmen gespeichert werden können.
  • IEEE Transactions on Information Theory, Vol. 18, Nr. 1, Januar 1972, S. 182-185 mit dem Titel "Random error and burst correction by iterated codes" von S.M. REDDY et al. beschreibt in Absatz II ein Verfahren zum Decodieren eines Produktcodes von C1 (n1, k&sub1;) und C2 (n2, k2) Reed-Solomon-Codes. Die C1-Decodierung wird zuerst ausgeführt und eine Gewichtung, die die Vertrauenswürdigkeit der Korrektur abschätzt, wird jeder Spalte zugeordnet. Die Positionen, die den Spalten mit der niedrigsten Vertrauenswürdigkeit entsprechen, werden als Löschungen berücksichtigt und eine Fehler-und-Löschen-Forney- Decodierung des C2-Codes wird dann für die Zeilen ausgeführt.
  • Es ist eine Aufgabe dieser Erfindung, ein Verfahren und eine Vorrichtung zum Decodieren von Fehlerkorrekturcodes bereitzustellen, bei denen sowohl die Anzahl der Zeiger, die zum Decodieren erforderlich ist, reduziert werden kann, als auch die Anzahl der Speicherbereiche für die Zeiger und die Anzahl der Zeitpunkte, zu denen die Zeiger gelesen und geschrieben werden müssen, reduziert werden können.
  • Es ist eine weitere Aufgabe dieser Erfindung, ein Verfahren und eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes bereitzustellen, bei denen die Anzahl der Verarbeitungsschritte abhängig von der Tatsache, daß die Zeiger bezüglich jeder Zeile dieselben sind, merklich reduziert werden können.
  • Es ist eine weitere Aufgabe dieser Erfindung, eine Vorrichtung zum Decodieren von Fehlerkorrekturcodes bereitzustellen, bei der die Anzahl der Berechnungsschritte bei einer Löschkorrektur reduziert werden kann.
  • Eine weitere Aufgabe dieser Erfindung ist es, ein Verfahren zum Decodieren von Fehlerkorrekturcodes bereitzustellen, bei dem Fehlerwerte bei der Decodierung erlangt werden können, die einen einfachen Aufbau und eine kleine Anzahl von Verarbeitungsschritten haben.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zum Decodieren eines Produkt- Fehlerkorrekturcodes bereitgestellt, das in Anspruch 1 definiert ist.
  • Die Erfindung stellt ferner eine Vorrichtung zum Decodieren eines Produkt-Fehlerkorrekturcodes bereit, die in Anspruch 2 definiert ist.
  • Berücksichtigt man ferner bei der vorliegenden Erfindung, daß in einem nichtdualen Code, der eine Wurzel aus 1 hat, eines der Syndrome eine Addition von (mod. 2) einer empfangenen Symbolserie ist, die Vorrichtung zum Decodieren eines Fehlerkorrekturcodes ein Syndrom in einem Syndromregister speichern kann und einen Fehlerwert in Bezug auf ein einzelnes Symbol durch Subtraktion anderer Fehlerwerte von einem in dem Syndromregister gespeicherten Wert beim Korrigieren mehrerer fehlerhafter Symbole gebildet werden kann.
  • Die Erfindung wird weiter anhand von Ausführungsbeispielen mit Bezug auf die beigefügten Zeichnungen erläutert. Es zeigen:
  • Fig. 1 ein Schemablockdiagramm eines Codierers gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Fig. 2 ein Schemablockdiagramm, das die Arbeitsweise eines Ausführungsbeispiels der vorliegenden Erfindung zeigt.
  • Fig. 3 ein Schemablockdiagramm, das einen Decodierer gemäß einem Ausführungsbeispiel dieser Erfindung zeigt.
  • Fig. 4 ein Blockdiagramm, das einen Fehlerkorrektur-Decodierer gemäß Fig. 3 zeigt.
  • Fig. 5 ein Blockdiagramm, das einen Teil einer Fehlerort- und Fehlerwert-Berechnungsschaltung der Fig. 4 zeigt.
  • Fig. 6 ein Blockdiagramm, das einen Aufbau einer Anordnung zur Verwendung mit dieser Erfindung zeigt.
  • Fig. 7 ein Blockdiagramm für die Verarbeitungsschaltung der Fig. 6.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung wird mit Bezug zu den Zeichnungen erläutert. Fig. 1 zeigt einen Aufbau eines Codierers für einen Produktcode. Das Bezugszeichen 1 bezeichnet einen Eingangsanschluß, das Bezugszeichen 2 bezeichnet einen Paritätsgenerator für einen zweiten Fehlerkorrekturcode-C&sub2;. Die Eingangsdaten von dem Eingangsanschluß 1 werden dem C&sub2;-Paritätsgenerator 2 und einem Eingangsanschluß eines Auswählers 3 zugeführt. Die C&sub2;-Paritätsdaten, die von dem C&sub2;-Paritätsgenerator 2 gebildet werden, werden einem anderen Eingangsanschluß des Auswählers 3 zugeführt. Der Auswähler 3 wiederholt k&sub1;-mal die Schritte zum Auswählen der (n&sub2; - k&sub2;) Paritätsdaten, nachdem k&sub2; Informationssymbolde ausgewählt worden sind. Während dieses Schrittes werden die Informationssymbole und die Paritätsdaten in einem RAM (Random Access Memory; Direktzugriffsspeicher) 4 der Reihe nach unter der Steuerung einer Adreßsteuerung 5 gespeichert.
  • Die von dem RAM 4 ausgelesenen Daten werden einem C&sub1;(der erste Fehlerkorrekturcode)-Paritätsgenerator 6 und einem Eingangsanschluß eines Auswählers 7 zugeführt, und die C&sub1;-Paritätsdaten, die von dem C&sub1;-Paritätsgenerator 6 gebildet werden, werden einem anderen Eingangsanschluß des Auswählers 7 zugeführt. Der Auswähler 7 wählt ((n&sub1; - k&sub1;) x k&sub2;) C&sub1;-Paritätsdaten aus, nachdem (k&sub1; · n&sub2;) Symbole einschließlich den C&sub2;-Paritätsdaten ausgewählt worden sind. Die Digitaldaten, die sich von einem Ausgangsanschluß 8 des Auswählers 7 ableiten, werden übertragen oder auf einem Magnetband (nicht gezeigt) mittels beispielsweise eines Magnetkopfes aufgezeichnet. In diesem Fall ist es möglich, die codierte Ausgabe nocheinmal in den RAM 4 zu schreiben und sie in anderer Folge für das Aufzeichnen auszulesen.
  • Fig. 2 zeigt eine Konfiguration eines Codes, der durch den Decodierer, wie er vorstehend erläutert wurde, gebildet wird. Die Informationssymbole sind in zwei Dimensionen (k&sub1; · k&sub2;) angeordnet. Die k&sub2; Informationssymbole in jeder Querrichtung, d. h. in jeder Zeile der zweidimensionalen Anordnung, werden dem Codierverfahren für den C&sub2;-Code unterzogen. Die k&sub1; Informationssymbole in jeder Vertikalrichtung, d. h. in jeder Spalte, werden dem Codierverfahren für den C&sub1;-Code unterzogen. Die C&sub2;-Paritätsdaten werden ferner in dem C&sub1;-Code codiert. Der C&sub1;-Code ist beispielsweise ein (n&sub1;, k&sub1;) Reed-Solomon-Code, durch den es möglich ist, Fehler von bis zu (n&sub1; - k&sub1;)/2 Symbolen zu korrigieren.
  • Das allgemeine Verfahren der Decodierung mit dem Reed-Solomon-Code wird erläutert.
  • Die Hamming-Distanz des (n, k) Reed-Solomon-Codes (wobei n die Codelänge und k die Anzahl der Informationssymbole bezeichnet) auf einem Galois-Feld GF(2m) kann als (d = n - k + 1) ausgedrückt werden und das erzeugende Polynom kann als
  • (x + αi)
  • ausgedrückt werden. Falls die empfangenen Wörter (r&sub0;, r&sub1;, r&sub2;, ..., rn-1) sind, kann das Syndrom durch Berechnung des folgenden Ausdrucks erlangt werden:
  • Sj = riαij (j = 0, 1, ..., d-2) ...(1).
  • Ein Fehlerort-Polynom σ(z) und ein Fehlerauswerte-Polynom ω(z) werden durch Verwendung des Syndroms Sj erlangt. Bezüglich dieses Verfahrens werden Euclid's Gegendivisionsverfahren, Berlekam's Verfahren, Peterson's Verfahren usw. vorgeschlagen.
  • Durch Lösen von σ(z) = 0 kann der Fehlerort Xi erlangt werden. Für diesen Zweck wird eine Chien-Suche verwendet.
  • Dann kann der Fehlerwert Yi auf der Basis des Fehlerorts Xi und des Fehlerauswerte- Polynoms ω(z) erlangt werden.
  • Die vorstehenden Berechnungen in den Codierschritten werden mit dem Fehlerort als Xi (i = 1, 2, ..., e; wobei e die Anzahl der Fehler bezeichnet) erläutert und der Fehlerwert ist Yi. Da der Reed-Solomon-Code ein linearer Code ist; kann das Syndrom wie folgt ausgedrückt werden:
  • Sj = YiXij (j = 1, 2, ..., d-2) ...(2).
  • Falls das Syndrom durch ein Polynom
  • S(z) = Sjzj ...(3)
  • ausgedrückt wird, wird der folgende Ausdruck erlangt:
  • Falls das Fehlerort-Polynom und das Fehlerauswerte-Polynom als
  • σ(z) = (1 - Xj z) ...(5),
  • ω(z) = σ(z) S(z) ...(6)
  • definiert sind, kann ω(z) wie folgt ausgedrückt werden:
  • Der Fehlerwert Yi kann durch Substitution von Xi&supmin;¹ in z und durch Umformung des Ausdrucks wie folgt erlangt werden:
  • Yi = ω(Xi&supmin;¹)/ (1 - Xj Xi&supmin;¹) ...(8).
  • Als Beispiel wird ein (32, 24) Reed-Solomon-Code, der die Wurzeln α&sup0; bis α&sup7; hat, erläutert. Da dieser Code (d = 8) ist, ist es möglich, Fehler von bis zu vier Symbolen zu korrigeren. Falls die Fehlerorte der vier Symbole X&sub1; bis X&sub4; sind und die Fehlerwerte Y&sub1; bis Y&sub4; sind, wird das Syndrom durch den folgenden Ausdruck erlangt:
  • Sj = Yi Xij (j = 0 bis 3).
  • Im einzelnen ist S&sub0; bei den vier Syndromen wie folgt:
  • S&sub0; = Yi .
  • Können die Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3; einmal erlangt werden, wird der verbleibende Fehlerwert Y&sub4; wie folgt ohne Durchführung komplizierter Rechnungen erlangt:
  • Y&sub4; = S&sub0; - Y&sub1; - Y&sub2; - Y&sub3;.
  • Bei Codes auf GF(2m) ist eine Subtraktion äquivalent zu einer Modulo-2-Addition (mod. 2).
  • Fig. 3 zeigt einen Aufbau des Decodierers dieses Ausführungsbeispiels. In Fig. 3 werden wiedergegebene Daten von einem Eingangsanschluß, der durch das Bezugszeichen 11 bezeichnet ist, einem C&sub1;-Decodierer 12 zugeführt. In dem C&sub1;-Decodierer 12 wird die Decodierung des C&sub1;-Codes ausgeführt. Alle Fehler bis zu (n&sub1; - k&sub1;)/2 Symbolen werden in der C&sub1;-Decodierung korrigiert. Falls dennoch die Anzahl der Fehler in einer einzigen Reihe des C&sub1;-Codes größer oder gleich (n&sub1; - k&sub1;)/2 ist, wird der C&sub1;-Zeiger dieser Reihe auf "1" gesetzt, wobei die anderen Zeiger auf "0" gesetzt werden. In den Fig. 2 und 3 bezeichnet das Bezugszeichen 13 einen Zeigerspeicher zum Speichern der Zeiger des C&sub1;- Codes, der n&sub2; Bits hat. Die Ausgabe des C&sub1;-Decodierers 12 wird temporär in einem RAM 14 der Reihe nach unter der Steuerung einer Adreßsteuerung 15 gespeichert.
  • Das Ausgangssignal, das aus dem RAM 14 ausgelesen wird, wird einem C&sub2;-Decodierer 16 zugeführt, um der Decodierung des C&sub2;-Codes unterzogen zu werden. Dem C&sub2;-Decodierer 16 wird der C&sub1;-Zeiger von dem Zeigerspeicher 13 zugeführt. Da der C&sub1;-Zeiger gleich für alle der K&sub1;-Reihen des C&sub2;-Codes ist, ist es möglich, den C&sub2;-Code gemäß dem gleichen Verfahren in jeder Reihe zu decodieren. Der C&sub2;-Decodierer 16 korrigiert Fehler bis zu (n&sub2; - k&sub2;)/2 Symbolen und erzeugt eine von drei Arten der Zeiger in dem C&sub2;-Code, der in einem Zeigerspeicher 17 gespeichert ist.
  • Wenn die Fehlerkorrektur durch den C&sub2;-Decodierer 16 ausgeführt wird, wird der C&sub2;- Zeiger bezüglich der Reihe auf "0" gesetzt. Wenn die Fehlerkorrektur nicht durch den C&sub2;- Decodierer 16 ausgeführt werden kann und die C&sub1;-Zeiger aufgrund ihrer hohen Verläßlichkeit (nachstehend erläutert) verwendet werden, wird der C&sub2;-Zeiger auf "1" gesetzt. Wenn die Fehlerkorrektur nicht durch den C&sub2;-Decodierer 16 ausgeführt werden kann und alle Symbole als fehlerhafte Symbole aufgrund der niedrigen Verläßlichkeit (Vertrauenswürdigkeit) der C&sub1;-Zeiger bestimmt worden sind, werden die C&sub2;-Zeiger auf "2" gesetzt. Damit haben die C&sub2;-Zeiger 2 Bit und der Zeigerspeicher 17 hat 2K&sub1; Bits.
  • Die Zeigerspeicher 13 und 17 werden separat von dem RAM 14 zum Speichern von Informationssymbolen und Paritätsdaten beim Decodieren angeordnet oder können zusammen mit dem RAM 14 durch Verwendung eines Teils des Speicherbereichs des RAM 14 angeordnet sein.
  • Ohne auf 1 Bit begrenzt zu sein, kann der C&sub1;-Zeiger 2 Bit oder mehr haben. Ferner ist es möglich, die Fehlerkorrekturcode-Verarbeitung des C&sub2;-Codes für die C&sub1;-Parität durchzuführen, wobei ein C&sub2;-Zeigerspeicher mit (2n&sub1;) Bits bereitgestellt wird.
  • Die Ausgabedaten des C&sub2;-Decodierers 16 werden einer Interpolationsschaltung 18 zugeführt, um Fehler in den Symbolen, die nicht korrigiert worden sind, zu verdecken. Die Interpolationsschaltung 18 führt beispielsweise die Mittelwert-Interpolation durch. Die Interpolationsschaltung 18 wird durch eine Steuerschaltung 19 gesteuert; der die C&sub1;-Zeiger und die C&sub2;-Zeiger von den Zeigerspeichern 13 und 17 zugeführt werden. Die Ausgabedaten der Interpolationsschaltung 18 werden an einen Ausgangsanschluß 20 gegeben. Die Steuerschaltung 19 bestimmt für jedes Informationssymbol, ob eine Interpolation auf der Basis des C&sub1;-Zeigers und C&sub2;-Zeigers erforderlich ist. In Fig. 2 sind alle Kombinationen der C&sub1;-Zeiger, die mit 13' bezeichnet sind und der C&sub2;-Zeiger, die mit 17' bezeichnet sind, vorhanden.
  • Wenn der C&sub2;-Zeiger "0" ist, ungeachtet der Tatsache, daß 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, da bestimmt worden ist, daß das Informationssymbol keinen Fehler hat, wird keine Interpolation durchgeführt. Wenn der C&sub2;-Zeiger "1" ist und der C&sub1;-Zeiger "1" ist, da bestimmt worden ist, daß ein fehlerhaftes Symbol vorhanden ist, wird der Interpolationsbetrieb durchgeführt. Wenn ferner der C&sub2;-Zeiger "2" ist, ungeachtet der Tatsache, daß der C&sub1;-Zeiger "0" oder "1" ist, da bestimmt worden ist, daß ein fehlerhaftes Symbol vorhanden ist, wird der Interpolationsbetrieb durchgeführt.
  • Die Verläßlichkeit des C&sub1;-Zeigers wird von dem C&sub2;-Decodierer ausgewertet. Falls beispielsweise bis zu zwei Symbolfehler durch den C&sub2;-Code korrigiert werden können und die Korrektur durch den C&sub2;-Code trotz der Tatsache nicht ausgeführt wird, daß nur ein C&sub1;- Zeiger "1" ist, wird bestimmt, daß die Verläßlichkeit des C&sub1;-Zeigers niedrig ist, da das vorstehende abnormal ist. Sogar wenn Fehler nicht durch den C&sub2;-Code korrigiert werden, ist es möglich, die Notwendigkeit der Interpolation durch Vorsehen von drei Arten 0, 1, 2 der C&sub2;-Zeiger durch Diskriminierung der Kopien der C&sub1;-Zeiger von allen Fehlern zu eliminieren.
  • In dem vorstehend erläuterten C&sub2;-Decodierer 16 wird, wenn die C&sub1;-Zeiger verwendet werden, eine Löschkorrektur erfolgen, wenn der Gesamtwert der C&sub1;-Zeiger kleiner oder gleich (n&sub2; - k&sub2;) ist, und wenn die Löschkorrektur gemacht wird, wird der C&sub2;-Zeiger auf "0" gesetzt.
  • Wie vorstehend erläutert wird die Decodierung des Reed-Solomon-Codes durch Berechnung des Fehlerort-Polynoms σ(z) und des Fehlerauswerte-Polynoms ω(z) für jede Zeile durchgeführt und zwar durch Verwendung des Syndroms, das durch n&sub2; Symbole in jeder Zeile erlangt wird. Im Fall der Löschkorrektur ist es möglich, da die Orte, bei denen die C&sub1;-Zeiger zu "1" bestimmt werden, als die Fehlerorte bestimmt werden, den Fehlerwert Yi aus dem Fehlerort Xi und das Fehlerauswerte-Polynom ω(z) zu erlangen. Genauer gesagt kann durch Substitution von Xi&supmin;¹ für z der Wert Yi wie im Ausdruck (8) wie folgt erlangt werden:
  • Yi = ω(Xi&supmin;¹)/ (1-XjXi&supmin;¹)
  • (wobei i = 1, 2, 3, ..., s ist; s bezeichnet die Anzahl der Symbole), wobei in dem vorstehenden Ausdruck der Term des Divisors nur durch die Fehlerorte bestimmt werden kann. Beispielsweise angenommen, daß die Fehlerorte, die durch die C&sub1;-Zeiger gezeigt werden, X&sub1;, X&sub2;, X&sub3; sind, werden die Terme des Divisors der Ausdrücke zum Erlangen der Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3;
  • Divisor von Y&sub1;: (1 - X&sub2; X&sub1;&supmin;¹) (1 - X&sub3; X&sub1;&supmin;¹)
  • Divisor von Y&sub2;: (1 - X&sub1; X&sub2;&supmin;¹) (1 - X&sub3; X&sub2;&supmin;¹)
  • Divisor von Y&sub3;: (1 - X&sub1; X&sub3;&supmin;¹) (1 - X&sub2; X&sub3;&supmin;¹)
  • Hier sind die Zeiger, die in dem Zeigerspeicher 13 gespeichert sind, in allen K&sub1;-Reihen des C&sub2;-Codes die gleichen. Somit genügt es, die Berechnung des Terms des Divisors des vorstehenden Ausdrucks nur einmal durchzuführen, um einen Fehlerwert bezüglich der ki- Reihe zu erlangen.
  • Fig. 4 zeigt den Aufbau eines Fehlerkorrektur-Decodierers für die Verwendung der vorstehend erwähnten C&sub1;- und C&sub2;-Codes. Die empfangen Daten werden einem Eingabeanschluß zugeführt, der durch das Bezugszeichen 21 bezeichnet ist, und werden einer Verzögerungsschaltung 22 und einer Syndrom-Generationsschaltung 23 zugeführt. Die Syndrome, die von der Syndrom-Generationsschaltung 23 gebildet worden sind, werden einer Fehlerort- und Fehlerwertberechnungs-Schaltung 24 zugeführt. Die Fehlerdaten von der Fehlerort- und Fehlerwertberechnungs-Schaltung 24 werden einem Exklusiv-ODER- Glied 25 zugeführt, und zu den empfangenen Daten von der Verzögerungsschaltung 22 (mod. 2)-hinzuaddiert. Die von der Verzögerungsschaltung 22 empfangenen Daten und die fehlerkorrigierten Daten von dem Exklusiv-ODER-Glied 25 werden einem Auswähler 26 zugeführt. Der Auswähler 26 wird von den Fehlerortdaten gesteuert. Bei den Fehlerorten wird die Ausgabe des Exklusiv-ODER-Glied 25 von dem Auswähler 26 ausgewählt, um zu einem Ausgabeanschluß 27 anstelle der empfangenen Daten bereitgestellt zu werden.
  • Im Fall einer Audio-PCM-Signalaufzeichnungs- und -wiedergabevorrichtung werden die wiedergegebenen Daten einmal in ein RAM geschrieben. Durch Verwendung der aus dem RAM ausgelesenen Daten wird das Syndrom generiert und basierend darauf werden Fehlerorte und Fehlerwerte berechnet. Fig. 5 zeigt einen Teil der Fehlerort- und Fehlerwertberechnungs-Schaltung 24. In Fig. 5 bezeichnet das Bezugszeichen 28 einen Datenbus über den Daten und das Syndrom usw. übertragen werden.
  • In Fig. 5 bezeichnet das Bezugszeichen 29 ein Syndromregister, in dem das Syndrom S&sub0; über den Datenbus 28, einen Buspuffer 30 und ein Exklusiv-ODER-Glied 31 gespeichert wird. Das Syndrom S&sub0; hat m Bits in dem Fall eines Reed-Solomon-Codes GF(2m). Das Syndrom S&sub0; aus dem Syndromregister 29 wird dem Exklusiv-ODER-Glied 31 und dem Buspuffer 32 zugeführt.
  • Wenn das Syndrom S&sub0; in dem Syndromregister 29 gespeichert ist, werden die erlangen Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3; dem Exklusiv-ODER-Glied 31 der Reihe nach von dem Datenbus 28 über den Buspuffer 30 zugeführt. Damit ist das Ausgangssignal des Exklusiv-ODER- Glieds 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; wird in dem Syndromregister 29 gelassen. Der Fehlerwert Y&sub4; wird an den Datenbus 28 über den Buspuffer 32 ausgegeben, um bei der Fehlerkorrektur verwendet zu werden.
  • Fig. 6 zeigt ein anderes Beispiel der Hardware zum Decodieren bei einer Löschkorrektur. Ein Haupt-RAM 35 ist mit dem Datenbus 28 über ein Schreibregister 33 und ein Leseregister 34 verbunden. Das Syndromregister 29, ein Arbeits-RAM 36 und eine Rechenlogikschaltung 37 werden auch bei dem Datenbus 28 bereitgestellt.
  • Die Löschkorrektur durch den Reed-Solomon-Code kann durch Lösen der folgenden linearen simultanen Gleichungen n-ter Ordnung in derselben Weise wie in Ausdruck (2) erlangt werden:
  • Sν = Xkν Yk ...(9),
  • wobei v = 0 bis d - 2
  • n: Zahl der Löschungen
  • Xk: k-ter Ort
  • Sν: Syndrom
  • Yk: Absolutwert des Fehlers in der k-ten Löschung
  • d: minimaler Abstand des Codes.
  • Hier sind n, Xk, Sν bekannt und Yk unbekannt.
  • Um die vorstehende Gleichung zu lösen, wird herkömmlicherweise das folgende Verfahren angewandt: falls
  • Λ(z) = (1 - Xi Z)
  • ω(z) = S(z) Λ(z) mod. Zd-1
  • kann Yi wie in Ausdruck (8) wie folgt erlangt werden:
  • Yi = ω(Xi&supmin;¹)/ (1 - Xj Xi&supmin;¹) ...(10).
  • Berechnet man dennoch in diesem Verfahren die Anzahl der tatsächlichen Rechenschritte, wenn beispielsweise d = 9 und n = 8 ist, ergibt sich das folgende:
  • (i) Erweiterung von Λ(z)
  • Anzahl der Multiplikationen: 1 + 2 + ... + 7 = 28
  • Anzahl der Additionen: 1 + 2 + ... + 7 = 28;
  • (ii) Vorhergehende Berechnungen zum Erlangen des Divisors von
  • Yi und Yi = (1 - Xj Xi&supmin;¹)
  • Anzahl der Kehrwerte: 1 · 8 = 8
  • Anzahl der Multiplikationen: (7 + 6) · 8 = 104
  • Anzahl der Additionen: 7 · 8 = 56;
  • (iii) Berechnungen zum Erlangen von ω(z) = S(z) Λ(z), mod. Z&sup8;
  • Anzahl der Multiplikationen: 1 + 2 + ... + 7 = 28
  • Anzahl der Additionen: 1 + 2 + ... + 7 = 28;
  • (iv) Berechnungen zum Erlangen von ω(Xi&supmin;¹)
  • Anzahl der Kehrwerte: 1 · 8 = 8
  • Anzahl der Multiplikationen: 7 · 8 = 56
  • Anzahl der Additionen: 7 · 8 = 56
  • (v) Berechnungen zum Erlangen von Yi
  • Anzahl der Divisionen: 1 · 8 = 8.
  • Wenn diese Berechnungen jeweils einen Schritt brauchen, wird die Gesamtzahl der Schritte 408.
  • In der in Fig. 6 gezeigten Schaltung werden die Wurzeln des Ausdrucks (9) berechnet durch:
  • Yi = ( Λnij Sj+l)/Xli (Xk + Xi) ...(11),
  • wobei Λnij: Koeffizienten von Zj von [ (z + Xk)]
  • l : Irgendeine ganze Zahl größer oder gleich 0, die l ≤ d - n - 1 genügt.
  • Das heißt, um eine Löschkorrektur durchzuführen, werden l = 0, i = n in den Ausdruck (11) wie folgt eingesetzt:
  • Yn = ( Λnnj Sj)/ (Xk + Xn) ... (11)'.
  • Durch diese Berechnung wird Yn erlangt, und Yn Xnν wird zu jedem Syndrom S wie folgt addiert:
  • Sν ← Sν + Yn Xnν
  • wobei ν = 0 bis n - 2 läuft.
  • Da die Daten bei dem Ort Xn korrigiert werden, beinhaltet das Syndrom (n - 1) Löschungen. Somit kann durch Reduzierung von n um 1 Yn-1 erlangt werden:
  • Yn-1 = ( Λn-1, n-1,j Sj)/ (Xk + Xn-1)
  • Durch diese Berechnung wird Yn-1 erlangt, und Yn-1 Xnν-1 wird zu jedem Syndrom S wie folgt, addiert:
  • Sν ← Sν + Yn-1 Xnν-1
  • wobei ν = 0 bis n - 3 läuft.
  • Durch Wiederholung des vorstehenden kann die verbleibende Löschung Y&sub1; erlangt werden als
  • Y&sub1; = S&sub0;.
  • Wie vorstehend erläutert kann die Löschkorrektur durchgeführt werden. In diesem Fall wird die tatsächliche Anzahl der Rechenschritte in der gleichen Weise wie in dem herkömmlichen Verfahren berechnet, vorausgesetzt, daß d = 9 und n = 8 ist.
  • (i) Erweiterung von Λnnj
  • Anzahl der Multiplikationen: 1 + 2 + ... + 6 = 21
  • Anzahl der Additionen: 1 + 2 + ... + 6 = 21;
  • (ii) Vorhergehende Berechnungen zum Erlangen des Divisors von
  • Yn, Πn = (Xk + Xn),
  • wobei es ausreicht, nur Π&sub3; bis Π&sub8; zu erlangen, da Π&sub2; = X&sub1; + Y&sub2; = Λ&sub3;&sub3;&sub1; ist.
  • Anzahl der Multiplikationen: 1 + 2 + ... + 6 = 21
  • Anzahl der Additionen: 1 + 2 + ... + 6 = 21;
  • (iii) Berechnungen zum Erlangen des Dividenden von Yn
  • Anzahl der Multiplikationen: 7 + 6 + ... + 1 = 28
  • Anzahl der Additionen: 7 + 6 + ... + 1 = 28;
  • (iv) Berechnungen zum Erlangen von Yn, wobei Y&sub1; = S&sub0; ist
  • Anzahl der Divisionen: 7
  • (v) Sν ← Sν + Yn Xnν
  • Anzahl der Multiplikationen: 6 + 5 + ... + 1 = 21
  • Anzahl der Additionen: 7 + 6 + ... + 1 = 28.
  • Die Anzahl der vorstehenden Rechenschritte ist insgesamt 202.
  • Somit ist es für den Fall des Ausdrucks (11) möglich, die Anzahl der Rechenschritte um 50% im Vergleich zu dem herkömmlichen Fall des Ausdrucks (10) zu reduzieren.
  • Falls ferner der vorstehend erläuterte Korrekturcode ein Produktcode ist, vorausgesetzt, daß 30 Symbole in der Vertikalrichtung angeordnet sind, 128 Symbole in der Querrichtung angeordnet sind, der C&sub1;-Code in Vertikalrichtung gebildet ist und der C&sub2;-Code in Querrichtung gebildet ist, entspricht die Löschung dem Ort der C&sub1;-Zeiger und der Ort Xk (k = 1 bis n) ist der gleiche in allen C&sub2;-Codereihen. Dies bedeutet, daß es möglich ist, im voraus Λnnj und
  • (xk + Xn)
  • in Ausdruck (11)' zu berechnen ohne die Berechnung dieser Terme für jede C&sub2;- Decodierung. In diesem Beispiel wird sozusagen die vorstehende Berechnung nur einmal durchgeführt, wohingegen die C&sub2;-Decodierung 30mal durchgeführt wird.
  • Da damit für die Anzahl der vorstehenden Rechenschritte die Anzahl der Berechnungen (i) und (ii) nur einmal für je 30 Male der C&sub2;-Decodierung vorgenommen wird, vorausgesetzt, daß die Anzahl der Schritte von (i) und (ii) 90/30 = 3 ist, wird die Gesamtzahl der Schritte 115. Im Vergleich zu dem herkömmlichen Verfahren, bei dem die Anzahl der Schritte (i) und (ii) 224/3 = 74,7 ist und die Gesamtanzahl der Schritte 191,5 ist, ist es möglich, die Anzahl der Schritte um ungefähr 40% zu reduzieren.
  • Demgemäß hat das vorstehend erläuterte Verfahren den Vorteil, daß es möglich ist, die Anzahl der Rechenschritte, die Verarbeitungszeit, die Hardware-Belastung für die Verarbeitung usw. im Vergleich zu dem herkömmlichen Verfahren merklich zu reduzieren.
  • Obwohl die vorstehenden Berechnungen unter Verwendung der Rechenlogik 37 durchgeführt werden, beispielsweise wenn Sν ← Sν + Xiν Yi erlangt wird, kann ferner eine Anordnung, wie sie in Fig. 7 gezeigt ist, verwendet werden. In Fig. 7 bezeichnen die Bezugszeichen 38, 39, 40 Register, das Bezugszeichen 41 bezeichnet einen Addierer, das Bezugszeichen 42 bezeichnet einen Multiplizierer, das Bezugszeichen 43 bezeichnet einen Auswähler, die alle in der Rechenlogik 37 gebildet sind. In dieser Schaltung gilt:
  • [1] S&sub0; wird in das Register 38 gesetzt, Yi in das Register 39 gesetzt und x i wird in das Register 40 gesetzt, jeweils über den Datenbus 28 von dem Syndromregister 29 und dem Arbeits-RAM 36 usw.. S&sub0; + Yi wird von dem Addierer 41 an den Datenbus 28 ausgegeben.
  • [2] Der Inhalt des Multiplizierers 42, Xi Yi , wird zu dem Register 39 über den Auswähler 43 zurückgeführt und S&sub1; wird von dem Datenbus 28 in das Register 38 gesetzt. Damit wird S&sub1; + Xi Yi von dem Addierer 41 auf den Datenbus 28 ausgegeben.
  • [3] Ferner wird der Inhalt des Multiplizierers 42, Xi² Yi, über den Auswähler 43 in das Register 39 zurückgeführt und S&sub2; wird von dem Datenbus 28 in das Register 38 gesetzt. Damit wird S&sub2; + Xi² Yi von dem Addierer 41 auf den Datenbus 28 ausgegeben.
  • [4] Durch Wiederholen der vorstehenden Schritte werden S&sub3; + Xi³ Yi , S&sub4; + Xi&sup4; Yi, ... der Reihe nach erlangt und dem Syndromregister 29 über den Datenbus 28 zugeführt, um jeden Wert erneut zu schreiben. Die Berechnungen werden wie vorstehend erläutert durchgeführt.
  • In der vorstehenden Erläuterung ist es möglich, obwohl alle Werte aus X&sub1; bis Xn als Löschungen angenommen werden, falls X&sub1; bis Xn-1 Löschungen sind und Xn ein Fehler ist, daß die Symbole korrigiert werden. In diesem Fall ist die Anzahl der unbekannten Größen (n + 1) von Y&sub1; bis Yn, und Xn. Xn kann durch Verwendung des vorstehenden Λnnj wie folgt erlangt werden:
  • Xn = Λnnj Sj+l+1/ Λnnj Sj+l ...(12)
  • Damit sind die unbekannten Größen Y&sub1; bis Yn, und danach können diese unbekannten Größen in derselben Weise wie bei der Fehlerkorrektur erlangt werden.
  • Falls beispielsweise d = 9 (6 Löschungen + 1 Fehler) in dem Produktcode ist,
  • [1] Prüfe Orte der Löschungen X&sub1;, X&sub2;, ..., X&sub6;.
  • [2] Erlange und Speichere Λnnj, hier 21 Symbole insgesamt von Λ&sub2;&sub2;&sub1; = X&sub1;, Λ&sub3;&sub3;&sub1; = Λ&sub2;&sub2;&sub1; + X&sub2;, Λ&sub3;&sub3;&sub2; = Λ&sub2;&sub2;&sub1; X&sub2;, ..., Λ&sub7;&sub7;&sub1;, ..., Λ&sub7;&sub7;&sub6;
  • [3] Erlange und Speichere insgesamt 5 Symbole von (Xk + Xn) (n = 2 bis 6).
  • Die vorstehende Verarbeitung wird einmal für jede der 30maligen Decodierschleifen durchgeführt.
  • [4] Berechne Syndrome S&sub0; bis S&sub7;.
  • [5] Erlange X&sub7; durch einen Ausdruck wie folgt:
  • X&sub7; = Λ77j Sj+1/ Λ77j Sj
  • [6] Erlange Y&sub7; durch den folgenden Ausdruck und führe das Syndrom Y&sub7; X&sub7; zurück:
  • Y&sub7; = ( Λ77j Sj)/ (Xk + X&sub7;)
  • Danach werden Y&sub6; bis Y&sub1; (= S&sub0;) der Reihe nach erlangt.
  • Obwohl ein Fall, bei dem Ausdruck (11)' verwendet wird, in diesem Beispiel gezeigt ist, ist der Betrieb derselbe, falls l ≠ 0 ist.
  • Wie vorstehend erläutert ist es möglich, die Korrektur der Fehler einschließlich Löschungen und einem Fehler durchzuführen. In diesem Fall kann die Anzahl der Rechenschritte wie in der vorstehend erläuterten Löschkorrektur reduziert werden.
  • Der Beweis der vorstehenden Ausdrücke (11) und (12) wird im folgenden gegeben:
  • [Lemma] Falls
  • Λni(z) = (Z + Xk),
  • Λnij = [Λni(z)]j
  • wird klar der folgende Ausdruck erlangt:
  • Λnij zj = (z + Xk).
  • [Theorem 1] Die lineare simultane Gleichung n-ter Ordnung:
  • Sν = Xkν Yk
  • (ν = 0 bis n-1: Yi ist die unbekannte Größe)
  • hat die Wurzeln:
  • Yi = ( Λnij Sj)/ (Xk + Xi )
  • (Beweis)
  • Rechte Seite = ( Λnij Xkj Yk)/ (Xk + Xi )
  • = ( Yk Λnij Xkj)/ (Xk + Xi )
  • = ( Yk (Xk + Xj))/ (Xk + Xi )
  • (Yi (Xk + Xj))/ (Xk + Xi )
  • = Yi
  • (Korollar 1)
  • Yi = ( Λnij Sj+l)/Xil (Xk + Xi)
  • (l ≥ 0)
  • (Beweis) Dies wird klar bewiesen durch Substitution in das vorstehende:
  • Sj+l = Xkj+l Yk
  • [Theorem 2] Falls für Xi bis Xn-1 gilt: Löschung, wobei Xn ein Fehler ist:
  • Xn = Λnnj Sj+l+1/ Λnnj Sj+l (Beweis) Aus Korollar 1
  • Damit ergibt sich aus Theorem 1, daß Fehler in der Löschkorrektur durch Verwendung irgendeines der S&sub1; bis Sn, S&sub2; bis Sn+1, ..., Sd-1-n bis Sd-2 aus den Reihen von S&sub0; bis Sn-1 korrigiert werden können. Das heißt, es sind n kontinuierliche Syndrome für n Löschungskorrekturen erforderlich, wobei die verbleibenden Syndrome zum Prüfen verwendbar sind, so daß n ≤ d-1 ist.
  • Um ferner Xn aus Theorem 2 zu erlangen, wird die Gesamtzahl der n+1 Syndrome Sl bis Sn+l erforderlich, so daß n ≤ d-2 ist. In diesem Fall ist die Anzahl der Löschungen n-1 ≤ d-3. Die verbleibenden Syndrome können zum Prüfen wie in dem vorstehenden Fall verwendet werden.
  • In dem herkömmlichen Verfahren sind die Zeigerbereiche für die Gesamtzahl der Daten (n&sub1;, n&sub2;) entsprechend dem Fehlerkorrekturcode erforderlich. Gemäß der vorliegenden Erfindung ist es dennoch möglich, die Anzahl der Zeiger auf (n&sub2; + 2n&sub1;) zu reduzieren und ferner die Speicherkapazität, die für die Decodierung erforderlich ist, zu reduzieren. Ferner ist es gemäß der vorliegenden Erfindung möglich, die Anzahl der Schritte zum Schreiben oder Lesen der Zeiger zu reduzieren. Ferner, falls gemäß der vorliegenden Erfindung die Löschkorrektur in der C&sub2;-Decodierung durch Verwendung der Zeiger, die durch die C&sub1;-Decodierung gebildet sind, durchgeführt wird, ist es möglich, da das Muster der Zeiger bezüglich jeder Reihe des C&sub2;-Codes gleich ist und ein Teil der Schritte zum Erlangen des Fehlerwerts gleich wird, daß der Schritt nur einmal durchgeführt wird. Damit ist es möglich, die Anzahl der Verarbeitungsschritte bei der Decodierung merklich zu reduzieren und eine Hochgeschwindigkeit im Decodierbetrieb zu realisieren.
  • Ferner ist es gemäß der vorliegenden Erfindung möglich, ohne daß es notwendig ist, die Gesamtfehlerwerte gemäß einem komplizierten Fehlerauswerte-Polynom beim Erlangen mehrerer Fehlerwerte zu erlangen, daß einer der Fehlerwerte mittels einfacher Konstruktion erlangt wird und die Anzahl der Verarbeitungsschritte reduziert wird.
  • Ferner ist es gemäß der vorliegenden Erfindung möglich, die Anzahl der Rechenschritte bei der Löschkorrektur zu reduzieren.
  • Die vorliegende Anmeldung beschreibt einen Gegenstand, der in der Stamm-Anmeldung EP-A-167 627 beschrieben worden ist, aus der diese Anmeldung ausgeschieden worden ist.

Claims (5)

1. Verfahren zum Decodieren eines Produkt-Fehlerkorrekturcodes von jeweiligen ersten Fehlerkorrekturcodes (n&sub1;, k&sub1;), wobei n&sub1; die Codelänge und k&sub1; die Anzahl der Informationssymbole bezeichnet, und jeweiligen zweiten Fehlerkorrekturcodes (n&sub2;, k&sub2;), wobei n&sub2; die Codelänge und k&sub2; die Anzahl der Informationssymbole bezeichnet, wobei die ersten Korrekturcodes in Spalten und die zweiten Korrekturcodes in Zeilen einer zweidimensionalen Anordnung angeordnet sind, wobei das Verfahren die folgenden Schritte umfaßt:
Empfangen zumindest der jeweiligen ersten Fehlerkorrekturcodes;
erstes Decodieren der jeweiligen ersten Fehlerkorrekturcodes;
Erzeugen jeweiliger erster Zeiger zum Anzeigen, ob die Fehler der jeweiligen ersten Fehlerkorrekturcodes korrigiert werden können;
Speichern der jeweiligen ersten Zeiger in Speichermitteln (13), die wenigstens n&sub2; Bits haben;
zweites Decodieren der jeweiligen zweiten Fehlerkorrekturcodes durch Ausführen einer Löschkorrektur dort, wo die ersten Zeiger Fehler anzeigen, die nicht korrigiert werden können; und
Ausgeben der Informationssymbole; wobei der Schritt des zweiten Decodierens einen Schritt der Berechnung der Fehlerwerte der Löschsymbole durch einen algebraischen Ausdruck bestehend aus einem ersten Term, der ein gemeinsamer Wert ist, und einem zweiten Term, der individuelle unabhängige Werte für die Löschfehlerkorrekturen der jeweiligen zweiten Korrekturcodes umfaßt, beinhaltet; und
wobei der Schritt des Berechnens der Fehlerwerte umfaßt:
Ausführen einer ersten Berechnung des ersten Terms nur einmal für die jeweiligen ersten Zeiger; Speichern des Ergebnisses der ersten Berechnung des ersten Terms; und Ausführen jeder Berechnung, um Fehlerwerte für die jeweiligen zweiten Fehlerkorrekturcodes durch Berechnung jedes zweiten Terms und Verwendung des gespeicherten Ergebnisses der ersten Berechnung zu erlangen.
2. Vorrichtung zum Decodieren eines Produkt-Fehlerkorrekturcodes von jeweiligen ersten Fehlerkorrekturcodes (n&sub1;, k&sub1;), wobei n&sub1; die Codelänge und k&sub1; die Anzahl der Informationssymbole bezeichnet, und von jeweiligen zweiten Fehlerkorrekturcodes (n&sub2;, k&sub2;), wobei n&sub2; die Codelänge und k&sub2; die Anzahl der Informationssymbole bezeichnet, wobei die ersten Korrekturcodes in Spalten und die zweiten Korrekturcodes in Zeilen einer zweidimensionalen Anordnung angeordnet sind, wobei die Vorrichtung aufweist:
Empfangs- und Ausgabemittel (28) zum Empfangen zumindest der jeweiligen ersten Fehlerkorrekturcodes und zum Ableiten der Informationssymbole;
Decodiermittel (12, 14, 16; 29, 33-37), die mit den Empfangs- und Ausgabemitteln (28) verbunden sind, und zum ersten Decodieren der jeweiligen ersten Fehlerkorrekturcodes und zum Erzeugen von jeweiligen ersten Zeigern zum Anzeigen, ob die Fehler der jeweiligen ersten Fehlerkorrekturcodes korrigiert werden können, und zum zweiten Decodieren der jeweiligen zweiten Fehlerkorrekturcodes durch die Durchführung einer Löschkorrektur dort, wo die ersten Zeiger Fehler anzeigen, die nicht korrigiert werden können, und Speichermitteln (13), die mit den Decodiermitteln (29, 33-37) verbunden sind und eine Kapazität von wenigstens n9 Bits haben zum Speichern der jeweiligen ersten Zeiger;
wobei die Decodiermittel (12, 14, 16; 29, 33-37) bei der zweiten Decodierung Fehlerwerte der Löschsymbole unter Verwendung eines algebraischen Ausdrucks bestehend aus einem ersten Term, der ein gemeinsamer Wert ist, und einem zweiten Term, der individuelle unabhängige Werte für die Löschfehlerkorrekturen der jeweiligen zweiten Fehlerkorrekturcodes umfaßt, berechnen; und
wobei die Decodiermittel (12, 14, 16; 29, 33-37) eine erste Berechnung des ersten Terms nur einmal entsprechend jedem der jeweiligen ersten Zeiger ausführt, und das Ergebnis der ersten Berechnung des ersten Terms speichert; und ferner jede Berechnung ausführt, um Fehlerwerte für die jeweiligen zweiten Fehlerkorrekturcodes durch Berechnung jedes zweiten Terms und der Verwendung des gespeicherten Ergebnisses der ersten Berechnung zu erlangen.
3. Vorrichtung gemäß Anspruch 2, wobei die Decodiermittel (12, 14, 16; 29, 33-37) erste Decodiermittel (12, 14), die mit den Empfangsmitteln (11) für die erste Decodierung verbunden sind, und zweite Decodiermittel (16, 14), die mit den ersten Decodiermitteln (12, 14) und dem Speichermittel (13) für die zweite Decodierung verbunden sind, umfaßt, und wobei die Vorrichtung ferner Speichermittel zum Speichern des Ergebnisses der ersten Berechnung des ersten Terms umfaßt und jede der Berechnungen zum Erlangen der Fehlerwerte entsprechend der jeweiligen zweiten Fehlerkorrekturcodes durch jede der zweiten Berechnungen des zweiten Terms und durch Verwendung des gespeicherten Ergebnisses der ersten Korrektur durchführt.
4. Verfahren gemäß Anspruch 1,
ferner umfassend die Schritte zum Decodieren und Korrigieren eines Reed-Solomon-Codes durch Lösen des Ausdrucks:
Sν = Xκν Yk
wobei ν = 0 bis d - 2
n: Zahl der Löschung
Xk: Ort des k-ten Elements
Sν: Syndrom
Yk: Größe des Fehlers bei dem Löschen des k-ten Elements
d: minimaler Abstand des Codes,
um Wurzeln dieses Ausdrucks zu erlangen;
Durchführen der Löschkorrektur des Fehlers, der in dem Reed-Solomon-Code gemäß den Wurzeln codiert sind, wobei die Wurzeln durch Lösen des folgenden Ausdrucks erlangt werden:
Yi = ( Λnij Sj+l)/Xil (Xk + Xi)
wobei Λnij: Koeffizienten von Zj von [ (z + Xk)]
1: irgendeine ganze Zahl, die größer oder gleich 0 ist, die l < d - n - 1 erfüllt.
5. Vorrichtung gemäß Anspruch 2 oder 3, zum Decodieren und Korrigieren des Fehlers in dem Reed-Solomon-Code gemäß den Wurzeln von
S&nu; = Xk&nu; Yk
wobei &nu; = 0 bis d - 2
n: Zahl der Löschung
Xk: Ort des k-ten Elements
S&nu;: Syndrom
Yk: Größe des Fehlers bei dem Löschen des k-ten Elements
d: minimaler Abstand des Codes,
wobei die Decodiermittel (12, 14, 16; 28, 29, 33-37) ferner umfassen:
Syndrom-Registermittel (29) zum Speichern des Syndroms S&nu;; und Arbeitslogikmittel (37) zum Erlangen der Wurzeln Yi durch Lösen des folgenden Ausdrucks:
Yi = ( &Lambda;nij Sj+l)/Xil (Xk + Xi)
wobei &Lambda;nij: Koeffizienten von Zj von [ (z + Xk)]
1 : irgendeine ganze Zahl, die größer oder gleich 0 ist, die l &le; d - n - 1 erfüllt,
wobei die Arbeitslogikmittel (37) aufweisen
Registermittel (38) zum Speichern des Syndroms S&nu;;
Registermittel (39) zum Speichern von Xi&nu; Yi;
Registermittel (40) zum Speichern von Xi;
Addiermittel (41) zum Addieren S&nu; und Xi&nu; Yi und zum Zuführen zu dem Registermittel (38) und zu dem Syndrom-Registermittel (29) von S&nu; + Xi&nu; Yi;
Multipliziermittel (42) zum Multiplizieren von Xi und Xi&nu; Yi und zum Zuführen von Xi&nu; Yi zu dem Registermittel (39).
DE3486471T 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code Expired - Fee Related DE3486471T2 (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
DE3486471D1 DE3486471D1 (de) 1999-04-15
DE3486471T2 true DE3486471T2 (de) 1999-09-02

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
DE85900195T Expired - Fee Related DE3486200T2 (de) 1983-12-20 1984-12-19 Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.
DE3486408T Expired - Fee Related DE3486408T2 (de) 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.

Family Applications After (2)

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.
DE3486408T Expired - Fee Related DE3486408T2 (de) 1983-12-20 1984-12-19 Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.

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
EP0235782B1 (de) * 1986-03-04 1992-01-22 Sony Corporation Digitalwiedergabegerät
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
DE69030490T2 (de) * 1990-01-18 1997-10-23 Philips Electronics N.V., Eindhoven 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
DE69228108T2 (de) * 1991-10-29 1999-05-20 Nippon Hoso Kyokai, Tokio/Tokyo Verfahren und Vorrichtung zum Empfang von Informationssignalen
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
EP0387924A2 (de) 1990-09-19
WO1985002958A1 (fr) 1985-07-04
BR8407228A (pt) 1985-11-26
EP0426657A2 (de) 1991-05-08
EP0426657B1 (de) 1999-03-10
AU3781285A (en) 1985-07-12
DE3486408D1 (de) 1995-11-02
US4719628A (en) 1988-01-12
DE3486408T2 (de) 1996-03-14
KR930003997B1 (ko) 1993-05-19
EP0387924A3 (de) 1991-03-20
EP0426657A3 (de) 1995-03-15
DE3486200T2 (de) 1993-12-02
EP0167627B1 (de) 1993-08-11
KR850700196A (ko) 1985-10-25
HK118795A (en) 1995-07-28
EP0167627A4 (de) 1988-04-27
EP0167627A1 (de) 1986-01-15
ATE128585T1 (de) 1995-10-15
ATE177570T1 (de) 1999-03-15
AU581202B2 (en) 1989-02-16
EP0387924B1 (de) 1995-09-27
DE3486200D1 (de) 1993-09-16
DE3486471D1 (de) 1999-04-15

Similar Documents

Publication Publication Date Title
DE3486471T2 (de) Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code
DE3854791T2 (de) Reed-Solomon Code verwendendes Fehler-Korrektur-Verfahren
DE3852999T2 (de) Galois-feld-recheneinheit.
DE3854939T2 (de) Bch-fehlerkorrekturkode-dekodierungsverfahren in echtzeitbetrieb
DE69424877T2 (de) Reed-solomon-dekoder
DE2916710C2 (de)
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE69223694T2 (de) Kodierungs- und Dekodierungssystem zur Fehlerkorrektur
DE3854393T2 (de) Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode.
DE3852474T2 (de) Nachschlagetabellen verwendende Fehlerkorrektur.
DE3855101T2 (de) Anordnung zur sofortigen Fehlerkorrektur
DE3650335T2 (de) Rechenverfahren und -gerät für endlichfeldmultiplikation.
DE3852423T2 (de) Kodierverfahren und Kodierer mit Reed-Solomon Fehlerkorrekturcode.
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE3750526T2 (de) Dekodierer.
DE2942825A1 (de) Verfahren und vorrichtung zur verarbeitung sequentiell uebertragender digitaler informationsworte
DE2834963A1 (de) Verfahren und einrichtung zur fehlerkorrektur von uebertragenen daten
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3787900T2 (de) Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock.
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE2260850A1 (de) Fehlerkorrektursystem
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE69121733T2 (de) Technik zum eingebauten Selbsttest für Nur-Lese-Speicher
DE69317766T2 (de) Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)

Legal Events

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