DE3486471T2 - Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code - Google Patents
Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-CodeInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1525—Determination and particular use of error location polynomials
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2903—Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
- H03M13/293—Decoding strategies with erasure setting
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
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
- Verfahren und Vorrichtung zum Decodieren eines Fehlerkorrekturcodes
- Diese Erfindung betrifft ein Verfahren und eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes.
- 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 )
- Rechte Seite = ( Λnij Xkj Yk)/ (Xk + Xi )
- = ( Yk Λnij Xkj)/ (Xk + Xi )
- = ( Yk (Xk + Xj))/ (Xk + Xi )
- (Yi (Xk + Xj))/ (Xk + Xi )
- = Yi
- 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ν = Xkν 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,
wobei die Decodiermittel (12, 14, 16; 28, 29, 33-37) ferner umfassen:
Syndrom-Registermittel (29) zum Speichern des Syndroms Sν; und Arbeitslogikmittel (37)
zum Erlangen der Wurzeln Yi durch Lösen des folgenden Ausdrucks:
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,
wobei die Arbeitslogikmittel (37) aufweisen
Registermittel (38) zum Speichern des Syndroms Sν;
Registermittel (39) zum Speichern von Xiν Yi;
Registermittel (40) zum Speichern von Xi;
Addiermittel (41) zum Addieren Sν und Xiν Yi und zum Zuführen zu dem Registermittel
(38) und zu dem Syndrom-Registermittel (29) von Sν + Xiν Yi;
Multipliziermittel (42) zum Multiplizieren von Xi und Xiν Yi und zum Zuführen von Xiν Yi
zu dem Registermittel (39).
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)
| 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)
| 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 | 株式会社日立製作所 | 誤り訂正方法及び装置 |
-
1984
- 1984-12-19 EP EP85900195A patent/EP0167627B1/de not_active Expired - Lifetime
- 1984-12-19 EP EP91200210A patent/EP0426657B1/de not_active Expired - Lifetime
- 1984-12-19 DE DE3486471T patent/DE3486471T2/de not_active Expired - Fee Related
- 1984-12-19 US US06/767,783 patent/US4719628A/en not_active Expired - Lifetime
- 1984-12-19 BR BR8407228A patent/BR8407228A/pt not_active IP Right Cessation
- 1984-12-19 DE DE85900195T patent/DE3486200T2/de not_active Expired - Fee Related
- 1984-12-19 KR KR1019850700179A patent/KR930003997B1/ko not_active Expired - Lifetime
- 1984-12-19 AT AT91200210T patent/ATE177570T1/de not_active IP Right Cessation
- 1984-12-19 DE DE3486408T patent/DE3486408T2/de not_active Expired - Fee Related
- 1984-12-19 EP EP90109867A patent/EP0387924B1/de not_active Expired - Lifetime
- 1984-12-19 AT AT90109867T patent/ATE128585T1/de not_active IP Right Cessation
- 1984-12-19 WO PCT/JP1984/000603 patent/WO1985002958A1/ja not_active Ceased
-
1995
- 1995-07-20 HK HK118795A patent/HK118795A/en not_active IP Right Cessation
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 |