DE69315018T2 - Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes - Google Patents

Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes

Info

Publication number
DE69315018T2
DE69315018T2 DE69315018T DE69315018T DE69315018T2 DE 69315018 T2 DE69315018 T2 DE 69315018T2 DE 69315018 T DE69315018 T DE 69315018T DE 69315018 T DE69315018 T DE 69315018T DE 69315018 T2 DE69315018 T2 DE 69315018T2
Authority
DE
Germany
Prior art keywords
symbols
symbol
sequence
parity
data
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
DE69315018T
Other languages
English (en)
Other versions
DE69315018D1 (de
Inventor
Constant Paul Marie J Baggen
Erik Willem Gaal
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69315018D1 publication Critical patent/DE69315018D1/de
Application granted granted Critical
Publication of DE69315018T2 publication Critical patent/DE69315018T2/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

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

Description

  • Die Erfindung bezieht sich auf ein Verfahren zur Codierung eines regelmäßigen BCH-Codewortes, wobei das genannte Verfahren folgendes beinhaltet:
  • - in einer Folge von Taktzyklen alle Datensymbole eines Codeworts in ihrem zugehörigen Taktzyklus in abnehmender Reihenfolge zuführen;
  • - während jedes Taktzyklus den Beitrag jedes Datensymbols zu jedem Paritätssymbol einer Folge von Paritätssymbolen berechnen.
  • Die Symbolbreite kann ein Bit betragen; in diesem Fall ist das Teilfeld der Symbole das Galois-Feld GF(2). Derartige Codes sind ideal als Fehlerschutz gegen Ein-Bit-Fehler geeignet, wie sie in der optischen Kommunikation auftreten können. Eine Alternative zu Ein-Bit-Symbol-BCH-Codes sind solche mit Mehrbit-Symbolen. Im allgemeinen hat jeder spezielle BCH-Code eine maximale Wortlänge. Aus praktischen Gründen werden abgekürzte Codes verwendet, indem vorher festgelegten Symbolen ein Nullwert zugeordnet wird und sie nicht effektiv gespeichert, übertragen oder anderweitig verwendet werden. Nachfolgend werden solche abgekürzten Codes auch BCH-Codes genannt. BCH-Codes mit voller Iänge sind insofern zyklisch, als durch die symbolweise zyklische Transposition eines Codewortes ein anderes Codewort erzeugt wird. Eine derartige zyklische Transposition hat keinen Einfluß auf die Korrigierbarkeit von Zufallsfehlern; die Korrigierbarkeit von Fehlerbündeln kann beeinflußt werden, wenn abgekürzte Codes eingesetzt werden. Eine untergeordnete Klasse von Mehrbit-Symbol-BCH-Codes sind Reed-Solomon-Codes, bei denen sich die maximale Codewortlänge aus N=2m-1 ergibt, wobei m die Anzahl der Bits pro Symbol angibt. Reed-Solomon-Codes (RS-Codes) eignen sich hervorragend als Schutz gegen Fehlerbündel. In der Patentschrift EP A2 156 440 ist die Verwendung von Reed-Solomon-Codes gut dokumentiert. Im folgenden ist das Ausführungsbeispiel nur für Reed-Solomon-Codes dargelegt; für andere BCH-Codes werden die Verfahrensschritte in ähnlicher Weise durchgeführt. Herkömmlicherweise ist ein CD-System der Unterhaltungselektronik nun ein reines Decoder-System. Es ergab sich jedoch der Bedarf an einer hardware-effizienten Codiereinrichtung, insbesondere im Hinblick auf die beabsichtigte Einführung von einmal beschreibbaren und wiederbeschreibbaren Versionen von Compact Discs und auch von anderen Anwendungen. Die Erfindung beschränkt sich auf Codes, die auf der Symbolebene systematisch sind, wobei eine begriffliche Zweiteilung zwischen Datensymbolen und überzähligen oder Paritätssymbolen besteht.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist nun unter anderem eine Aufgabe der Erfindung, ein Codierverfahren und eine Vorrichtung zur Codierung von BCH-Codes, die auf Einzelbit- oder Mehrbit-Symbolen basieren, und insbesondere zur Codierung von Reed-Solomon-Codes zu schaffen, wobei die Codewörter entweder die volle Unge aufweisen oder abgekürzt sind. Mit der Erfindung wird insbesondere die Codierung ins Auge gefaßt, bei der die Folge von Paritätssymbolen zwischen eine erste und eine zweite Zeile mit Datensymbolen eingeschoben ist. Eine zweite Aufgabe besteht darin, daß die Hardware nahezu identisch mit derjenigen sein sollte, die für "normale" Codewörter eingesetzt wird, bei denen sich die Paritätssymbole in den Endpositionen befinden. So wäre es insbesondere im CD-Bereich möglich, beide Codes mit derselben Hardware zu codieren.
  • Nun ist die Erfindung gemäß eines ersten Aspektes dadurch gekennzeichnet, daß das genannte Verfahren für die genannte zwischen einer ersten Zeile mit Datensymbolen hoher Ordnung und einer zweiten Zeile mit Datensymbolen niedriger Ordnung eingeschobene Folge eine serielle Transposition der genannten Paritätssymbole in bezug auf die genannten Datensymbole beinhaltet, um eine Sequenz aus der genannten ersten Zeile hoher Ordnung, der genannten Folge und der genannten zweiten Zeile niedriger Ordnung zu erzeugen.
  • Der Ausdruck "serielle Transposition" bedeutet im Besonderen, daß im allgemeinen Schieberegister oder deren Emulationen und nicht Matrixmultiplikationen in einer Prozessorumgebung eingesetzt werden. Die Zuführung von Datensymbolen entspreehend ihrer zugehörigen Reihenfolge ist sehr hardware-effizient, insbesondere insofern, als die gewünschte Reihenfolge eines nicht vorhandenen Datensymbols oder eines gewünschten Paritätssymbols einfach durch die Zuführung einer Null oder eines anderen Pseudosymbols realisiert wird. Nachdem alle Datensymbole tatsächlich zugeführt worden sind, ist ihr Beitrag zur Parität vollständig bekannt. Eine serielle Transposition ist dann lediglich erforderlich, um den Inhalt der Paritätssymbole so neu zu organisieren, daß die gewünschte Codewort-Konfiguration erzielt wird, in der die Paritäten die richtigen Positionen einnehmen.
  • Das Verfahren beinhaltet vorzugsweise das "Ausstopfen" des genannten Codewortes mit zusätzlichen Null-Datensymbolen und die Zuführüng jeglichen Symbols des so "ausgestopften" Codewortes in einer rotierenden Folge, wodurch die genannte Folge seriell zu Symbolpositionen noch niedrigerer Ordnung umgestellt wird, die jeglichem Datensymbol folgen. Die serielle Rotation ist extrem unkompliziert. Außerdem ist keine zusätzliche Hardware erforderlich, abgesehen von der Steuerung der Rotation. Der einzige Nachteil dieser Vorgehensweise besteht darin, daß sie relativ viel Zeit in Anspruch nimmt, insbesondere bei stark gekürzten Codewörtern, die in Verbindung mit in der Mitte des Codewortes stehenden Paritäten auftreten.
  • Das Verfahren beinhaltet vorzugsweise nach der Zuführung eines Codewortes mit Pseudosymbolen anstelle der genannten Folge und Erzeugung einer transponierten Folge von Paritätssymbolen, die nicht mit einem Datensymbol übereinstimmen, jedoch in einer Position noch niedrigerer Ordnung als jegliches Datensymbol angeordnet sind, die serielle Rückwärtstransposition jeglichen Symbols der genannten transponierten Folge in die Position der Ordnung der genannten Pseudosymbole, um zu diesen Pseudosymbolen hinzugefügt zu werden. Bei Codewörtern, deren Paritätssymbole näher zum Ende als ungefähr auf der Hälfte eines ungekürzten Codewortes angeordnet sind, nimmt diese Vorgehensweise normalerweise weniger Zeit in Anspruch als die vorherige. Die Rückwärtsverschiebung erfordert jedoch zusätzliche Hardware und zusätzliche Steuerelemente, sowohl in Hinblick auf die Verschiebung selbst als auch auf die Umgebung der Codiervorrichtung, wie es bei einer Pipeline-Anordnung auf höherer Ebene der Fall sein könnte.
  • Die Erfindung bezieht sich auch auf eine Vorrichtung zur Durchführung des beschriebenen Verfahrens.
  • Weitere vorteilhafte Aspekte sind in den abhängigen Patentansprüchen dargelegt.
  • Es hat sich herausgestellt, daß eine derartige Codiervorrichtung flexibel sein und möglichst wenig Hardware erfordern sollte. Was insbesondere die Codierung angeht, so sind unter anderem die folgenden Aufgaben und Parameter von Belang:
  • #1. In der Compact-Disc-Vereinbarung, wie auch in anderen, wäre es wünschenswert, daß zur Realisierung unterschiedlicher Codes identische Hardware eingesetzt würde, vorausgesetzt, daß ihre Paritätskontrollmatrizen einander sehr ähnlich sind.
  • #2. Es wäre insbesondere wünschenswert, daß es möglich wäre, die Paritätssymbole an beliebigen Positionen innerhalb des Codewortes anzuordnen, mit der Einschränkung, daß ihre Positionen benachbart sind.
  • #3. Angesichts der maximalen Länge N der Codewörter im Hinblick auf die gewählte Symbollänge und der tatsächlichen Länge n der Codewörter ist ein erster variabler Parameter die Kürzung des Codewortes in bezug auf einen ungekürzten Code (N-n).
  • #4. Ein zweiter Parameter ist die zeitliche Reihenfolge, in der die Datensymbole dem Eingang der Vorrichtung zugeführt werden.
  • Erfindungsgemäß wird die Aufgabe #1 durch die geeignete Wahl des Parameters #4 erfüllt. Andererseits ist die Funktion bei relativ kurzen Codewörtern (Parameter #3 ist groß) langsam, im Besonderen genauso langsam wie bei ungekürzten Codewörtern.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Verschiedene Aspekte und Vorteile der Erfindung sind in bezug auf die bevorzugten Ausführungsbeispiele in den Zeichnungen dargestellt und werden im folgenden näher beschrieben. Es zeigen:
  • Figuren 1a - 1e die der Codierung des vorliegenden Wortformats zugrundeliegenden Prinzipien;
  • Figur 2 einen allgemeinen Aufbau eines Codiersystems;
  • Figur 3 ein Ausführungsbeispiel eines Schieberegisters zur Codierung;
  • Figur 4 ein zweites Ausführungsbeispiel eines Schieberegisters;
  • Figur 5 ein drittes Ausführungsbeispiel eines Schieberegisters;
  • Figur 6 ein viertes Ausführungsbeispiel eines Schieberegisters;
  • Figur 7 ein Ausführungsbeispiel einer Ablaufsteuerung.
  • KURZE DARLEGUNG DER ERFINDUNG
  • Die Figuren 1a - 1e zeigen verschiedene Code- und Codierungskonfigurationen. Figur 1a zeigt schematisch ein Codewort. Im allgemeinen befinden sich die Paritätssymbole in Blockcodes von systematischen Codes in der Position niedriger Ordnung cj..c&sub0; wobei j « n-1. Bei Compact Discs trifft dies für den sogenannten C1-Code zu, jedoch nicht für den C2-Code. Bei der erfindungsgemäßen unregelmäßigen Codierung sind die Paritätspositionen nicht niedriger Ordnung, die Codierung ist trotzdem einfach und unkompliziert und erfordert insbesondere keine parallele Matrixmultiplikation. Insbesonere letzteres hat sich als kompliziert und kostspielig erwiesen, wie aus der Anzahl der erforderlichen Gatter ersichtlich ist.
  • Figur 1b zeigt schematisch ein Codewortformat, das mit der vorliegenden Erfindung codiert werden soll. Für einen Reed-Solomon-Code mit m-Bit Symbolen beträgt die maximale Unge des Codewortes 2m-1 Symbole. Von den von C&sub2;m&submin;&sub2;..C&sub0; numerierten Symbolen bestehen die Teile A und B aus Datensymbolen und der dazwischenliegende Teil P aus Paritätssymbolen. Die Unge von A, P, B beträgt im folgenden willkürlich A+B+P≤2m-1. Wie an anderer Stelle erläutert, ist das ungekürzte Codewort zyklisch: jegliche Rotation eines Codewortes (auf Symbolbasis) erzeugt wiederum ein Codewort. Infolgedessen stellt Figur 1c ein erstes Codierschema für ein solches Codewort dar: das Codewort rotiert derart, daß die Paritätssymbole P die Endpositionen einnehmen. Bei dem C2-Code einer Compact Disc enthält Teil B die Symbole C&sub1;&sub1;..C&sub0;, Teil A die Symbole C&sub2;&sub7;..C&sub1;&sub6; und Teil P die Symbole C&sub1;&sub5;..C&sub1;&sub2;. Der ungenutzte Teil enthält 255-28=227 Symbole. Auf diese Weise erfordert die Codierung 255 Taktimpulse, jedoch nur sehr wenig Hardware. Nachdem Teil B zugeführt wurde, wird der Codiervorrichtung eine Folge aus 227 Pseudonullen zugeführt.
  • Figur 1d zeigt schematisch eine zweite Lösung für das Codierproblem. In Anbetracht der Tatsache, daß die dem Teil A vorangehenden Symbole im wesentlichen Nullen sind, tragen diese nicht zu den Paritäten bei. Infolgedessen wird der Codiervorrichtung zuerst Teil A zugeführt. Dann wird der Codiervorrichtung für jedes gewünschte Paritätssymbol ein Pseudosymbol (z.B. Null) zugeführt. Anschließend wird Teil B zugeführt. Nachdem Teil B zugeführt wurde, befinden sich P Paritätssymbole in den fiktiven Positionen P', wie bei der regelmäßigen Codierung, bei der sich die Paritäten in den Positionen niedriger Ordnung befinden. Diese Positionen sind nun jedoch in bezug auf die gewünschten Paritätspositionen versetzt, wobei dieser Versatz in bezug auf die Positionen aller Datensymbole einheitlich ist. Wenn die Paritätssymbole zum Beispiel eine Symbolperiode später erzeugt worden wären, bedeutet dies nur, daß der Versatz um eine Symbolposition höher ist. Nun reduziert sich die Erzeugung von Paritätssymbolen auf die Aktualisierung der vorläufigen Paritätssymbole durch Multiplikation mit x-(B+P) mod g(x), wobei B+P der Versatz in der Figur nach rechts und g(x) das erzeugende Polynom des Codes darstellt. Dies wird durchgeführt, indem die Codiervorrichtung rückwärts um die Länge der kombinierten Teile P' und B verschoben wird. Bei einer Compact Disc bedeutet dies eine Rückwärtsverschiebung um 12+4=16 Symbolpositionen:
  • P=(x&supmin;¹&sup6;i(x) mod g(x)) mod (g(x)=x&supmin;¹&sup6;P' mod g(x)
  • Wie nachfolgend erläutert wird, kann dies auf zwei Arten realisiert werden, nämlich einmal durch einfache Rückwärtsverschiebung (Figur 5) und einmal durch die Verwendung einer Finite-Zustand-Maschine (Figur 6). Beide Verfahren haben ihre eigenen Vorteile.
  • THEORETISCHER HINTERGRUND
  • Das Compact-Disc-System hat zwei Codes C1 und C2, die beide gekürzte Reed-Solomon-Codes (RS-Codes) über GF(2&sup8;) sind und das gleiche erzeugende Polynom g(x) = (x-1)(x-α)(x-α²)(x-α³) = x&sup4;+α&sup7;&sup5;x³+α²&sup4;&sup9;x²+α&sup7;&sup8;x+α&sup6; haben. Als Grundpolynom wurde gewählt p(x) = x&sup8;+x&sup4;+x³+x²+1, und α, das eine Wurzel aus p(x) ist, ist das Grundelement.
  • Beide Codes haben eine Paritätskontrollmatrix mit dem folgenden Aufbau:
  • wobei n=32 für C1 und n=29 für C2 gilt. Ein Vektor c mit der Länge n ist ein Codewort in Code C1 (wenn n=32) oder in C2 (wenn n=28), wenn und nur wenn cHtn= . Der Vektor c besteht aus n Komponenten, die folgendermaßen geordnet sind: c = [cn- 1cn-2...c&sub1;c&sub1;c&sub0;], wobei cn-1 als erstes und c&sub0; als letztes übertragen. wird. Diese Schreibweise unterscheidet sich von deijenigen, die herkömmlicherweise in CD-Veröffentlichungen verwendet wird, beinhaltet jedoch genau dieselben Funktionen. Jetzt haben beide Codes einen Mindestabstand von d=5, die Codewörter enthalten also jeweils vier Paritätssymbole. In C1 sind es die vier Symbole niedriger Ordnung des Codewortes c&sub3;, c&sub2;, c&sub1;, c&sub0;. In C2 sind es die vier Symbole mittlerer Ordnung des Codewortes, d.h. c&sub1;&sub5;, c&sub1;&sub4;, c&sub1;&sub3;, c&sub1;&sub2;. Nachfolgend ist unter der Ordnung eines Symbols sein Rang im ungekürzten Codewort zu verstehen. Jegliche andere Reihenfolge der Zuführung kann mit herkömmlicher Speicherzugrifftechnik realisiert werden. Außerdem basiert in allen nachfolgend dargelegten Verfahren und Vorrichtungen die Codierung im wesentlichen auf rückgekoppelten Schieberegistern, die das erzeugende Polynom des Codes implementieren. Desweiteren sind zahlreiche verschiedene Codewortkonfigurationen möglich, bei denen die Paritätssymbole benachbart sind, jedoch anders als die Symbole niedriger Ordnung nur des Codewortes. Derartige "regelmäßige" Codewörter können einen Teil eines kompletten oder gekürzten BCH-Codes oder eventuell eines Reed- Solomon-Codes bilden.
  • BESCHREIBUNG EINES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Figur 2 zeigt einen allgemeinen Aufbau eines Codiersystems. Block 20 symbolisiert eine Datenquelle, die die Datensymbole gemäß den Anforderungen des allgemeinen Steuergerätes 28 zuführt (Steueranschlüsse sind der Kürze halber nicht dargestellt). Block 22 ist eine Quelle für Pseudosymbole, deren Zeitpunkt des Erscheinens und auch deren Informationsinhalt der allgemeinen Steuervorrichtung 28 bekannt sind. Eine besonders einfache Lösung bestände darin, daß alle Pseudosymbole einen Wert Null haben, dies ist jedoch nicht unbedingt erforderlich. Block 24 wählt gesteuert vom Gerät 28 die geeigneten Symbole von den Quellen 20 oder 22 aus, um sie dem rückgekoppelten Schieberegister 26 zuzuführen, das für jedes empfangene Symbol um eine Position vorgeschoben wird. In gewissen Situationen könnte für ein empfangenes Symbol eine Vielzahl von Symbolverschiebungen vorgenommen werden, während auch eine Rückwärtsverschiebung möglich wäre, wie nachfolgend erläutert wird. Mit dem Ausgang des Schieberegisters ist ein wahlfrei adressierbarer Speicher 30 verbunden, der eine erste separate Adressiereinheit 32 zum Schreiben und eine zweite Einheit 34 zum Lesen umfaßt. Nach dem Lesen liegen die Codewortsymbole am Ausgang 36 vor. In gleicher Weise könnte Block 20 als Doppelzugriffspeicher ausgeführt werden, der einen Eingang von außen enthält, der nicht dargestellt ist. Im Fall von Produktcodierung bzw. von verschachtelter Codierung könnte der Ausgang 36 nach dem ersten Codiervorgang zum Block 24 rückgekoppelt werden, so daß die Blöcke 20 und 30 tatsächlich ein einziger Block, nun mit nur einem Ausgang zur Ausgabe der endgültigen Codewörter und einer internen Verbindung zu Block 24 sein könnten. In diesem Fall könnte natürlich auch Block 22 einen Teil des wahlfrei adressierbaren Speichers bilden.
  • Figur 3 zeigt nun eine Schieberegisteranordnung zur Codierung des obengenannten C2-Codewortes gemäß der Compact-Disc-Norm und zur Implementierung der in bezug auf Figur 1c dargelegten Vorgehensweise. Wie gezeigt umfaßt das rückgekoppelte Schieberegister abwechselnd Speicherelemente und Exklusiv-ODER- Gatter 102...116: die Exklusiv-ODER-Gatter sind im Schieberegister enthalten. Eine Ausführungsform mit Exklusiv-ODER-Gattern, die nicht im Schieberegister enthalten sind, wird weiter unten gezeigt. Der Eingang ist bei 100. Die Rückkopplung erfolgt mittels Galois-Feld-Multiplizierelementen 118...124, wie gezeigt, deren Multiplikationsfaktoren den Koeffizienten der Terme des erzeugenden Polynoms entsprechen. Zur Codierung eines C2-Wortes führt das System nun am Eingang der Schaltung Symbole in der folgenden Reihenfolge zu: zuerst c&sub1;&sub1;, ..., c&sub0;, dann 227 Nullen und schließlich die Symbole c&sub2;&sub7;, ..., c&sub1;&sub6;. Während dieser Zuführung ist der Schalter 103 ständig geschlossen. Nachdem Symbol c&sub1;&sub6; eingetaktet wurde, wird der Schalter 103 geöffnet. Zu diesem Zeitpunkt enthält das Schieberegister von links nach rechts die Paritätssymbole c&sub1;&sub5;, ..., c&sub1;&sub2;. Infolgedessen stehen diese Paritätssymbole durch Verschieben entlang der Schieberegisterelemente für die weitere Verwendung zur Verfügung. Der Einfachheit halber wurden Takt- und Rückstellfunktionen weggelassen. Die richtige Reihenfolge im Codewort wird durch selektiven Speicherzugriff erzielt, wie es in bezug auf Figur 2 erläutert wurde. Die Potenzen von α in den Multiplizierelementen 118...124 sind genau diejenigen, die in dem erzeugenden Polynom des Codes auftreten.
  • Figur 4 zeigt ein zweites Ausführungsbeispiel eines Schieberegisters, das die Möglichkeit der Vorwärts- und Rückwärtsverschiebung bietet. Außerdem sind hier die Exklusiv-ODER-Gatter außerhalb des Schieberegisters angeordnet. Bei der Vorwärtsverschiebung erfolgt die Verschiebung der (8 Bit breiten) Symbole wie angegeben. Das Informationswort kommt am Eingang I an, zur Erzeugung des Restwertes befindet sich der Schalter S dann in der oberen Stellung. Wenn nach der Rückwärtsverschiebung der richtige Restwert erzeugt wurde, befindet sich der Schalter S in der unteren Stellung. Die Exklusiv-ODER-Gatter-Multipliziereinheiten und Verzögerungselemente sind wie in Figur 3 dargestellt. Während der Rückwärtsverschiebung entspricht der Aufbau demjenigen in Figur 5. Die Figuren sehen sich nun zwar ziemlich ähnlich (abgesehen von einer Multipliziereinheit g&sub0;, die durch g&sub0;&supmin;¹ ersetzt wurde), die oberen drei Exklusiv- ODER-Gatter und alle vier Verzögerungsstufen kehren jedoch ihre Funktionsrichtung um. Daher zeigt Figur 6 eine unkompliziertere Lösung, die weniger Hardware erfordert. Hier arbeiten die Exklusiv-ODER-Gatter und die Verzögerungsstufen in einer Richtung. Die Vorwärtsverschiebung wird durchgeführt, indem alle Mulfiplexer in ihre linke Stellung gebracht werden. Bei der Rückwärtsverschiebung befinden sich alle vier Multiplexer in ihrer rechten Stellung. Die Funktionsweise des Schalters S entspricht derjenigen in den Figuren 3 und 4. Drei der Multipliziereinheiten sind nur einmal vorhanden, lediglich diejenigen für g&sub1; und g&sub3; sind zweimal vorzusehen.
  • Figur 7 zeigt ein weiteres Ausführungsbeispiel eines Schieberegisters, im besonderen eine Ablaufsteuerung zur Durchführung des in Figur 1d gezeigten Verfahrens. Der Aufbau beinhaltet drei Busse A(190), B(192) und C(194), vier 8-Bit- Dreizustandsregister 160-166, ein 8 Bit breites Exklusiv-ODER-Gatter 198, vier Multipliziereinheiten 170-176 mit Multiplikationsfaktoren wie angegeben, einen 8 Bit breiten 5-zu-1-Multiplexer 180 mit externem Eingang 196, einen 8 Bit breiten 2-zu-1- Multiplexer oder Schalter 202 und eine weitere Multipliziereinheit 200. Wie oben sind auch hier keine Steuer- oder Synchronisationsleitungen dargestellt. Die Schaltung funktioniert in der Tat mit den gleichen Multiplikationsfaktoren wie in den Figuren 4 und 5. Wenn sich der Schalter 202 in der unteren Stellung befindet, wird das von der Stufe r0...r3 auf dem unteren Bus 192 empfangene Symbol durch das Exklusiv-ODER- Gatter 198 addiert und direkt über den Bus 194 zurück zu seiner vorherigen Speicherposition übertragen. Wenn sich der Schalter 202 in der oberen Stellung befindet, wird ein zusätzlicher Multiplikationsfaktor go eingeführt. Der obere Eingang zum Exklusiv- ODER-Gatter 198 ist mit dem Multiplexer 180 verbunden. Dadurch ist es möglich, das empfangene Symbol selektiv mit jeglichem der Faktoren g&sub0;&supmin;¹, g&sub1;g&sub0;&supmin;¹, g&sub2;g&sub0;&supmin;¹, g&sub3;g&sub0;&supmin;¹ zu zu multiplizieren. Durch die Kombination mit der Multipliziereinheit 200 ergeben sich die Multiplikationsfaktoren 1, g&sub1;, g&sub2; bzw. g&sub3;. Durch die geeignete Steuerung des Multiplexers 180 und des Schalters 202 sowie die Auswahl der geeigneten Speicherelemente 160...166 können alle Funktionen entsprechend den Figuren 4 - 6 durchgeführt werden. Falls gewünscht kann sich der Eingang der Vorrichtung bei B und der Ausgang bei C befinden. Der Einfachheit halber wurde der Multiplexer 202 nur sehr schematisch durch das Steuersignal S dargestellt.

Claims (6)

1. Verfahren zur Codierung eines regelmäßigen BCH-Codewortes, wobei das genannte Verfahren folgendes beinhaltet:
- in einer Folge von Taktzyklen alle Datensymbole eines Codeworts in ihrem zugehörigen Taktzyklus in abnehmender Reihenfolge zuführen;
- während jedes Taktzyklus den Beitrag jedes Datensymbols zu jedem Paritätssymbol einer Folge von Paritätssymbolen berechnen; dadurch gekennzeichnet, daß das genannte Verfahren für die genannte zwischen einer ersten Zeile mit Datensymbolen hoher Ordnung und einer zweiten Zeile mit Datensymbolen niedriger Ordnung eingeschobene Folge eine serielle Transposition der genannten Paritätssymbole in bezug auf die genannten Datensymbole beinhaltet, um eine Sequenz aus der genannten ersten Zeile hoher Ordnung, der genannten Folge und der genannten zweiten Zeile niedriger Ordnung zu erzeugen.
2. Verfahren nach Anspruch 1, das außerdem das "Ausstopfen" des genannten Codewortes mit zusätzlichen Null-Datensymbolen und die Zuführung jeglichen Symbols des so "ausgestopften" Codewortes in einer rotierenden Folge beinhaltet, wodurch die genannte Folge seriell zu Symbolpositionen noch niedrigerer Ordnung umgestellt wird, die jeglichem Datensymbol folgen.
3. Verfahren nach Anspruch 1, das außerdem nach der Zuführung eines Codewortes mit Pseudosymbolen anstelle der genannten Folge und Erzeugung einer transpenierten Folge von Paritätssymbolen, die nicht mit einem Datensymbol übereinstimmen, jedoch in einer Position noch niedrigerer Ordnung als jegliches Datensymbol angeordnet sind, die serielle Rückwärtstransposition jeglichen Symbols der genannten transponierten Folge in die Position der Ordnung der genannten Pseudosymbole beinhaltet, um zu diesen Pseudosymbolen hinzugefügt zu werden.
4. Verfahren nach Anspruch 3, wobei die genannte serielle Rückwärtstransposition über eine bestimmte Symbolperiode durch eine symbolweise Emulation einer Division durch den Kehrwert des erzeugenden Polynoms durchgeführt wird.
5. Vorrichtung zur Codierung eines regelmäßigen BCH-Codewortes, wobei die genannte Vorrichtung folgendes beinhaltet:
- Eingangsmittel, um in einer Folge von Taktzyklen alle Datensymbole eines Codeworts in ihrem zugehörigen Taktzyklus in abnehmender Reihenfolge zu empfangen;
- Berechnungsmittel, um während jedes Taktzyklus den Beitrag jedes Datensymbols zu jedem Paritätssymbol einer Folge von Paritätssymbolen zu berechnen; Speichermittel, um die genannten teilweise entwickelten Paritätssymbole vorübergehend zu speichern; und von den genannten Speichermitteln versorgte Ausgabemittel, um die genannten Paritätssymbole nach ihrer vollständigen Entwicklung auszugeben; dadurch gekennzeichnet, daß die Vorrichtung für die genannte zwischen einer ersten Zeile mit Datensymbolen hoher Ordnung und einer zweiten Zeile mit Datensymbolen niedriger Ordnung eingeschobene Folge Mittel zur seriellen Transposition der genannten Paritätssymbole in bezug auf die genannten Datensymbole beinhaltet, um dadurch eine Sequenz aus der genannten ersten Zeile hoher Ordnung, der genannten Folge und der genannten zweiten Zeile niedriger Ordnung zu erzeugen.
6. Vorrichtung nach Anspruch 5, die außerdem aus Mitteln ausschließlich zur Multiplikation mit einem festgelegten Faktor, Exklusiv-ODER-Additionsmitteln und Symbolspeichermitteln besteht.
DE69315018T 1992-08-21 1993-08-17 Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes Expired - Fee Related DE69315018T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP92202562 1992-08-21

Publications (2)

Publication Number Publication Date
DE69315018D1 DE69315018D1 (de) 1997-12-11
DE69315018T2 true DE69315018T2 (de) 1998-04-30

Family

ID=8210875

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69315018T Expired - Fee Related DE69315018T2 (de) 1992-08-21 1993-08-17 Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes

Country Status (4)

Country Link
US (1) US5471486A (de)
JP (1) JP3285428B2 (de)
KR (1) KR200141094Y1 (de)
DE (1) DE69315018T2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850482A (en) * 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
ATE488913T1 (de) 1998-07-27 2010-12-15 Koninkl Philips Electronics Nv Verschlüsselung von mehrwortinformationen mittels wortweiser verschachtelung
US6327691B1 (en) * 1999-02-12 2001-12-04 Sony Corporation System and method for computing and encoding error detection sequences
US20020104053A1 (en) * 2000-12-15 2002-08-01 Mike Lei In-band FEC encoder for sonet
US7571372B1 (en) * 2005-06-23 2009-08-04 Marvell International Ltd. Methods and algorithms for joint channel-code decoding of linear block codes
JP4679345B2 (ja) * 2005-11-17 2011-04-27 株式会社東芝 誤り訂正処理装置及び誤り訂正処理方法
JP4909824B2 (ja) * 2007-06-29 2012-04-04 株式会社東芝 誤り訂正処理装置及び誤り訂正処理方法
US8949703B2 (en) * 2012-03-26 2015-02-03 Xilinx, Inc. Parallel encoding for non-binary linear block code
RU2591474C1 (ru) * 2015-07-21 2016-07-20 Открытое акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" Параллельный реконфигурируемый кодер бчх кодов

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS574629A (en) * 1980-05-21 1982-01-11 Sony Corp Data transmitting method capable of correction of error
US5226043A (en) * 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system

Also Published As

Publication number Publication date
KR200141094Y1 (ko) 1999-04-01
US5471486A (en) 1995-11-28
DE69315018D1 (de) 1997-12-11
JPH06204893A (ja) 1994-07-22
KR940006615U (ko) 1994-03-25
JP3285428B2 (ja) 2002-05-27

Similar Documents

Publication Publication Date Title
DE69424877T2 (de) Reed-solomon-dekoder
DE3650335T2 (de) Rechenverfahren und -gerät für endlichfeldmultiplikation.
DE69615475T2 (de) Schaltungsvorrichtung mit einer permutationseinheit und verarbeitungsverfahren für einen stapel von elementen
DE3486200T2 (de) Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.
DE68920142T2 (de) Verfahren und Einrichtung zur Decodierung von wortgeschützten Codewörtern durch einen nichtbinären BCH-Code gegen mindestens einen Symbolfehler.
DE3854791T2 (de) Reed-Solomon Code verwendendes Fehler-Korrektur-Verfahren
DE3852423T2 (de) Kodierverfahren und Kodierer mit Reed-Solomon Fehlerkorrekturcode.
DE3854393T2 (de) Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode.
DE68914322T2 (de) Dynamische Rückkopplungsvorrichtung für einen Verschleierungsschlüsselgenerator.
DE3784459T2 (de) Arithmetische und logische einheit fuer elemente von galois-feldern.
DE69900980T2 (de) Verfahren und vorrichtung zur ausführung von verschiebungsoperationen mit gepackten daten
DE3879373T2 (de) Residuen-arithmetische Rechenschaltung.
DE69907566T2 (de) Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren
DE69117857T2 (de) Gerät und Verfahren zur Parallelgeneration von zyklischen redundanten Prüfungskoden
DE69315018T2 (de) Hardware-effizientes Verfahren und Anordnung zur Kodierung von BCH-Kodes und insbesondere Reed-Solomon-Kodes
DE19922253A1 (de) Kodiervorrichtung für RAID-6-Systeme und Bandlaufwerke
DE2159108A1 (de) Anordnung zur Erzeugung zyklischer Redundanzprüfzeichen
DE4241903C2 (de) Euklidische wechselseitige Divisionsschaltung
DE19747774A1 (de) Reed-Solomon-Decoder zur Verwendung beim verbesserten Fernsehen (ATV)
DE3122381A1 (de) Verfahren und einrichtung zur erzeugung von pruefbits zur sicherung eines datenwortes
DE3750526T2 (de) Dekodierer.
DE69327683T2 (de) Erweitertes fehlergeschütztes Kommunikationssystem
DE2230188C2 (de) Arithmetisch-logische Einheit für einen Digitalprozessor für variable Wortlängen
DE69522156T2 (de) Reed-Solomon Dekoder
EP0189734B1 (de) Verfahren und Vorrichtung für die Umwandlung einer digitalen Datensequenz in die verschlüsselte Form

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N

8328 Change in the person/name/address of the agent

Representative=s name: VOLMER, G., DIPL.-ING., PAT.-ANW., 52066 AACHEN

8339 Ceased/non-payment of the annual fee