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-KodesInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 20
- 230000017105 transposition Effects 0.000 claims description 6
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1993
- 1993-08-17 DE DE69315018T patent/DE69315018T2/de not_active Expired - Fee Related
- 1993-08-18 JP JP20411793A patent/JP3285428B2/ja not_active Expired - Fee Related
- 1993-08-20 KR KR2019930016143U patent/KR200141094Y1/ko not_active IP Right Cessation
-
1995
- 1995-02-07 US US08/385,397 patent/US5471486A/en not_active Expired - Fee Related
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 |