DE3486200T2 - Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes. - Google Patents

Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.

Info

Publication number
DE3486200T2
DE3486200T2 DE85900195T DE3486200T DE3486200T2 DE 3486200 T2 DE3486200 T2 DE 3486200T2 DE 85900195 T DE85900195 T DE 85900195T DE 3486200 T DE3486200 T DE 3486200T DE 3486200 T2 DE3486200 T2 DE 3486200T2
Authority
DE
Germany
Prior art keywords
error correction
error
decoding
pointers
correction codes
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
DE85900195T
Other languages
English (en)
Other versions
DE3486200D1 (de
Inventor
Tadashi Sony Corporatio Fukami
Kentaro Sony Corporation Odaka
Shinya Sony Corporation 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
Publication of DE3486200D1 publication Critical patent/DE3486200D1/de
Application granted granted Critical
Publication of DE3486200T2 publication Critical patent/DE3486200T2/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

  • Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes.
  • Bei einem Produktcode ist es allgemein bekannt, daß Informationssymbole in zweidimensionaler Form angeordnet sind, wobei Fehlerkorrekturcodes für jede Reihe und Spalte der zweidimensionalen Anordnung codiert werden, so daß jedes Informationssymbol in zwei Fehlerkorrekturcodereihen enthalten ist. Beim Decodieren des Produktcodes wird der Fehlerkorrekturcode für jede Spalte decodiert und der Fehlerkorrekturcode kann für jede Reihe durch Anwendung der Decodierungsinformation decodiert werden. Die Decodierungsinformation wird Zeiger (Pointer) genannt.
  • Bei herkömmlichen Verfahren ist es erforderlich, daß die Gesamtzahl der Zeiger mindestens gleich der Anzahl der Informationssymbole ist, da jedes Informationssymbol mit einem Zeiger verknüpft ist.
  • Ferner existiert für den Fall, in welchem eine Löschkorrektur durch Verwendung der Zeiger durchgeführt wird, ein Problem darin, daß die Anzahl der Verfahrensschritte wie z. B. Speicherzugriffe, Berechnungen usw. unvermeidlich anwachsen, da die Zeiger aus einem Zeigerspeicher ausgelesen werden müssen und der Fehlerwert für jede Reihe berechnet wird.
  • Andererseits besteht in dem Fall, in welchem komplizierte Codes, wie z. B. BCH-Codes als Fehlerkorrekturcodes verwendet werden, ein Problem darin, daß eine große Zahl von Programmschritten für den Fall erforderlich ist, in dem die Berechnungen mittels Hardware durchgeführt werden, da die Arbeitsgänge zur Erlangung von Fehlerwerten unvermeidlich kompliziert werden.
  • Das IBM Technical Disclosure Bulletin, Ausgabe 17, Nr. 2, Juli 1974, Seiten 473 bis 475, auf welche der Oberbegriff der beigefügten Ansprüche 1 und 2 basiert, zeigt ein Fehlerkorrektursystem für aufgezeichnete Daten, bei welchem Fehlerzeiger aus der Spaltendecodierung bei der Fehlerkorrektur der Datenreihen verwendet werden. Von den drei Zuständen, welche die Fehlerzeiger anzeigen können, ist einer "kein Fehler" und ein anderer "unkorrigierbare Fehler".
  • Die EP-A2-00 96 109 (Tokyo Shibaura Denki, K.K.) ist Teil des Standes der Technik aufgrund von Artikel 54(3) EPÜ und offenbart ein Decodierungsverfahren, welches einen einzelnen Reed-Solomon-Code verwendet.
  • Die GB-2 107 496 A offenbart einen Fehlerflagdecoder, bei welchem der für die Fehlerflags erforderliche Speicher durch Verwendung eines Leseadreßzählers und Rahmenlesezählers, welcher mit einer speziellen Verschiebung gesetzt wird, reduziert werden kann, und in welchem Fehlerflags in Paritybits für einen vorausgehenden Rahmen gespeichert werden können.
  • Die US-A-4, 044,329 offenbart einen Codierer/Decodierer, welcher zweidimensionale Daten mehrere Male verschachtelt, wobei er Paritybits zwischen jeder Stufe einfügt.
  • Eine Aufgabe dieser Erfindung ist es, ein Verfahren und eine Vorrichtung zum Decodieren von Fehlerkorrekturcodes bereit zustellen, welche die Anzahl der beim Decodieren erforderlichen Zeiger ebenso verringern kann, wie sie die Anzahl der Speicherbereiche für die Zeiger und die Anzahl der Zeiten, welche die Zeiger benötigen, gelesen und geschrieben zu werden, verringern.
  • Eine andere Aufgabe dieser Erfindung ist es, ein Verfahren und eine Vorrichtung zur Decodierung eines Fehlerkorrekturcodes bereit zustellen, welcher die Anzahl der Verfahrensschritte deutlich in Abhängigkeit von der Tatsache verringert, daß die Zeiger hinsichtlich jeder Reihe die gleichen sind.
  • Noch eine andere Aufgabe dieser Erfindung ist es, eine Vorrichtung zum Decodieren von Fehlerkorrekturcodes bereitzustellen, welche die Anzahl der Berechnungsschritte bei einer Fehlerkorrektur verringern kann.
  • Eine weitere Aufgabe dieser Erfindung ist es, ein Verfahren zum Decodieren von Fehlerkorrekturcodes vorzusehen, welches beim Decodieren Fehlerwerte mit einem einfachen Aufbau und einer kleinen Anzahl von verfahrensschritten erreichen kann.
  • Gemäß einem ersten Gesichtspunkt der vorliegenden Erfindung ist ein Verfahren zum Decodieren eines Fehlerkorrekturcodes vorgesehen, bei welchem jeweils erste Korrekturcodes von (n&sub1;, k&sub1;), wobei n&sub1; die Codelänge bezeichnet, für alle k&sub1; Informationssymbole, die in jeweiligen Spalten einer zweidimensionalen Anordnung von (k&sub1; · k&sub2;) angeordnet sind, codiert werden, und jeweils zweite Fehlerkorrekturcodes von (n&sub2;, k&sub2;), wobei n&sub2; die Codelänge bezeichnet, für alle k&sub2; Informationssymbole, die in jeweiligen Zeilen der zweidimensionalen Anordnung angeordnet sind, codiert werden, wobei das Verfahren die Schritte aufweist:
  • Empfangen mindestens der jeweiligen ersten Fehlerkorrekturcodes;
  • Decodieren der ersten Fehlerkorrekturcodes, um dadurch Fehler in den jeweiligen Spalten der zweidimensionalen Anordnung festzustellen und jene Fehler zu korrigieren, die korrigierbar sind;
  • Erzeugen von jeweils ersten Zeigern im Anschluß an die Fehlerkorrektur als ein Ergebnis der ersten Fehlerkorrekturcodes;
  • Decodieren der zweiten Fehlerkorrekturcodes für die jeweiligen Zeilen der zweidimensionalen Anordnung und dabei Korrigieren bis zu einer vorgegebenen maximalen Anzahl von Fehlern, welche korrigierbar sind; und
  • Ausgeben der Informationssymbole; gekennzeichnet durch Anzeigen der genannten ersten Zeiger für seine entsprechende Spalte entweder
  • (a) kein Fehler oder die Anzahl der korrigierten Fehler liegt innerhalb einer vorgegebenen Anzahl, oder
  • (b) die Anzahl der korrigierten Fehler liegt über der vorgegebenen Anzahl oder Fehler können durch die ersten Fehlerkorrekturcodes nicht korrigiert werden,
  • Speichern der jeweiligen Zeiger in Speichermitteln mit mindestens n&sub2; Bits;
  • Erzeugen jeweiliger zweiter Zeiger für jede Zeile, die für diese Zeile anzeigen, welche der folgenden Bedingungen c, d, oder e vorliegt:
  • (c) kein Fehler feststellbar oder Fehlerkorrektur ist mittels der zweiten Fehlerkorrekturcodes möglich,
  • (d) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden, aber die ersten Zeiger sind für diese Zeile von hoher Zuverlässigkeit,
  • (e) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden und die ersten Zeiger sind für diese Zeile von niedriger Zuverlässigkeit,
  • Speichern der jeweiligen zweiten Zeiger in Speichermitteln mit mindestens zwei k&sub1; Bits; und
  • Zuordnen der gespeicherten ersten und zweiten Zeiger, um eine Anzeige der Zuverlässigkeit der jeweiligen Informationssymbole als Reaktion auf den Status der jeweiligen ersten und zweiten Zeiger in den jeweiligen Spalten und Reihen, entsprechend den jeweiligen Informationssymbolen zu manifestieren.
  • Ferner sieht die Erfindung eine Vorrichtung zum Decodieren eines Fehlerkorrekturcodes vor, bei welcher jeweils erste Korrekturcodes von (n&sub1;, k&sub1;), wobei n&sub1; die Codelänge bezeichnet, für alle k&sub1; Informationssymbole, die in jeweiligen Spalten einer zweidimensionalen Anordnung von (k&sub1; · k&sub2;) angeordnet sind, codiert werden, und jeweils zweite Fehlerkorrekturcodes von (n&sub2;, k&sub2;), wobei n&sub2; die Codelänge bezeichnet, für alle k&sub2; Informationssymbole, die in jeweiligen Zeilen der zweidimensionalen Anordnung angeordnet sind, codiert werden, wobei die Vorrichtung umfaßt:
  • Empfangsmittel zum Empfang mindestens der jeweiligen ersten Korrekturfehlercodes;
  • Decodierungsmittel, die mit den genannten Empfangsmitteln verbunden sind, und zum Decodieren der ersten Fehlerkorrekturcodes, um dadurch Fehler in den jeweiligen Spalten der zweidimensionalen Anordnung festzustellen, und jene Fehler zu korrigieren, die korrigierbar sind, und zum Erzeugen von jeweils ersten Zeigern im Anschluß an die Fehlerkorrektur als ein Ergebnis der ersten Fehlerkorrekturcodes, zum Decodieren der zweiten Fehlerkorrekturcodes für die jeweiligen Zeilen der zweidimensionalen Anordnung dienen und dabei Fehler bis zu einer vorgegebenen maximalen Anzahl korrigieren, welche korrigierbar sind; und
  • Ausgabemittel, die mit den genannten Decodierungsmitteln verbunden sind und zum Herleiten der Informationssymbole dienen;
  • dadurch gekennzeichnet, daß jeder der genannten ersten Zeiger für seine entsprechende Spalte entweder anzeigt:
  • (a) kein Fehler oder die Anzahl der korrigierten Fehler liegt innerhalb einer vorgegebenen Anzahl oder
  • (b) die Anzahl der korrigierten Fehler liegt über der vorgegebenen Anzahl oder Fehler können durch die ersten Fehlerkorrekturcodes nicht korrigiert werden,
  • daß erste Speichermittel mit den genannten Decodierungsmitteln verbunden sind, und eine Kapazität von mindestens n&sub2; Bits zum Speichern der jeweiligen ersten Zeiger besitzen;
  • daß die genannten Decodierungsmittel zum Erzeugen der jeweiligen zweiten Zeiger für jede Zeile für diese Zeile anzeigen, welche der folgenden Bedingungen c, d oder e vorliegt:
  • (c) kein Fehler feststellbar oder Fehlerkorrektur ist mittels der zweiten Fehlerkorrekturcodes möglich,
  • (d) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden, aber die ersten Zeiger sind für diese Zeile von hoher Zuverlässigkeit,
  • (e) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden und die ersten Zeiger sind für diese Zeilen von niedriger Zuverlässigkeit,
  • daß zweite Speichermittel mit den genannten Decodierungsmitteln verbunden sind und eine Kapazität von mindestens zwei k&sub1; Bits zum Speichern der jeweiligen zweiten Zeiger aufweisen; und daß Mittel mit den genannten ersten und zweiten Speichermitteln verbunden sind, und zum Manifestieren einer Anzeige der Zuverlässigkeit der jeweiligen Informationssymbole als Reaktion auf den Status der jeweiligen ersten und zweiten Zeiger in den jeweiligen Spalten und Reihen, entsprechend den jeweiligen Informationssymbolen.
  • Es wird richtig eingeschätzt werden, daß die Bezeichnungen "Reihe" und "Spalte" zum Nutzen bei der Beschreibung der zweidimensionalen Anordnung verwendet werden und ausgetauscht werden können, ohne die Erfindung zu verändern.
  • Die jeweiligen zweiten Fehlerkorrekturcodes können mittels Durchführen einer Löschkorrektur für jede Codefolge der zweiten Fehlerkorrekturcodes durch Verwendung der jeweiligen ersten Zeiger decodiert werden; und
  • der Schritt des zweiten Decodierens enthält einen Schritt des Berechnens der Fehlerwerte von Löschsymbolen mittels eines algebraischen Ausdrucks, der aus einem ersten Term, welcher ein allgemeiner Wert ist, und einem zweiten Term, welcher aus individuellen unabhängigen Werten bezüglich der Löschfehlerkorrekturen der jeweiligen zweiten Fehlerkorrekturcodes besteht, und bei dem der Schritt des Berechnens der Fehlerwerte die Ausführung einer ersten Berechnung des ersten Terms nur einmal entsprechend jedem der jeweiligen ersten Zeiger enthält; Speichern des Ergebnisses der ersten Berechnung des ersten Terms; und Ausführen jeder der Berechnungen zum Erhalten von Fehlerwerten entsprechend der jeweiligen zweiten Fehlerkorrekturcodes durch jede der zweiten Berechnungen des zweiten Terms und durch Verwendung des gespeicherten Ergebnisses der ersten Berechnung. Entsprechend können in der Vorrichtung zum Decodieren eines Fehlerkorrekturcodes die Decodierungsmittel in den genannten zweiten decodierten Fehlerwerten der Löschsymbole mittels eines algebraischen Ausdrucks berechnen, der aus einem ersten Term besteht, welcher ein allgemeiner Wert ist und einem zweiten Term, welcher aus individuellen unabhängigen Werten bezüglich der Löschfehlerkorrekturen der jeweiligen zweiten Fehlerkorrekturcodes besteht, und bei welcher die genannten Decodierungsmittel eine erste Berechnung des ersten Terms nur einmal entsprechend jedem der jeweiligen ersten Zeiger ausführen, das Ergebnis der ersten Berechnung des ersten Terms speichern und jede der Berechnungen zum Erhalten von Fehlerwerten entsprechend der jeweiligen zweiten Fehlerkorrekturcodes durch jede der zweiten Berechnungen des zweiten Terms und durch Verwendung des gespeicherten Ergebnisses der ersten Berechnung ausführen.
  • Weiterhin sollte in der vorliegenden Erfindung der Tatsache Aufmerksamkeit geschenkt werden, daß bei einem linearen nichtdualen Code mit einer Wurzel von 1 eines der Syndrome eine Addition von (mod.2) einer empfangenen Symbolreihe ist, wobei die Vorrichtung zum Decodieren eines Fehlerkorrekturcodes ein Syndrom in einem Syndromregister speichern kann und bei der Korrektur einer Vielzahl von fehlerhaften Symbolen einen Fehlerwert bezüglich eines Einzelsymbols durch Abziehen anderer Fehlerwerte von einem in dem Syndromregister gespeicherten Wert bildet.
  • Die Erfindung wird weiterhin anhand eines nicht einschränkenden Beispiels mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen
  • Fig. 1 ein schematisches Blockschaltbild eines Codierers gemäß einer Ausführungsform der vorliegenden Erfindung ist.
  • Fig. 2 ist ein schematisches Blockdiagramm, welches die Wirkungsweise einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 3 ist ein schematisches Blockschaltbild, welches einen Codierer gemäß einer Ausführungsform dieser Erfindung zeigt.
  • Fig. 4 ist ein Blockschaltbild, welches einen Fehlerkorrekturdecodierer gemäß der Fig. 3 zeigt.
  • Fig. 5 ist ein Blockschaltbild eines Teils der Fehlerlokalisierungs- und Fehlerwertberechnungsschaltung von Fig. 4.
  • Fig. 6 ist ein Blockschaltbild, welches einen Aufbau einer zweiten Ausführungsform zur Verwendung mit dieser Erfindung zeigt.
  • Fig. 7 ist ein Blockschaltbild für die Verarbeitungsschaltung von Fig. 6.
  • Eine Ausführungsform der vorliegenden Erfindung wird unter Bezugnahme auf die Zeichnungen beschrieben. Fig. 1 zeigt eine Struktur 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ß einer Auswahlschalters 3 zugeführt. Die C&sub2;-Paritätsdaten, welche durch den C&sub2;-Paritätsgenerator 2 gebildet werden, werden dem anderen Eingangsanschluß des Auswahlschalters 3 zugeführt. Der Auswahlschalter 3 wiederholt k&sub1; Mal die Arbeitsvorgänge zur Auswahl von (n&sub2; - k&sub2;) Paritätsdaten, nachdem k&sub2; Informationssymbole ausgewählt sind. Während dieses Arbeitsvorgangs werden die Informationssymbole und die Paritätsdaten in einem RAM 4 (Random Access Memory = Speicher mit wahlfreiem Zugriff) der Reihe nach unter der Steuerung einer Adreßsteuerung 5 gespeichert.
  • Die aus dem RAM 4 ausgelesenen Daten werden einem C&sub1;(der erste Fehlerkorrekturcode)-Paritätsgenerator 6 und einem Eingangsanschluß eines Auswahlschalters 7 zugeführt und die C&sub1;- Paritätsdaten, welche durch den C&sub1;-Paritätsgenerator 6 gebildet werden, werden dem anderen Eingangsanschluß des Auswahlschalters 7 zugeführt. Der Auswahlschalter 7 wählt ((n&sub1;
  • - k&sub1;) · k&sub2;) C&sub1;-Paritätsdaten aus, nachdem er (k&sub1; · n&sub2;) Symbole, einschließlich der C&sub2;-Paritätsdaten, ausgewählt hat. Die von einem Ausgangsanschluß 8 stammenden Daten des Auswahlschalters 7 werden übertragen oder zum Beispiel auf ein Magnetband (nicht gezeigt) mit einem magnetischen Kopf aufgezeichnet. In diesem Fall ist es möglich, das codierte Ausgangssignal wieder in den RAM 4 einzuschreiben und in einer verschiedenen Reihenfolge zum Aufzeichnen auszulesen.
  • Fig. 2 zeigt eine Konfiguration des durch den Codierer, wie oben beschrieben wurde, gebildeten Codes. Die Informationssymbole sind in zwei Ausdehnungen von (k&sub1; · k&sub2;) angeordnet. Die k&sub2; Informationssymbole in jeder seitlichen Richtung, d. h. in jeder Reihe der zweidimensionalen Anordnung, werden dem Codierungsprozeß für den C&sub2;-Code unterworfen. Die k&sub1; Informationssymbole in jeder vertikalen Richtung, d. h. in jeder Spalte, werden dem Codierungsprozeß für den C&sub1;-Code unterworfen. Die C&sub2; Paritätsdaten werden ebenso in den C&sub1;-Code codiert. Der C&sub1;- Code ist z. B. ein (n&sub1;, k&sub1;)-Reed-Solomon-Code, bei welchem es möglich ist, Fehler von bis zu (n&sub1; - k&sub1;)/2 Symbolen zu korrigieren.
  • Es wird nun das allgemeine Verfahren der Codierung des Reed- Solomon-Codes beschrieben.
  • Die Hammingdistanz des (n, k) -Reed-Solomon-Codes (bei dem n die Codelänge bezeichnet und k die Anzahl der Informationssymbole bezeichnet) in einem Galois-Feld GF (2m) kann als (d= n - k + 1) ausgedrückt werden und das Erzeugerpolynom kann als d-2
  • II (x +αi) ausgedrückt werden. Wenn die empfangenen Wörter i=1
  • (r&sub0;, r&sub1;, r&sub2;, . . . , rn-1) sind, kann das Syndrom durch Bearbeiten des folgenden Ausdrucks erhalten werden:
  • Ein Fehlerlokalisierungspolynom δ(z) und ein Fehlerbewertungspolynom ω(z) werden durch Anwendung des Syndroms Sj erhalten. Für dieses Verfahren sind Euklid's wechselseitiges Teilungsverfahren, Berlekamp's Verfahren, Peterson's Verfahren usw. vorgeschlagen worden.
  • Mit der Lösung von δ(z) = 0 kann man die Fehlerposition Xi erhalten. Zu diesem Zweck wird eine Chien-Suche angewendet.
  • Dann kann man den Fehlerwert Yi auf der Grundlage der Fehlerposition Xi und der des Fehlerbewertungspolynoms ω(z) erhalten.
  • Die oben genannten Berechnungen in den Decodierungsschritten werden mit Xi als Fehlerposition (i = 1, 2, . . . , e : e bezeichnet die Anzahl der Fehler) und Yi als Fehlerwert erklärt. Da der Reed-Solomon-Code ein linearer Code ist, kann das Syndrom ausgedrückt werden als:
  • wann das Syndrom durch ein Polynom ausgedrückt wird als:
  • wird ein folgender Ausdruck erhalten:
  • Wenn das Fehlerlokalisierungspolynom und das Fehlerbewertungspolynom definiert werden als
  • dann kann ω(z) ausgedrückt werden als
  • Der Fehlerwert Yi kann durch Einsetzen von Xi&supmin;¹ in z und durch das Umformen des Ausdrucks wie folgt erhalten werden:
  • Als Beispiel wird ein (32, 24)-Reed-Solomon-Code mit Wurzeln von α&sup0; bis α&sup7; erklärt. Da bei diesem Code (d=8) ist, ist es möglich, Fehler von bis zu 4 Symbolen zu korrigieren. Wenn die Fehlerpositionen der 4 Symbole X&sub1; bis X&sub4; betragen, und die Fehlerbewertungen Y&sub1; bis Y&sub4; sind, wird das Syndrom aus dem folgenden Ausdruck erhalten.
  • S&sub0; ist nämlich unter 4 Syndromen wie folgt:
  • Zugleich können die Fehlerwerte Y&sub1;, Y2 , Y&sub3; ermittelt werden, der verbleibende Fehlerwert Y&sub4; wird wie folgt ohne komplizierte Berechnungen erhalten:
  • Y&sub4; = S&sub0; - Y&sub1; - Y&sub2; - Y&sub3;
  • In Codes mit GF(2m) ist eine Subtraktion gleichbedeutend einer Addition von (mod. 2).
  • Fig. 3 zeigt eine Konfiguration des Decoders dieser Ausführungsform. In Fig. 3 werden die wiedergegebenen Daten von einem durch das Bezugszeichen 11 bezeichneten Eingangsanschluß einem C&sub1;-Decoder 12 zugeführt. In dem C&sub1;-Decoder 12 wird das Decodieren des C&sub1;-Codes durchgeführt. Bei dem C&sub1;- Decodieren werden alle Fehler von bis zu (n&sub1; - k&sub1;)/2 Symbolen korrigiert. Jedoch wird in dem Fall, in welchem die Anzahl der Fehler in einer einzelnen Folge des C&sub1;-Codes größer als oder gleich (n&sub1; - k&sub1;)/2 ist, der C&sub1;-Zeiger dieser Folge auf "1" gesetzt, während 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, welcher n&sub2; Bits besitzt. Das Ausgangssignal des C&sub1;-Decoders 12 wird zeitweise in einem RAM 14 der Reihe nach unter der Kontrolle eines Adreßcontrollers 15 gespeichert.
  • Das aus dem RAM 14 ausgelesene Ausgangssignal wird einem C&sub2;- Decoder 16 zugeführt, um dem Decodieren des C&sub2;-Codes unterworfen zu werden. Der C&sub2;-Decoder 16 wird mit dem C&sub1;- Zeiger aus dem Zeigerspeicher 13 gespeist. Da der C&sub1;-Zeiger für alle Werte der K&sub1;-Folge des C&sub2;-Codes gemeinsam ist, ist es möglich, den C&sub2;-Code in Übereinstimmung mit der gleichen Prozedur in jeder Folge zu decodieren. Der C&sub2;-Decoder 16 korrigiert Fehler von bis zu (n&sub2; - k&sub2;)/2 Symbolen und erzeugt eine von drei Arten von Zeigern in dem C&sub2;-Code, welche in einem Zeigerspeicher 17 gespeichert werden.
  • Wenn die Fehlerkorrektur durch den C&sub2;-Decoder 16 durchgeführt wird, wird der C&sub2;-Zeiger bezüglich der Folge auf "0" gesetzt. Wenn die Fehlerkorrektur durch den C&sub2;-Decoder 16 nicht durchgeführt werden kann und die C&sub1;-Zeiger wegen ihrer hohen Zuverlässigkeit kopiert sind, wird der C&sub2;-Zeiger auf "1" gesetzt. Wenn die Fehlerkorrektur durch den C&sub2;-Decoder 16 nicht durchgeführt werden kann und alle Symbole sind dahingehend bestimmt, fehlerhafte Symbole wegen der geringen Zuverlässigkeit des C&sub1;-Zeigers zu sein, werden die C&sub2;-Zeiger auf "2" gesetzt. Daher besitzen die C&sub2;-Zeiger zwei Bits und der Zeigerspeicher 17 weist 2 K&sub1; Bits auf.
  • Die Zeigerspeicher 13 und 17 sind getrennt vom RAM 14, welcher zum Speichern der Informationssymbole und der Paritätsdaten zum Decodieren dient, angeordnet oder können gemeinsam mit dem RAM 14 angeordnet sein, wobei ein Teil der Speicherbereiche des RAM 14 benutzt wird.
  • Ohne auf ein Bit begrenzt zu sein, kann der C&sub1;-Zeiger zwei Bits oder mehr aufweisen. Weiterhin ist es möglich, die Fehlerkorrekturcodeverarbeitung des C&sub2;-Codes für die C&sub1;- Parität durchzuführen- währen ein C&sub2;-Zeigerspeicher von (2n&sub1;) Bits vorgesehen ist.
  • Die Ausgangsdaten des C&sub2;-Decoders 16 werden einer Interpolationsschaltung 18 zugeführt, um die Fehler in den Symbolen zu verdecken, welche nicht korrigiert worden sind. Die Interpolationsschaltung 18 führt zum Beispiel die Mittelwertbildung durch. Die Interpolationsschaltung wird durch eine Steuerschaltung 19 gesteuert, welche mit den C&sub1;- Zeigern und den C&sub2;-Zeigern aus den Zeigerspeichern 13 und 17 gespeist wird. Die Ausgangsdaten der Interpolationsschaltung 18 stehen an einem Ausgangsanschluß 20 zur Verfügung. Die Steuerschaltung 18 bestimmt bei jedem Informationssymbol, ob eine Interpolation auf der Grundlage des C&sub1;-Zeigers und des C&sub2;-Zeigers notwendig ist. In der Fig. 2 sind alle die Kombinationen der C&sub1;-Zeiger, als 13' bezeichnet, und der C&sub2;- Zeiger, als 17' bezeichnet, vorhanden.
  • Wenn der C&sub2;-Zeiger "0" ist, ungeachtet der Tatsache, daß der C&sub1;-Zeiger "0" oder "1" ist, ist die Interpolationsschaltung nicht in Betrieb. Wenn der C&sub2;-Zeiger "1" ist, und der C&sub1;- Zeiger ist "0" wird keine Interpolation ausgeführt, da festgestellt wird, daß das Informationssymbol keinen Fehler aufweist. Wenn der C&sub2;-Zeiger "1" ist, und der C&sub1;-Zeiger ist "1", wird die Interpolationsoperation durchgeführt, da festgestellt wird, daß ein fehlerhaftes Symbol vorliegt. Weiterhin wird die Interpolation durchgeführt, wenn der C&sub2;- Zeiger "2" ist, unabhängig von der Tatsache, daß der C&sub1;-Zeiger "0" oder "1" ist, da festgestellt wird, daß ein fehlerhaftes Symbol vorliegt.
  • Die Zuverlässigkeit des C&sub1;-Zeigers wird mittels des C&sub2;- Decoders bewertet. Zum Beispiel wird, vorausgesetzt, daß bis zu 2 Symbolfehler mittels des C&sub2;-Codes korrigiert werden können, wenn die Korrektur durch den C&sub2;-Code nicht durchgeführt werden kann, trotz der Tatsache, daß nur ein C&sub1;- Zeiger "1" ist, die Zuverlässigkeit des C&sub1;-Zeigers als gering bestimmt, da das obengenannte abnormal ist. Selbst wenn Fehler durch den C&sub2;-Code nicht korrigiert werden, ist es möglich, die Notwendigkeit der Interpolation durch das Vorsehen von drei Arten 0, 1, 2 des C&sub2;-Zeigers und durch Aussondern der Kopien der C&sub1;-Zeiger von allen Fehlern auszuschalten.
  • In dem oben erwähnten C&sub2;-Decodierer 16 wird, wenn die C&sub1;- Zeiger kopiert werden, eine Fehlerkorrektur durchgeführt, wobei der Wert der C&sub1;-Zeiger kleiner oder gleich (n&sub2; - k&sub2;) ist, und wenn die Löschkorrektur durchgeführt ist, wird der C&sub2;-Zeiger auf "0" gesetzt.
  • Wie oben beschrieben, wird das Decodieren des Reed-Solomon- Codes durch Berechnung des Fehlerlokalisierungspolynoms o(z) und des Fehlerbewertungspolynoms ω(z) in jeder Folge und durch Anwendung des durch n&sub2; Symbole in jeder Folge erhaltenen Syndroms durchgeführt. In dem Fall einer Löschkorrektur ist es möglich, den Fehlerwert Yi aus der Fehlerposition Xi und dem Fehlerbewertungspolynom ω(z) erhalten, da die Positionen, an welchen die C&sub1;-Zeiger "1" sind, als Fehlerpositionen bestimmt werden. Das heißt, durch Einsetzen von Xi-&supmin;¹an die Stelle von z, kann Yi wie folgt wie im Ausdruck (8) erhalten werden:
  • (wobei i = 1, 2, 3, . . . , s; s bezeichnet die Anzahl der Symbole)
  • In dem obigen Ausdruck kann der Term des Nenners nur mittels der Fehlerpositionen bestimmt werden. Zum Beispiel, vorausgesetzt, daß die durch den C&sub1;-Zeiger gezeigten Fehlerpositionen X&sub1;, X&sub2;, X&sub3; sind, sind die Terme des Nenners der Ausdrücke zur Erhaltung der Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3;
  • Nenner von Y&sub1;: (1 - X&sub2; X&sub1;&supmin;¹) (1 - X&sub3; X&sub1;&supmin;¹)
  • Nenner von Y&sub2;: (1 - X&sub1; X&sub3;&supmin;¹) (1 - X&sub2; x&sub3;&supmin;¹)
  • Nenner von Y&sub2;: (1 - X&sub1; X&sub2;&supmin;¹) (1 - X&sub3; X&sub2;&supmin;¹)
  • Hier sind die in dem Zeigerspeicher 13 gespeicherten Zeiger die gleichen wie der gesamten k&sub1;-Folge des C&sub2;-Codes. Daher ist es ausreichend, die Berechnung des Terms des Nenners in dem obigen Ausdruck auszuführen, um nur einmal einen Fehlerwert bezüglich der ki-Folge zu erhalten.
  • Fig. 4 zeigt die Konfiguration eines Fehlerkorrekturdecoders zur Verwendung mit den oben erwähnten C&sub1;- und C&sub2;-Decodern. Die empfangenen Daten werden einem Eingangsanschluß, der durch das Bezugszeichen 21 gekennzeichnet ist, zugeführt, und einer Verzögerungsschaltung 22 und einer Syndromerzeugungsschaltung 23 zugeführt. Die von der Syndromerzeugungsschaltung gebildeten Syndrome werden einer Fehlerlokalisierungs- und Fehlerwertberechnungsschaltung 24 zugeführt. Die Fehlerdaten von der Fehlerlokalisierungs- und Fehlerwertberechnungsschaltung werden einem Exklusiv-Oder-Gatter 25 zugeführt und zu den von der Verzögerungsschaltung 22 empfangenen Daten in (mod. 2) addiert. Die von der Verzögerungsschaltung 22 empfangenen Daten und und die korrigierten Daten von dem Exklusiv-Oder-Gatter 25 werden einer Auswahlschaltung 26 zugeführt. Die Auswahlschaltung 26 wird durch die Fehlerpositionsdaten gesteuert. An den Fehlerpositionen wird das Ausgangssignal des Exklusiv-Oder-Gatters 25 durch die Auswahlschaltung 26 ausgewählt, um an einem Ausgangsanschluß 27 anstelle der empfangenen Daten zur Verfügung gestellt zu werden.
  • In dem Fall einer ein Audio-PCM-Signal aufzeichnenden und wiedergebenden Vorrichtung werden die wiedergegebenen Daten einmal in ein RAM eingeschrieben. Bei Verwendung der aus dem RAM ausgelesenen Daten wird das Syndrom erzeugt, und auf der Grundlage von diesem werden die Fehlerpositionen und die Fehlerwerte berechnet. Fig. 5 zeigt einen Teil der Fehlerlokalisierungs- und Fehlerwertberechnungsschaltung 24. In Fig.
  • 5 bezeichnet das Bezugszeichen 28 einen Datenbus, über welchen Daten und Syndrome usw. übertragen werden.
  • In Fig. 5 bezeichnet das Bezugszeichen 29 ein Syndromregister, in welchem das Syndrom S&sub0; über den Datenbus 28, einem Pufferspeicher 30 und einem Exklusiv-Oder-Gatter gespeichert wird. Das Syndrom S&sub0; besitzt in dem Fall eines Reed-Solomon- Codes mit GF(2m) m Bits. Das Syndrom S&sub0; aus dem Syndromregister 29 wird dem Exklusiv-Oder-Gatter 31 und dem Bus- Pufferspeicher 32 zugeführt.
  • Wenn das Syndrom S&sub0; in dem Syndromregister 29 gespeichert ist, werden-die erhaltenen Fehlerwerte Y&sub1;, Y&sub2;, Y&sub3; hintereinander dem Exklusiv-Oder-Gatter 31 von dem Datenbus 28 über den Bus- Pufferspeicher 30 zugeführt. Daher beträgt das Ausgangssignal des Exklusiv-Oder-Gatters 31 (S&sub0; Yi), (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 über den Bus-Pufferspeicher 32 auf den Datenbus 28 ausgegeben, um für die Fehlerkorrektur verwendet zu werden.
  • Fig. 6 zeigt ein weiteres Hardwarebeispiel zum Decodieren bei einer Löschkorrektur. Ein Haupt-RAM 35 ist über ein Schreibregister 33 und ein Leseregister 34 mit dem Datenbus 28 verbunden. Ebenso sind ein Syndromregister 29, ein Arbeits-RAM 36 und eine logische Betriebsschaltung an dem Datenbus 28 vorgesehen.
  • Die Löschkorrektur mittels des Reed-Solomon-Codes kann durch Lösen des folgenden linearen Gleichungssystems n-ter Ordnung in der gleichen Weise wie im Ausdruck (2) erhalten werden:
  • in welchem ν = 0 bis d - 2
  • n : Anzahl der Fehler
  • Xk: k-te Position
  • Sν: Syndrome
  • Yk: Fehlergröße bei der k-ten Löschung
  • d : Minimale Distanz des Codes
  • Hier sind n, Xk, Sν bekannt, Yk ist unbekannt.
  • Um die obige Gleichung zu lösen, wird herkömmlich das folgende Verfahren angewendet: wenn
  • kann Yi wie im Ausdruck (8) wie folgt erhalten werden:
  • Bei diesem Verfahren ist jedoch zum Beispiel, wenn die Anzahl der-aktuellen Berechnungsschritte gezählt wird, wenn d = 9 und n = 8 ist:
  • (i) Expansion von A(z)
  • Anzahl der Multiplikationen: 1 + 2 + . . . + 7 = 28
  • Anzahl der Additionen: 1 + 2 + . . . + 7 = 28
  • (ii) Vorausgehende Berechnungen zum Erhalten des Nenners von
  • Anzahl der Reziprokwerte: 1 * 8 = 8
  • Anzahl der Multiplikationen: (7 + 6) * 8 = 104
  • Anzahl der Additionen: 7 * 8 = 56
  • (iii) Berechnungen zum Erhalten 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 Erhalten von ω(Xi&supmin;¹)
  • Anzahl der Reziprokwerte: 1 * 8 = 8
  • Anzahl der Multiplikationen: 7 * 8 = 56
  • Anzahl der Additionen: 7 * 8 = 56
  • (v) Berechnungen zum Erhalten von Yi
  • Anzahl der Teilungen: 1 * 8 = 8
  • Wenn jede dieser Berechnungen einen Schritt benötigt, beträgt die Anzahl der Schritte insgesamt 408.
  • In der in Fig. 6 gezeigten Schaltung werden die Wurzeln des Ausdrucks (9) berechnet durch:
  • wobei Λnij : Koeffizient von Zj von
  • l: Jede ganze Zahl größer als oder gleich 0, welche der Beziehung 1 ≤ d - n - 1
  • Das heißt, um die Löschkorrektur auszuführen, werden 1 = 0, i = n in die Gleichung (11) wie folgt eingesetzt:
  • Bei dieser Berechnung erhält man Yn und Yn Xnν wird zu jedem Syndrom S wie folgt addiert:
  • Sν ← Sν + Yn Xnν
  • wobei ν = 0 bis n-2
  • Da die Daten an der Position Xn korrekt sind, enthält das Syndrom (n-1) Löschungen. Daher kann bei Reduzierung von n um 1 Yn-1 erhalten werden:
  • Bei dieser Berechnung erhält man Yn-1 und Yn-1 Xn-1ν wird zu jedem Syndrom S wie folgt addiert:
  • Sν ← Yn-1 Xn-1ν
  • wobei ν = 0 bis n-3
  • Durch Wiederholen des oben Angeführten kann die letzte verbliebene Löschung erhalten werden als
  • Yi = S&sub0;
  • Eine Fehlerkorrektur kann wie oben erklärt ausgeführt werden. In diesem Fall wird die aktuelle Anzahl der Bearbeitungsschritte in der gleichen Weise wie bei dem herkömmlichen Verfahren gezählt, vorausgesetzt, daß d = 9 und n = 8 ist.
  • (i) Expansion von Λnnj
  • Anzahl der Multiplikationen: 1 + 2 + . . . + 6 = 21
  • Anzahl der Additionen: 1 + 2 + . . . + 6 = 21
  • (ii) Vorausgehende Berechnungen zum Erhalten des Nenners von
  • wobei es ausreichend ist, nur Π&sub3; bis Π&sub8; zu erhalten, da Π&sub2; = X&sub1; + Y&sub2; = Λ&sub3;&sub3;&sub1;.
  • Anzahl der Multiplikationen: 1 + 2 + . . . + 6 = 21
  • Anzahl der Additionen: 1 + 2 + . . . + 6 = 21
  • (iii) Berechnungen zum Erhalten des Zählers von Yn
  • Anzahl der Multiplikationen: 7 + 6 + . . . + 1 = 28
  • Anzahl der Additionen: 7 + 6 + . . . + 1 = 28
  • (iv) Berechnungen zum Erhalten von Yn, da Y&sub1; = S&sub0;
  • Anzahl der Teilungen: 7
  • (v) Sν ← Sν + Yn Xnν
  • Anzahl der Multiplikationen: 6 + 5 . . . + 1 = 21
  • Anzahl der Additionen: 7 + 6 . . . + 1 = 28
  • Die Anzahl der obigen Berechnungsschritte beträgt insgesamt 202.
  • Daher ist es in dem Fall des Ausdrucks (11) möglich, die Anzahl der Berechnungsschritte auf 50% des herkömmlichen Falles im Ausdruck (10) zu verringern.
  • Weiterhin wird, in dem Fall, in dem der oben erwähnte Korrekturcode ein Produktcode ist, vorausgesetzt, daß 30 Symbole in der vertikalen Richtung, 128 Symbole in der seitlichen Richtung angeordnet sind, der C&sub1;-Code in vertikaler Richtung und der C&sub2;-Code in seitlicher Richtung gebildet, wobei die Löschung der Position des C&sub1;-Zeigers entspricht, und die Position Xk (k = 1 - n) in allen C&sub2;-Codefolgen die gleiche ist. Dies bedeutet, daß es möglich ist, vorher Λnnj und
  • (Xk + Xn) im Ausdruck (11)' zu berechnen, ohne diese Terme für jedes Decodieren von C&sub2; zu berechnen. Das heißt, in diesem Beispiel wird die obige Berechnung nur einmal ausgeführt, während das Decodieren von C&sub2; 30 Mal durchgeführt wird.
  • Daher beträgt bei der Anzahl der obigen Berechnungsschritte, da die Anzahl der Berechnungen von (i) und (iii) nur eins pro dreißigmal Decodieren von C&sub2; beträgt, vorausgesetzt, daß die Anzahl der Schritte von (i) und (ii) 90/30 = 3 ist, die gesamte Anzahl der Schritte 115. Verglichen mit jener der herkömmlichen Methode, bei der die Anzahl der Schritte bei (i) und (ii) 224/3 = 74,7 ist und die Gesamtzahl der Schritte 191,5 ist, ist es möglich, die Anzahl der Schritte um ungefähr 40% zu verringern.
  • Folglich hat das oben beschriebene Verfahren Vorteile, wie z. B., daß es möglich ist, die Anzahl der Berechnungsschritte, die Bearbeitungszeit, die Hardwarebelastung für die Bearbeitung usw. deutlich zu verringern, verglichen mit dem herkömmlichen Verfahren.
  • Zusätzlich kann, obwohl die obigen Berechnungen durch Benutzung der Betriebslogik 37 durchgeführt worden sind, in dem Fall, in dem z. B. Sν ← Sν + Xiν Yi erhalten wird, eine Anordnung angewendet werden, wie sie in Fig. 7 gezeigt ist. 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 eine Auswahlschaltung, welche in der Betriebslogik 37 eingebaut sind. In dieser Schaltung gilt:
  • [1] S&sub0; wird in das Register 38, Yi in das Register 39 und Xi jeweils in das Register 40 über den Datenbus 28 aus dem Syndromregister 29 und dem Arbeits-RAM 36 usw. eingeschrieben.
  • S&sub0; + Yi wird von dem Addierer 41 an den Datenbus 28 ausgegeben.
  • [2] Der Inhalt des Multiplizierers 42, Xi Yi, wird über die Auswahlschaltung 43 zu dem Register 39 zurückgeführt, und S&sub1; wird vom Datenbus 28 in das Register 38 eingeschrieben. Daher wird von dem Addierer 41 S&sub1;+ Xi Yi an den Datenbus 28 ausgegeben.
  • [3] Weiterhin wird der Inhalt des Multiplizierers 42, Xi² Yi, über die Auswahlschaltung 43 zu dem Register 39 zurückgeführt, und S&sub2; wird vom Datenbus 28 in das Register 38 eingeschrieben. Daher wird von dem Addierer 41 S&sub2; + Xi² Yi an den Datenbus 28 ausgegeben.
  • [4] Durch Wiederholen der obigen Schritte werden aufeinanderfolgend S&sub3; + Xi³ Yi, S&sub4; + Xi&sup4; Yi erhalten und dem Syndromregister 28 über den Datenbus 28 zugeführt, um jeden Wert wieder einzuschreiben. Die Berechnungen werden, wie oben beschrieben, ausgeführt.
  • In der obigen Erklärung ist es, obwohl alle X&sub1; bis Xn als Löschungen vorausgesetzt sind, in dem Fall, in welchem X&sub1; bis Xn-1 Löschungen sind und Xn ein Fehler ist, möglich, die Symbole zu korrigieren. In diesem Fall ist die Anzahl der unbekannten Menge (n+1) von Y&sub1; bis Yn und Xn. Xn kann durch Verwendung des obengenannten Λnnj wie folgt erhalten werden:
  • Daher beträgt die unbekannte Menge Y&sub1; bis Yn, und danach kann diese unbekannte Menge in der gleichen Weise wie bei der Löschkorrektur erhalten werden.
  • Zum Beispiel gilt für den Fall, daß im Produktcode d = 9 (6 Löschungen + 1 Fehler) ist:
  • [1] Positionen der Löschungen X&sub1;, X&sub2;, . . . , X&sub6; überprüfen.
  • [2] Λnnj ermitteln und speichern, hier 21 Symbole insgesamt von Λ&sub2;&sub2;&sub1; = X&sub1;, Λ&sub3;&sub3;&sub1; = Λ&sub2;&sub2;&sub1; + X&sub2;&sub1; Λ&sub3;&sub3;&sub2; = Λ&sub2;&sub2;&sub1; X&sub2;, . . . , Λ&sub7;&sub7;&sub1;, . . . , Λ&sub7;&sub7;&sub6;.
  • [3] Insgesamt 5 Symbole von
  • (Xk + Xn) ermitteln und speichern (n = 2 bis 6).
  • [4] Syndrome S&sub0; bis S&sub7; berechnen.
  • [5] X&sub7; durch den folgenden Ausdruck ermitteln:
  • [6] Y&sub7; mittels des folgenden Ausdrucks und Rückführung ermitteln und das Syndrom Y&sub7; X&sub7; zurückführen:
  • Danach werden Y&sub6; bis Y&sub1; aufeinanderfolgend erhalten.
  • Obwohl in diesem Beispiel ein Fall gezeigt ist, bei dem der Ausdruck (11)' verwendet wird, ist der Vorgang der gleiche, wenn 1 ≠ 0 ist.
  • Wie oben beschrieben, ist es möglich, die Korrektur von Fehlern auszuführen, einschließlich Löschungen und einem Fehler. In diesem Fall kann die Anzahl der Berechnungsschritte wie bei der oben beschriebenen Fehlerkorrektur verringert werden.
  • Nachfolgend wird der Beweis der obigen Ausdrücke (11) und (12) beschrieben:
  • [Lemma] Wenn
  • wird zweifellos der folgende Ausdruck erhalten:
  • [Theorem 1] Das lineare Gleichungssystem erster Ordnung
  • (ν = 0 bis n-1 : Yi ist eine unbekannte Menge) besitzt folgende Wurzeln:
  • (Folgesatz l)
  • (Beweis) Es ist durch Einsetzen in die obige Gleichung klar erwiesen:
  • [Theorem 2] Wenn Xi bis Xn-1: Löschung und Xn ist ein Fehler,
  • (Beweis) Aus Folgesatz 1.
  • Daher ist aus dem Theorem 1 zu erkennen, daß Fehler bei der Löschkorrektur durch Verwendung irgendeiner von S&sub1; bis Sn, S&sub2; bis Sn+1, . . . , Sd-1-n bis Sd-2 unter den Folgen von S&sub0; bis Sn-1 korrigiert werden können. Das heißt, für n Löschkorrekturen sind n zusammenhängende Syndrome notwendig, die verbleibenden Syndrome sind zum Prüfen brauchbar, so daß n ≤ d - 1.
  • Weiterhin ist, um Xn aus dem Theorem 2 zu erhalten, eine Gesamtheit von n+1 Syndromen von S&sub1; bis Sn+1 notwendig, so daß n ≤ d-2. In diesem Fall beträgt die Anzahl der Löschungen n-1 ≤ d-3. Die verbleibenden Syndrome können wie in dem obigen Fall zum Prüfen verwendet werden.
  • Bei dem herkömmlichen Verfahren sind die Zeigerareale für die Gesamtzahl der Daten (n&sub1;, n&sub2;), entsprechend dem Fehlerkorrekturcode, erforderlich. Gemäß der vorliegenden Erfindung ist es jedoch möglich, die Anzahl der Zeiger auf (n&sub2; + 2n&sub1;) zu reduzieren, und weiterhin die Kapazität des beim Decodieren erforderlichen Speichers zu reduzieren. Weiterhin ist es gemäß der vorliegenden Erfindung möglich, die Anzahl der Schritte für das Lesen und Schreiben der Zeiger zu reduzieren. Weiterhin ist es gemäß der vorliegenden Erfindung in dem Fall möglich, bei dem die Löschkorrektur beim C&sub2;-Decodieren durch die Verwendung von durch das C&sub1;-Decodieren gebildeten Zeigern ausgeführt wird, da das Muster der Zeiger bezüglich jeder Folge des C&sub2;-Codes gemeinsam ist und ein Teil der Operationen, um einen Fehlerwert zu erhalten, gemeinsam ausgeführt werden, die Operation nur einmal auszuführen. Daher ist es möglich die Bearbeitungsschritte beim Decodieren deutlich zu reduzieren und eine sehr schnelle Bearbeitung beim Decodieren zu verwirklichen.
  • Weiterhin ist es gemäß der vorliegenden Erfindung möglich, ohne die Notwendigkeit, die ganzen Fehlerwerte in Übereinstimmung mit einem komplizierten Fehlerbewertungspolynom zum Erhalten einer Vielzahl von Fehlerwerten zu ermitteln, einen der Fehlerwerte durch eine einfache Konstruktion zu ermitteln und die Anzahl der Bearbeitungsschritte zu reduzieren.
  • Außerdem ist es gemäß der vorliegenden Erfindung möglich, die Anzahl der Berechnungsschritte bei der Löschkorrektur deutlich zu reduzieren.
  • Die vorliegende Erfindung beschreibt einen in den anhängigen Anmeldungen Nr. 90 109 867.3 und 91 200 210.2, welche von dieser Anmeldung geteilt wurden, beschriebenen und beanspruchten Gegenstand.

Claims (9)

1. Verfahren zum Decodieren eines Fehlerkorrekturcodes, bei welchem jeweils erste Korrekturcodes von (n&sub1;, k&sub1;), wobei n&sub1; die Codelänge bezeichnet, für alle k&sub1; Informationssymbole, die in jeweiligen Spalten einer zweidimensionalen Anordnung von (k&sub1; * k&sub2;) angeordnet sind, codiert werden, und jeweils zweite Fehlerkorrekturcodes von (n&sub2;, k&sub2;), wobei n&sub2; die Codelänge bezeichnet, für alle k&sub2; Informationssymbole, die in jeweiligen Zeilen der zweidimensionalen Anordnung angeordnet sind, codiert werden, wobei das Verfahren die Schritte aufweist:
Empfangen (11) mindestens der jeweiligen ersten Fehlerkorrekturcodes;
Decodieren (12, 16, 14) der ersten Fehlerkorrekturcodes, um dadurch Fehler in den jeweiligen Spalten der zweidimensionalen Anordnung festzustellen und jene Fehler zu korrigieren, die korrigierbar sind;
Erzeugen von jeweils ersten Zeigern im Anschluß an die Fehlerkorrektur als ein Ergebnis der ersten Fehlerkorrekturcodes;
Decodieren der zweiten Fehlerkorrekturcodes für die jeweiligen Zeilen der zweidimensionalen Anordnung und dabei Korrigieren bis zu einer vorgegebenen maximalen Anzahl von Fehlern, welche korrigierbar sind; und
Ausgeben (18, 20) der Informationssymbole; gekennzeichnet durch
Anzeigen der genannten ersten Zeiger für seine entsprechende Spalte entweder
(a) kein Fehler oder die Anzahl der korrigierten Fehler liegt innerhalb einer vorgegebenen Anzahl, oder
(b) die Anzahl der korrigierten Fehler liegt über der vorgegebenen Anzahl oder Fehler können durch die ersten Fehlerkorrekturcodes nicht korrigiert werden,
Speichern der jeweiligen Zeiger in Speichermitteln (13) mit mindestens n&sub2; Bits;
Erzeugen jeweiliger zweiter Zeiger für jede Zeile, die für diese Zeile anzeigen, welche der folgenden Bedingungen c, d, oder e vorliegt:
(c) kein Fehler feststellbar oder Fehlerkorrektur ist mittels der zweiten Fehlerkorrekturcodes möglich,
(d) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden, aber die ersten Zeiger sind für diese Zeile von hoher Zuverlässigkeit,
(e) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden und die ersten Zeiger sind für diese Zeile von niedriger Zuverlässigkeit,
Speichern der jeweiligen zweiten Zeiger in Speichermitteln (17) mit mindestens zwei k&sub1; Bits; und
Zuordnen (19) der gespeicherten ersten (13) und zweiten (17) Zeiger, um eine Anzeige der Zuverlässigkeit der jeweiligen Informationssymbole als Reaktion auf den Status der jeweiligen ersten und zweiten Zeiger in den jeweiligen Spalten und Reihen, entsprechend den jeweiligen Informationssymbolen, zu manifestieren.
2. Vorrichtung zum Decodieren eines Fehlerkorrekturcodes, bei welchem jeweils erste Korrekturcodes von (n&sub1;, k&sub1;), wobei n&sub1; die Codelänge bezeichnet, für alle k&sub1; Informationssymbole, die in jeweiligen Spalten einer zweidimensionalen Anordnung von (k&sub1; * k&sub2;) angeordnet sind, codiert werden, und jeweils zweite Fehlerkorrekturcodes von (n&sub2;, k&sub2;), wobei n&sub2; die Codelänge bezeichnet, für alle k&sub2; Informationssymbole, die in jeweiligen Zeilen der zweidimensionalen Anordnung angeordnet sind, codiert werden, wobei die Vorrichtung umfaßt:
Empfangsmittel (11) zum Empfang mindestens der jeweiligen ersten Korrekturfehlercodes;
Decodierungsmittel (12, 16, 14), die mit den genannten Empfangsmitteln (11) verbunden sind, und zum Decodieren (12, 16, 14) der ersten Fehlerkorrekturcodes, um dadurch Fehler in den jeweiligen Spalten der zweidimensionalen Anordnung festzustellen, und jene Fehler zu korrigieren, die korrigierbar sind, und zum Erzeugen von jeweils ersten Zeigern im Anschluß an die Fehlerkorrektur als ein Ergebnis der ersten Fehlerkorrekturcodes, zum Decodieren der zweiten Fehlerkorrekturcodes für die jeweiligen Zeilen der zweidimensionalen Anordnung dienen und dabei Fehler bis zu einer vorgegebenen maximalen Anzahl korrigieren, welche korrigierbar sind; und
Ausgabemittel (18, 20), die mit den genannten Decodierungsmitteln (12, 16, 14) verbunden sind und zum Herleiten der Informationssymbole dienen;
dadurch gekennzeichnet, daß jeder der genannten ersten Zeiger für seine entsprechende Spalte entweder anzeigt:
(a) kein Fehler oder die Anzahl der korrigierten Fehler liegt innerhalb einer vorgegebenen Anzahl oder
(b) die Anzahl der korrigierten Fehler liegt über der vorgegebenen Anzahl oder Fehler können durch die ersten Fehlerkorrekturcodes nicht korrigiert werden,
daß erste Speichermittel (13) mit den genannten Decodierungsmitteln (12) verbunden sind, und eine Kapazität von mindestens n&sub2; Bits zum Speichern der jeweiligen ersten Zeiger besitzen;
daß die genannten Decodierungsmittel (12, 16, 14) zum Erzeugen der jeweiligen zweiten Zeiger für jede Zeile für diese Zeile anzeigen, welche der folgenden Bedingungen c, d oder e vorliegt:
(c) kein Fehler feststellbar oder Fehlerkorrektur ist mittels der zweiten Fehlerkorrekturcodes möglich,
(d) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden, aber die ersten Zeiger sind für diese Zeile von hoher Zuverlässigkeit,
(e) Fehlerkorrektur kann durch die zweiten Fehlerkorrekturcodes nicht ausgeführt werden und die ersten Zeiger sind für diese Zeilen von niedriger Zuverlässigkeit,
daß zweite Speichermittel (17) mit den genannten Decodierungsmitteln (16) verbunden sind und eine Kapazität von mindestens zwei k&sub1; Bits zum Speichern der jeweiligen zweiten Zeiger aufweisen; und
daß Mittel (19) mit den genannten ersten und zweiten Speichermitteln (13, 17) verbunden sind und zum Manifestieren einer Anzeige der Zuverlässigkeit der jeweiligen Informationssymbole als Reaktion auf den Status der jeweiligen ersten und zweiten Zeiger in den jeweiligen Spalten und Reihen, entsprechend den jeweiligen Informationssymbolen.
3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die genannten Decodierungsmittel erste Decodierungsmittel (12, 14), die mit den genannten Empfangsmitteln (11) verbunden sind, und zum Decodieren der jeweiligen ersten Fehlerkorrekturcodes und zum Erzeugen der jeweiligen ersten Zeiger dienen, und zweite Decodierungsmittel (16, 14) aufweisen, die mit den genannten ersten Decodierungsmitteln (12, 14) verbunden sind, zum Decodieren der jeweiligen zweiten Fehlerkorrekturcodes und zum Erzeugen der jeweiligen zweiten Zeiger;
daß die genannten ersten Speichermittel (13) mit den genannten ersten Decodierungsmitteln (12) verbunden sind;
daß die genannten zweiten Speichermittel (17) mit den genannten zweiten Decodierungsmitteln (16, 14) verbunden sind; und
daß die genannten Ausgabemittel (18, 20) mit den genannten zweiten Decodierungsmitteln (16, 14) verbunden sind.
4. Verfahren zum Decodieren eines Fehlerkorrekturcodes nach Anspruch 1, bei dem die jeweiligen zweiten Fehlerkorrekturcodes mittels Durchführung einer Löschkorrektur für jede Codefolge der zweiten Fehlerkorrekturcodes durch Verwendung der jeweiligen ersten Zeiger decodiert werden; und bei dem weiterhin
der Schritt des zweiten Decodierens einen Schritt des Berechnens der Fehlerwerte von Löschsymbolen mittels eines algebraischen Ausdrucks enthält, der aus einem ersten Term, welcher ein allgemeiner Wert ist, und einem zweiten Term, welcher aus individuellen unabhängigen Werten bezüglich der Löschfehlerkorrekturen der jeweiligen zweiten Fehlerkorrekturcodes besteht, und bei dem der Schritt des Berechnens der Fehlerwerte die Ausführung einer ersten Berechnung des ersten Terms nur einmals entsprechend jedem der jeweiligen ersten Zeiger enthält; Speichern des Ergebnisses der ersten Berechnung des ersten Terms; und Ausführen jeder der Berechnungen zum Erhalten von Fehlerwerten entsprechend der jeweiligen zweiten Fehlerkorrekturcodes durch jede der zweiten Berechnungen des zweiten Terms und durch Verwendung des gespeicherten Ergebnisses der ersten Berechnung.
5. Vorrichtung nach Anspruch 2 bis 3 zum Decodieren eines Fehlerkorrekturcodes, bei welcher die Decodierungsmittel eine Löschkorrektur für jede Codefolge der jeweiligen zweiten Fehlerkorrekturcodes durch Anwenden der jeweiligen ersten Zeiger ausführen; und bei der die genannten Decodierungsmittel (12, 14, 16, 29, 33 bis 37) in den genannten zweiten Decodierungsmitteln die Fehlerwerte der Löschsymbole mittels eines algebraischen Ausdrucks berechnen, der aus einem ersten Term, welcher ein allgemeiner Wert ist, und einem zweiten Term, welcher aus individuellen unabhängigen Werten bezüglich der Löschfehlerkorrekturen der jeweiligen zweiten Fehlerkorrekturcodes besteht, und bei welcher die genannten Decodierungsmittel (12, 13, 16; 29, 33, 34, 36, 37) eine erste Berechnung des ersten Terms nur einmal entsprechend jedem der jeweiligen ersten Zeiger ausführen, das Ergebnis der ersten Berechnung des ersten Terms speichern, und jede der Berechnungen zum Erhalten von Fehlerwerten entsprechend der jeweiligen zweiten Fehlerkorrekturcodes durch jede der zweiten Berechnungen des zweiten Terms und durch Verwendung des gespeicherten Ergebnisses der ersten Berechnung ausführen.
6. Vorrichtung nach Anspruch 5, bei welcher die genannte Vorrichtung weiterhin Speichermittel zum Speichern des Ergebnisses der ersten Berechnung des genannten ersten Terms aufweist, und jede der Berechnungen zum Erhalt von Fehlerwerten entsprechend den jeweiligen zweiten Fehlerkorrekturcodes durch jede der zweiten Berechnungen des zweiten Terms und durch Verwendung des gespeicherten Ergebnisses der ersten Berechnung ausführt.
7. Vorrichtung nach Anspruch 2, 3, 5 oder 6, zum Decodieren eines nicht-dualen Fehlerkorrekturcodes, bei welchem eines einer Vielzahl von Syndrome ein Ergebnis einer Addition, einer Folge von empfangenen Symbolen in (mod. 2) ist und durch welche Fehler einer Vielzahl von Symbolen in den Folgen von empfangenen Symbolen korrigiert werden können, in welcher die Decodierungsmittel (12, 15, 14; 28, 29, 33, 34, 35, 36, 37) weiterhin Eingabemittel (21, 22; 28), Syndromerzeugungsmittel (23; 36, 37) zum Erzeugen der Syndrome, Fehlerlokalisierungs- und Fehlerwertberechnungsmittel (24, 29, 36, 37), die mit den genannten Syndromerzeugungsmitteln (23; 36, 37) verbunden sind und zum Erzeugen von Fehlerlokalisierungen und Fehlerwerten entsprechend der Syndrome dienen, Fehlerkorrekturmittel (25; 37), die mit den genannten Eingabemitteln (21, 22; 28) und Fehlerlokalisierungs- und Fehlerwertberechnungsmittel (24; 29, 36, 37) verbunden sind, und zum Korrigieren eines fehlerhaften Symbols durch Addieren des Fehlerwertes dienen, und Ausgabemittel (26, 27; 28) enthalten, die mit den genannten Fehlerkorrekturmitteln (25; 37) verbunden sind,
wobei die genannten Fehlerlokalisierungs- und Fehlerwertberechnungsmittel (24; 29, 36, 37) ein Syndromregister zum Speichern der Syndrome und ein Exklusiv- ODER-Gatter (31) enthalten, das mit dem genannten Register (29) verbunden ist und mit den Syndrom- und Fehlerwerten gespeist wird, und zum Addieren der Fehlerwerte zu den Syndromen dient, um einen in dem genannten Syndromregister (29) gespeicherten Fehlerwert für die Korrektur eines fehlerhaften Symbols zu erzeugen.
8. Verfahren nach Anspruch 1 oder 4, welches weiterhin die Schritte zum Decodieren und Korrigieren eines Reed-Solomon- Codes aufweist:
Lösen der Gleichung
wobei ν = 0 bis d-2
n : Nummer der Löschung
Xk: Lage des k-ten Elements
Sν: Syndrom
Yk: Größe des Fehlers in der Löschung des k-ten Elements
d: Minimalabstand des Codes zum Erhalten von Wurzeln der Gleichung;
Durchführen einer Löschkorrektur von in dem Reed-Solomon-Code codierten Fehlern in Übereinstimmung mit den Wurzeln, dadurch gekennzeichnet, daß die Wurzeln durch Lösung der Gleichung
erhalten werden, wobei
Λnij : Koeffizient von Zj von
l: Jede ganze Zahl großer oder gleich 0, welche l ≤ d - n -1 erfüllt.
9. Vorrichtung nach den Ansprüchen 2, 3, 5, 6 oder 7, zum Decodieren und Korrigieren einer Löschung in einem Reed- Solomon-Code in Übereinstimmung mit den Wurzeln von
wobei ν = 0 bis d-2
n: Nummer der Löschung
Xk: Lage des k-ten Elements
Sν: Syndrom
Yk: Größe des Fehlers in der Löschung des k-ten Elements
d: Minimalabstand des Codes,
bei welcher die genannten Decodierungsmittel weiterhin Syndromregistermittel (29) zum Speichern eines Syndroms Sν und wirksame Logikmittel (37) zum Erhalten der Wurzel Yi durch Lösen der Gleichung:
erhalten werden, wobei
Λnij: Koeffizient von Zj von
l: Jede ganze Zahl größer oder gleich 0, welche l ≤ d - n -1 erfüllt,
wobei die wirksamen Logikmittel (37) enthalten Registermittel (38) zum Speichern eines Syndroms Sν;
Registermittel zum Speichern von Xiν Yi;
Additionsmittel (41) zum Addieren von Sν und Xiν Yi und zum Speisen der genannten Registermittel (38) und Syndromregistermittel (29) mit Sν + Xiν Yi;
Multiplikationsmittel (42) zum Multiplizieren von Xi und Xiβ Yi und zum Speisen der genannten Registermittel (39) mit Xiν Yi.
DE85900195T 1983-12-20 1984-12-19 Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes. Expired - Fee Related DE3486200T2 (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
DE3486200D1 DE3486200D1 (de) 1993-09-16
DE3486200T2 true DE3486200T2 (de) 1993-12-02

Family

ID=26510757

Family Applications (3)

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

Family Applications Before (2)

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

Country Status (8)

Country Link
US (1) US4719628A (de)
EP (3) EP0426657B1 (de)
KR (1) KR930003997B1 (de)
AT (2) ATE128585T1 (de)
BR (1) BR8407228A (de)
DE (3) DE3486408T2 (de)
HK (1) HK118795A (de)
WO (1) WO1985002958A1 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS601673A (ja) * 1983-06-17 1985-01-07 Sony Corp 誤り検出方法
AU594995B2 (en) * 1986-01-24 1990-03-22 Sony Corporation Data transmission method suitable for a disc
DE3776161D1 (de) * 1986-03-04 1992-03-05 Sony Corp Digitalwiedergabegeraet.
JPS63193723A (ja) * 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
AU622626B2 (en) * 1987-06-03 1992-04-16 Sony Corporation Method of processing data
US4845714A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Multiple pass error correction process and apparatus for product codes
US5020060A (en) * 1987-06-30 1991-05-28 Matsushita Electric Industrial Co., Ltd. Error code correction device having a galois arithmetic unit
US4849976A (en) * 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
JP2563389B2 (ja) * 1987-11-13 1996-12-11 松下電器産業株式会社 誤り検出訂正方法
US4847842A (en) * 1987-11-19 1989-07-11 Scs Telecom, Inc. SM codec method and apparatus
US4956709A (en) * 1988-03-11 1990-09-11 Pbs Enterprises, Inc. Forward error correction of data transmitted via television signals
FR2634035B1 (fr) * 1988-07-07 1994-06-10 Schlumberger Ind Sa Dispositif pour le codage et la mise en forme de donnees pour enregistreurs a tetes tournantes
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
JP2881773B2 (ja) * 1988-07-30 1999-04-12 ソニー株式会社 誤り訂正装置
JP2722647B2 (ja) * 1989-04-11 1998-03-04 富士通株式会社 磁気テープ制御装置
CA2013484A1 (en) * 1989-06-26 1990-12-26 Can A. Eryaman Erasure arrangement for an error correction decoder
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5040179A (en) * 1989-08-18 1991-08-13 Loral Aerospace Corp. High data rate BCH encoder
ATE151908T1 (de) * 1990-01-18 1997-05-15 Philips Electronics Nv 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
EP0540007B1 (de) * 1991-10-29 1999-01-07 Nippon Hoso Kyokai 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
US9058291B2 (en) 2011-02-28 2015-06-16 International Business Machines Corporation Multiple erasure correcting codes for storage arrays
US8433979B2 (en) 2011-02-28 2013-04-30 International Business Machines Corporation Nested 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
DE3486408T2 (de) 1996-03-14
EP0426657B1 (de) 1999-03-10
KR930003997B1 (ko) 1993-05-19
EP0167627B1 (de) 1993-08-11
EP0167627A1 (de) 1986-01-15
HK118795A (en) 1995-07-28
BR8407228A (pt) 1985-11-26
AU581202B2 (en) 1989-02-16
DE3486408D1 (de) 1995-11-02
US4719628A (en) 1988-01-12
WO1985002958A1 (en) 1985-07-04
AU3781285A (en) 1985-07-12
ATE128585T1 (de) 1995-10-15
DE3486200D1 (de) 1993-09-16
EP0167627A4 (de) 1988-04-27
EP0387924A2 (de) 1990-09-19
ATE177570T1 (de) 1999-03-15
DE3486471T2 (de) 1999-09-02
KR850700196A (ko) 1985-10-25
EP0387924B1 (de) 1995-09-27
EP0426657A2 (de) 1991-05-08
DE3486471D1 (de) 1999-04-15
EP0426657A3 (de) 1995-03-15
EP0387924A3 (de) 1991-03-20

Similar Documents

Publication Publication Date Title
DE3486200T2 (de) Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.
DE3854393T2 (de) Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode.
DE3852999T2 (de) Galois-feld-recheneinheit.
DE3784741T2 (de) Dekoder fuer produkt-kodes und verfahren zur dekodierung dieser kodes.
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE2916710C2 (de)
DE2357004C3 (de) Verfahren und Einrichtung zur Fehlerkorrektur für Daten
DE3855101T2 (de) Anordnung zur sofortigen Fehlerkorrektur
DE69121307T2 (de) Mehrfachpegel-Fehlerkorrektursystem
DE68906063T2 (de) Parametrischer galois-koerper-multiplizierer-addierer und dessen benutzung in einem digitalen signalprozessor.
DE68920523T2 (de) Verfahren zur Korrektur von Mehr-Byte-Fehlern.
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE2834963A1 (de) Verfahren und einrichtung zur fehlerkorrektur von uebertragenen daten
DE2260850A1 (de) Fehlerkorrektursystem
DE3787034T2 (de) Digitale Signalfehlerkorrektur.
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3209679C2 (de)
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE3750526T2 (de) Dekodierer.
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
DE102005022107B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
EP0545498A2 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE4105860C2 (de) Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
EP0400179A1 (de) Verfahren und Vorrichtung zum internen Paralleltest von Halbleiterspeichern
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen

Legal Events

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