DE69315360T2 - Dreifach orthogonal verschachteltes Fehlerkorrektursystem - Google Patents

Dreifach orthogonal verschachteltes Fehlerkorrektursystem

Info

Publication number
DE69315360T2
DE69315360T2 DE69315360T DE69315360T DE69315360T2 DE 69315360 T2 DE69315360 T2 DE 69315360T2 DE 69315360 T DE69315360 T DE 69315360T DE 69315360 T DE69315360 T DE 69315360T DE 69315360 T2 DE69315360 T2 DE 69315360T2
Authority
DE
Germany
Prior art keywords
sequence
code
data
code words
generate
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
DE69315360T
Other languages
English (en)
Other versions
DE69315360D1 (de
Inventor
Kirk H Handley
William D Mccoy
Don S Rhines
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.)
Raytheon Co
Original Assignee
E Systems Inc
Ampex Systems 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
Application filed by E Systems Inc, Ampex Systems Corp filed Critical E Systems Inc
Publication of DE69315360D1 publication Critical patent/DE69315360D1/de
Application granted granted Critical
Publication of DE69315360T2 publication Critical patent/DE69315360T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/276Interleaving address generation
    • H03M13/2764Circuits therefore
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1866Error detection or correction; Testing, e.g. of drop-outs by interleaving
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2703Coding, 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 using interleaving techniques the interleaver involving at least two directions
    • 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/31Coding, 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 coding for error detection or correction and efficient use of the spectrum

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Radio Transmission System (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Vehicle Body Suspensions (AREA)
  • Geophysics And Detection Of Objects (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

    Technisches Fachgebiet
  • Die vorliegende Erfindung bezieht sich auf ein Fehlererfassungsund -korrektursystem für digitale Daten, die in einer Speichereinrichtung gespeichert sind oder über einen Kommunikationskanal übertragen werden und insbesondere auf ein System, das einen dreifachen, orthogonal verschachtelten Fehlerkorrekturcode für das Erfassen und Korrigieren von Fehlern in gespeicherten oder übertragenen Digitaldaten verwendet.
  • Hintergrund der Erfindung
  • Es gibt viele Anwendungen, bei denen große Mengen von digitalen Daten im wesentlichen fehlerfrei übertragen und/oder gespeichert und empfangen und/oder wiederhergestellt werden müssen. So ist es zum Beispiel unbedingt erforderlich, daß Computer-Datenbankinformationen, wie Informationen über die Sicherheit der Gesellschaft, Aktienverkäufe und Finanzdaten sowie Satellitenkommunikations- und Forschungsdaten, wie zum Beispiel seismische oder Wetterdaten akkurat übertragen und gespeichert werden.
  • Digitale Daten setzen sich normalerweise aus binären Einheiten, "Bits" zusammen, wobei eine Gruppe von bits (normalerweise 8) ein Daten-"Byte" oder ein "Zeichen" darstellt. Gruppen von Bytes (normalerweise 2) bilden ein Daten-"Wort" oder können alternativ in "Blöcken" von Daten ( Blöcke von 28 oder 32 Bytes sind gebräuchlich) angeordnet werden. Die Fehler, die typischerweise bei der Übertragung, Speicherung, Empfang und Wiederherstellung dieser Daten auftreten, unterteilen sich in zwei Typen. Der erste Typ, als Zufallsfehler oder isolierter Fehler bezeichnet, tritt in einem Einzelbit auf, wenn dort eine Substitution eines Wertes vorhanden ist, bei einem Zweiwert-Binärbitsystem, für seinen entgegengesetzten Wert. Der zweite Typ, als "Stoß"-Fehler bezeichnet, tritt auf, wenn eine kontinuierliche Folge von benachbarten bits fehlerhaft ist. Die Länge und die Häufigkeit der Stoßfehler kann entweder zufällig oder systematisch sein. In jedem Falle ist das jeweilige Auftreten dieser Fehler generell eine Funktion des verwendeten Mediums oder Kanals.
  • Die akkurate Übertragung oder Speicherung und der Empfang oder Wiederherstellung von digitalen Daten ist schon immer schwierig gewesen, weil die Medienkanäle, die für die Übertragung oder die Speicherung von Daten verwendet werden, Fehlerfaktoren aufweisen. Solche Fehler können zum Beispiel den Übergangsbedingungen in der Speichereinrichtung oder im Übertragungskanal (zum Beispiel Rauschen) zuzuschreiben sein, oder es können periodisch wiederkehrende Zustände vorhanden sein, die sich aus Defekten im Kanal, in der Speichereinrichtung oder in den Aufzeichnungsmedien ergeben. Die Existenz von Übergangsbedingungen oder Defekten führt zu Fällen, in denen die digitalen Daten nicht richtig übertragen oder aufgezeichnet werden oder nicht zuverlässig empfangen oder wiederhergestellt werden können. Beträchtliche Aufmerksamkeit wurde den Entdeckungsverfahren zur Verringerung der Übertragungs und Speicherfehler gewidmet, die typischerweise die Datenspeicherungs- und -übertragungsaktivitäten begleiten.
  • So ist es zum Beispiel nach dem Stand der Technik üblich, Fehlerkorrekturcodes (ECCs) und andere Hilfsmittel zu verwenden, um diese Fehler zu lokalisieren, ihnen entgegenzuwirken, sie zu korrigieren und/oder zu eliminieren. Solche Codes bestehen aus zusätzlichen oder redundanten Bits, die periodisch angefügt werden, um Teile des übertragenen oder des gespeicherten Datenstroms herauszutrennen. Die redundanten bits werden dem herausgetrennten Teil des Datenstroms hinzugefügt, um Codewörter zu erzeugen. Dieses gut bekannte Verfahren wird verwendet um das Auftreten von Fehlern zu zählen und es wird im allgemeinen als "Codieren" bezeichnet. Nach der Codierung sind die Zufallsfehler im übertragenen oder gespeicherten Datenstrom durch gut bekannte mathematische Hilfsmittel leicht zu ermitteln und zu korrigieren. Dieses Verfahren wird im allgemeinen mit "Decodieren" bezeichnet. Das Decodieren schließt normalerweise das Verwenden der angefügten, redundanten Bits als Paritätskontrolle für den dazugehörigen herausgetrennten Teil des Datenstromes ein, um die eingeflossenen Fehler zu erfassen und zu korrigieren.
  • Obwohl viele unterschiedliche Fehlerkorrekturcodes vorhanden sind, ist vielleicht das Reed-Salomon (R-S) Codesystem das bekannteste und im allgemeinen verwendete Zeichencodiersystem. Ein "Zeichen", wie es hierin verwendet wird, besteht aus m Bits, wobei m zwei oder mehr Bits beträgt, normalerweise acht Bits und in diesem Falle ist jedes Zeichen ein Datenbyte. Ein (N,K) R-S- Code ist ein Code, in dem K Zeichen von Anwenderdaten (Datenwort oder Codegruppe) N-K Fehlerkorrekturzeichen (Paritätskontrolle oder Code) haben, die daran angefügt sind, um ein Codewort mit einer Länge von N Zeichen zu bilden. Das sich daraus ergebende N-Zeichen-Codewort kann mindestens T Zeichen des Datenfehlers im Codewort korrigieren, wobei T= (N-K)/2 ist. So hat zum Beispiel ein (38,30) R-S-Code ein Codewort mit einer Länge von 38 Zeichen und ein Datenwort (Codegruppe) mit einer Länge von 30 Zeichen. Daher gibt es acht Paritätskontroll-(Code)-Zeichen, die es ermöglichen mindestens vier Fehler in jedem Codewort zu korrigieren.
  • Decoder für R-S-codierte Übertragungen sind im Stand der Technik gut bekannt. Diese Decoder verarbeiten empfangene Codeworte und führen die Erfassungs- und Korrekturprozesse an den Datenzeichen gemäß den Codezeichen durch, um korrigierte Codegruppen auszugeben. Nach der Korrektur werden die Paritätskontroll-(Code-)- Zeichen vom Codewort abgetrennt und das korrigierte Datenwort (die korrigierte Codegruppe) wird ausgegeben. R-S-Codes können nur T-Fehler korrigieren, weil man zwei Codezeichen braucht, um einen Fehler zu erfassen und zu korrigieren. Der R-S-Decoder kann auch innerhalb einer bekannten Wahrscheinlichkeit aufzeigen, daß die Erfassungs- und Korrekturfähigkeit des Decoders überschritten wurde, und daß noch Fehler in der Ausgabe-Codegruppe vorhanden sind. Daher weisen die R-S-Decoder auch Ausgaben aus, die aktiv werden, wenn die Fehlerkorrekturmöglichkeit des Decoders überschritten ist.
  • Die Signale, die an diesem zusätzlichen Decoderausgang erscheinen, werden als "Löschmarkierungen" bezeichnet, wobei jede Markierung mit einem Codewort verbunden ist, von dem man glaubt, daß es noch einen oder mehrere Fehler enthält. Normalerweise werden diese Löschmarkierungen durch nachfolgende Decoder verwendet, um die Korrektur der markierten fehlerhaften Daten zu unterstützen. Löschmarkierungen sind nützlich, weil sie nur ein Codewortzeichen erfordern, um einen markierten Datenfehler zu korrigieren. Die Verwendung von Löschmarkierungen durch nachfolgende Decoder kann daher die Korrekturfähigkeit des Decoders von einen Minimum von T Fehlern auf ein Maximum von 2T Fehlern erhöhen.
  • Ferner ist es im Stand der Technik gut bekannt, einen Verschachtelungsprozeß entweder vor oder nach dem Codieren zu verwenden, um einen zusätzlichen Schutz gegen eingeleitete Fehler zu gewährleisten. Das Verschachteln ist ein Prozeß, der auf der Übertragungs- oder Aufzeichnungsseite eines Systems abläuft und bei dem aufeinanderfolgende Bytes von digitalen Informationen im Originaldatenstrom voneinander getrennt werden. Dadurch werden Bytes von digitalen Informationen, die vor dem Verschachteln nicht verschachtelt waren, verschachtelt und die Ausgabe ist ein neuer Bitstrom. Das Verschachteln von Datenströmen verringert die Wahrscheinlichkeit, daß aufeinanderfolgende Bits von digitalen Informationen im Originaldatenstrom durch einen nachfolgenden Stoßfehler nachteilig beeinflußt werden, da der Stoßfehler verkettete Bytes aus verschiedenen Teilen des Originaldatenstroms beeinflusst. Beim nachfolgenden Entschachtelungsprozeß werden die Stoßfehler wirksam aufgebrochen und einzeln durch Verschachteln unverfälschter Daten von Stellen außerhalb des Stoßfehlers in den Bitstrom korrigiert.
  • Der bekannte Stand der Technik offenbart die Verwendung sowohl der Fehlerkorrekturcodierung als auch von Verschachtelungssystemen in Kombination, um einen erhöhten Schutz gegenüber Zufallsund Stoßfehlern zu sichern, die bei Datenübertragungs- und Datenspeicherungsoperationen anzutreffen sind. So beschreiben zum Beispiel Deng u.a. ein duales Verschachtelungs-Fehlerkorrektursystem in einem Beitrag mit dem Titel zuverlässigkeits und Durchsatzanalyse eines verketteten Codierungsschemas, veröffentlicht in den IEEE Transactions on Communications, 35(1987)7, Juli. Bei der Realisierung des Systems von Deng u.a. wird das Codieren des verketteten Codes in drei Schritten erreicht. Dieser Drei-Schritte-Prozeß ist in Fig. 1 des Beitrages (hierin als Fig. 1 reproduziert) dargestellt. Zunächst wird eine Datennachricht mit einer festen Anzahl von Bits in einem Codewort mit Hilfe eines ersten, äußeren Codiersystems codiert. Das Codewort wird dann verschachtelt und wird nach dem Verschachteln durch ein zweites, inneres Codiersystem codiert und die Ausgabe für die Übertragung oder Speicherung erfolgt über den Medienkanal. Ein solches verschachteltes Codiersystem wird auch als querverschachteltes Codiersystem bezeichnet und wird vorwiegend mit einem R-S-Code für das äußere und das innere Codiersystem verwendet. Systeme, wie das in Fig. 1 dargestellte, sind im Stand der Technik gut bekannt und werden normalerweise mit der Abkürzung CIRC (Cross-interleaved Reed-Solomon-Code - querverschachtelter Reed-Solomon-Code) versehen.
  • Die Verwendung von mehrfachen Codierschritten und mehrfachen Verschachtelungsschritten, einzeln oder in Kombination, um die Fehlererfassungs- und Korrekturfähigkeit zu verbessern, wird durch mehrere veröffentlichte Patente offenbart. So zeigen zum Beispiel das US Patent Nr. 3,786,439, erteilt an McDonald u.a. und das japanische Patent Nr. 55-35562 anschaulich einfache Dreifach-Codierschemata. Das an McDonals u.a. erteilte Patent offenbart ein Dreifach-Codierschema, wobei ein erster Codierer an Segmenten des Datenstromes arbeitet, ein zweiter an Gruppen von codierten Segmenten und ein dritter an den codierten Gruppen. Im japanischen Patent werden zwei Fehlerkorrekturcodes an einen Teil des Datenstromes angefügt, der dual codierte angefügte Datenstrom wird weiter durch einen dritten Codierer für das Anfügen eines dritten Codes und die Ausgabe codiert. Die US Patente Nr. 4,730,321, erteilt an Machado und 4,567,594, erteilt an Deodhar, werden als anschaulich fur einfache Dreifach-Verschachtelungsysteme angesehen. Die Verwendung von mehrfachen Codier- und Verschachtelungsschritten gewährleistet eine verbesserte Erfassungs- und Korrekturfähigkeit für die vorhandenen Zufalls- und Stoßfehler.
  • Im Fachgebiet ist es gut bekannt, vor dem Ausgeben des codierten und/oder verschachtelten Datenstromes eine Medienkanalcodiereinrichtung für den Datenstrom zu verwenden, um die Fehler zu zählen, die typischerweise durch die Verwendung bestimmter Übertragungs- oder Aufzeichnungsmedien (zum Beispiel ein digitales Bandaufzeichnungsgerät) eingeführt werden. Das Medienkanalcodierschema ist normalerweise ein Lauflängenbegrenzungscode, der gegen Datensequenzfehler schützt. Ein solches Medienkanalcodierschema, das bekannt ist und im Fachgebiet umfassend angewendet wird, wird als Miller-Squared-Codierung bezeichnet, wie sie in der Neuauflage des US-Patents Nr. 31 311, erteilt an Miller, beschrieben ist. Der konventionelle Miller-Squared-Decoder formt einfach (decodiert) den im Medienkanal codierten Datenstrom für die Ausgabe um.
  • Der Mangel, der mit diesen Lauflängenbegrenzungs-Medienkanaldecodern verbunden ist, ist der, daß der dekodierte Datenstrom nicht auf Fehler kontrolliert wird, die durch den Medienkanal eingeführt werden. Somit gehen diese unerkannten Fehler auf die nachfolgenden Decodier- und Entschachtelungsschritte über. Wegen der Begrenzungen der nachfolgenden Fehlerkorrekturdecoder, können die unerkannten Datenfehler, die durch den Medienkanal eingeführt werden, nicht erfaßt werden oder sogar, wenn sie erfaßt sind, nicht korrigiert werden.
  • Zusammenfassend kann gesagt werden, je mehr Fehlerkorektur-Codezeichen den Daten hinzugefügt werden, desto genauer ist die Fähigkeit des Systems, die eingeleiteten Fehler zu erfassen und zu korrigieren. Der Hauptmangel, der mit den Mehrfach-Codierschemata, wie z.B. dem CIRC-Schema, im Zusammenhang steht, ist jedoch, daß jeder Codierschritt redundante Zeichen zum Datenstrom hinzufügt, die Platz beanspruchen, der ansonsten für die Benutzerdaten zur Verfügung stehen würde. Der gegenwärtige Stand der Technik bei den Fehlerkorrekturschemata enthält kein Schema, das große Mengen von Digitaldaten für die Übertragung oder Speicherung genau behandelt und dabei die Anzahl der einbezogenen Zeichen für die Fehlererfassung und Fehlerkorrektur minimiert.
  • US-A-4, 802,170 offenbart eine Mehrstufen-Verschachtelungsmatrix, die über eine Speichermatrix arbeitet, um benachbart angeordnete Bits von Bytes digitaler Information in einem umorganisierten Bitstrom zu trennen. Das Patent legt dar, daß zumindestens zwei Verschachtelungsstufen erforderlich sind, um eine gewünschte Bit-Trennungsentfernung gleich der Bitkapazität einer Anzahl von einer der Matrixspalten oder Matrixzeilen zur erhalten, wobei diese Anzahl gleich der Anzahl der benachbart angeordneten Bits in jedem Byte der Digitalinformation ist.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung stellt ein Verfahren zur Verfügung, wie es in Patentanspruch 1 oder 7 beansprucht ist und eine Vorrichtung, wie sie in Anspruch 5 oder 10 beansprucht ist.
  • Gemäß den umfassenderen Aspekten der vorliegenden Erfindung wird der zu übertragende oder zu speichernde Datenstrom durch eine erste Fehlerkorrektureinrichtung codiert, um eine Folge von Codewörtern zu erzeugen. Die Codewörter werden in eine Verschachtelungseinrichtung eingegeben, in der die Codewörter orthogonal verschachtelt werden. Eine zweite Fehlerkorrekturcodiereinrichtung codiert dann die Folge von Codewörtern. Die Codewörter werden durch eine zweite Verschachtelungseinrichtung weiterbearbeitet und nachfolgend durch eine dritte Fehlerkorrekturcodiereinrichtung codiert. Die dreifach orthogonal verschachtelten, codierten Daten sind dann für die Übertragung oder Speicherung über einen gewählten Medienkanal bereit. Auf der Empfangsoder Wiedergabeseite des Systems werden die Daten aus dem Medienkanal wiederhergestellt und durch eine entsprechende Folge von Dekodiereinrichtungen und Entschachtelungseinrichtungen in umgekehrter Reihenfolge zur Übertragungs und Speicherseite verarbeitet, um den Benutzerdatenstrom wiederherzustellen und alle eingeleiteten Fehler zu korrigieren.
  • Insbesondere wird der zu übertragende oder zu speichernde Datenstrom in das System eingegeben und zunächst durch eine erste Fehlerkorrekturcodiereinrichtung verarbeitet, der die Rohdaten in eine Folge von Codegruppen teilt, die aus K Zeichen pro Gruppe bestehen, wobei jedes Zeichen aus acht Datenbits (ein Byte) besteht. Die erste Codiereinrichtung erzeugt ein erstes Fehlerkorrekturzeichen (C3), das seiner zugehörigen Codegruppe mit einer Zeichenlänge K angefügt wird, um ein Codewort mit einer Zeichenlänge N zu erzeugen. Die C3-Fehlerkorrekturzeichen, die für jedes Codewort erzeugt werden, können bis zu T fehlerhaft übertragene oder gespeicherte Zeichen korrigieren, wobei T=(N- K)/2 ist.
  • Nachdem die C3-Fehlerkorrekturzeichen angefügt worden sind, werden die erzeugten Codewörter in den spalten einer äußeren Verschachtelungseinrichtung als eine erste Folge von zweidimensionalen "Datenebenen" gespeichert. Somit besteht jede Spalte der äußeren Verschachtelungseinrichtung aus einer ganzen Zahl von C3-codierten Codeworten mit einer Zeichenlänge N, wobei jede Zeile jeder Spalte eine ganze Zahl von Einzeldatenzeichen oder Korrekturzeichen enthält.
  • Vor dem Erzeugen des nächsten Fehlerkorrekturzeichens (als C2- Zeichen bezeichnet) werden die Zeilen der ersten Folge der Datenebenen durch die äußere Verschachtelungseinrichtung orthogonal umgeordnet, um eine zweite Folge von Datenebenen zu erzeugen. Eine Verschachtelung in dieser Weise schützt die Daten wegen großer Stoßfehler gegen einen Verlust. Während dieses orthogonalen Umordnungsprozesses, behält jede Zeile vorzugsweise ihre Zeilenposition in der zweiten Folge der Datenreihen bei. Wenn zum Beispiel die erste Zeile der ersten Datenebene der ersten Folge umgeordnet ist, belegt die erste Zeile die erste Zeile in der bezeichneten Bestimmungsdatenebene der zweiten (umgeordneten) Folge.
  • Nach der äußeren orthogonalen Verschachtelung werden die Spalten der Codewörter aus der äußeren Verschachtelungseinrichtung ausgegeben und durch eine zweite Fehlerkorrekturcodiereinrichtung verarbeitet, wobei das zweite Fehlerkorrekturzeichen (C2) jedem orthogonal verschachtelten Codewort angefügt wird. Die C2-codierten Codewörter werden dann in einer zweiten (inneren) Verschachtelungseinrichtung in die Spalten einer Datenebene geschrieben. Die Zeilen der Datenebene in der inneren Verschachtelungseinrichtung werden dann hintereinander ausgegeben, um einen Verschachtelungsprozeß für die C2-codierten Codewörter durchzuführen. Die zweite Verschachtelungsstufe gewährleistet einen Schutz gegen Stoßfehler mäßiger Länge.
  • Nach der inneren Verschachtelung werden die Zeichen in der zweiten Folge der Datenebenen durch eine dritte Fehlerkorrektureinrichtung als Codewörter verarbeitet. Durch diese Verarbeitung wird den Zeichenzeilen quer zu den anderen Codezeichen ein drittes Fehlerkorrekturzeichen (C1) angefügt, um eine abschließende Folge von Datenebenen der C1-codierten Codewörter zu erzeugen. Die C1-codierten Daten werden dann zur Übertragung oder Aufzeichnung durch den Medienkanal geleitet.
  • Eine verstärkte Fehlererfassung und Fehlerkorrektur wird vor der Eingabe in den Medienkanal durch weitere Codierung der abschließenden Folgen von Datenebenen zur Verfügung gestellt, wobei ein Lauflängenbegrenzungscode, wie zum Beispiel ein Miller-Squared Code verwendet wird. Wenn eine Lauflängenbegrenzungscodiereinrichtung verwendet wird, muß eine entsprechende Decodiereinrichtung auf der Empfangs- oder Wiedergabeseite verwendet werden. Die in der vorliegenden Erfindung verwendete Decodiereinrichtung ist eine verbesserte Miller-Squared-Decodiereinrichtung, die Folgeverletzungsmarkierungen (S.V.) erzeugt, die das Auftreten von verletzenden Datenfolgen im Datenstrom signalisieren, die durch den Medienkanal eingeführt wurden. Diese Verletzungsmarkierungen werden von den Decodiereinrichtungen auf der Empfänger- oder Wiedergabeseite als Löschmarkierungen verwendet, um die weitere Erfassung und Korrektur der Fehler im Datenstrom zu unterstützen.
  • Auf der Empfänger- oder Wiedergabeseite empfängt eine erste Fehlerkorrekturdecodiereinrichtung die C1-codierten Codewörter und alle erzeugten Folgeverletzungsmarkierungen des Medienkanals, korrigiert als vorhandene und korrigierbare fehlerhafte Datenzeichen und trennt die C1-Codezeichen ab. Mit den Folgeverletzungsmarkierungen braucht die C1-Decodiereinrichtung nur ein C1-Codezeichen, um den markierten Fehler zu korrigieren und nicht zwei, wie es für die Korrektur der vorhergehenden unerkannten Fehler erforderlich war. Es werden nicht alle vorhandenen und in den empfangenen oder wiedergegebenen Codewörtern erfaßten Fehler durch die C1-Decodiereinrichtung korrigiert. Für jeden erfaßten, nicht korrigierbaren Fehler, der von der C1- Decodiereinrichtung erfaßt wurde, wird jedoch eine C1-Fehlermarkierung ausgegeben, um die Lage jeder Zeile zu erkennen, die noch einen oder mehrere unkorrigierte Fehler enthält. Die Folgeverletzungsmarkierungen und C1-Fehlermarkierungen werden dann logisch verknüpft, um eine zeichengenaue C1.S.V-Fehlermarkierung zu erzeugen, die speziell und präzise die von der C1-Decodiereinrichtung nicht korrigierten enthaltenen Fehler aufzeigt (markiert).
  • Die C1-decodierten Codewörter (C1-Codegruppen) werden dann als eine Datenebene zusammen mit den C1.S.V.-Fehlermarkierungen in die Zeilen der inneren Entschachtelungseinrichtung geschrieben. Die innere Entschachtelungseinrichtung entschachtelt die Daten durch sequentielle Ausgabe der Datenspalten. Die durchgeführte Entschachtelung ist der Verschachtelung entgegengesetzt, die durch die innere Verschachtelungseinrichtung auf der Übertragungsseite des Systems durchgeführt wurde. Die Spalten der C1- decodierten Codewörter (C1-Codegruppen) werden ausgegeben, so daß die C2- und C3-Fehlerkorrekturzeichen an die richtigen C2- Codegruppen in einer Reihenfolge angefügt werden, die der Datenausgabe von der C2-Codiereinrichtung auf der Übertragungs-/Aufzeichnungsseite entspricht. Auch die entschachtelten C1.S.V- Fehlermarkierungen, die Stellen in jeder Spalte (Zeilenlage) anzeigen, die einen von der C1-Dekodiereinrichtung unkorrigierten Fehler enthalten, sind in jeder Ausgabespalte enthalten.
  • Die Daten werden als nächstes durch die C2-Decodiereinrichtung verarbeitet, die C2-Codezeichen und die C1.S.V.-Fehlermarkierungen verwendet, um soviele Fehler wie möglich zu erfassen und zu korrigieren. Die C2-Decodiereinrichtung trennt dann die C2-Codezeichen von den Codewörtern ab und gibt die C3-Codegruppen aus. Die Reihe der Fehler, die durch die C2-Decodiereinrichtung korrigierbar sind entspricht den C1.S.V-Fehlermarkierungen, da die markierten Fehler nur ein Codezeichen für die Korrektur erfordem. Wenn entweder ein markierter Fehler oder ein erfaßter C2- Fehler durch die C2-Dekodiereinrichtung nicht korrigiert wurde, wird eine C2-Fehlermarkierung ausgegeben, um die Spalten oder die Codewörter zu bezeichnen, die erfaßte, jedoch nicht korrigierte Fehler enthalten. Die C1.S.V.- und die C2-Fehlermarkierungen werden dann logisch verknüpft, um ein akkurates C1.C2- Markierungszeichen zu erzeugen, das die nachfolgenden C3-Decodierungseinrichtungszeichen erkennt, die fehlerhaft bleiben.
  • Die decodierten C2-Codewörter (C2-Codegruppen) werden dann zusammen mit den zeichengenauen C1.C2-Markierungen als eine Folge von Datenebenen in die Spalten einer äußeren Verschachtelungseinrichtung geschrieben. Die äußere Verschachtelungseinrichtung ordnet dann die Zeilen der orthogonal verschachtelten Folge von Datenebenen um, um Datenebenen zu erzeugen, die der ersten Folge von Datenebenen der äußeren Verschachtelungseinrichtung auf der Übertragungs-/Aufzeichnungsseite entsprechen. Die decodierten C2-Codewörter (C2-Codegruppen), die in den äußeren, entschachtelten Datenebenen gespeichert sind, werden nach Spalten in Folge an eine C3-Decodiereinrichtung zusammen mit den angefügten C3-Fehlerkorrekturzeichen ausgegeben.
  • Da jede Spalte des inneren entschachtelten Feldes durch die C3- Decodiereinrichtung verarbeitet wird, werden auch die zeichengenauen C1.C2-Fehlermarkierungen eingelesen, um jedes Zeichen in den C3-Codewörtern zu erkennen, die einen erfaßten, jedoch unkorrigierten Fehler enthalten. Die C3-Decodiereinrichtung erfaßt und korrigiert dann so viele enthaltene Fehler wie möglich, trennt die C3-Codezeichen von den Codewörtern ab und gibt einen Datenstrom aus, der im wesentlichen, wenn nicht sogar exakt, den Original-Benutzerdatenzeichen (Datenstrom) der ersten Eingabe in die C3-Codiereinrichtung auf der Übertragungs-/Aufzeichnungsseite entspricht.
  • Mit dem dreifach orthogonal verschachtelten Fehlerkorrekturprozeß, der die Medienkanal-S.V-Markierungen, die C1.S.V.-Markierungen und die C1.C2-Markierungen verwendet, wird die Menge der korrigierbaren Datenzeichen von T auf 2T ausgeweitet und maximiert, da jede Fehlerkorrektur-Decodiereinrichtung vorteilhafterweise Löschmarkierungen verwendet, um eine Fehlerkorrektur durch Verwendung eines einzelnen Codezeichens zu gestatten. Somit ist der korrigierte Datenstrom als Ausgabe aus dem System im wesentlichen fehlerfrei. Alle Zeichen, die nach dem C3-Decodierungs- und Korrekturprozeß noch Fehler enthalten, können durch die C3-Decodiereinrichtung für die weitere Verarbeitung markiert werden, wenn es erforderlich ist.
  • Die Qualität und Genauigkeit des Datenstromes, der über den Medienkanal gespeichert oder übertragen wird, wird ferner durch die Verwendung eines Lese-Schreibschaltkreises für das gleichzeitige Lesen und Schreiben verbessert, der mit dem dreifach orthogonal verschachtelten Fehlerkorrektursystem der vorliegenden Erfindung gekoppelt ist. Mit dem Lese-Schreibschaltkreis für das gleichzeitige Lesen und Schreiben wird die Folge der dreifach orthogonal verschachtelten, codierten Datenebenen sofort gelesen und decodiert, wenn sie in den Medienkanal geschrieben werden und die Anzahl der C1- und C2-Fehlermarkierungen wird gezählt. Wenn die Anzahl der gezählten Markierungen ein vorbestimmtes Schwellenniveau überschreitet, das festgelegt ist, um eine Grenze für die Übertragungs- oder Wiedergabezerstörung zur Verfügung zu stellen, bewirkt der Lese-Schreibschaltkreis für das gleichzeitige Lesen und Schreiben, daß der Fehler enthaltende Datenblock in den Medienkanal neu eingeschrieben wird, indem die Übertragungs- oder Aufzeichnungsseite so geschaltet wird, daß sie erneut liest, erneut codiert und die fehlerhaften Daten erneut überträgt oder erneut aufzeichnet.
  • Kurze Beschreibung der Zeichnungen
  • Ein vollständigeres Verständnis des dreifach orthogonal verschachtelten Fehlerkorrektursystems der vorliegenden Erfindung ist unter Bezugnahme auf die nachfolgende ausführliche Beschreibung in Verbindung mit den dazugehörigen Zeichnungen gegeben.
  • Die Zeichnungen zeigen in
  • Fig. 1 ein Blockdiagramm eines bekannten kreuzverschachtelten (CIRC) Fehlerkorrektur-Codiersystems;
  • Fig. 2 ein Blockdiagramm einer Ausführung für das dreifach orthogonal verschachtelte Fehlerkorrektursystem der vorliegenden Erfindung;
  • Fig. 3 eine bildhafte Darstellung der Folgen von Datenebenen in der äußeren Verschachtelungseinrichtung, in der die einzeln C3- codierten Codewörter in aufeinanderfolgenden, benachbarten Spalten gespeichert werden;
  • Fig. 4A und 4B bildhafte Darstellungen der Folgen von Datenebenen, die das orthogonale Umordnen zeigen;
  • Fig. 5 eine bildhafte Darstellung eines Datenblockes, die eine spezielle orthogonal umordnende Folge zeigt, die Zeile zwischen den Ebenen beibehält und die mit Hilfe der äußeren Verschachtelungseinrichtung implementiert wird;
  • Fig. 6 ein Blockdiagramm des Schaltkreises der äußeren Verschachtelungseinrichtung;
  • Fig. 7A und 7B Blockdiagramme für den Schaltkreis der inneren Verschachtelungseinrichtung;
  • Fig. 8 eine bildhafte Darstellung einer Datenebene von C2-codierten Wörtern als Ausgabe von der C2-Codiereinrichtung und als Eingabe in Pufferspeicher des Schaltkreises der inneren Verschachtelungseinrichtung;
  • Fig. 9 eine bildhafte Darstellung einer Datenebene von C1-codierten Codewörtern als Ausgabe durch die C1-Codiereinrichtung;
  • Fig. 10 ein Schema eines Magnetbandes mit Schneckenaufzeichnung;
  • Fig. 11 eine bildhafte Darstellung einer Datenebene mit Löschmarkierungen als Ausgabe von der C1-Decodiereinrichtung;
  • Fig. 12 entweder ein einzelnes C1- oder C2-Codewort;
  • Fig. 13A bis 13F die Verarbeitungsstufen für die C1- und C2- Codewörter und Löschmarkierungen, um eine zeichengenaue Markierung zu erzeugen;
  • Fig. 14 eine bildhafte Darstellung einer Datenebene als Eingabe in die äußere Entschachtelungseinrichtung;
  • Fig. 15 ein Blockdiagramm, das eine andere Ausführung des Systems ohne Medienkanalcodierung und -decodierung zeigt;
  • Fig. 16 ein Blockdiagramm, das die bevorzugte andere Ausführung des Systems zur Maximierung der Fehlerkorrekturfähigkeit zeigt und das eine Funktion des gleichzeitigen Lesens und Schreibens ermöglicht;
  • Fig. 17A ein Blockdiagramm einer M²-Decodiereinrichtung gemäß der vorliegenden Erfindung mit Schaltkreisen für die Erfassung und Markierung von kurz auftretenden Fehlern;
  • Fig. 17B ein Blockdiagramm für den Synchronisierungsschaltkreis für eine M²-Decodiereinrichtung;
  • Fig. 18 ein Taktdiagramm für den Schaltkreis von Fig. 17A;
  • - Fig. 19 ein Blockdiagramm einer M²-Decodiereinrichtung gemäß der folgenden Erfindung mit Schaltkreisen für die Erfassung und Markierung langer Fehler;
  • Fig. 20 ein Taktdiagramm für den Schaltkreis von Fig. 19;
  • Fig. 21 ein Blockdiagramm für eine M²-Decodiereinrichtung gemäß der vorliegenden Erfindung mit Schaltkreisen für die Erfassung und Markierung von Fehlern, die in Synchronfolgen auftreten; und
  • Fig. 22 ein Taktdiagramm für den Schaltkreis von Fig 21.
  • Ausführliche Beschreibung der Zeichnungen
  • Wir beziehen uns nun auf Fig. 1. Dort ist ein zweifach verschachteltes Fehlerkorrektursystem nach dem Stand der Technik dargestellt. Bei der Implementierung des zweifach verschachtelten Fehlerkorrektursystrems wird das Codieren des verketteten Codes auf der Übertragungs- oder Aufzeichnungsseite in drei Schritten erreicht. Zuerst wird eine Datennachricht mit einer festen Anzahl von Bits durch eine erste, äußere Codiereinrichtung 2 codiert. Das Codewort wird dann durch eine Verschachtelungseinrichtung 4 verschachtelt. Abschließend wird das Codewort durch eine zweite, innere Codiereinrichtung 6 codiert und über den Medienkanal 8 zwecks Übertragung oder Speicherung übertragen. Auf der Empfangs- oder Wiedergabeseite erfolgt das Decodieren der übertragenen Daten durch Empfang der Daten aus dem Medienkanal 8 und Durchführung von entsprechenden Decodier- und Entschachtelungsschritte in einer komplementären Dreistufenform. Ein solches verschachteltes Codiersystem wird vorwiegend mit einem R-S-Codierschema für die inneren Codier- und Decodiersysteme verwendet und wird als kreuzverschachteltes Reed-Solomon- Codiersystem (CIRC) bezeichnet. Die Fehlererfassungs- und Korrektur-Codierungs-(undDecodierungs-)-Prozesse und Schaltkreise sind Stand der Technik.
  • Eine (N,K) R-S-Codiereinrichtung verwendet eine Codegruppe aus K Zeichen und berechnet dann die N-K-Fehlerkorrekturcodezeichen und fügt sie an, um ein Codewort mit einer Länge von N Zeichen zu erzeugen. Die Codezeichen werden in bekannter Weise unter Verwendung von spezifizierten (Codierungs-)Polynomen und Galois- Feldern erzeugt, wie es im US Patent 4,567,594, erteilt an Deodhar, beschrieben ist. Die angefügten Codezeichen ermöglichen die Fähigkeit des Erfassens und der Korrektur von T-Fehlern im Codewort, wobei T = (N-K)/2 ist. Die Korrektur von mehr als T Fehlern (bis zu einem Maximum von 2T Fehlern) ist bei Verwendung von Löschmarkierungen möglich, wie es hierin beschrieben wird.
  • Wir beziehen uns nun auf Fig. 2, 15 und 16. Dort sind Blockdiagramme für verschiedene Ausführungen des dreifach verschachtelten Fehlerkorrektursystems der vorliegenden Erfindung dargestellt. Fig. 16 zeigt eine bevorzugte Ausführung zur Gewährleistung eines maximalen Schutzes enthaltene Fehler und der Korrektur der enthaltenen Datenfehler. Die dargestellten Systeme enthalten jeweils eine Übertragungs oder Aufzeichnungsseite oben in jeder Figur und eine Empfangs- oder Wiedergabeseite unten in jeder Figur. Die Kommunikation zwischen jeder Systemseite er folgt über einen Medienkanal rechts in jeder Figur. Dabei handelt es sich normalerweise um den Medienkanal, der die Fehler in die Datenübertragung einbringt.
  • Wir beziehen uns nun speziell auf Fig. 2. Die Benutzerdaten für den Empfang oder für die Speicherung werden auf der Übertragungs/Aufzeichnungsseite des Systems von einer Datenquelle auf der Leitung 10 empfangen. Die Benutzerdaten sind im allgemeinen ein Strom von 8-Bit-Zeichen, die im Parallelformat empfangen werden. Es ist jedoch so zu verstehen, daß auch Daten in anderen Formaten, z.B. einem seriellen Format, empfangen und durch das System verarbeitet werden können.
  • Auf der Übertragungs-/Aufzeichnungsseite des Systems werden drei orthogonal verschachtelte Sätze von Fehlerkorrekturcodes ((C3, C2, C1) berechnet und den Benutzerdaten angefügt. Diese drei Fehlerkorrekturcodes befinden sich im Zeichenformat und werden Gruppen von Benutzerdatenzeichen oder anderen Codegruppen angefügt, die vom System gebildet werden, um Codeworter zu erzeugen. Jedes Fehlerkorrekturcodezeichen wird durch eine Codiereinrichtung erzeugt, die ein eindeutiges Codezeichen gemäß den bekannten Verfahren erzeugt, wobei die Nutzerdatenzeichen in jeder Gruppe und ein spezifisches Codierpolynom verwendet werden.
  • Die Nutzerdatenzeichenstromeingabe auf Leitung 10 für die Übertragung oder Speicherung wird zunächst durch eine außere Codiereinrichtung 12 in eine Folge von Benutzercodegruppen unterteilt, wobei jede Gruppe eine vorbestimmte Menge von Benutzerdaten im Zeichenformat enthält. Die Länge jeder Codegruppe von Benutzerdaten, angegeben in der Anzahl von Zeichen, wird bestimmt, durch das System festgesetzt und kann in die äußere Codiereinrichtung 12 programmiert werden.
  • Jede Benutzerdatencodegruppe in der Benutzerdatenfolge wird dann durch die äußere Codiereinrichtung 12 verarbeitet, die einen ersten Fehlerkorrekturcode (hierin nachfolgend als C3-Code be zeichnet) in Form von einem oder mehreren Zeichen berechnet, der Benutzerdatencodegruppe angefügt wird, um ein C3-codiertes Codewort zu erzeugen. Die äußere Codiereinrichtung ist vorzugsweise eine (N,K)-Reed-Solomon-Codiereinrichtung. Es kann sich dabei jedoch um jedes andere Codiersystem oder jede andere Codiereinrichtung handeln, die Fehlererfassungs- und -korrekturzeichen, basierend auf einem Teilsatz (Codegruppe) der Benutzerdatenzeichen, erzeugt und anfügt.
  • Die Ausgabe aus der äußeren (C3) Codiereinrichtung 12 auf der Leitung 14 besteht aus einer Folge von C3-codierten Codewörtern (Benutzercodegruppe plus C3-Codezeichen). Die Folge von C3-Codewörtern auf der Leitung 14 wird in einem zweidimensionalen Speicherfeld einer äußeren Verschachtelungseinrichtung 16 als eine erste Folge von Datenebenen gespeichert. Jede Datenebene umfaßt m Spalten, wobei jede Spalte n Elemente oder Zeilen enthält. Es ist natürlich so zu verstehen, daß sich "n" auf die Anzahl von Elementen in jeder Spalte des Feldes bezieht und "N" auf die Anzahl der Zeichen in einem Codewort und sie nicht unbedingt die gleiche Zahl darstellen. In der bevorzugten Ausführung der Erfindung ist jedoch die Anzahl der Zeichen "N" in einem Codewort gleich der Anzahl der Zeilen "n". Somit ist die Folge von C3- Codewörtern sequentiell, ein Codewort pro Zeile, in die benachbarten Spalten der nachfolgenden Datenebenen geschrieben. Wenn man zum Beispiel annimmt, daß eine Codefolge 20 Codewörter enthält, jedes Wort 15 Zeichen hat und ein Speicherbereich zwei Datenebenen speichert, weist jede Ebene zehn Spalten (m=10) und fünfzehn Zeilen (n=15) auf. Bei diesem Beispiel würden die ersten zehn Codewörter in der Folge in die zehn Spalten der ersten Datenebene, ein Zeichen pro Zeile, 15 Zeichen (ein Codewort) pro Spalte, während die zweiten zehn Codewörter in gleicher Weise in die zehn Spalten der zweiten Datenebene geschrieben werden.
  • Der von der Verschachtelungseinrichtung 16 durchgeführte Speicherprozeß kann unter Bezugnahme auf Fig. 3 besser verstanden werden, die eine Folge von drei Datenebenen in der äußeren Verschachtelungseinrichtung 16 darstellt, wobei jede Datenebene Spalten 18 und Zeilen 20 hat. Die Zeilen 20 jeder Spalte 18 enthalten die Benutzerdatenzeichen 22 und die angefügten C3- Fehlerkorrekturcodezeichen 24. Das erste C3-Codewort in der Folge ist in der ersten Spalte der ersten Datenebene 28 gespeichert. Die folgenden C3-Codewörter in der Folge von C3-codierten Codewörtern werden sequentiell in gleicher Weise von links nach rechts in den restlichen Spalten 18 in der ersten Datenebene 28 gespeichert. Nachdem die erste Datenebene 28 mit C3-Codewörtern in der beschriebenen Weise gefüllt ist, geht die äußere Verschachtelungseinrichtung 16 zur sequentiellen Speicherung der folgenden C3-Codewörter in den nächsten angrenzenden Datenebenen 30 und 32 über.
  • Der Zweck der äußeren Verschachtelungseinrichtung 16 in Fig. 2 ist das orthogonale Umordnen (Verschachteln) der Zeilen der gespeicherten Folgen von Datenebenen, um eine zweite Folge von Datenebenen zu erzeugen. Ein in dieser Weise durchgeführtes Verschachteln bietet Schutz gegen sehr große Fehler vom Stoßtyp durch Verkettung nichtbenachbarter Codewörter und weit getrennten benachbarten Codewörtern. Ein besseres Verständnis des orthogonalen Verschachtelungsprozesses wird unter Bezugnahme auf die nachfolgende Beschreibung in Verbindung mit den Darstellungen in Fig. 4A und 4B erreicht.
  • Jede in Fig. 4A dargestellte Datenebene umfaßt eine Anzahl von Zeilen der Benutzerdatenzeichen und eine Anzahl von Zeilen der C3-Codezeichen, die während des C3-Codierschrittes erzeugt wurden. Den Datenebenen sind die Farben Rot, Blau und Grün zugeordnet, so daß der orthogonale Zeilenumordnungsprozeß leichter beschrieben und deutlicher beobachtet werden kann. Die Zeilen der roten Datenebene 40 sind sequentiell mit R1, R2. . .Rn bezeichnet. Das gleiche gilt für die Zeilen der blauen Datenebene (Bn) 42 und der grünen Datenebene (Gn) 44. Die Zeilen der Fehlerkorrekturcodezeichen sind fortlaufend entsprechend den Benutzerdatenzeichenzeilen bezeichnet, weil die C3-Paritätszeichen und die Datenzeichen von der Verschachtelungseinrichtung 16 gleich behandelt werden.
  • Das orthogonale Verschachteln der Zeilen in den Datenebenen erfolgt durch die äußere Verschachtelungseinrichtung 16 durch einen Zeilenumordnungsverschachtelungsprozeß, der die Zeilen zwischen den Datenebene (Umordnen zwischen den Ebenen) umordnet und nicht innerhalb einer einzelnen Datenebene (Umordnen innerhalb der Ebene). Nach einem vorbestimmten Umordnungsalgorithmus zwischen den Ebenen, der in einer Nachschlagetabelle in der äußeren Verschachtelungseinrichtung 16 gespeichert ist, werden die einzelnen Zeilen der Datenebenen ausgewählt und in eine vorbestimmte andere Datenebene verschoben, um eine Zeile in dieser Ebene zu verschieben und zu ersetzen.
  • Dieser Umordnungsprozeß zwischen den Ebenen erzeugt eine neue (zweite) Folge von Datenebenen (siehe Fig. 4B), wobei jede Datenebene aus Zeilen von Zeichen besteht, die an verschiedenen Höhen aus einer Anzahl von Datenebenen in der ersten Folge entnommen wurden. Somit ist jede Datenebene in der neuen Anzahl von Datenebenen orthogonal aus den Ebenen in Fig. 4A verschachtelt und umfaßt eine Mischung von roten, grünen und/oder blauen Zeilen. Der Ausdruck "orthogonale Verschachtelung" wird verwendet, um diesen Umordnungsalgorithmus zu beschreiben, weil die z-Achse, über die Zeilen umgeordnet sind (zwischen den Ebenen) orthogonal zur x-y-Ebene liegt, die jeder Datenebene, aus der die Zeilen entnommen wurden, koplanar ist.
  • In der bevorzugten Ausführung der Erfindung behält der orthogonale Umordnungsalgorithmus zwischen den Zeilen die gleiche Zeilenposition für jede umgeordnete Zeile nach der Übertragung in die neue Anzahl der Datenebenen bei. Das ist am besten in Fig. 48 dargestellt, in der eine erste Folge von roten, blauen und grünen Datenebenen (Bezugszahlen 40, 42 bzw. 44) nach der orthogonalen Umordnung zwischen den Ebenen, ausgeführt durch die äußere Verschachtelungseinrichtung 16, gezeigt ist. Die erste Datenebene 46 in Fig. 48 (zweite Folge von Datenebenen, der roten Datenebene 40 entsprechend) umfaßt Zeilen, die aus jeder Datenebene in Fig. 4A entnommen sind. Wie daraus ersichtlich ist, hat jede umgeordnete Zeile ihre gleiche Zeilenposition beibehalten. So enthält zum Beispiel die zweite Zeile 48 in der orthogonal umgeordneten Datenebene 46 die zweite Zeile der blauen Datenebene 42 (B2). Gleichermaßen enthält die sechste Zeile 50 die sechste Zeile der grünen Datenebene 44 (G6). Ein gleiches Umordnen entsprechend dem Umordnungsalgorithmus erfolgt für die Zeilen, die C3-Codezeichen enthalten und daher verbleiben die Codezeichen, selbst nach der orthogonalen Verschachtelung, unten in den Datenebenen.
  • Der in Fig. 5 dargestellte Datenwürfel 52 zeigt einen speziellen Umordnungsalgorithmus zwischen den Ebenen, der die Zeilenposition beibehält. Es ist natürlich so zu verstehen, daß auch andere Umordnungsalgorithmen verfügbar sind. Der Datenwürfel 52 enthält eine Anzahl von Datenebenen, die Folge der Datenebenen in der äußeren Verschachtelungseinrichtung 16 darstellen, wobei nur die ersten drei, die den roten (40), blauen (42) und den grünen (44) Datenebenen von Fig. 4A entsprechen, gezeigt sind. Weiterhin ist eine Diagonalebene 54 dargestellt, die Umordnungsfolge oder den Algorithmus für die Verteilung der Zeilen einer gewählten Datenebene über den Datenwürfel 52 darstellt. Wie gezeigt, stellt die Diagonalebene 54 eine Verteilung der Zeilen der ersten (roten) Datenebene 40 dar. Demgemäß verbleibt die erste Zeile (R1) an der oberen vorderen Kante 56 des Würfels 52 als erste Zeile der ersten Datenebene nach dem Umordnen. Die letzte Zeile (Rn) der ersten Datenebene wird jedoch über die diagonale Ebene orthogonal umgeordnet und wird zur letzten Zeile der letzten Datenebene an der unteren, hinteren Kante 58 des Würfels 52. Das Verteilen der Zeilen aus den anderen Datenebenen (blau 42, grün 44 usw.) über die diagonale Ebene 54 kann auf dem Würfel durch einfaches sequentielles Verschieben, Ebene um Ebene, der Diagonalebene in eine Richtung nach hinten dargestellt werden, wie es durch die gestrichelte Diagonalebene 54' gezeigt ist (zeigt die Verteilung der grünen Datenebene 44), um die Zeilen jeder nachfolgenden Datenebene zu verteilen.
  • Der Zeilenumordnungsalgorithmus, der durch die Verschachtelungseinrichtung 16 realisiert wird, ist in die Verschachtelungseinrichtung in Übereinstimmung mit dem gewählten Medienkanal einprogrammiert, um den Schutz gegen Stoßfehler zu optimieren. Wenn zum Beispiel der Medienkanal gegenüber Stoßfehlern mit einer Länge x empfänglich ist, wobei x entweder ein physikalischer Raum oder eine Zeit ist, bewirkt der Umordnungsalgorithmus, daß benachbarte Zeichen in einer Spalte durch mindestens eine Entfernung x getrennt werden. Bei dieser Trennung beeinträchtigt ein Stoßfehler mit einer Dauer von weniger als x die Daten nicht negativ, da der Fehler durch die Decodiereinrichtung nach dem Verschachteln der unverfälschten Daten in den Datenstrom von außerhalb des Fehlers her korrigiert werden kann.
  • Wenn auch der orthogonale Verschachtelungsalgorithmus hierin dargestellt ist, daß er das Umordnen zwischen den Ebenen bei Beibehaltung der Relativposition (Zeilenposition) der umgeordneten Zeilen beibehält, so ist es doch so zu verstehen, daß auch andere Umordnungsalgorithmen zwischen den Ebenen implementiert werden können. So könnte zum Beispiel der Algorithmus ein Umordnen zwischen den Ebenen in einer Pseudo-Zufallsweise oder in einer anderen Art und Weise als sie durch eine mathematische Folge definiert ist, vorsehen. Bei der Wahl des Umordnungsalgorithmus ist es wichtig, daß die gewählte Variante für den Verschachtelungsalgorithmus einen ausreichenden Abstand der Codewörter in Raum und Zeit zur Verfügung stellt, um gegen die erwarteten Typen von Stoßfehlern, die bei Verwendung des gewählten Medienkanals anzutreffen sind, zu schützen.
  • Wir beziehen uns nun auf Fig. 6. Dort ist ein Blockdiagramm eines Schaltkreises für eine Verschachtelungseinrichtung dargestellt, die dem ähnlich ist, der in der äußeren Verschachtelungseinrichtung 16 der vorliegenden Erfindung verwendet wird. Im Verschachtelungsschaltkreis sind Direkt zugriffsspeicher(RAM)-Felder, 60(1) bis 60(j), als Speicherbereiche für die j zweidimensionalen Felder von m Spalten und n Reihen vorgesehen, die für die Speicherung der Folge von Codewörtern in der Anzahl der Datenebenen, die für das orthogonale Umordnen zwischen den Ebenen erforderlich ist, gebraucht werden. Jedes Speicherfeld 60 ist mit einem Adreßbus 62 und einem Datenbus 64 verbunden. Der Adreßbus 62 ist mit einem Adreßanschluß 66 für jedes Feld 60 verbunden und der Datenbus 64 ist mit einem Eingabe-/Ausgabeanschluß 68 für jedes Feld 60 verbunden.
  • Ein Schreib-Multiplexkanal 70 empfängt die Folge von C3-codierten Codewörtern über die Leitung 14 von der C3-Codiereinrichtung 12 (Fig. 2) und schreibt einzelne Codewörter in die gewählten Speicherfelder 60 entsprechend den Speicheradressen, die sequentiell durch einen Schreibadreßzähler 72 und einen Lese/Schreib- Steuerschaltkreis 74 erzeugt werden. Der Eingabe/Ausgabeanschluß 68 des gewählten Speicherfeldes 60 wird durch Signale am Adreßbus 62 vom Schreibadreßzähler 72 gemäß des Betriebes des Schaltkreises 74 aktiviert. Normalerweise bewirkt der Schreibadreßzäh-1er 72 , daß die ankommende Folge von Codewörtern sequentiell in den benachbarten Spalten jedes Speicherfeldes 60 gespeichert wird, beginnend mit dem ersten Feld 60(1) und fortlaufend bis das Feld 60(j) gefüllt ist.
  • Um orthogonal verschachtelte Codewörter aus dem Verschachtelungsschaltkreis (Fig. 6) auszugeben, erzeugt ein Leseadreßzähler 76 in Verbindung mit einer Nachschlagetabelle 78 und dem Lese/Schreib-Steuerschaltkreis 74 sequentiell eine erste Folge von Leseadressen. Diese Adressen bewirken den sequentiellen Zugriff zu den Inhalten der Nachsohlagetabelle 78, wodurch bewirkt wird, daß eine zweite Folge von Adressen über den Adreßbus 62 durch den Lese/Schreib-Steuerschaltkreis 74 in die Speicherfelder 60 gebracht wird. Die Adressen, die am Adreßbus 62 vorhanden sind, bewirken, daß das gewählte Speicherfeld 60 auf Spalten in den Feldern zugreift und gespeicherte Codewörter am Datenbus 64 ausgibt. Bei der vorliegenden Ausführung der Erfindung verwendet die Verschachtelungseinrichtung einen zeilenbeibehaltenden Nachschlagealgorithmus und die C3-codierten, orthogonal umgeordneten Codewörter werden, mit dem C3-Codezeichen an das Endejeder umgeordneten Codegruppe angehängt, ausgegeben. In anderen Ausführungen werden die C3-Codezeichen über die Ausgabecodewörter verteilt.
  • Die zweite Folge von Leseadressen kann nach Zugriff durch die erste Folge und Ausgabe in das Speicherfeld 60 in die Nachschlagetabelle 78 in einer vorbestimmten Ordnung programmiert werden, die orthogonale Umordnungsfolge zwischen den Ebenen optimal auswählt, um einen Schutz gegen Stoßfehler der Länge zu bieten, die im gewählten Medienkanal erwartet wird. Die orthogonal umgeordnete Folge von Codeworten, auf die durch die zweite Folge der Leseadressen von den Speicherfeldern 60 zugegriffen wurde, wird über einen Lese-Multiplexkanal 80 auf der Leitung 82 ausgegeben. Es ist natürlich so, daß die Nachschlagetabelle den Zeilenbeibehaltungsalgorithmus nicht verwendet, sondern jeden anderen geeigneten Umordnungsalgorithmus realisieren kann, zum Beispiel ein Umordnen der Spalten, um einen Stoßfehlerschutz zur Verfügung zu stellen.
  • Ein Entscheidungslogikschaltkreis 84 steuert das Schalten des Schreib-Multiplexkanals 70, des Lese-Multiplexkanals 80 und den Lese/Schreib-Steuerschaltkreis 74 über die Steuerleitungen 85, 86 bzw. 88. Der Entscheidungslogikschaltkreis 84 ist weiterhin mit dem Schreibadreßzähler 72 und dem Leseadreßzähler 76 verbunden. Der Entscheidungslogikschaltkreis 84 wird betrieben, um zu sichern, daß auf die ausgewählten Lese- und Schreibadressen, wie sie vom Schreibadreßzähler 72 und der Nachschlagetabelle 78 gewählt wurden zugegriffen werden kann, wobei der Zugriff auf die gleiche Adresse im gleichen Speicherfeld 60 gleichzeitig erfolgen kann. Das kann durch den Aufbau der Anzahl der Speicherfelder 60 als zwei Datenpuffer erfolgen, auf die durch den Entscheidungslogikschaltkreis 84 selektiv für das Schreiben und Lesen der Daten zugegriffen wird. Wenn zum Beispiel die Speicherfelder im ersten Datenpuffer sequentiell mit den ankommenden Codewörtern gefüllt wird, lesen die Speicherfelder des zweiten Puffers, der vorher mit Daten gefüllt wurde, entsprechend der Nachschlagetabellenfolge und führen eine Ausgabe zur Durchführung des orthogonalen Verschachtelungsprozesses durch. Nachdem ein Puffer vollständig ausgelesen wurde, funktioniert der Schaltkreis der Verschachtelungseinrichtung so, daß die nächste Codewortfolge empfangen wird und die orthogonal verschachtelten Ausgabedaten im zweiten Puffer überschrieben werden. Gleichzeitig liest der Entscheidungslogikschaltkreis 84 und gibt orthogonal die vorher gespeicherte Folge von Codewörtern in den ersten Puffer aus.
  • Wir beziehen uns erneut auf Fig. 2. Die C3-codierten Codewörter, die durch die äußere Verschachtelungseinrichtung 16 orthogonal verschachtelt worden sind, werden auf der Leitung 82 ausgegeben und durch eine mittlere Fehlerkorrektur-Codiereinrichtung 90 empfangen. Die orthogonal umgeordnete, C3-codierte Folge von Codewörtern werden durch die Codiereinrichtung 90 empfangen, in einzelne Codegruppen unterteilt und verarbeitet, um einen zweiten Fehlerkorrekturcode (hierin nachfolgend als C2-Code bezeichnet) in Form von einem oder mehreren Zeichen zu berechnen, die jeder Codegruppe angefügt sind, um ein C2-codiertes Codewort zu erzeugen. Wenn die äußere Verschachtelungseinrichtung 16 einen zeilenbeibehaltenden Umordnungsalgorithmus zwischen den Ebenen verwendet und wenn die C2-Codegruppen, wie sie unterteilt sind, in der Länge den C3-Codewörtern gleich sind, liegen die C2-Codezeichen und die C3-Codezeichen einander benachbart am Ende jedes C2-codierten Codewortes (siehe Fig. 8). Die Folge von C2-codierten Codewörtern stellt die Ausgabe der mittleren Codiereinrichtung auf der Leitung 100 dar.
  • Eine Codierung in dieser Art und Weise bietet einen verstärkten Schutz gegen Zufalls- und Stoßfehler zusätzlich zu dem Schutz, der durch die äußere Codiereinrichtung 16 geboten wird. Die mittlere Codiereinrichtung 90 ist vorzugsweise eine (N,K) Reed- Solomon-Codiereinrichtung, kann jedoch auch jedes andere Codiersystem oder jede andere Codiereinrichtung sein, die Fehlererfassungs- und -korrekturzeichen erfaßt und anfügt. Die mittlere Fehlerkorrektur-Codiereinrichtung 90 braucht nicht den gleichen Codetyp oder das gleiche Codierpolynom verwenden, wie die äußere Fehlerkorrektur-Codiereinrichtung 16.
  • Nach dem Codieren wird die Folge von C2-codierten Codewörtern (die umgeordneten Benutzerdaten-Codegruppen, die umgeordnete C3- Codezeichen und die C2-Codezeichen enthalten) auf der Leitung 100 zu einer inneren Verschachtelungseinrichtung 110 ausgegeben. Die innere Verschachtelungseinrichtung 110 verwendet einen Zwei- Puffer-Schaltprozeß, ähnlich dem der in Fig. 6 dargestellten äußeren Verschachtelungseinrichtung 16, jedoch mit einem modifizierten Verschachtelungsschaltkreis. Ein vereinfachtes Blockdiagramm des Schaltkreises für die innere Verschachtelungseinrichtung 110 ist in Fig. 7A und 7B gezeigt. Die Verschachtelungseinrichtung 110 ist so ausgelegt, daß gleichzeitig sowohl die ankommenden C2-codierten Codewörter und die abgehenden verschachtelten C2-codierten Codewörter bearbeitet werden.
  • Wir nehmen nun Bezug auf Fig. 7A. In der Verschachtelungseinrichtung 110 sind die Datenpuffer 112(a) und 112(b) für das Speichern der eingegebenen Folge von C2-codierten Codewörtern über die Leitung 100 vorgesehen. Die Datenpuffer 112(a) und 112(b) sind Direktzugriffsspeicher, ausgelegt in einem Feldformat (m Spalten x n Zeilen) und groß genug, um eine einzelne Datenebene, wie sie in Fig. 3, 4A, 4B und 5 gezeigt ist, bereitzuhalten. Die Puffer 112(a) und 112(b) werden von der Verschachtelungseinrichtung für die gleichzeitige Eingabe der C2-codierten Codewörter und die Ausgabe der C2-codierten Codewörter in verschachtelter Form verwendet.
  • Ein Eingabe/Schreib-Multiplexkanal 114 verwendet die Eingabe der C2-codierten Codewörter von der Leitung 100 auf dem Datenbus 116 für die Speicherung in einem Puffer, zum Beispiel Puffer 112(a), während ein Ausgabe/Lese-Multiplexkanal 118 die verschachtelten Daten aus dem zweiten Puffer, zum Beispiel 112(b) für die Ausgabe auf der Leitung 120 entnimmt. Die Lese/Schreib-Funktion für das Doppelpuffer-Verschachtelungssystem wird durch ein Lese/- Schreib-Steuersignal auf der Leitung 122 von den Speicheradreßregistern 124(a) und 124(b) gesteuert. Wenn die Schreibfunktion den Puffer 112(a) mit neuen Codewörtern füllt und die Lesefunktion den Puffer 112(b) leert, schaltet das Lese/Schreib-Steuersignal so um, daß die nächste Folge von Codewörtern im Puffer 112(a) gespeichert wird, während die vorher im Puffer 112(a) gespeicherten Codewörter in verschachtelter Form ausgegeben werden.
  • Wie erläutert wurde, werden die Codewortspeicherungs- und Codewortverschachtelungsprozesse durch Ausgaben von den Speicheradreßregistern 124(a) und 124(b) gesteuert, die mit den Puffern 112(a) bzw. 112(b) gekoppelt sind. Jedes Speicheradreßregister 124 ist mit seinem jeweiligen Puffer 112 über eine Lese/Schreibleitung 122 und einen Adreßbus 126 verbunden, der aus einer Spaltenadreßleitung 128 und einer Zeilenadreßleitung 130 besteht.
  • Wir beziehen uns nun auf Fig. 7B. Die Speicheradreßregister 124 bestehen aus zwei Zählern 132 und 134. Der Spaltenzähler 132 zählt Modulo "m", um die Spaltenadressen für den Puffer 112 zur Verfügung zu stellen. Der Zeilenzähler 134 zählt Modulo "n", um die Zeilenadressen für den Puffer 112 zur Verfügung zu stellen. Somit kann der Adreßzähler auf jede Stelle in der Datenebene zugreifen, die in den Puffern 112 für die Speicherung und Wiederauffindung jedes einzelnen Zeichens in einem Codewort gespeichert ist.
  • Nun auf Fig. 7A und 7B bezugnehmend, wird der Zugriff zu den Datenstellen in den Puffern 112 durch ein Steuersignal vom Schreib-Multiplexkanal 114 gesteuert, das auf der Leitung 136 zu den Speicheradreßregistern 124 geleitet wird. Wenn das Steuersignal logisch ein L-Signal ist, kann der Zeilenzähler 134 der Speicheradreßregister 124 laufend die Zeilenadressen aufwärts zählen. Der Spaltenzähler 132 wird in die Lage versetzt, jedesmal, wenn der Zeilenzähler seine Endzählung (n) erreicht, die Spaltenadressen aufwärts zu zählen. Wenn ein Speicheradreßregister 124 ein L-Steuersignal erhält, befindet sich der zugehörige Puffer 112 in einem Schreibmodus und ermöglicht die Eingabe und die Speicherung der ankommenden C2-codierten Codewörter. Umgekehrt, wenn das Steuersignal vom Multiplexkanal 114 logisch H ist, zählt der Spaltenzähler 132 kontinuierlich aufwärts und der Zeilenzähler 134 zählt jedesmal dann aufwärts, wenn der Spaltenzähler seine Endzählung (m) erreicht. Wenn ein Speicheradreßregister 124 ein H-Steuersignal erhält, befindet sich der dazugehörige Puffer 112 in einem Lesemodus und ermöglicht eine Ausgabe aus der Speicherung der verschachtelten C2-codierten Codewörter.
  • Während eines Schreibmodus bewirkt das Speicheradreßregister 124, daß die ankommenden C2-codierten Codewörter sequentiell in die Spalten der Pufferdatenebene 138 geschrieben werden, wie es durch den Pfeil 140 in Fig. 8 dargestellt ist. Während des Lesemodus bewirkt das Speicheradreßregister 124, daß die in die Pufferdatenebene 138 gespeicherten Daten sequentiell in Zeilen auf der Leitung 120 ausgegeben werden, wie es durch den Pfeil 142 in Fig. 8 dargestellt ist. Somit werden Puffer 112 Spalte um Spalte geschrieben und Zeile um Zeile gelesen, wodurch die gewünschte Verschachtelung zur Verfügung gestellt wird.
  • Wenn sowohl der Spaltenzähler 132 als auch der Zeilenzähler 134 ihre Endzählung erreichen (wird durch eine vollständige Datenebeneneingabe oder durch eine vollständig verschachtelte Datenebenenausgabe angezeigt), erzeugen ein NOR-Gatter 143 und ein T- Flipflop 144 das Lese/Schreib-Steuersignal auf der Leitung 122, was bewirkt, daß das Steuersignal schaltet und die Puffer 122 ihre Funktion von Lesen auf Schreiben oder von Schreiben auf Lesen verändern.
  • Wir beziehen uns jetzt auf Fig. 2. Die sequentiell ausgegebenen Zeilen der innen verschachtelten C2-codierten Codewörter werden auf der Leitung 120 durch eine innere Fehlerkorrektur-Codiereinrichtung 150 empfangen. Die verschachtelte, C2-codierte Folge von Codewörtern wird in einzelne Codegruppen aufgebrochen und verarbeitet, um einen dritten Fehlerkorrekturcode (hierin nachfolgend als C1-Code bezeichnet) in Form eines oder mehrerer Zeichen zu berechnen, die an die C2-codierten Codewörter angehängt sind, um ein C1-codiertes Codewort zu erzeugen. Die durch die C1-Codiereinrichtung 150 verarbeiteten Codegruppen haben normalerweise eine Zeichenlänge gleich der Anzahl der Spalten in der Pufferdatenebene 138 in Fig. 8. Daher werden die C1-Codezeichen an die Enden jeder Zeile in der verschachtelten Datenebene 138, quer zu den C2- und C3-Codezeichen, angefügt, da die Zeilen der Daten über die Leitung 120 empfangen werden.
  • Die quer angefügten C1-Codezeichen sind in der Datenebene 152 in Fig. 9 gezeigt. Die Zeilen der C1-codierten Codewörter werden von der Codiereinrichtung 150 auf einer Leitung 154 sequentiell ausgegeben.
  • Das Codieren in dieser Weise sichert einen verstärkten Schutz gegen Zufallsfehler zusätzlich zu dem Schutz, der durch die äußere Codiereinrichtung 16 und die mittlere Codiereinrichtung 90 zur Verfügung gestellt wird. Die innere Codiereinrichtung 150 ist vorzugsweise eine (N,K)-Reed-Solomon-Codiereinrichtung, kann jedoch auch jedes andere Codiersystem oder jede andere Codiereinrichtung sein, die Fehlererfassungs- und Fehlerkorrekturzeichen erzeugt und anfügt. Die innere Fehlerkorrektur-Codiereinrichtung 150 braucht jedoch nicht den gleichen Codetyp oder das gleiche Codepolynom zu verwenden wie entweder die äußere Fehlerkorrektur-Codiereinrichtung 16 oder die mittlere Fehlerkorrektur-Codiereinrichtung 90.
  • Die Menge der Benutzerdaten, die durch die erste Codiereinrichtung 12 pro Benutzercodegruppe ausgewählt wird, ist so eingegrenzt, daß nach dem Anfügen dieser drei Sätze von gegenseitig orthogonal verschachtelten Codewörtern, die Datenebene 152, die durch das dreifach orthogonal verschachtelte Fehlerkorrektursystem erzeugt wird, die vorgeschriebene Menge von Daten enthält (umgeordnete Benutzerdaten plus C1-, C2- und C3-Codierdaten), die auf eine Spur eines Bandaufzeichnungsgerätes mit Schneckenaufzeichnung paßt. Ein Magnetband 156 für ein Bandaufzeichnungsgerät mit Schneckenaufzeichnung ist schematisch in Fig. 10 gezeigt. Zwei Spuren 158 mit Schneckenaufzeichnung, von denen jede eine oder mehrere Datenebenen 152 (Fig. 9) aufzeichnet, sind in bildhafter Form auf der Oberfläche des Bandes 156 dargestellt.
  • Wie gut bekannt ist, werden digitale Daten auf magnetischen Medien, wie zum Beispiel Bändern, durch Magnetisierung kleiner Abschnitte des Bandes in entgegengesetzten Richtungen in Abhängigkeit vom Wert aufzuzeichnender Daten (Bit) (entweder logische 1 oder logische 0), aufgezeichnet. Bei Wiedergabe werden die Veränderungen in der Richtung des Magnetbandes gelesen und wieder in das ursprüngliche Digitalsignal umgeformt.
  • Bei der Aufzeichnung der Daten kann die Bitfolge Übergänge aufweisen, die bei der Aufzeichnung magnetisierte Bereiche erzeugen, die zum Beispiel entweder zu dicht zueinander liegen oder zu weit voneinander entfernt sind. Wenn die magnetisierten Bereiche zu dicht zueinander liegen, hat die Wiedergabevorrichtung Schwierigkeiten beim Unterscheiden und Erkennen der aufeinanderfolgenden Datenbits. Wenn die magnetisierten Bereiche zu weit voneinander entfernt sind, verliert der Synchronisationstaktgeber, der für die akkurate Wiedergabe und Wiedergewinnung der aufgezeichneten Daten erforderlich ist, seine Funktionstüchtigkeit und das verhindert die Reproduktion des ursprünglichen Signals.
  • Hinsichtlich dieses Problems werden in der bevorzugten Ausführung des Systems die Zeilen der C1-codierten Codewörter-Ausgabe aus der inneren Codiereinrichtung 150 durch eine Medienkanal- Codiereinrichtung 160 vor ihrer Ausgabe auf den gewünschten Medienkanal (zum Beispiel ein Magnetbandaufzeichnungsge rät) verarbeitet. Die Medienkanal-Codiereinrichtung 160 codiert die Ausgabezeilen der C1-codierten Codewörter unter Verwendung eines Lauflängenbegrenzungscodes mit eigener Taktgebung. So wird zum Beispiel bei Verwendung eines (D,K) Lauflängenbegrenzungscodes verhindert, daß die Übergänge im Datenstrom, der auf dem Band aufzuzeichnen ist, nicht dichter als D Taktimpulse und nicht weiter als K Taktimpulse auftreten. Wenn die aufzuzeichnende (oder zu übertragende) Datenfolge diese Bedingung verletzt, oder das gewählte Codierschema andere Regeln für die Folgen hat, wird die Datenfolge durch einen Codierschritt verändert, so daß die Regeln nicht verletzt werden. Die Medienkanal-Codiereinrichtung 160, die in der bevorzugten Ausführung verwendet wird, ist eine Miller-Squared (M²)-Codiereinrichtung, wie sie in der Neuauflage des Patents Nr. 31 311 beschrieben ist. Nachfolgend erfolgt eine kurze Beschreibung der M²-Codierregeln. Nach der Lauflängenbegrenzungscodierung werden die C1-kanalcodierten Codewörter an den Medienkanal 162 ausgegeben.
  • Wie vorher erwähnt wurde, besteht das System der vorliegenden Erfindung aus einer Übertragungs oder Aufzeichnungsseite, wie vorher beschrieben und oben in Fig. 2 dargestellt und aus einer Empfangs- oder Wiedergabeseite, wie unten in Fig. 2 dargestellt, verbunden über den Medienkanal 162. Eine konventionelle Medienkanal-Decodiereinrichtung 170 auf der Wiedergabeseite des Systems empfängt die C1-kanalcodierten Codewörter vom Medienkanal 162 und decodiert die kanalcodierten Daten, um das Originalkanalcodierte Signal wiederherzustellen. Durch Bandherstellungsfehler, Rauschen oder Defekte im Medienkanal kann die kanalcodierte Datenausgabe aus dem Kanal Kanalfehler aufweisen. Diese Fehler führen oft Datenübergänge in den kanalcodierten Datenstrom ein, die Kanalfolgeregeln verletzen.
  • Mit Decodiereinrichtungen nach dem Stand der Technik würden die eingeschlossenen Kanalfehler decodiert und in den Bitstrom eingeleitet werden. Das ist deswegen so, weil eine Lauflängenbegrenzungs-Codiereinrichtung im allgemeinen keine Fehlererfassungsoder Fehlerkorrekturfähigkeit hat. Die Erkennung der über den Kanal eingeführten Folgeverletzungen würde jedoch bei der Erkennung und Korrektur von Fehlern durch die C1-, C2- und C3-Codiereinrichtungen helfen und dadurch die Leistungsfähigkeit des Systems der vorliegenden Erfindung erhöhen. Daher verwendet die vorliegende Erfindung eine verbesserte Medienkanal-Decodiereinrichtung, die Folgeverletzungsfehler, die sich aus dem Betrieb des Medienkanals ergeben, erfaßt und markiert. Da die C1-Kanalcodierten Codewörter durch die Medienkanal-Decodiereinrichtung 170 decodiert werden, werden die C1-codierten Codewörter sequentiell auf der Leitung 172 ausgegeben und die Folgeverletzungsmarkierungen, die erfaßte Folgeverletzungsfehler in den kanalcodierten Daten anzeigen, werden gleichzeitig auf der Leitung 174 ausgegeben.
  • Die Medienkanal-Decodiereinrichtung 170 gibt eine Folge von Verletzungsmarkierungen auf einer Basis von einem Zeichen für jedes Zeichen in jeder decodierten C1-codierten Codewortausgabe auf der Leitung 172 aus. Jede Folgeverletzungsmarkierung auf der Leitung 174 markiert ein Zeichen, das eine Verletzung der Lauflängenbegrenzungs-Decodierregeln aufweist. Sowohl die Folge der kanaldecodierten C1-codierten Codewörter als auch die Folge der Verletzungsfolge-Erkennungsmarkierungen werden zu einer C1-Fehlerkorrektur-Decodiereinrichtung 180 geleitet. Die Verwendung von Folgeverletzungsmarkierungen zur Unterstützung der C1-Fehlerkorrektur-Decodierung erhöht die Fehlerkorrekturfähigkeit der C1-Decodiereinrichtung von T auf 2T je nach Grad der Zuverlässigkeit der Folgeverletzungsmarkierungen. Eine vollständigere Beschreibung der M²-Medienkanal-Codierregeln und der Decodiereinrichtung, die vom System der vorliegenden Erfindung verwendet wird erfolgt hiernach.
  • Die C1-Decodiereinrichtung 180 empfängt die C1-codierten Codewörter und decodiert und korrigiert die C1-Codegruppe (C2-codierte Wörter) unter Verwendung der empfangenen Kanal-Decodiereinrichtungs-Folgeverletzungsmarkierungen als Löschmarkierungen. Die C1-Decodiereinrichtung 180 muß zur Decodierung der C1-Code- Wörter das gleiche Codier-Polynom verwenden, wie es durch die C1-Codiereinrichtung 150 verwendet wird, um die C1-Codegruppen zu codieren. Die decodierten C1-Codegruppen werden von der Decodiereinrichtung 180 auf der Leitung 182 ausgegeben. Eine Löschmarkierung erkennt einen Fehler, dessen Lage bekannt ist, dessen korrekter Wert jedoch unbekannt ist. Im allgemeinen braucht man nur ein Codezeichen, um eine Löschung (erfaßter Fehler) zu korrigieren, wogegen zwei Codezeichen erforderlich sind, um einen unerfaßten Fehler zu korrigieren (entsprechend der Formel T=(N- K)/2). Somit ist durch die effektive Verwendung von Löschmarkierungen eine verstärkte Korrektur von T bis 2T Fehlern möglich.
  • Wenn der Fehlerkorrekturbereich der C1-Codiereinrichtung 180 überschritten ist und erfaßte, jedoch nicht korrigierte Zeichen in der C1-Codegruppe verbleiben, gibt die Decodiereinrichtung C1-Löschmarkierungen auf der Leitung 184 aus. Eine repräsentative Datenebene, die C1-Codegruppen (C2-codierte Codewörter) als Ausgabe auf der Leitung 182 enthält, ist in Fig. 11 dargestellt. Weiterhin ist in Fig. 11 eine Anzahl von C1-Löschmarkierungen gezeigt, die durch die Pfeile 186 symbolisiert werden und die durch die Decodiereinrichtung 180 erzeugt und auf der Leitung 184 ausgegeben werden. Jede dieser C1-Markierungen zeigt an, daß irgendwo in der Anzahl der Zeichen, die in den durch die Markierungen erkannten Zeilen enthalten sind, sich ein oder mehr Zeichen befinden, die nicht korrigierte Fehler enthalten. Die C1- Markierungen werden durch das System verwendet, um die Fehlerkorrekturfähigkeit in der zu beschreibenden Weise zu verbessern.
  • Die C1-Codegruppen und die C1-Löschmarkierungen werden als nächstes von einer inneren Entschachtelungseinrichtung 190 empfangen und verarbeitet. Die empfangenen Daten enthalten Datenebenen des in Fig. 11 gezeigten Formates, wobei jede Datenebene umgeordnete Benutzerdaten, umgeordnete C3-Fehlerkorrekturcodezeichen, C2- Fehlerkorrekturcodezeichen und die C1-Löschmarkierungen enthält. Die innere Entschachtelungseinrichtung 190 hat einen Aufbau ähnlich dem, der in Fig. 7A und 7B für die innere Verschachtelungseinrichtung 110 dargestellt ist. Die Datenebenen der C2- Codewörter werden in der Entschachtelungseinrichtung sequentiell auf einer laufenden Zeile-um-Zeile-Basis gespeichert. Die Schreibrichtung für das Speichern der C2-Codewörter ist durch den Pfeil 192 in Fig. 11 angegeben. Um zu entschachteln, werden die gespeicherten Codewörter von der Entschachtelungseinrichtung 190 sequentiell auf einer laufenden Spalte-um-Spalte-Basis ausgegeben. Die Leserichtung für die Ausgabe der entschachtelten Codewörter ist durch den Pfeil 194 in Fig. 11 angegeben.
  • Die innere Entschachtelungseinrichtung 190 verwendet ein Doppelpuffersystem ähnlich dem, das durch die innere Verschachtelungseinrichtung 110 verwendet wird. Es gibt jedoch zwei grundlegende Unterschiede zwischen der Verschachtelungseinrichtung 110 und der Entschachtelungseinrichtung 190. Erstens ist die Reihenfolge des Schreibens und des Lesens der Zeilen und Spalten umgekehrt, so daß die Reihenfolge der Zeicheneingabe in die Verschachtelungseinrichtung 110 gleich der Reihenfolge der Zeichenausgabe aus der Entschachtelungseinrichtung 190 ist. Somit ist eine Datenebene der Eingabe der C2-codierten Codewörter für die Speicherung auf einer Zeile-um-Zeile-Basis in einem ersten Puffer angeschlossen, während die vorher gespeicherte Datenebene der C2-codierten Codewörter entschachtelt wird und auf einer Spalteum-Spalte-Basis auf der Leitung 196 vom anderen Puffer ausgegeben wird.
  • Wenn der erste Puffer mit einer Datenebene gefüllt wird und der zweite Puffer entschachtelt und geleert, schaltet die Entschachtelungseinrichtung 190 um, um zu bewirken, daß die nächste Folge der C2-codierten Codewörter (Datenebene) im zweiten Puffer gespeichert wird, während die vorher im ersten Puffer gespeicherten Codewörter in einer entschachtelten Form ausgegeben werden. Die Speicherungs- und Ausgabefunktionen der Entschachtelungseinrichtung werden durch die Speicheradreßregister 124 in Fig. 7A gesteuert. Bezugnehmend auf Fig. 7B ist ein Kippschalter 198 mit der Steuersignalleitung 136 verbunden, die den Betrieb der Adreßzähler 124 steuert und bestimmt, ob der Schaltkreis von Fig. 7A und 7B als Verschachtelungseinrichtung 110 oder als Entschachtelungseinrichtung 190 arbeitet.
  • Zweitens schließen die Speicherfelder 112 der Entschachtelungseinrichtung 190 einen zusätzlichen Speicherbereich für die Parallelspeicherung der C1-Löschmarkierungen ein. Dieser Bereich gestattet die Speicherung der Löschmarkierung in der Entschachtelungseinrichtung neben jedem Zeichen in der speziellen, den Fehler enthaltenden, Zeile. In der bevorzugten Ausführung nimmt jedes Zeichen acht Bits ein. Es ist somit erforderlich, daß die Speicherfelder in der Entschachtelungseinrichtung 190 neun Bits enthalten, acht für das Zeichen und eines für die Markierung.
  • Die Spalten der entschachtelten C2-codierten Codewörter-Ausgabe auf der Leitung 196 und der C1-Löschmarkierungsausgabe auf der Leitung 200 werden als nächstes durch eine mittlere Fehlerkorrektur-Decodiereinrichtung 202 verarbeitet, die entsprechend den C2-Codewörtern soviel wie möglich enthaltene Fehler erfaßt und korrigiert. Auch hier erhöht die Verwendung von Löschmarkierungen die Fehlerkorrekturfähigkeit der C2-Decodiereinrichtung 202 von T auf 2T. Die Decodiereinrichtung 202 trennt dann die C2- Codezeichen vom C2-Codewort, das auf der Leitung 196 empfangen wird, ab und gibt die C2-Codegruppen sequentiell auf der Leitung 204 aus. Wenn die Anzahl der durch die C2-Decodiereinrichtung 202 erfaßten Fehler die Größe der Korrekturfähigkeit der Decodiereinrichtung überschreitet, werden durch die Decodiereinrichtung C2-Löschmarkierungen erzeugt und auf der Leitung 206 ausgegeben, die jede Spalte anzeigen, die einen nicht korrigierten Fehler enthält. Die C2-Löschmarkierungen werden in Verbindung mit den durch die C1-Decodiereinrichtung 180 erzeugten C1- Löschmarkierungen verwendet, um die Fehlerkorrekturfähigkeit des Systems in einer noch zu beschreibenden Weise zu verbessern.
  • Es sollte bemerkt werden, daß die Genauigkeit der von den C1- und C2-Decodiereinrichtungen 180 bzw. 202 erzeugten Löschmarkierungen gering sein kann. Die Genauigkeit der Markierungen ist in Fig. 12 dargestellt, in der entweder ein C1- oder ein C2-Codewort 208 gezeigt ist. Das Codewort 208 ist N Zeichen lang, die K Informationszeichen und 2T (N-K) Korrekturcodezeichen enthalten. Unter der Annahme, daß zehn Korrekturcodezeichen in jedem Codewort vorhanden sind, kann der Fehlerkorrekturcode bis zu fünf enthaltene Fehler korrigieren (T=(N-K)/2).
  • Das Codewort 208 enthält normalerweise zwischen 50 bis 255 Zeichen. Für den Zweck des vorliegenden Beispiels wird angenommen, daß sechs der Zeichen 210, wie sie in Fig. 12 gezeigt sind, mit Fehlern übertragen worden sind. Fünf Fehler können allein durch die Decodiereinrichtung korrigiert werden. Sechs Fehler können jedoch nicht korrigiert werden. Das bewirkt, daß das gesamte Codewort, einschließlich aller korrekten Zeichen als fehlerhaft gekennzeichnet und markiert wird. Das erklärt die geringe Genauigkeit der Löschmarkierungen, weil die Wahrscheinlichkeit, daß eine Codewort-Löschmarkierung Fehler korrekt anzeigt, gering sein kann, weil eine Mehrheit, wenn nicht sogar fast alle Zeichen, in einem markierten Wort korrekt sind. Durch das Markieren korrekter Zeichen in einem Codewort als unkorrekte Zeichen, werden die erhöhten Vorteile der Markierungslöschungen (d.h. die erhöhte Korrekturfähigkeit) abgeschwächt.
  • Wir beziehen uns nun erneut auf Fig. 2. Die nachfolgenden Ausführungen stellen eine Erläuterung der Art und Weise dar, in der das System der vorliegenden Erfindung sowohl die C1- als auch die C2-Löschmarkierungen verwendet, um die einzelnen Zeichen, die einen Fehler enthalten, genau zu erkennen und nicht nur Blöcke von Zeichen (Codewörter), die einen Fehler enthalten. Zeichengenaue Markierungen erweitern den Korrekturbereich, weil die Decodiereinrichtung nicht so gesteuert ist, daß korrekt markierte Zeichen, die keinen Fehler enthalten, korrigiert werden. Um diesen Vorteil zu erreichen, werden die C1-Löschmarkierungen durch die innere Entschachtelungseinrichtung 190 ausgegeben und es werden die Spalten angezeigt, die Fehler enthalten, die durch die Wirkung des Verzögerungselementes 212 verzögert sind und über die Leitung 214 ausgegeben. Das Verzögern der C1- Löschmarkierungen ist erforderlich, um die Signalverarbeitungszeit richtig einzustellen, die für die C2-Decodiereinrichtung 202 erforderlich ist. Wie vorher erwähnt wurde gibt die C2-Decodiereinrichtung 202 die C2-Löschmarkierungen auf der Leitung 206 aus. Ein UND-Gatter 216 verknüpft die C1- und die C2-Löschmerkierungen logisch für jedes Zeichen, um eine C1.C2 zeichengenaue Markierung zu erhalten, auf der Leitung 218. Es erkennt einzelne Zeichen, die Fehler enthalten.
  • Die Verarbeitung der C1- und C2-Löschmarkierungen zur Erzeugung einer C1.C2 zeichengenauen Markierung ist am besten unter Bezugnahme Auf Fig. 2 und Fig. 13A bis 13F zu verstehen. Fig. 13A zeigt ein Feld von Zeichen an, die im Datenebenenformat angeordnet sind, wie es von der Medienkanal-Decodiereinrichtung 170 auf der Leitung 172 ausgegeben wird. In der Datenebene von Fig. 13A sind eine Anzahl von Einzelzeichen 220 (gekennzeichnet mit einem "x") und eine Folge von zusammenhängenden Zeichen 222 fehlerhaft. Für die Zwecke des vorliegenden Beispiels wird angenommen, daß die C1-Decodiereinrichtung 180 alle einzelnen Fehlerzeichen 220 korrigiert hat, jedoch den Folgefehler der zusammenhängenden Zeichen 222 wegen der Fehlerkorrekturbeschränkungen der Decodiereinrichtung nicht korrigieren konnte.
  • Die Datenebene von Fig. 13A wird durch die C1-Decodiereinrichtung 180 auf einer Zeile-um-Zeile-Basis empfangen, decodiert, partiell korrigiert und, ebenfalls auf einer Zeile-um-Zeile- Basis auf der Leitung 182 an die innere Entschachtelungseinrichtung 190 ausgegeben. Die Ausgabe der C1-Decodiereinrichtung für die komplette Datenebene auf der Leitung 182 (abgetrennt von den C1-Codezeichen) ist im Datenebenenformat in Fig. 13B und im Zeitablaufformat in Fig. 13C dargestellt. Die vom Schaltkreis der C1-Decodiereinrichtung erzeugten C1-Löschmarkierungen und die Ausgabe auf der Leitung 184 sind während der Ausgabe jeder Zeile (C1-Codegruppe) aktiv, die einen erfaßten, jedoch nicht korrigierbaren Fehler enthält. Das C1-Löschmarkierungssignal ist in Fig. 13C unter dem C1-Codegruppen-Ausgabesignal als aktiv während der Ausgabe des nicht korrigierbaren Folgefehlers der zusammenhängenden Zeichen 222 gezeigt. Selbst wenn eine Anzahl von Zeichen in der Folge 222 korrekt sind, ist die C1-Löschmarkierung noch für jede Zeilenausgabe aktiv, um das Vorliegen von Zeichenfehlern in dieser Zeile zu signalisieren.
  • Die C1-Codegruppen werden dann durch die innere Verschachtelungseinrichtung 190 entschachtelt und auf der Leitung 196 ausgegeben. Die C1-Löschmarkierungen durchlaufen ebenfalls den Entschachtelungsprozeß und werden auf der Leitung 200 ausgegeben. Beim inneren Entschachtelungsprozeß werden die C1-Codegruppen zeilenweise eingegeben und spaltenweise auf der Leitung 196 ausgegeben. Sie erzeugen dabei ein Ausgabezeit-Leitungssignal für die in Fig. 13D gezeigte Datenebene. Wie ebenfalls in Fig. 13D dargestellt ist, hat der Verschachtelungsprozeß im Gleichlauf den Folgefehler der zusammenhängenden Zeichen 222 und die aktiven Teile des C1-Löschmarkierungssignals auf der Leitung 200 verteilt, so daß C1-Markierungen auf Stellen in den C2-Codeworten hinweisen, die Fehler für die Zeichen 222 enthalten.
  • Das Signal auf der Leitung 196 wird dann durch die C2-Decodiereinrichtung 202 verarbeitet, partiell korrigiert und als C2- Codegruppe (ohne die C2-Codezeichen) auf der Leitung 204 ausgegeben, wie es in Fig. 13E gezeigt ist. Die C2-Decodiereinrichtung verwendet die C1-Löschmarkierungen auf der Leitung 200, um jede C2-Codegruppe zu korrigieren, die weniger als 2T Zeichen des Folgefehlers in den zusammenhängenden Zeichen 222 enthält. Weiterhin werden von der C2-Decodiereinrichtung 202 auf der Leitung 206 die C2-Löschmarkierungen ausgegeben, wie sie unter dem C2-Codegruppensignal in Fig. 13E dargestellt sind. Die C2- Löschmarkierungen sind während der Ausgabe jeder C2-Codegruppe aktiv, die einen oder mehrere nicht korrigierte fehlerhafte Zeichen enthält und daher nicht genau die verbleibenden Teile des Folgefehlers 222 in den Datenzeichen erkennt.
  • Um die C1.C2 zeichengenaue Markierung für das genaue Erkennen der einzelnen Zeichen zu erzeugen, die verbleibende Teile des Folgefehlers 222 oder jegliche andere in den Zeichen verbleibende Fehler enthalten, ist die C1-Löschmarkierung auf der Leitung 200 verzögert, so daß er mit der Ausgabe der C2-Löschmarkierung auf Leitung 206 zeitlich synchronisiert ist. Die verzögerte C1- Löschmarkierung wird aus dem Verzögerungsschaltkreis 212 auf der Leitung 214 ausgegeben, wie es in Fig. 13F dargestellt ist. In Fig. 13F ist weiterhin das C2-Codegruppensignal auf der Leitung 204 dargestellt, das die restlichen nicht korrigierten Teile des Folgefehlers 222 enthält, sowie die C2-Löschmarkierungausgabe auf der Leitung 206, die jede Codegruppe erkennt, in der ein Teil des Folgefehlers unkorrigiert bleibt. Um die spezifischen Zeichen zu erkennen, die den nicht korrigierten Fehler enthalten, werden die C2-Löschmarkierung (Leitung 206) und die verzögerte C1-Löschmarkierung (Leitung 214) in einer UND-Schaltung zusammengefügt, um ein C1.C2 zeichengenaues Markierungssignal auf der Leitung 218 zu erzeugen, wie es in Fig. 13F dargestellt ist.
  • Die decodierten C2-Codegruppen (Leitung 204) und die C1.C2 zeichengenauen Markierungen (Leitung 218) werden dann in eine äußere Entschachtelungseinrichtung 230 in eine Datenebene eingegeben, wie es in Fig. 14 dargestellt ist. Die äußere Entschachtelungseinrichtung 230 hat einen gleichen Aufbau, wie die äußere Verschachtelungseinrichtung 16, wie sie in Fig. 6 dargestellt ist, mit der Ausnahme, daß die Speicherfelder eine erhöhte Speicherkapazität aufweisen, um die C1.C2 zeichengenaue Markierung als ein neuntes Bit für jedes Acht-Bit-Zeichen zu speichern. Die C2-Codegruppen-Eingabe in die Verschachtelungseinrichtung 230 wird sequentiell im Datenebenenformat spaltenweise in die Speicherfelder der Entschachtelungseinrichtung geschrieben.
  • An diesem Punkt werden die C2-Codegruppen (C3-Codewörter) für die in den Speicherfeldern gespeicherten Datenebenen, die sich einem umgeordneten Zustand befinden, zurückgeordnet und auf der Leitung 232 durch Erzeugung der kdrrekten Folge von Adressen durch den Leseadreßzähler und die Nachschlagetabelle ausgegeben. Durch Verwendung der Nachschlagetabelle werden die sequentiell erzeugten Lesezähleradressen in eine vorbestimmte, nicht seauentielle Folge von Adressen für den Zugriff und die Ausgabe der C3-Codewörter in der gleichen Folge, wie sie durch die äußere Verschachtelungseinrichtung 16 empfangen wurden, umgewandelt. Weiterhin werden von der Entschachtelungseinrichtung 230 die C1.C2 zeichengenauen Markierungen auf Leitung 234 ausgegeben, die einzelne Zeichen erkennen, die noch Fehler enthalten.
  • Die Ausgabe der entschachtelten C3-Codewörter auf der Leitung 232 und die Ausgabe der C1.C2 zeichengenauen Markierungen auf der Leitung 234 aus der äußeren Entschachtelungseinrichtung 230 werden dann als nächstes durch die C3-Decodiereinrichtung 240 verarbeitet, die soviel wie möglich enthaltene Zeichenfehler erkennt und korrigiert. Die C3-Codezeichen werden dann von den Codewörtern abgetrennt und es bleiben nur die Original-Benutzerdaten (C3-Codegruppen), im wesentlichen fehlerfrei, für die Ausgabe auf der Leitung 242 übrig. Mit dem Vorliegen der C1.C2 zeichengenauen Markierungen und den C3-Codezeichen erhöht sich die Größenordnung der Korrektur für die C3-Decodiereinrichtung 240 von T auf 2T Fehler.
  • Fachleute dieses Gebietes können einschätzen, daß viele Modifikationen des vorher beschriebenen Systems und seiner einzelnen Bestandteile möglich sind. So können zum Beispiel die Lauflängenbegrenzungs-Codier- und Decodiereinrichtung für die Medienkanal-Codier-und Decodiereinrichtung ersetzt oder aus dem System weggelassen werden. In einer alternativen Ausführung der Erfindung ohne Medienkanal-Codier- und Decodiereinrichtung, wie sie in Fig. 15 gezeigt ist, funktioniert das System der vorliegenden Erfindung in einer gleichen Weise, mit der Ausnahme, daß die C1- Decodiereinrichtung auf die Korrektur von T Fehlern beschränkt ist, weil die Eingabesequenz-Verletzungsmarkierungen fehlen. In Fig. 15 werden die gleichen Bezugszahlen verwendet, um gleiche oder ähnliche Komponenten der Fig. 2 zu erkennen.
  • Ferner können die Inhalte der Nachschlagetabelle, die in der äußeren Verschachtelungseinrichtung 16 und in der äußeren Entschachtelungseinrichtung 230 verwendet werden, oder die Anzahl der Spalten (m) und der Zeilen (n) verändert werden, um den Charakter der orthogonalen Verschachtelung abzuändern. Es kann somit eine andere orthogonale Verschachtelung als die Zeilenumordnung realisiert werden, zum Beispiel eine Spaltenumordnung.
  • In anderen alternativen Ausführungen werden die Mehrfach-Speicherfelder für die äußere Ver- und Entschachtelungseinrichtung durch einen Einfach-Speicher ersetzt und alle Verschachtelungsund Entschachtelungsstufen werden in einem einzigen großen Speicherfeld ausgeführt. Ferner kann eine richtig programmierte Zentraleinheit die Systemkomponenten ersetzen und eine orthogonale Dreiwegeverschachtelung und Codierung durchführen. Es können auch Mehrfach-Verarbeitungseinheiten vorgesehen werden, um die Systemkomponenten einzeln betreiben zu können und um eine Datenkommunikation zwischen den Prozessoren durchführen zu können.
  • Das Verfahren und die Vorrichtung eines dreifach orthogonal verschachtelten Fehlerkorrektursystems der vorliegenden Erfindung ist anwendbar für alle Mittel der Übertragung, Speicherung, Empfang und Wiedergabe von Daten, auch wenn das System vorher unter Bezugnahme auf seine bevorzugte Ausführung für die Verwendung mit einem digitalen Magnetbandaufzeichnungsgerät mit hoher Aufzeichnungsdichte und Schneckenaufzeichnung beschrieben wurde. Die Verwendung der orthogonalen Zeilenumordnung bietet Schutz gegen eine Signalverschlechterung, verursacht durch Bandherstellungsfehler, Rolleneindrücke, Kratzer, Datenspurverluste, Rauschen, Übergangs- oder wiederkehrende Zustände im Medienkanal und andere bekannte Fehlerursachen.
  • Das Codieren von C3- und C2-Codewörtern in der gleichen Spalte, jedoch in quer, orthogonal umgeordneten Zeilen bietet Schutz gegen Fehler mit großer Länge und Fehler mit mittelgroßer Länge. Weiterhin verdoppelt das Zuführen der im Medienkanal erfaßten Folgeverletzungsfehler zur C1-Decodiereinrichtung die potentielle Fehlerkorrekturgrößenordnung der C1-Decodiereinrichtung. Das verbessert den Betrieb des Systems, da die Verwendung der Folgeverletzungsmarkierungen in Verbindung mit den C1.C2 zeichengenauen Markierungen einen erhöhten Schutz gegen Zufallsfehler bietet, wobei ein minimaler Anteil des Datennaumes für die Fehlererfassungs- und Fehlerkorrekturzeichen zur Verfügung gestellt werden muß. In einer anderen Ausführung der vorliegenden Erfindung, die in Fig. 16 als ein Zusatz zu dem in Fig. 2 dargestellten System gezeigt ist, sind die Folgeverletzungsmarkierungen (S.V.) und die Markierungen der C1-Decodiereinrichtung logisch miteinander verknüpft, um eine C1.S.V. zeichengenaue Fehlermarkierung für die Eingabe in die innere Entschachtelungseinrichtung 190 und in die C2-Decodiereinrichtung 202 zur Verfügung zu stellen.
  • Wie in Fig. 16 gezeigt ist, werden die S.V-Markierungen von der Medienkanal-Decodiereinrichtung 170 über die Leitung 174 zur inneren Decodiereinrichtung 180 ausgegeben. Die S.V.-Markierungen werden auch in ein Verzögerungselement 181 für die Ausgabe auf der Leitung 183 eingegeben und verzögert. Das Verzögern der S.V-Markierungen ist erforderlich, um die für die C1-Decodiereinrichtung 180 erforderliche Signalverarbeitungszeit einzuregulieren. Wie bereits vorher beschrieben, gibt die C1-Decodiereinrichtung 180 die C1-Löschmarkierungen auf der Leitung 184 aus. Ein UND-Gatter 185 verknüpft die S.V.- und C1-Markierungen logisch, um eine C1.S.V.-Fehlermarkierung auf der Leitung 184' für die Eingabe in die innere Entschachtelungseinrichtung 190 und die weitere Verarbeitung durch die C2-Decodiereinrichtung zu erzeugen. Die Verwendung von Medienkanl-Folgeverletzungsmarkierungen, von C1.S.V.-Fehlermarkierungen und C1.C2 zeichengenauen Markierungen, wie sie vorher beschrieben wurden, bietet einen maximalen Schutz gegen Zufallsfehler in Proportion zur Größe des Datenraumes, der für die Codezeichen zur Verfügung steht.
  • In einer weiteren Ausführung der vorliegenden Erfindung ist ein zusätzlicher Schaltkreis vorgesehen, der die Erfassung und das Neuschreiben von Fehlern ermöglicht, die in übertragenen oder aufgezeichneten Daten enthalten sind. Das Blockdiagramm für das Neuschreib-System ist ebenfalls in Fig. 16 als ein Zusatz zu dem in Fig. 2 dargestellten System gezeigt. Die Fehlerkorrekturcodes für das Neuschreib-System sind so strukturiert, daß sofort nach dem Schreiben der Daten eine Entscheidung getroffen wird, um zu bestimmen, ob die Anzahl der enthaltenen Fehler so groß ist, daß ein Neuschreiben dieser Daten erforderlich ist (gleichzeitiges Lesen und Schreiben). Die Übertragungs/Aufzeichnungs- und die Empfangs/Wiedergabe-Teile des Systems für das gleichzeitige Lesen und Schreiben sind in der Struktur im wesentlichen die gleichen, wie die des in Fig. 2 gezeigten Systems.
  • Der Wiedergabeteil ist ausgelegt, um die Daten unmittelbar nach ihrem Einschreiben in den Medienkanal (zum Beispiel in ein digitales Magnetbandaufzeichnungsgerät mit Schneckenaufzeichnung) zu lesen. Die eingeschriebenen, codierten Daten werden dann durch die C1- und C2-Decodiereinrichtungen 180 bzw. 202 verarbeitet, wobei die Anzahl der erfaßten enthaltenen Fehler in jeder Datenebene gezählt und auf den Leitungen 184 bzw. 206 ausgegeben wird.
  • Aus der Anzahl der C1- und C2-Löschmarkierungen, die von den C1- und C2-Decodiereinrichtungen 180 bzw. 202 ausgegeben werden, werden zwei Summen berechnet. Die erste ist eine Summe der Anzahl der C1-Löschmarkierungen pro Datenebene und die zweite ist eine Summe der Anzahl der C2-Löschmarkierungen pro Datenebene. Somit bestimmt das Neuschreib-System die Anzahl der Datenfehler, die in einem Teil des Datenstromes enthalten sind, der aus dem Medienkanal ausgelesen wird. Die erste Summe (C1) wird mit einem Schwellenwertsatz verglichen, um den maximal tolerierbaren Zufallsfehler darzustellen und die zweite Summe (C2) wird mit einem Schwellenwertsatz verglichen, um den maximal tolerierbaren Stoßfehler darzustellen. Wenn irgendein Schwellenwert überschritten wird, wird der Prozeß zum Neuschreiben der Datenebene oder der Spur ausgelöst, für die der Schwellenwert die Anzahl der erfaßten Fehler überschreitet. Die C2-Prüfung schützt gegen die Möglichkeit, daß ein oder mehrere Zeichen, die von der C2- Decodiereinrichtung decodiert wurden, weiterhin nicht korrigierte Fehler enthalten. Die Schwellenpegel für die C1- und C2-Summen sind durch den Systembenutzer wählbar, dadurch wird es dem Benutzer ermöglicht, das System entsprechend dem gewünschten Kompromiß zwischen Schreibgenauigkeit und der Häufigkeit des Neuschreibens zuzuschneiden.
  • Wir beziehen uns nun auf den Schaltkreis für das gleichzeitige Lesen und Schreiben von Fig. 16. Ein Akkumulator 250 zählt die Anzahl der C1-Löschmarkierungen pro Datenebene und gibt die Zählung an eine Vergleichseinrichtung 252 aus. Eine andere Vergleichseinrichtung 254 zählt die Anzahl der C2-Löschmarkierungen pro Datenebene und gibt die Zählung ebenfalls an die Vergleichseinrichtung 252 aus. Die Vergleichseinrichtung 252 hat zwei Schwelleneingaben, die auf den Leitungen 256 und 258 empfangen werden, für das Einstellen der Anzahl der tolerierbaren C1- und C2-Fehler pro Datenebene oder Spur. Wenn irgendein Schwellenpegel für eine gegebene Datenebene überschritten wird, gibt die Vergleichseinrichtung 252 ein Neuschreib-Signal auf der Leitung 260 aus.
  • Das Neuschreibsignal auf der Leitung 260 ist mit der Datenquelle (nicht gezeigt) gekoppelt, um die Quelle so zu steuern, daß der Fluß der neuen Daten von der Datenquelle zu der C3-Codiereinrichtung gestoppt wird. Das Signal ist auch mit einem Abschalt- UND-Gate 262 verbunden, um den Fluß neu in das System kommender Daten zu stoppen. Das Neuschreibsignal auf der Leitung 260 ist weiterhin mit dem logischen Schaltkreis für den freien Zugriff 84 (Fig. 6) der äußeren Verschachtelungseinrichtung 16 verbunden. Das bewirkt, daß der logische Schaltkreis für den freien Zugriff 84 den Leseadreßzähler 76 und die Nachschlagetabelle 78 auf die Startadresse der Speicherfelder 60 für die neu zu schreibende Datenebene voreinstellt. Der Teil der fehlerhaften Daten wird dann neu gelesen und auf der Leitung 82 zur erneuten Verschachtelung und erneuten Codierung durch den Schreibteil des Systems für die Übertragung über den Medienkanal ausgegeben. Die Speicherfelder 60 der äußeren Verschachtelungseinrichtung 16 müssen eine ausreichende Grdße aufweisen, um die Daten für den Zeitraum speichern zu können, der für das Prüfen des Neuschreib- Schaltkreises erforderlich ist.
  • Wie bereits vorher erwähnt wurde, verwenden die Ausführungen der Erfindung, wie sie Fig. 2 und 16 gezeigt sind, eine Medienkanal- Codiereinrichtung 160, die ein Lauflängenbegrenzungs-Codierschema implementiert, das allgemein als Miller-Squared (M²)-Codierung bezeichnet wird. Es ist natürlich so zu verstehen, daß andere Medienkanal-Codiersysteme, oder kein Medienkanal-Codiersystem, wie in Fig. 15, bei der Ausführung der Erfindung verwendet werden dürfen. Der Code, die Codiereinrichtung und die Decodiereinrichtung für das Realisieren eines bekannten M²-Lauflängenbegrenzungs-Codierschemas sind in der Neuauflage des Patents Nr. 31,311, erteilt an Miller, beschrieben, dessen Offenbarung durch Bezugnahme hierdurch vollkommen einbezogen ist.
  • Wie gut bekannt ist, werden die Wellenformen von übertragenen Digitaldaten in Bitzellen unterteilt, wobei jede Zelle ein Datenbit in binärer Form enthält. Datenübergänge (von der logischen 1 zur 0 oder umgekehrt) brauchen am Beginn oder am Ende einer Bitzelle nicht erscheinen. Die Folgeregeln, wie sie von Miller aufgezeigt wurden, sehen vor, das logische 0 Bits durch die Übergänge am Beginn der Zelle und die logische 1 Übergänge durch die Datenübergänge in der Zellenmitte erkannt werden. Die einzige Ausnahme zu dieser Regel ist die, daß die Übergänge unterdrückt werden, wenn sie innerhalb einer Bitzelle eines vorherigen Überganges auftreten. Eine zusätzliche Folgeregel für die M²-Codierung kommt in der Weise zur Anwendung, daß der letzte Übergang von jeder geraden Zahl einer logischen 1', der eine logische 0 folgt, unterdrückt wird.
  • Weil die Übergänge in M²-codierten Daten an zwei Stellen in der Datenzelle erscheinen, arbeitet der Taktzyklus, der für die Decodierung der Daten benötigt wird, mit der doppelten Frequenz der seriellen Datenrate der uncodierten Daten. Somit gibt es zwei M²-Taktzyklen für jede Datenzelle. Die Prinzipien der bekannten M²-Codierung und -Decodierung sind in der Neuauflage des Patents Nr. 31,311 vollständiger erläutert. Fehler treten in M- codierten Daten auf, wenn die speziell entsprechend den Folgeregeln codierten Übergangsstellen in der Datenzelle durch Übergangs- oder wiederkehrende Zustände im Medienkanal verschoben werden und nicht klar ist, ob der Übergang eine logische 1 oder eine logische 0 bezeichnet.
  • Die bekannte Lauflängenbegrenzungs-Decodiereinrichtung, wie sie im Miller-Patent offenbart ist, decodiert allein den Datenstrom. Die Decodiereinrichtung bietet keine Fehlererfassungs- oder Fehlerkorrekturfähigkeit und funktioniert unabhängig von jeglichen anderen enthaltenen Fehlerfassungs- und Fehlerkorrekturschaltkreisen. Somit erkennt die Decodiereinrichtung nicht die Fälle, in denen der Medienkanal Fehler eingeführt hat, die M²- Folgeregeln verletzen. Es wäre jedoch vorteilhaft, wenn solche Folgeverletzungen markiert werden könnten. Bei Markieren der M²- Fehler ist eine verbesserte Leistung der Fehlerkorrektur-Decodiereinrichtungen möglich, zum Beispiel von T auf 2T, da die markierten Fehler nur ein Codezeichen für die Korrektur benötigen.
  • Es gibt drei Einschränkungen oder Bedingungen (Folgeverletzungen) im M²-codierten Datenstrom, die auf der Decodierseite leicht zu prüfen sind, um nicht ordnungsgemäße Codefolgen zu erfassen. Erstens, wenn die Lauflänge zwischen den Übergängen im M²-Codestrom kürzer ist als das Minimum einer Datenzelle (zwei M²-Takte), ist eine kurze Folgeverletzung aufgetreten. Zweitens, wenn die Lauflänge zwischen den Übergängen im M²-Codestrom länger ist als das Maximum von drei Datenzellen (sechs M²-Takte), ist eine lange Folgeverletzung aufgetreten. Die dritte Begrenzung prüft jede Lauflänge, die zwei Datenzellen (vier M²-Takte) überschreitet. Wenn der Übergang den Lauf in der Mitte einer Datenzelle beginnt, dann ist die Folge eine korrekte M²-Synchron-Folge und wird von der Decodiereinrichtung verwendet, um die Lage der Zellengrenzen zu bestimmen. Wenn jedoch der Übergang den Lauf an der Grenze zwischen zwei angrenzenden Datenzellen beginnt, dann wird ein Synchron-Folgefehler erfaßt.
  • Bei einer M²-Fehlererfassungs-Decodiereinrichtung ist es wichtig, daß die von der Decodiereinrichtung markierten fehlerhaften Daten tatsächlich einen Fehler enthalten. Ansonsten wird ein Fehlerkorrektur-Codeprüfzeichen, das für die Korrektur durch nachfolgende Decodiereinrichtungen bestimmt ist, für Korrekturdaten vergeudet, die nicht fehlerhaft sind und steht für die Korrektur anderer enthaltener Fehler nicht zur Verfügung. Es gibt somit zwei Kriterien bei der Entwicklung einer Lauflängenbegrenzungs-Fehlermarkierungs-Decodiereinrichtung. Erstens sollte die Decodiereinrichtung soviel wie möglich durch den Medienkanal eingeführte Fehler erfassen. Zweitens sollte die Decodiereinrichtung die Menge der korrekt decodierten Daten, die als fehlerhaft markiert sind, minimieren. Beim Abwägen dieser beiden Kriterien sollte die Decodiereinrichtung nur zweifelhafte Daten als fehlerhaft markieren und alle anderen Fehler für die spätere Erfassung und Korrektur durch nachfolgende Fehlerkorrektur-Decodiereinrichtungen übrig lassen.
  • Wir beziehen uns nun auf Fig. 17A. Dort ist eine bekannte M²- Decodiereinrichtung mit integriertem Schaltkreis zur Erfassung und Markierung kurzer Laufverletzungsfehler gezeigt. Für den Zweck einer klareren Darstellung ist der Taktsynchronisationsschaltkreis nicht gezeigt und der zugefügte Schaltkreis für die Erfassung kurzer Laufverletzungen ist durch gestrichelte Linien eingerahmt dargestellt. Der Taktsynchronisierungsschaltkreis ist in Fig. 17B dargestellt. Die UND-Gatter G6-G9 empfangen die Ausgaben der Schieberegister-Flip-Flop-Schaltungen SR1-SR5 zusammen mit den AND-Gatter Ausgaben, die durch das Gatter 10 für die Ausgabe zur Flip-Flop-Schaltung FF6 in den ODER-Zustand gebracht werden.
  • Fig. 18 zeigt ein Taktdiagramm, das den Betrieb des Schaltkreises von Fig. 17A zur Erfassung und Markierung von kurzen Fehlern darstellt. Die Aufzeichnungsdaten und die Aufzeichnungs-M²-Codefolge (Ausgabe aus der M²-Codiereinrichtung) sind zusammen mit den Aufzeichnungs- und M²-Taktsignalen dargestellt. Als nächstes ist der M²-Code gezeigt, wie er durch den Schaltkreis der Decodiereinrichtung von Fig. 17A empfangen wird. Er enthält ein Paar von Codeübergängen, lediglich durch einen M²-Takt getrennt, die eine kurze Folgeverletzung anzeigen. Die beiden Stellen für jeden Fehler, an denen sich der Übergang fehlerhaft verschoben hat, sind mit Fragezeichen (?) markiert, da die Decodiereinrichtung nicht weiß, welche verschoben wurde und welche nicht.
  • Im Fünf-Bit-Verschieberegister SR1-SR5 gibt es zwei aufeinanderfolgende Abgriffe, die den Zustand H aufweisen und vier mögliche Fehlerstellen sind auf Grund des Betriebes des XOR-Gatters G1 mit Fragezeichen-Markierungen (?) für jede Folgeverletzung markiert. Die Ausgaben von den UND-Gattern G6-G9 sind in den auf den M²-Takt folgenden Zeiten H, wenn ihre zugehörigen Eingaben von den Schieberegister-Flip-Flop-Schaltungen SR1-SR5 beide H sind. Die Kurzlauffehlerausgabe vom ODER-Gatter G10 ist immer dann H, wenn die Ausgabe von den Gattern G6-G9 H ist. Somit wird die Kurzlauffehlermarkierung (Ausgabe von der Flip-Flop-Schal tung FF6) für die beiden Datenzellen (vier M²-Takte) signalisiert, wenn der Kurzlauffehler erfaßt worden ist. Diese Fehlermarkierung wird zu einer nachfolgenden Decodiereinrichtung weitergeleitet, um eine vergrößerte Fehlerkorrekturfähigkeit zur Verfügung zu stellen.
  • Wir beziehen uns nun auf Fig. 19. Dort ist eine bekannte M²- Decodiereinrichtung mit integriertem Schaltkreis für die Erfassung und Markierung von Langlaufverletzungsfehlern dargestellt. Für den Zweck einer klareren Darstellung ist der Taktsynchronisationsschaltkreis nicht gezeigt und der zugefügte Langlaufverletzungs-Erfassungsschaltkreis ist durch eine gestrichelte Linie umrahmt gezeigt. Wiederum ist der Taktsynchronisationsschaltkreis in Fig. 17B gezeigt. Das UND-Gatter G6 empfängt die Ausgaben von den Schieberegister-Flip-Flop-Schaltungen SR1-SR6 und das UND-Gatter G7 empfängt die Ausgaben der Schieberegister- Flip-Flop-Schaltungen SR3-SR8. Die Ausgaben der UND-Gatter G6 und G7 werden zusammen durch das Gatter G8 für die Ausgabe zur Flip-Flop-Schaltung FF6 in den ODER-Zustand gebracht.
  • Fig. 20 zeigt ein Taktdiagramm, das den Betrieb des Schaltkreises von Fig. 19 für die Erfassung und Markierung von Langlauffehlern darstellt. Die Aufzeichnungsdaten und die Aufzeichnungs- M²-Codefolge (Ausgabe von der M²-Codiereinrichtung) sind zusammen mit den Aufzeichnungs- und M²-Taktsignalen gezeigt. Als nächstes ist der M²-Code gezeigt, wie durch den Schaltkreis der Decodierungseinrichtung von Fig. 19 gezeigt ist. Er enthält ein Paar von Codeübergängen, getrennt durch dreieinhalb Datenzellen (sieben M²-Takte), die eine Langlaufverletzung anzeigen. Die Stelle des unkorrekten Überganges am Ende des Blockes ist mit einem "x" gekennzeichnet, während die Stelle der Fehlerursache, ein fehlender 1-Übergang in der Mitte der Sieben-Takt-Folge, mit einem Sternchen (*) gekennzeichnet ist. Die Decodiereinrichtung erkennt, daß der Abschlußübergang verschoben wurde, aber nicht der Anfangsübergang, weil der Anfangsübergang korrekt in der Mitte einer Datenzelle auftritt.
  • In den Schieberegister-Flip-Flop-Schaltungen SR1-SR8 gibt es zwei mögliche Fehlerstellen (x) oder unkorrekt decodierte Datenbits, zurückzuführen auf den Betrieb des XOR-Gatters G1. Eine entspricht einem unkorrekten Bit in der Ausgabe der Schieberegister-Flip-Flop-Schaltung SR3. Die andere tritt auf, weil die Ausgabe von Gatter G2 unkorrekt H ist. Das weist auf ein unkorrektes Null-Bit in der Ausgabe der Schieberegister-Flip-Flop- Schaltung SR1 hin. Die Ausgabe des UND-Gatters G6 ist H, wenn die Ausgaben der Schieberegister-Flip-Flop-Schaltungen SR1-SR6 L sind. Die Ausgabe des UND-Gatters G6 ist zwei M²-Takte später L, weil es die Eingaben der Ausgaben der Schieberegister-Flip- Flop-Schaltungen SR3-SR8 empfängt. Das ODER-Gatter G7 ist H, wenn eine der Ausgaben der UND-Gatter G6 und G7 H ist. Wegen der Taktabhängigkeit zwischen der Ausgabe des ODER-Gatters G8 und von NRZ CLK bei FF6, wird eine Fehlermarkierung, die einen Fehler am Ende eines langen Laufes (x) anzeigt, ausgegeben, wenn die Ausgabe des ODER-Gatters H und von NRZ CLK L ist.
  • Wir beziehen uns nun auf Fig. 21. Dort ist eine bekannte M²- Decodiereinrichtung mit integriertem Schaltkreis zur Erfassung und Markierung unzulässiger M²-Synchronisationsfolgefehler dargestellt. Für die Zwecke einer klareren Darstellung ist der Taktsynchronisierungsschaltkreis nicht dargestellt und der zugefügte Schaltkreis für die Erfassung der unzulässigen Synchronisationsfolge ist durch gestrichelte Linien umrahmt dargestellt. Wiederum ist der Taktsynchronisationsschaltkreis in Fig. 17B gezeigt. Das UND-Gatter G6 empfängt die Ausgaben der Schieberegister- Flip-Flop-Schaltungen SR3-SR6. Die Ausgabe des UND-Gatters G6 wird mit der Ausgabe des UND-Gatters G4 durch das Gatter G7 in den ODER-Zustand gebracht, das eine Ausgabe zur Flip-Flop-Schaltung FF6 hat.
  • Fig. 22 zeigt ein Taktdiagramm, das den Betrieb des Schaltkreises von Fig. 21 für die Erfassung und Markierung unzulässiger M²- Synchronisationsfolgefehler darstellt. Die Aufzeichnungsdaten und die Aufzeichnungs-M²-Codefolge (Ausgabe von der M²-Codiereinrichtung) sind zusammen mit den Aufzeichnungs- und M²-Taktsignalen gezeigt. Als nächstes ist der M²-Code dargestellt, wie durch die Schaltkreise der Decodiereinrichtung von Fig. 21 empfangen wird. Er enthält ein Paar von Codeübergängen, getrennt durch zwei Datenzellen (vier M²-Takte), wobei der Anfangsübergang auf die Grenze zwischen den Datenzellen fällt und eine Synchronisationsfolgeverletzung anzeigt. Die beiden Stellen für jeden Fehler, an denen der Übergang fehlerhaft verschoben ist, sind mit Fragezeichen (?) markiert, da die Decodiereinrichtung nicht erkennt, welcher Übergang verschoben ist und welcher nicht.
  • In den Schieberegister-Flip-Flop-Schaltungen SRL-SR6 gibt es durch den Betrieb des XOR-Gatters G1 vier mögliche Fehlerstellen, die durch Fragezeichen (?) gekennzeichnet sind. Die Ausgabe des UND-Gatters G4 ist H, wenn die Ausgaben von SRL-SR3 L und die Ausgabe von SR4 H ist. Die Ausgabe des UND-Gatters G6 ist zwei M²-Takte später H, weil es Eingaben von den Ausgaben der Schieberegister-Flip-Flop-Schaltungen empfängt. Die Ausgabe des ODER-Gatters G7 ist H, wenn eine der Ausgabe von den Gattern G4 oder G6 H ist. Wegen der Taktabhängigkeit zwischen der Ausgabe des Gatters G7 und von NRZ CLK an FF6, wird eine Fehlermarkierung erzeugt, wenn die Ausgabe des ODER-Gatters G7 H und von NRZ CLK L ist, die einen Fehler zu Beginn des Laufes (? Synchronisationsfehler) anzeigt.
  • Mit dem Fehlererfassungsschaltkreisen von Fig. 17A, 19 und 21, die dem bekannten M²-Schaltkreis der Decodiereinrichtung zugefügt sind und im System von Fig. 2 und 16 verwendet werden, werden verschobene Übergänge im codierten Bitstrom erfaßt und als Folgeverletzungen (S.V.) für die nachfolgende Verarbeitung und Korrektur durch die C1-Fehlerkorrektur-Decodiereinrichtung markiert. Es ist natürlich so zu verstehen, daß nicht jeder Markierungsschaltkreis in das System einbezogen werden muß. Die genaue Position des Fehlers an der markierten Stelle ist unbestimmt, weil die Fehlermarkierungsschaltkreise zwei Bits und nicht eines markieren. Ansonsten wäre eine Fehlerkorrektur einfach, da ein einzelnes, markiertes Fehlerbit gerade invertiert werden könnte.
  • Obwohl mehrere Ausführungen für das dreifach orthogonal ver schachtelte Fehlerkorrektursystem und seine Bestandteile in der vorhergehenden ausführlichen Beschreibung erörtert und in den beigefügten Zeichnungen dargestellt wurden, ist es doch so zu verstehen, daß die Erfindung nicht auf die offenbarten Ausführungen beschränkt ist, sondern zahlreiche Neuanordnungen, Modifikationen und Substitutionen zur Anwendung kommen können ohne von der Erfindung abzuweichen, wie sie bekanntgemacht und durch die folgenden Patentansprüche definiert ist.

Claims (12)

1. Verfahren zum Verschachteln und Codieren eines Benutzerdatenstroms, der in eine Folge von ersten Codegruppen unterteilt ist, mit den Schritten: Codieren (12) der Folge von ersten Codegruppen, um eine Folge von ersten Codewörtern zu erzeugen, Verschachteln (16) der Folge von ersten Codewörtern, um eine Folge von zweiten Codegruppen zu erzeugen, Codieren (90) der Folge von zweiten Codegruppen, um eine Folge von zweiten Codewörtern zu erzeugen, Verschachteln (110) der Folge von zweiten Codewörtern, um eine Folge von dritten Codegruppen zu erzeugen, und Codieren (150) der Folge von dritten Codegruppen, um zur Ausgabe eine Folge von dritten Codewörtern zu erzeugen, gekennzeichnet durch die Schritte:
Anfügen eines ersten Fehlerkorrekturcodes (C3) an die erste Codegruppe während des Codierens (12) der Folge von ersten Codegruppen, um eine Folge von ersten Codewörtern zu erzeugen, Anfügen eines zweiten Fehlerkorrekturcodes (C2) an die zweite Codegruppe während des Codierens (90) der Folge von zweiten Codegruppen, um eine Folge von zweiten Codewörtern zu erzeugen, Anfü4en eines dritten Fehlerkorrekturcodes (C1) an die dritte Codegruppe während des Codierens (150) der Folge von dritten Codegruppen, um eine Folge von dritten Codewörtern zu erzeugen.
2. Verfahren nach Anspruch 1, bei dem der Schritt des Verschachtelns gekennzeichnet ist durch die Schritte: Anordnen einer Folge von Codewörtern zu einer ersten Reihe von zweidimensionalen Spalte/Zeile-Datenebenen (40, 42, 44);
Umordnen von Datenebenen-Zeilen zwischen Datenebenen der ersten Reihe, um eine zweite Reihe von zweidimensionalen Spalte/Zeile-Datenebenen (46) zu erzeugen; und
Ausgeben von jeder Spalte (18) der zweiten Reihe von Datenebenen.
3. Verfahren nach Anspruch 2, bei dem der Schritt des Umordnens der Datenebenen-Zeilen weiterhin gekennzeichnet ist durch:
Umordnen der Zeilen (20) der ersten Reihe von Datenebenen (40, 42, 44) zwischen den Datenebenen gemäß eines vorbestimmten Umordnungsalgorithmus, um die zweite Reihe von Datenebenen (46) zu erzeugen, wobei die relative Zeilenposition einer umgeordneten Zeile zwischen der ersten und der zweiten Reihe von Datenebenen beibehalten wird.
4. Verfahren nach Anspruch 1, bei dem der Schritt des Anfügens der Fehlerkorrekturcodes weiterhin gekennzeichnet ist durch:
Anordnen der Folge von dritten Codewörtern in einer zweidimensionale Spalte/Zeile-Datenebene (152), wobei pro Datenebenen-Zeile ein drittes Codewort sequentiell gespeichert wird und wobei außerdem der dritte Fehlerkorrekturcode bezüglich des ersten und des zweiten Fehlerkorrekturcodes quer angeordnet ist.
5. Vorrichtung zum Verschachteln und Codieren eines Datenstroms, der in eine Folge von ersten Codegruppen unterteilt ist, mit einer Einrichtung (12) zum Codieren der Folge von ersten Codegruppen, um eine Folge von ersten Codewörtern zu erzeugen, einer Einrichtung (16) zum Verschachteln der Folge von ersten Codewörtern, um eine Folge von zweiten Codegruppen zu erzeugen, einer Einrichtung (90) zum Codieren der Folge von zweiten Codegruppen, um einen Folge von zweiten Codewörtern zu erzeugen, einer Einrichtung (110) zum Verschachteln der Folge von zweiten Codewörtern, um eine Folge von dritten Codegruppen zu erzeugen, und einer Einrichtung (150) zum Codieren der Folge von dritten Codegruppen, um zur Ausgabe eine Folge von dritten Codewörtern zu erzeugen, gekennzeichnet durch:
eine Einrichtung zum Anfügen eines ersten Fehlerkorrekturcodes (C3) an die erste Codegruppe während des Codierens (12) der Folge von ersten Codegruppen, um eine Folge von ersten Codewörtern zu erzeugen,
eine Einrichtung zum Anfügen eines zweiten Fehlerkorrekturcodes (C2) an die zweite Codegruppe während des Codierens (90) der Folge von zweiten Codegruppen, um eine Folge von zweiten Codewörtern zu erzeugen,
eine Einrichtung zum Anfügen eines dritten Fehlerkorrekturcodes (C1) an die dritte Codegruppe während des Codierens (150) der Folge von dritten Codegruppen, um eine Folge von dritten Codewörtern zu erzeugen.
6. Vorrichtung nach Anspruch 51 bei der die Einrichtung zum Verschachteln weiterhin gekennzeichnet ist durch:
eine Einrichtung zum Speichern der Folge von Codewörtern in einer ersten Reihe von zweidimensionalen Spalte/Zeile-Datenebenen (40, 42, 44);
eine Einrichtung zum Umordnen von Datenebenen-Zeilen gemäß einer vorbestimmten Umordnungssequenz, um eine zweite Reihe von zweidimensionalen Spalte/Zeile-Datenebenen (46) zu erzeugen; und
eine Einrichtung zur sequentiellen Ausgabe von jeder Spalte (18) der zweiten Reihe von Datenebenen.
7. Verfahren zum Decodieren und Entschachteln einer Folge von Codewörtern, die durch das Verfahren nach Anspruch 1 verschachtelt und codiert worden sind, mit den Schritten: Decodieren (180) der Folge von dritten Codewörtern, um eine Folge von dritten Codegruppen zu erzeugen, Entschachteln (190) der Folge von dritten Codegruppen, um eine Folge von zweiten Codewörtern zu erzeugen, Decodieren (202) der Folge von zweiten Codewörtern, um eine Folge von zweiten Codegruppen zu erzeugen, Entschachteln (230) der Folge von zweiten Codegruppen, um eine Folge von ersten Codewörtern zu erzeugen, und Decodieren (240) der Folge von ersten Codewörtern, um zur Ausgabe eine Folge von ersten Codegruppen zu erzeugen, gekennzeichnet durch:
Anfügen eines dritten Fehlerkorrekturcodes (C1) an die Folge von dritten Codewörtern, um enthaltene Fehler zu korrigieren, und Ausgeben von ersten Löschmarkierungen, durch die jede dritte Codegruppe in der Folge angezeigt wird, die einen erfaßten aber nicht korrigierten Fehler enthält;
Anfügen eines zweiten Fehlerkorrekturcodes (C2) und der ersten Löschmarkierungen an die Folge von zweiten Codewörtern, um enthaltene Fehler zu korrigieren, und Ausgeben von zweiten Löschmarkierungen, durch die jede zweite Codegruppe in der Folge angezeigt wird, die einen erfaßten aber nicht korrigierten Fehler enthält;
Kombinieren (216) der ersten und zweiten Löschmarkierungen, um dritte Löschmarkierungen zu erzeugen, die auf Stellen in jeder zweiten Codegruppe zeigen, die Daten mit Fehlern enthalten; und
Anfügen eines ersten Fehlerkorrekturcodes (C3) und der dritten Löschmarkierungen an die Folge von ersten Codewörtern, um in den ersten Codewörtern enthaltene Fehler zu korrigieren.
8. Verfahren nach Anspruch 7, bei dem der Schritt des Entschachtelns (230) weiterhin gekennzeichnet ist durch:
Anordnen der Folge von zweiten Codegruppen mit den dritten Löschmarkierungen in einer ersten Reihe von zweidimensionalen Spalte/Zeile-Datenebenen;
Zurückordnen von Datenebenen-Zeilen gemäß einer vorbestimmten Zurückordnungssequenz, um eine zweite Reihe von zweidimensionalen Spalte/Zeile-Datenebenen zu erzeugen; und
Ausgeben von jeder Spalte der zweiten Reihe von Datenebenen als eines der ersten Codewörter einschließlich entschachtelter dritter Löschmarkierungen.
9. Verfahren nach Anspruch 7, bei dem der Schritt des Kombinierens der ersten Löschmarkierung und der zweiten Löschmarkierung weiterhin gekennzeichnet ist durch:
Verzögern (212) der ersten Löschmarkierung, um die zum Decodieren (202) der Folge von zweiten Codewörtern erforderliche Verarbeitungszeit einzustellen; und
synchronisiertes, logisches Kombinieren (216) der verzögerten ersten Löschmarkierung und der zweiten Löschmarkierung, um die dritte Löschmarkierung zu erzeugen.
10. Vorrichtung zum Decodieren und Entschachteln einer Folge von Codewörtern, die durch die Vorrichtung nach Anspruch 5 verschachtelt und decodiert worden sind, mit einer Einrichtung zum Decodieren (180) der Folge von dritten Codewörtern, um eine Folge von dritten Codegruppen zu erzeugen, einer Einrichtung zum Entschachteln (190) der Folge von dritten Codegruppen, um eine Folge von zweiten Codewörtern zu erzeugen, einer Einrichtung zum Decodieren (202) der Folge von zweiten Codewörtern, um eine Folge von zweiten Codegruppen zu erzeugen, einer/Einrichtung zum Entschachteln (230) der Folge von zweiten Codegruppen, um eine Folge von ersten Codewörtern zu erzeugen, und einer Einrichtung zum Decodieren (240) der Folge von ersten Codewörtern, um zur Ausgabe eine Folge von ersten Codegruppen zu erzeugen, gekennzeichnet durch:
eine Einrichtung zum Anfügen eines dritten Fehlerkorrekturcodes (C1) an die Folge von dritten Codewörtern, um enthaltene Fehler zu korrigieren, und eine Einrichtung zum Ausgeben von ersten Löschmarkierungen, durch die jede dritte Codegruppe in der Folge angezeigt wird, die einen erfaßten aber nicht korrigierten Fehler enthält;
eine Einrichtung zum Anfügen eines zweiten Fehlerkorrekturcodes (C2) und der ersten Löschmarkierungen an die Folge von zweiten Codewörtern, um enthaltene Fehler zu korrigieren, und eine Einrichtung zum Ausgeben von zweiten Löschmarkierungen, durch die jede zweite Codegruppe in der Folge angezeigt wird, die einen erfaßten aber nicht korrigierten Fehler enthält;
eine Einrichtung zum Kombinieren (216) der ersten und zweiten Löschmarkierungen, um dritte Löschmarkierungen zu erzeugen, die auf Stellen in jeder zweiten Codegruppe zeigen, die Daten mit Fehlern enthalten; und
eine Einrichtung zum Anfügen des ersten Fehlerkorrekturcodes (C3) und der dritten Löschmarkierungen an die Folge von ersten Codewörtern, um in den ersten Codewörtern enthaltene Fehler zu korrigieren.
11. Vorrichtung nach Anspruch 10, bei der die Einrichtung zum Entschachteln (230) weiterhin gekennzeichnet ist durch:
eine Einrichtung zum Anordnen der Folge von zweiten Codegruppen mit den dritten Löschmarkierungen in einer ersten Reihe von zweidimensionalen Spalte/Zeile-Datenebenen;
eine Einrichtung zum Zurückordnen von Datenebenen- Zeilen gemäß einer vorbestimmten Zurückordnungssequenz, um eine zweite Reihe von zweidimensionalen Spalte/Zeile-Datenebenen zu erzeugen; und
eine Einrichtung zum Ausgeben von jeder Spalte der zweiten Reihen von Datenebenen als eines der ersten Codewörter einschließlich entschachtelter dritter Löschmarkierungen.
12. Vorrichtung nach Anspruch 10, bei der die Einrichtung zum Kombinieren der ersten Löschmarkierung und der zweiten Löschmarkierung weiterhin gekennzeichnet ist durch:
eine Einrichtung zum Verzögern (212) der ersten Löschmarkierung, wenn entschachtelt, um die Verarbeitungszeit der Einrichtung zum Decodieren (2Ö2) einzustellen; und
eine Einrichtung zum logischen Kombinieren (216) der verzögerten, entschachtelten ersten Löschmarkierung in Synchronisation mit der zweiten Löschmarkierung, um die dritte Löschmarkierung zu erzeugen.
DE69315360T 1992-01-15 1993-01-07 Dreifach orthogonal verschachteltes Fehlerkorrektursystem Expired - Fee Related DE69315360T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/820,737 US5392299A (en) 1992-01-15 1992-01-15 Triple orthogonally interleaed error correction system

Publications (2)

Publication Number Publication Date
DE69315360D1 DE69315360D1 (de) 1998-01-08
DE69315360T2 true DE69315360T2 (de) 1998-04-09

Family

ID=25231595

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69315360T Expired - Fee Related DE69315360T2 (de) 1992-01-15 1993-01-07 Dreifach orthogonal verschachteltes Fehlerkorrektursystem

Country Status (13)

Country Link
US (1) US5392299A (de)
EP (1) EP0551973B1 (de)
JP (1) JP3465113B2 (de)
KR (1) KR100263593B1 (de)
CN (1) CN1081296A (de)
AT (1) ATE160658T1 (de)
AU (1) AU665044B2 (de)
CA (1) CA2087197C (de)
DE (1) DE69315360T2 (de)
FI (1) FI930147A0 (de)
IL (1) IL104395A (de)
MX (1) MX9300195A (de)
NO (1) NO930119L (de)

Families Citing this family (280)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69223694T2 (de) * 1991-07-18 1998-04-23 Canon Kk Kodierungs- und Dekodierungssystem zur Fehlerkorrektur
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
CA2064541C (en) * 1992-03-31 1998-09-15 Thomas A. Gray Cycling error count for link maintenance
US5638227A (en) * 1993-12-17 1997-06-10 Matsushita Electric Industrial Co., Ltd. Digital data recording and reproducing apparatus
US5644582A (en) * 1994-03-09 1997-07-01 U.S. Philips Corporation Conversion arrangement for a magnetic recording/reproducing apparatus of the D-type
EP2302810B1 (de) * 1995-02-01 2013-06-05 Sony Corporation Mehrkanalübertragung mit Verschachtelung durch in-place Adressierung eines RAM-Speichers
JP3206358B2 (ja) * 1995-03-30 2001-09-10 松下電器産業株式会社 データ一時記憶装置
FI97837C (fi) * 1995-04-11 1997-02-25 Nokia Mobile Phones Ltd Tiedonsiirtomenetelmä sekä lähetin
JPH08293802A (ja) * 1995-04-13 1996-11-05 Internatl Business Mach Corp <Ibm> インターリーブ式誤り訂正方法
US5719884A (en) * 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
US5757822A (en) * 1995-08-24 1998-05-26 Quantum Corporation Bit-interleaved rate 16/17 modulation code with three-way byte-interleaved ECC
JPH1051354A (ja) * 1996-05-30 1998-02-20 N T T Ido Tsushinmo Kk Ds−cdma伝送方法
US5968198A (en) * 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
US5996104A (en) * 1996-09-13 1999-11-30 Herzberg; Hanan System for coding system
JP3310185B2 (ja) * 1996-11-21 2002-07-29 松下電器産業株式会社 誤り訂正装置
US5946357A (en) * 1997-01-17 1999-08-31 Telefonaktiebolaget L M Ericsson Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal
JP3340933B2 (ja) * 1997-02-15 2002-11-05 東芝デジタルメディアエンジニアリング株式会社 誤り訂正方法及びdvd再生装置
US5920578A (en) * 1997-04-23 1999-07-06 Cirrus Logic, Inc. Method and apparatus for efficiently processing a multi-dimensional code
US6151296A (en) * 1997-06-19 2000-11-21 Qualcomm Incorporated Bit interleaving for orthogonal frequency division multiplexing in the transmission of digital signals
JPH1131977A (ja) * 1997-07-10 1999-02-02 Sony Corp 誤り訂正符号演算器
FI104023B (fi) 1997-07-18 1999-10-29 Nokia Mobile Phones Ltd Tiedonsiirtomenetelmä ja -järjestelmä
JPH11112358A (ja) * 1997-09-30 1999-04-23 Fujitsu Ltd データの誤り訂正方法及び誤り訂正装置
FR2769776B1 (fr) * 1997-10-09 1999-12-17 Alsthom Cge Alcatel Procede de codage bloc par code produit applicable notamment au codage d'une cellule atm
KR100272708B1 (ko) * 1997-12-30 2000-11-15 전주범 D-vhs시스템에서 셔플링을 이용한 디지털 데이터의 코딩/디코딩 방법
KR100256965B1 (ko) * 1997-12-30 2000-05-15 윤종용 어드레스 버스의 1 비트 오류 자동 수정 회로 및 방법
DE69814465T2 (de) 1998-01-16 2004-04-01 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
JP3307579B2 (ja) * 1998-01-28 2002-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶システム
CA2325993A1 (en) * 1998-03-30 1999-10-07 Telefonaktiebolaget Lm Ericsson An interleaving scheme for blocks in a packet switched system
US6367047B1 (en) * 1998-10-20 2002-04-02 Ecrix Multi-level error detection and correction technique for data storage recording device
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
US6304991B1 (en) 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
US6484283B2 (en) * 1998-12-30 2002-11-19 International Business Machines Corporation Method and apparatus for encoding and decoding a turbo code in an integrated modem system
KR100321978B1 (ko) * 1998-12-31 2002-07-02 윤종용 통신시스템에서반복복호장치및방법
JP4031136B2 (ja) * 1999-01-14 2008-01-09 株式会社東芝 符号化・復号化装置及びディスク記憶装置
JP3502559B2 (ja) * 1999-02-05 2004-03-02 松下電器産業株式会社 消失訂正方法、及び消失訂正回路
US6581178B1 (en) * 1999-02-15 2003-06-17 Nec Corporation Error correction coding/decoding method and apparatus
US6314534B1 (en) * 1999-03-31 2001-11-06 Qualcomm Incorporated Generalized address generation for bit reversed random interleaving
US6356528B1 (en) * 1999-04-15 2002-03-12 Qualcomm Incorporated Interleaver and deinterleaver for use in a diversity transmission communication system
CN100483953C (zh) 1999-05-10 2009-04-29 株式会社Ntt杜可莫 数据信号发送方法与数据信号发送装置
US7089477B1 (en) * 1999-08-18 2006-08-08 California Institute Of Technology Interleaved serial concatenation forming turbo-like codes
US6606727B1 (en) * 1999-10-29 2003-08-12 Stmicroelectronics, Inc. System and method for providing error correction coding with selectively variable redundancy
US6625774B1 (en) * 1999-10-29 2003-09-23 Stmicroelectronics, Inc. Redundancy system and method for locating errors in interleaved code words
JP3841990B2 (ja) 1999-12-07 2006-11-08 三菱電機株式会社 Fecフレーム構成方法およびfec多重化装置
US7356752B2 (en) * 2000-03-14 2008-04-08 Comtech Telecommunications Corp. Enhanced turbo product codes
JP2001266499A (ja) * 2000-03-23 2001-09-28 Sony Corp データ記録装置及びデータ記録方法、データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
JP2001274698A (ja) * 2000-03-24 2001-10-05 Sony Corp 符号化装置、符号化方法及び符号化プログラムが記録された記録媒体、並びに、復号装置、復号方法及び復号プログラムが記録された記録媒体
CA2404984A1 (en) * 2000-04-04 2001-10-11 Comtech Telecommunications Corp. Enhanced turbo product code decoder system
GB2363556B (en) * 2000-05-12 2004-12-22 Global Silicon Ltd Digital audio processing
US6675345B1 (en) * 2000-05-12 2004-01-06 Oak Technology, Inc. Method and apparatus for detecting errors in DVD data
US7116710B1 (en) * 2000-05-18 2006-10-03 California Institute Of Technology Serial concatenation of interleaved convolutional codes forming turbo-like codes
JP2001332982A (ja) * 2000-05-18 2001-11-30 Mitsubishi Electric Corp 光伝送システム、fec多重化装置、fec多重分離装置、および誤り訂正方法
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
US6622277B1 (en) * 2000-06-05 2003-09-16 Tyco Telecommunications(Us)Inc. Concatenated forward error correction decoder
US7032154B2 (en) 2000-06-05 2006-04-18 Tyco Telecommunications (Us) Inc. Concatenated forward error correction decoder
KR100378181B1 (ko) * 2000-06-09 2003-03-29 삼성전자주식회사 Efm/efm+ 디코딩에 의해 검출된 에러위치를 이용한c1/pi 워드의 에러정정 방법 및 장치
JP2002230916A (ja) * 2001-01-29 2002-08-16 Mitsubishi Electric Corp 情報再生装置
US7170849B1 (en) * 2001-03-19 2007-01-30 Cisco Systems Wireless Networking (Australia) Pty Limited Interleaver, deinterleaver, interleaving method, and deinterleaving method for OFDM data
US8656246B2 (en) * 2001-04-16 2014-02-18 Qualcomm Incorporated Method and an apparatus for use of codes in multicast transmission
US6981198B2 (en) * 2001-04-26 2005-12-27 Storage Technology Corporation Dynamic error correction code shortening
US7389463B2 (en) * 2001-05-29 2008-06-17 Thomson Licensing Hierarchical block coding for a packet-based communications system
US7385949B1 (en) * 2001-06-05 2008-06-10 Broadcom Corporation System and method for de-interleaving data in a wireless receiver
DE10127346C2 (de) * 2001-06-06 2003-07-17 Siemens Ag Datenübertragungssystem auf Multiträgerbasis und Verfahren zum Unterdrücken von Störungen bei einem Datenübertragungssystem auf Multiträgerbasis
JP2003069535A (ja) * 2001-06-15 2003-03-07 Mitsubishi Electric Corp 誤り訂正多重化装置、誤り訂正多重分離装置、これらを用いた光伝送システムおよび誤り訂正多重化伝送方法
US20020199153A1 (en) * 2001-06-22 2002-12-26 Fall Thomas G. Sampling method for use with bursty communication channels
US7278070B2 (en) 2001-09-14 2007-10-02 Texas Instruments Incorporated Interleaving to avoid wideband interference in a multi-carrier communications system
AU2002363786B2 (en) * 2001-10-17 2007-10-04 General Electric Company Signal error detection in railroad communication system
JP2005516485A (ja) * 2002-01-16 2005-06-02 アビオム,インコーポレイティド 複数レベルの保護を使用するオーディオ又はビデオデータを送信するシステム及び方法
US7231575B2 (en) 2002-04-01 2007-06-12 Intel Corporation Apparatus for iterative hard-decision forward error correction decoding
US7246294B2 (en) * 2002-04-01 2007-07-17 Intel Corporation Method for iterative hard-decision forward error correction decoding
US7346125B2 (en) * 2002-04-23 2008-03-18 Raytheon Company Method and device for pulse shaping QPSK signals
JP4920189B2 (ja) * 2002-06-21 2012-04-18 トムソン ライセンシング 順方向誤り訂正方法
EP1388944A1 (de) * 2002-08-10 2004-02-11 Deutsche Thomson-Brandt Gmbh Cross-interleave Reed-Solomon Codekorrektion
JP2004080508A (ja) * 2002-08-20 2004-03-11 Nec Electronics Corp 誤り訂正符号の復号方法、そのプログラム及びその装置
GB2396786B (en) * 2002-12-27 2005-12-21 Phyworks Ltd Fibre optic communications
US7137057B2 (en) * 2003-01-07 2006-11-14 Sun Microsystems, Inc. Method and apparatus for performing error correction code (ECC) conversion
GB2397666A (en) * 2003-01-27 2004-07-28 Hewlett Packard Co Logical data grouping in digital storage system
US7831869B2 (en) 2003-01-27 2010-11-09 Hewlett-Packard Development Company, L.P. DDS logical data grouping
US20040157626A1 (en) * 2003-02-10 2004-08-12 Vincent Park Paging methods and apparatus
US8196000B2 (en) * 2003-04-02 2012-06-05 Qualcomm Incorporated Methods and apparatus for interleaving in a block-coherent communication system
US7231557B2 (en) * 2003-04-02 2007-06-12 Qualcomm Incorporated Methods and apparatus for interleaving in a block-coherent communication system
US7434145B2 (en) * 2003-04-02 2008-10-07 Qualcomm Incorporated Extracting soft information in a block-coherent communication system
CN100461116C (zh) * 2003-04-02 2009-02-11 高通股份有限公司 用于在块相干通信系统中的交织的方法和设备
EP1519380A4 (de) * 2003-06-02 2006-11-02 Matsushita Electric Ind Co Ltd Fehlerkorrekturverfahren und -vorrichtung für verschachtelte daten
TWI254283B (en) * 2003-06-03 2006-05-01 Sunplus Technology Co Ltd Error correction device of block code and method thereof
KR100519771B1 (ko) * 2003-07-10 2005-10-07 삼성전자주식회사 에러 정정 디코딩 방법 및 그 장치
US7415658B2 (en) * 2003-09-10 2008-08-19 Intel Corporation Forward error correction mapping and de-mapping techniques
US7389468B2 (en) * 2004-09-20 2008-06-17 International Business Machines Corporation Writing and reading of data in probe-based data storage devices
FR2860360B1 (fr) * 2003-09-29 2005-12-09 Canon Kk Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
FR2861517B1 (fr) * 2003-10-23 2006-01-27 Thomson Licensing Sa Methode de reconstruction de paquets perdus et appareils implementant la methode
US20050180332A1 (en) * 2004-02-13 2005-08-18 Broadcom Corporation Low latency interleaving and deinterleaving
US7958425B2 (en) * 2004-02-19 2011-06-07 Trelliware Technologies, Inc. Method and apparatus for communications using turbo like codes
US7673213B2 (en) * 2004-02-19 2010-03-02 Trellisware Technologies, Inc. Method and apparatus for communications using improved turbo like codes
EP1569349A1 (de) * 2004-02-23 2005-08-31 Alcatel Alternatives Verknüpfungskodierschema für digitale Signale
EP2228936A1 (de) 2004-03-03 2010-09-15 Aware, Inc. Adaptive Vorwärts-Fehlerkorrektur für DSL-Systeme, basierend auf gemessenen Impulsstörungen
US6897793B1 (en) * 2004-04-29 2005-05-24 Silicon Image, Inc. Method and apparatus for run length limited TMDS-like encoding of data
GB2415336B (en) * 2004-06-18 2006-11-08 Toshiba Res Europ Ltd Bit interleaver for a mimo system
US7516389B2 (en) * 2004-11-04 2009-04-07 Agere Systems Inc. Concatenated iterative and algebraic coding
US7600164B2 (en) * 2004-12-17 2009-10-06 Telefonaktiebolaget Lm Ericsson (Publ) Interleaving/de-interleaving using compressed bit-mapping sequences
US7788570B1 (en) * 2005-03-23 2010-08-31 Marvell International Ltd. Optimized Reed-Solomon decoder
US20060236045A1 (en) * 2005-04-13 2006-10-19 Analog Devices, Inc. Apparatus for deinterleaving interleaved data using direct memory access
US7689132B2 (en) * 2005-06-07 2010-03-30 Industrial Technology Research Institute Interference-rejection coding method for an optical wireless communication system and the optical wireless communication system thereof
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
US7797615B2 (en) 2005-07-07 2010-09-14 Acer Incorporated Utilizing variable-length inputs in an inter-sequence permutation turbo code system
US20070011557A1 (en) * 2005-07-07 2007-01-11 Highdimension Ltd. Inter-sequence permutation turbo code system and operation methods thereof
US7480847B2 (en) * 2005-08-29 2009-01-20 Sun Microsystems, Inc. Error correction code transformation technique
US7712008B2 (en) * 2006-01-26 2010-05-04 Agere Systems Inc. Systems and methods for error reduction associated with information transfer
US7734984B2 (en) * 2006-04-13 2010-06-08 Trident Microsystems (Far East) Ltd. Erasures assisted block code decoder and related method
WO2008007846A1 (en) * 2006-07-11 2008-01-17 Lg Electronics Inc. Channel equarlizing method and apparatus, and receiving system
US7801200B2 (en) * 2006-07-31 2010-09-21 Agere Systems Inc. Systems and methods for code dependency reduction
US7779331B2 (en) 2006-07-31 2010-08-17 Agere Systems Inc. Systems and methods for tri-column code based error reduction
US7802163B2 (en) * 2006-07-31 2010-09-21 Agere Systems Inc. Systems and methods for code based error reduction
EP1887446A1 (de) * 2006-08-02 2008-02-13 Siemens Aktiengesellschaft Verfahren zur seriellen asynchronen Übertragung von Daten in einer Anordnung zur Überwachung, Steuerung und Regelung einer betriebstechnischen Anlage eines Gebäudes
US7793196B2 (en) * 2006-08-21 2010-09-07 Lsi Corporation Methods and apparatus for improved error and erasure correction in a Reed-Solomon date channel
US7971125B2 (en) * 2007-01-08 2011-06-28 Agere Systems Inc. Systems and methods for prioritizing error correction data
US8359522B2 (en) 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes
US8196002B2 (en) * 2007-06-01 2012-06-05 Agere Systems Inc. Systems and methods for joint LDPC encoding and decoding
US7930621B2 (en) * 2007-06-01 2011-04-19 Agere Systems Inc. Systems and methods for LDPC decoding with post processing
KR20100061409A (ko) * 2007-09-28 2010-06-07 에이저 시스템즈 인크 복잡성이 감소된 데이터 프로세싱을 위한 시스템들 및 방법들
US20090177943A1 (en) * 2008-01-09 2009-07-09 Broadcom Corporation Error correction coding using soft information and interleaving
US8161348B2 (en) * 2008-02-05 2012-04-17 Agere Systems Inc. Systems and methods for low cost LDPC decoding
US8266495B2 (en) * 2008-02-20 2012-09-11 Marvell World Trade Ltd. Systems and methods for performing concatenated error correction
EP2096884A1 (de) 2008-02-29 2009-09-02 Koninklijke KPN N.V. Telekommunikationsnetzwerk und Verfahren für den zeitbasierten Netzwerkzugang
US8245104B2 (en) * 2008-05-02 2012-08-14 Lsi Corporation Systems and methods for queue based data detection and decoding
KR101460835B1 (ko) * 2008-05-19 2014-11-11 에이저 시스템즈 엘엘시 데이터 검출기 피드백 루프에서 레이턴시를 완화하는 시스템들 및 방법들
US8352842B2 (en) * 2008-06-18 2013-01-08 Acterna Llc Determining contribution of burst noise to data errors
JP5340286B2 (ja) 2008-07-02 2013-11-13 パナソニック株式会社 消失訂正符号化装置及び消失訂正符号化方法
US8660220B2 (en) * 2008-09-05 2014-02-25 Lsi Corporation Reduced frequency data processing using a matched filter set front end
US8245120B2 (en) * 2008-09-17 2012-08-14 Lsi Corporation Power reduced queue based data detection and decoding systems and methods for using such
US8276047B2 (en) * 2008-11-13 2012-09-25 Vitesse Semiconductor Corporation Continuously interleaved error correction
CN102037513A (zh) * 2008-11-20 2011-04-27 Lsi公司 用于噪声降低的数据检测的系统和方法
KR101570472B1 (ko) * 2009-03-10 2015-11-23 삼성전자주식회사 연접 부호화 및 복호화 구조를 갖는 데이터 처리 시스템
US7990642B2 (en) * 2009-04-17 2011-08-02 Lsi Corporation Systems and methods for storage channel testing
JP5502363B2 (ja) * 2009-04-28 2014-05-28 三菱電機株式会社 光伝送装置および光伝送方法
US8443267B2 (en) * 2009-04-28 2013-05-14 Lsi Corporation Systems and methods for hard decision assisted decoding
US8773790B2 (en) 2009-04-28 2014-07-08 Lsi Corporation Systems and methods for dynamic scaling in a read data processing system
US8250434B2 (en) * 2009-06-18 2012-08-21 Lsi Corporation Systems and methods for codec usage control during storage pre-read
US8352841B2 (en) * 2009-06-24 2013-01-08 Lsi Corporation Systems and methods for out of order Y-sample memory management
US8312343B2 (en) * 2009-07-28 2012-11-13 Lsi Corporation Systems and methods for re-using decoding parity in a detector circuit
US8458553B2 (en) 2009-07-28 2013-06-04 Lsi Corporation Systems and methods for utilizing circulant parity in a data processing system
US8250431B2 (en) * 2009-07-30 2012-08-21 Lsi Corporation Systems and methods for phase dependent data detection in iterative decoding
US8321746B2 (en) 2009-07-30 2012-11-27 Lsi Corporation Systems and methods for quasi-cyclic LDPC code production and decoding
US8266505B2 (en) * 2009-08-12 2012-09-11 Lsi Corporation Systems and methods for retimed virtual data processing
US8176404B2 (en) * 2009-09-09 2012-05-08 Lsi Corporation Systems and methods for stepped data retry in a storage system
KR101623730B1 (ko) * 2009-11-23 2016-05-25 삼성전자주식회사 인터리버 장치
US8688873B2 (en) 2009-12-31 2014-04-01 Lsi Corporation Systems and methods for monitoring out of order data decoding
US8683306B2 (en) * 2010-01-04 2014-03-25 Lsi Corporation Systems and methods for data detection including dynamic scaling
US8578253B2 (en) 2010-01-04 2013-11-05 Lsi Corporation Systems and methods for updating detector parameters in a data processing circuit
US8743936B2 (en) * 2010-01-05 2014-06-03 Lsi Corporation Systems and methods for determining noise components in a signal set
FR2955001A1 (fr) * 2010-01-06 2011-07-08 St Microelectronics Grenoble 2 Procede et dispositif d'entrelacement en ligne et en colonne pour blocs de taille variable
US8824590B2 (en) * 2010-02-11 2014-09-02 Electronics And Telecommunications Research Institute Layered transmission apparatus and method, reception apparatus and reception method
US20110194645A1 (en) * 2010-02-11 2011-08-11 Electronics And Telecommunications Research Institute Layered transmission apparatus and method, reception apparatus, and reception method
US8687740B2 (en) * 2010-02-11 2014-04-01 Electronics And Telecommunications Research Institute Receiver and reception method for layered modulation
US20110195658A1 (en) * 2010-02-11 2011-08-11 Electronics And Telecommunications Research Institute Layered retransmission apparatus and method, reception apparatus and reception method
WO2011119137A1 (en) 2010-03-22 2011-09-29 Lrdc Systems, Llc A method of identifying and protecting the integrity of a set of source data
US8161351B2 (en) 2010-03-30 2012-04-17 Lsi Corporation Systems and methods for efficient data storage
US9343082B2 (en) 2010-03-30 2016-05-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for detecting head contact
US8418019B2 (en) 2010-04-19 2013-04-09 Lsi Corporation Systems and methods for dynamic scaling in a data decoding system
US8443249B2 (en) 2010-04-26 2013-05-14 Lsi Corporation Systems and methods for low density parity check data encoding
US8527831B2 (en) 2010-04-26 2013-09-03 Lsi Corporation Systems and methods for low density parity check data decoding
US8381071B1 (en) 2010-05-21 2013-02-19 Lsi Corporation Systems and methods for decoder sharing between data sets
US8381074B1 (en) 2010-05-21 2013-02-19 Lsi Corporation Systems and methods for utilizing a centralized queue based data processing circuit
US8208213B2 (en) 2010-06-02 2012-06-26 Lsi Corporation Systems and methods for hybrid algorithm gain adaptation
US8804260B2 (en) 2010-09-13 2014-08-12 Lsi Corporation Systems and methods for inter-track interference compensation
US9219469B2 (en) 2010-09-21 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for filter constraint estimation
US8295001B2 (en) 2010-09-21 2012-10-23 Lsi Corporation Systems and methods for low latency noise cancellation
US8385014B2 (en) 2010-10-11 2013-02-26 Lsi Corporation Systems and methods for identifying potential media failure
US8661071B2 (en) 2010-10-11 2014-02-25 Lsi Corporation Systems and methods for partially conditioned noise predictive equalization
US8443250B2 (en) 2010-10-11 2013-05-14 Lsi Corporation Systems and methods for error correction using irregular low density parity check codes
US8560930B2 (en) 2010-10-11 2013-10-15 Lsi Corporation Systems and methods for multi-level quasi-cyclic low density parity check codes
US8750447B2 (en) 2010-11-02 2014-06-10 Lsi Corporation Systems and methods for variable thresholding in a pattern detector
US8566379B2 (en) 2010-11-17 2013-10-22 Lsi Corporation Systems and methods for self tuning target adaptation
US8667039B2 (en) 2010-11-17 2014-03-04 Lsi Corporation Systems and methods for variance dependent normalization for branch metric calculation
US8810940B2 (en) 2011-02-07 2014-08-19 Lsi Corporation Systems and methods for off track error recovery
US8699167B2 (en) 2011-02-16 2014-04-15 Lsi Corporation Systems and methods for data detection using distance based tuning
US8446683B2 (en) 2011-02-22 2013-05-21 Lsi Corporation Systems and methods for data pre-coding calibration
US8693120B2 (en) 2011-03-17 2014-04-08 Lsi Corporation Systems and methods for sample averaging in data processing
US8854753B2 (en) 2011-03-17 2014-10-07 Lsi Corporation Systems and methods for auto scaling in a data processing system
US8611033B2 (en) 2011-04-15 2013-12-17 Lsi Corporation Systems and methods for selective decoder input data processing
US8670955B2 (en) 2011-04-15 2014-03-11 Lsi Corporation Systems and methods for reliability assisted noise predictive filtering
US8887034B2 (en) 2011-04-15 2014-11-11 Lsi Corporation Systems and methods for short media defect detection
US8499231B2 (en) 2011-06-24 2013-07-30 Lsi Corporation Systems and methods for reduced format non-binary decoding
US8560929B2 (en) 2011-06-24 2013-10-15 Lsi Corporation Systems and methods for non-binary decoding
US8566665B2 (en) 2011-06-24 2013-10-22 Lsi Corporation Systems and methods for error correction using low density parity check codes using multiple layer check equations
US8862972B2 (en) 2011-06-29 2014-10-14 Lsi Corporation Low latency multi-detector noise cancellation
US8595576B2 (en) 2011-06-30 2013-11-26 Lsi Corporation Systems and methods for evaluating and debugging LDPC iterative decoders
US8650451B2 (en) 2011-06-30 2014-02-11 Lsi Corporation Stochastic stream decoding of binary LDPC codes
US8566666B2 (en) 2011-07-11 2013-10-22 Lsi Corporation Min-sum based non-binary LDPC decoder
US8819527B2 (en) 2011-07-19 2014-08-26 Lsi Corporation Systems and methods for mitigating stubborn errors in a data processing system
US8879182B2 (en) 2011-07-19 2014-11-04 Lsi Corporation Storage media inter-track interference cancellation
US8830613B2 (en) 2011-07-19 2014-09-09 Lsi Corporation Storage media inter-track interference cancellation
US8539328B2 (en) 2011-08-19 2013-09-17 Lsi Corporation Systems and methods for noise injection driven parameter selection
US8854754B2 (en) 2011-08-19 2014-10-07 Lsi Corporation Systems and methods for local iteration adjustment
US9026572B2 (en) 2011-08-29 2015-05-05 Lsi Corporation Systems and methods for anti-causal noise predictive filtering in a data channel
US8656249B2 (en) 2011-09-07 2014-02-18 Lsi Corporation Multi-level LDPC layer decoder
US8756478B2 (en) 2011-09-07 2014-06-17 Lsi Corporation Multi-level LDPC layer decoder
US8661324B2 (en) 2011-09-08 2014-02-25 Lsi Corporation Systems and methods for non-binary decoding biasing control
US8681441B2 (en) 2011-09-08 2014-03-25 Lsi Corporation Systems and methods for generating predictable degradation bias
US8850276B2 (en) 2011-09-22 2014-09-30 Lsi Corporation Systems and methods for efficient data shuffling in a data processing system
US8767333B2 (en) 2011-09-22 2014-07-01 Lsi Corporation Systems and methods for pattern dependent target adaptation
US8578241B2 (en) 2011-10-10 2013-11-05 Lsi Corporation Systems and methods for parity sharing data processing
US8689062B2 (en) 2011-10-03 2014-04-01 Lsi Corporation Systems and methods for parameter selection using reliability information
US8479086B2 (en) 2011-10-03 2013-07-02 Lsi Corporation Systems and methods for efficient parameter modification
US8862960B2 (en) 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US8996597B2 (en) 2011-10-12 2015-03-31 Lsi Corporation Nyquist constrained digital finite impulse response filter
US8707144B2 (en) 2011-10-17 2014-04-22 Lsi Corporation LDPC decoder with targeted symbol flipping
US8788921B2 (en) 2011-10-27 2014-07-22 Lsi Corporation Detector with soft pruning
US8527858B2 (en) 2011-10-28 2013-09-03 Lsi Corporation Systems and methods for selective decode algorithm modification
US8443271B1 (en) 2011-10-28 2013-05-14 Lsi Corporation Systems and methods for dual process data decoding
US8683309B2 (en) 2011-10-28 2014-03-25 Lsi Corporation Systems and methods for ambiguity based decode algorithm modification
US8604960B2 (en) 2011-10-28 2013-12-10 Lsi Corporation Oversampled data processing circuit with multiple detectors
US8751913B2 (en) 2011-11-14 2014-06-10 Lsi Corporation Systems and methods for reduced power multi-layer data decoding
US8531320B2 (en) 2011-11-14 2013-09-10 Lsi Corporation Systems and methods for memory efficient data decoding
US8760991B2 (en) 2011-11-14 2014-06-24 Lsi Corporation Systems and methods for post processing gain correction
US8700981B2 (en) 2011-11-14 2014-04-15 Lsi Corporation Low latency enumeration endec
US8719686B2 (en) 2011-11-22 2014-05-06 Lsi Corporation Probability-based multi-level LDPC decoder
US8631300B2 (en) 2011-12-12 2014-01-14 Lsi Corporation Systems and methods for scalable data processing shut down
US8625221B2 (en) 2011-12-15 2014-01-07 Lsi Corporation Detector pruning control system
US8707123B2 (en) 2011-12-30 2014-04-22 Lsi Corporation Variable barrel shifter
US8819515B2 (en) 2011-12-30 2014-08-26 Lsi Corporation Mixed domain FFT-based non-binary LDPC decoder
US8751889B2 (en) 2012-01-31 2014-06-10 Lsi Corporation Systems and methods for multi-pass alternate decoding
US8850295B2 (en) 2012-02-01 2014-09-30 Lsi Corporation Symbol flipping data processor
US8775896B2 (en) 2012-02-09 2014-07-08 Lsi Corporation Non-binary LDPC decoder with low latency scheduling
US8749907B2 (en) 2012-02-14 2014-06-10 Lsi Corporation Systems and methods for adaptive decoder message scaling
US8782486B2 (en) 2012-03-05 2014-07-15 Lsi Corporation Systems and methods for multi-matrix data processing
US8610608B2 (en) 2012-03-08 2013-12-17 Lsi Corporation Systems and methods for reduced latency loop correction
US8731115B2 (en) 2012-03-08 2014-05-20 Lsi Corporation Systems and methods for data processing including pre-equalizer noise suppression
US8873182B2 (en) 2012-03-09 2014-10-28 Lsi Corporation Multi-path data processing system
US8977937B2 (en) 2012-03-16 2015-03-10 Lsi Corporation Systems and methods for compression driven variable rate decoding in a data processing system
US9230596B2 (en) 2012-03-22 2016-01-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for variable rate coding in a data processing system
US9043684B2 (en) 2012-03-22 2015-05-26 Lsi Corporation Systems and methods for variable redundancy data protection
US8612826B2 (en) 2012-05-17 2013-12-17 Lsi Corporation Systems and methods for non-binary LDPC encoding
US8880986B2 (en) 2012-05-30 2014-11-04 Lsi Corporation Systems and methods for improved data detection processing
US8930780B2 (en) 2012-08-28 2015-01-06 Lsi Corporation Systems and methods for non-zero syndrome based processing
US9324372B2 (en) 2012-08-28 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for local iteration randomization in a data decoder
US8751915B2 (en) 2012-08-28 2014-06-10 Lsi Corporation Systems and methods for selectable positive feedback data processing
US9019647B2 (en) 2012-08-28 2015-04-28 Lsi Corporation Systems and methods for conditional positive feedback data decoding
US8949702B2 (en) 2012-09-14 2015-02-03 Lsi Corporation Systems and methods for detector side trapping set mitigation
US9112531B2 (en) 2012-10-15 2015-08-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced local iteration randomization in a data decoder
US8634152B1 (en) 2012-10-15 2014-01-21 Lsi Corporation Systems and methods for throughput enhanced data detection in a data processing circuit
US9048870B2 (en) 2012-11-19 2015-06-02 Lsi Corporation Low density parity check decoder with flexible saturation
US9130589B2 (en) 2012-12-19 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Low density parity check decoder with dynamic scaling
US8929009B2 (en) 2012-12-19 2015-01-06 Lsi Corporation Irregular low density parity check decoder with low syndrome error handling
US8869011B2 (en) * 2013-01-03 2014-10-21 International Business Machines Corporation Unequal error protection scheme for headerized sub data sets
US8773791B1 (en) 2013-01-14 2014-07-08 Lsi Corporation Systems and methods for X-sample based noise cancellation
US9003263B2 (en) 2013-01-15 2015-04-07 Lsi Corporation Encoder and decoder generation by state-splitting of directed graph
US9007231B2 (en) 2013-01-17 2015-04-14 Baker Hughes Incorporated Synchronization of distributed measurements in a borehole
US9009557B2 (en) 2013-01-21 2015-04-14 Lsi Corporation Systems and methods for reusing a layered decoder to yield a non-layered result
US8885276B2 (en) 2013-02-14 2014-11-11 Lsi Corporation Systems and methods for shared layer data decoding
US8930792B2 (en) 2013-02-14 2015-01-06 Lsi Corporation Systems and methods for distributed low density parity check decoding
US9214959B2 (en) 2013-02-19 2015-12-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for skip layer data decoding
US8797668B1 (en) 2013-03-13 2014-08-05 Lsi Corporation Systems and methods for penalty based multi-variant encoding
US9048873B2 (en) 2013-03-13 2015-06-02 Lsi Corporation Systems and methods for multi-stage encoding of concatenated low density parity check codes
US9048874B2 (en) 2013-03-15 2015-06-02 Lsi Corporation Min-sum based hybrid non-binary low density parity check decoder
US9281843B2 (en) 2013-03-22 2016-03-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for reduced constraint code data processing
US9048867B2 (en) 2013-05-21 2015-06-02 Lsi Corporation Shift register-based layered low density parity check decoder
KR20140140252A (ko) * 2013-05-29 2014-12-09 한국전자통신연구원 인터리빙 및 디인터리빙을 위한 메모리 엑세스 장치 및 그 방법
US9274889B2 (en) 2013-05-29 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data processing using global iteration result reuse
US8959414B2 (en) 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
US8917466B1 (en) 2013-07-17 2014-12-23 Lsi Corporation Systems and methods for governing in-flight data sets in a data processing system
US8817404B1 (en) 2013-07-18 2014-08-26 Lsi Corporation Systems and methods for data processing control
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US9047882B2 (en) 2013-08-30 2015-06-02 Lsi Corporation Systems and methods for multi-level encoding and decoding
US9129651B2 (en) 2013-08-30 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Array-reader based magnetic recording systems with quadrature amplitude modulation
US9094046B2 (en) * 2013-09-03 2015-07-28 Lsi Corporation Systems and methods for variable sector count spreading and de-spreading
US9298720B2 (en) 2013-09-17 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for fragmented data recovery
CN104518801A (zh) 2013-09-29 2015-04-15 Lsi公司 非二进制的分层低密度奇偶校验解码器
US8713399B1 (en) * 2013-10-10 2014-04-29 Antcor S.A. Reconfigurable barrel shifter and rotator
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9286159B2 (en) * 2013-11-06 2016-03-15 HGST Netherlands B.V. Track-band squeezed-sector error correction in magnetic data storage devices
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
US9130599B2 (en) 2013-12-24 2015-09-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods of converting detector output to multi-level soft information
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US9553611B2 (en) * 2014-11-27 2017-01-24 Apple Inc. Error correction coding with high-degree overlap among component codes
US10201026B1 (en) 2016-06-30 2019-02-05 Acacia Communications, Inc. Forward error correction systems and methods
US10804999B2 (en) * 2016-08-01 2020-10-13 Kyocera Corporation Robust relay retransmissions with dual-coding
US10505676B1 (en) * 2018-08-10 2019-12-10 Acacia Communications, Inc. System, method, and apparatus for interleaving data
WO2020052315A1 (en) 2018-09-12 2020-03-19 Huawei Technologies Co., Ltd. Ic die to ic die interconnect using error correcting code and data path interleaving
KR102478169B1 (ko) * 2020-04-03 2022-12-16 한국전자통신연구원 디인터리빙 방법 및 이를 수행하는 디인터리빙 시스템

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE30187E (en) * 1972-11-15 1980-01-08 International Business Machines Corporation Plural channel error correcting apparatus and methods
US3868632A (en) * 1972-11-15 1975-02-25 Ibm Plural channel error correcting apparatus and methods
US3786439A (en) * 1972-12-26 1974-01-15 Ibm Error detection systems
USRE31311E (en) * 1976-03-19 1983-07-12 Ampex Corporation DC Free encoding for data transmission system
JPS5535562A (en) * 1978-09-05 1980-03-12 Matsushita Electric Ind Co Ltd Forming method of digital transmission signal
JPS574629A (en) * 1980-05-21 1982-01-11 Sony Corp Data transmitting method capable of correction of error
WO1982003719A1 (en) * 1981-04-16 1982-10-28 Odaka Kentaro Error correction coding method
US4541091A (en) * 1982-06-11 1985-09-10 Hitachi, Ltd. Code error detection and correction method and apparatus
US4567594A (en) * 1983-06-07 1986-01-28 Burroughs Corporation Reed-Solomon error detecting and correcting system employing pipelined processors
US4677622A (en) * 1983-06-22 1987-06-30 Hitachi, Ltd. Error correction method and system
US4637021A (en) * 1983-09-28 1987-01-13 Pioneer Electronic Corporation Multiple pass error correction
GB2156555B (en) * 1984-03-24 1988-03-09 Philips Nv Error correction of data symbols
JPH0697542B2 (ja) * 1985-05-14 1994-11-30 松下電器産業株式会社 インタ−リ−ブ回路
US4730321A (en) * 1986-05-30 1988-03-08 Quantum Corporation Disk drive with improved error correction code
US4791643A (en) * 1986-12-29 1988-12-13 Minnesota Mining And Manufacturing Company Single track orthogonal error correction system
JPS63193723A (ja) * 1987-02-06 1988-08-11 Sony Corp リ−ドソロモン符号の復号方法
US4802170A (en) * 1987-04-29 1989-01-31 Matrox Electronics Systems Limited Error disbursing format for digital information and method for organizing same
JPS63274222A (ja) * 1987-05-01 1988-11-11 Matsushita Electric Ind Co Ltd インタ−リ−ブ方法
EP0341851A3 (de) * 1988-05-12 1991-06-12 Digital Equipment Corporation Verfahren und Gerät für verschachtelte Kodierung
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system

Also Published As

Publication number Publication date
NO930119D0 (no) 1993-01-13
KR100263593B1 (ko) 2000-08-01
CA2087197A1 (en) 1993-07-16
AU3180293A (en) 1993-07-22
EP0551973B1 (de) 1997-11-26
CA2087197C (en) 2000-03-21
ATE160658T1 (de) 1997-12-15
CN1081296A (zh) 1994-01-26
DE69315360D1 (de) 1998-01-08
AU665044B2 (en) 1995-12-14
EP0551973A2 (de) 1993-07-21
JPH06276178A (ja) 1994-09-30
FI930147A0 (fi) 1993-01-14
JP3465113B2 (ja) 2003-11-10
EP0551973A3 (en) 1994-04-06
IL104395A (en) 1996-06-18
IL104395A0 (en) 1993-05-13
US5392299A (en) 1995-02-21
KR930017343A (ko) 1993-08-30
MX9300195A (es) 1994-07-29
NO930119L (no) 1993-07-16

Similar Documents

Publication Publication Date Title
DE69315360T2 (de) Dreifach orthogonal verschachteltes Fehlerkorrektursystem
DE69030490T2 (de) 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
DE3418912C2 (de) Verfahren zum Umgruppieren digitaler Informationsdaten für eine Fehlerermittlung und/oder -korrektur
DE3040004C2 (de)
DE2427463C3 (de)
DE69903188T2 (de) Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung
DE69609509T2 (de) Trelliskodierung mit verminderter fehlerverbreitung
DE3124425C2 (de) Verfahren und Vorrichtung zu Fehlererkennung und Fehlerkorrektur
AT393429B (de) Speicherschaltung zur speicherung eines digitalsignals
DE69025464T2 (de) Fehlerkorrektur in Datenspeichervorrichtungen
DE69019590T2 (de) Spuraufzeichnung mit verbesserter Fehleraufdeckung.
DE2364705C2 (de) Schaltungsanordnung zur mehrspurigen Aufnahme und Verarbeitung digitaler Datensignale
DE69224337T2 (de) Fehlertoleranter Festkörper-Flugdatenschreiber
DE3038066A1 (de) Verfahren und vorrichtung zur uebermittlung digitaler informationsworte mittels fehlerkorrekturcodierung
DE112018005762B4 (de) Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff
DE69218648T2 (de) Koder/Dekoderschaltung sowie digitales Videosystem mit dieser Schaltung
DE3039688A1 (de) Verfahren und vorrichtung zum codieren eines digitalsignals mit minimaler gleichkomponente
DD201957A5 (de) Verfahren zur fehlerkorrektur
DE2834094C2 (de)
DE3787034T2 (de) Digitale Signalfehlerkorrektur.
DE4233089A1 (de) Digitalfunkempfaenger
DE2364788A1 (de) Verfahren und vorrichtung zur fehlerkorrigierenden datenuebertragung oder -speicherung
DE2530404A1 (de) Fehlerkorrektur von seriell aufgezeichneten daten mit hilfe eines unterfeld-codes
DE102016205281B4 (de) Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten
DE69930101T2 (de) Vorrichtung zum kodieren/dekodieren von n-bit-quellwörtern in korrespondierenden m-bit-kanalwörtern und umgekehrt

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: RAYTHEON E-SYSTEMS, INC. (N.D.GES.D. STAATES DELAW

8339 Ceased/non-payment of the annual fee