DE69622360T2 - Vorrichtung und Verfahren zur Dekodierung eines kodierten digitalen Signals - Google Patents
Vorrichtung und Verfahren zur Dekodierung eines kodierten digitalen SignalsInfo
- Publication number
- DE69622360T2 DE69622360T2 DE69622360T DE69622360T DE69622360T2 DE 69622360 T2 DE69622360 T2 DE 69622360T2 DE 69622360 T DE69622360 T DE 69622360T DE 69622360 T DE69622360 T DE 69622360T DE 69622360 T2 DE69622360 T2 DE 69622360T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- error correction
- decoding
- errors
- stored
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 28
- 238000012937 correction Methods 0.000 claims description 203
- 238000012546 transfer Methods 0.000 claims description 31
- 238000013500 data storage Methods 0.000 claims description 23
- 230000015654 memory Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 38
- 238000001514 detection method Methods 0.000 description 34
- 238000012545 processing Methods 0.000 description 18
- 102100030635 Leukocyte elastase inhibitor Human genes 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 238000000926 separation method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 102220201851 rs143406017 Human genes 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 101150020569 B3R gene Proteins 0.000 description 3
- 101100310674 Tenebrio molitor SP23 gene Proteins 0.000 description 3
- 101100540425 Vaccinia virus (strain Copenhagen) VGF gene Proteins 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 102100022907 Acrosin-binding protein Human genes 0.000 description 2
- 101000756551 Homo sapiens Acrosin-binding protein Proteins 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000004255 ion exchange chromatography Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 102100038445 Claudin-2 Human genes 0.000 description 1
- 101000804764 Homo sapiens Lymphotactin Proteins 0.000 description 1
- 102100035304 Lymphotactin Human genes 0.000 description 1
- 102100037591 Neuroserpin Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 108010080874 neuroserpin Proteins 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/87—Regeneration of colour television signals
- H04N9/877—Regeneration of colour television signals by assembling picture element blocks in an intermediate memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1806—Pulse code modulation systems for audio signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/78—Television signal recording using magnetic recording
- H04N5/782—Television signal recording using magnetic recording on tape
- H04N5/783—Adaptations for reproducing at a rate different from the recording rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/84—Television signal recording using optical recording
- H04N5/85—Television signal recording using optical recording on discs or drums
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/80—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N9/804—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
- H04N9/8042—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Gerät und auf ein Verfahren zum Decodieren eines codierten Digitalsignals.
- Wie bekannt ist, werden Bewegtbilder, d. h., Bewegungsvideos digitalisiert, codiert und mit einer variablen Geschwindigkeit auf einem Aufzeichnungsträger gemäß verschiedenen Videostandards, beispielsweise dem MPEG-Standard, aufgezeichnet. Der MPEG-Standard verlangt drei Arten von codierten Bildern: intra-codierte Bilder (I-Bilder oder I-Rahmen), vorwärts-vorhersage-codierte Bilder (P-Bilder oder P-Rahmen) und bidirektional-vorhersage-codierte Bilder (B-Bilder oder B-Rahmen). Eine Kombination dieser drei Bildarten ist als eine Bildgruppe oder als eine GOP bekannt. Obwohl der MPEG-Standard auch allgemein bei Audiodaten (beispielsweise Tondaten) angewandt wird, werden andere Formen zum Codieren, beispielsweise ATAC ebenfalls dazu verwendet, Tondaten zu digitalisieren und diese kompressions-zu-codieren.
- In Fig. 1 ist ein Datenwiedergabegerät 1 zum Reproduzieren von Daten mit einer variablen Geschwindigkeit von einer Compact Disc gezeigt. Das Datenwiedergabegerät 1 besitzt eine Abtasteinrichtung 3, die einen Laserstrahl auf eine optische Platte 2 liefert, um die Daten, die darauf aufgezeichnet sind, in einer Weise zu reproduzieren, die durch den Stand der Technik bekannt ist. Die Abtasteinrichtung 3 liefert ein Wiedergabesignal S1 zu einer Demodulationsschaltung 6, welche in einem Demodulationssystem 5 enthalten ist, welches durch eine Systemsteuerung 4 gesteuert wird. Das Wiedergabesignal S1 wird demoduliert und über eine Sektordetektorschaltung zu einer ECC-Schaltung 8 geliefert, die Fehler im gelieferten Signal ermittelt und korrigiert. Die Sektordetektorschaltung 7 ermittelt neue Sektoren im Wiedergabesignal, wobei jedoch, wenn eine Sektornummer oder Adresse nicht ermittelt wird, ein Sektornummer-Fehlersignal zu einer Spursprung-Bestimmungsschaltung 9 geliefert wird. In ähnlicher Weise wird ein Fehlersignal zu einer Spursprung-Bestimmungsschaltung 9 geliefert, wenn die ECC-Schaltung 8 einen nicht-korrigierbaren Fehler im Signal ermittelt.
- Die ECC-Schaltung 8 ermittelt und korrigiert Fehler in den gelieferten Daten in einer Weise, die erläutert wird, und liefert die fehler-korrigierten Daten zu einem Ringpufferspeicher 10, in welchem die Daten bei Adressen gemäß einem Schreibzeiger WP, der von einer Ringpuffer-Steuerschaltung 11 geliefert wird, gespeichert werden. Der Speicher 10 liest außerdem die darin gespeicherten Daten von Adressen gemäß einem Lesezeiger RP, der von der Steuerschaltung 11 geliefert wird. Wie bekannt ist erzeugt die Steuerschaltung 11 die Schreibadressen (Schreibzeiger WP) von Sektorsignalen, die von Sektorermittlungsschaltung 7 geliefert werden, und erzeugt die Leseadressen (Lesezeiger RP) als Antwort auf Steuersignale, die durch die Systemsteuerung 4 geliefert werden, und eines Codeanforderungssignals R10, welches von einer Datentrennschaltung 13 geliefert wird.
- Der Ringpufferspeicher 10 liefert die in ihm gespeicherten Daten zu einer Datenkopftrennschaltung 14 in der Datentrennschaltung 13, welche einen Stapeldatenkopf von jedem Stapel von Daten trennt, die zu ihr geliefert werden, und trennt außerdem einen Paketdatenkopf von jedem Paket, welches in den Daten enthalten ist, wonach die getrennten Datenköpfe zu einer Trennschaltungssteuerung 15 geliefert werden. Die Schaltungssteuerung 15 liefert ein Schaltsteuersignal zu einer Umschaltschaltung 16, um zu bewirken, daß Videodaten, die zum Eingangsanschluß G geliefert werden, über den Anschluß H1 zu einem Videocodepuffer 17 geliefert werden, und um zu bewirken, daß Audiodaten, welche zum Eingangsanschluß G geliefert werden, über den Anschluß H2 zu einem Audiocodepuffer 19 geliefert werden. Die Datenstrom-Identifikationsinformation (Datenstrom-ID), die in den Datenköpfen enthalten ist, identifiziert den Datentypus (beispielsweise Video oder Audio), der in den Paketen enthalten ist.
- Der Videocodepuffer 17 speichert die zu ihm gelieferten Videodaten und erzeugt und liefert ein Codeanforderungssignal R1 zur Datentrennschaltung 13 gemäß der Datenmenge, die im Puffer 17 gespeichert ist. Der Videocodepuffer 17 gibt die gespeicherten Daten als Antwort auf ein Codeanforderungssignal R1', welches vom Videodecoder 18 geliefert wird, zu einem Videodecoder 18 aus. Der Videodecoder 18 decodiert die gelesenen Videodaten, um ein digitales Videosignal zu erzeugen, und liefert das digitale Videosignal als ein Ausgangssignal an einem Ausgangsanschluß OUT1.
- In ähnlicher Weise speichert der Audiocodepuffer 19 die gelieferten Audiodaten und erzeugt und liefert ein Codeanforderungssignal R2 zur Datentrennschaltung 13 gemäß der Datenmenge, die im Puffer 19 gespeichert ist. Der Audiocodepuffer 19 gibt die gespeicherten Daten als Antwort auf ein Codeanforderungssignal R2', welches vom Audiodecoder 20 geliefert wird, zu einem Audiodecoder 20 aus. Der Audiodecoder 10 decodiert die gelesenen Audiodaten, um ein digitales Audiosignal zu erzeugen, und liefert das digitale Audiosignal als Ausgangssignal am Ausgangsanschluß OUT2.
- Wie oben erwähnt demoduliert das Demodulationssystem 5 das reproduzierte Signal S1 mittels der Demodulationsschaltung 6. Die Demodulationsschaltung 6 setzt das Signal S1, welches von der Abtasteinrichtung 3 geliefert wird, in ein Binärsignal um, wobei die bekannte HF-Verarbeitung verwendet wird, um ein EFM-Synchronisationsmuster (EFM±) (beispielsweise 8, 16-Umsetzung) zu ermitteln. Ein "Grob"-Servomechanismus arbeitet auf der Basis des Verfahrens der konstanten Lineargeschwindigkeit (CLV) bezüglich des Signals S1 auf der Basis der ermittelten Synchronisationsmuster. Nachdem die Sektorermittlungsschaltung 7 einen EFM-Synchronisationsdatenkopf im Signal S1 ermittelt, wirkt ein PLL- Servomechanismus auf den Synchronisations-Datenkopf ein, und, wenn mehrere Synchronisationsdatenköpfe fortlaufend durch die Ermittlungsschaltung 7 ermittelt werden, werden die Daten S2, die von der Ermittlungsschaltung 7 geliefert werden, in der ECC-Schaltung 8 entschachtelt.
- In Fig. 2 ist ein Blockdiagramm der ECC-Schaltung 8 gezeigt, bei dem die ECC- Schaltung 8 aus vier Zufallszugriffsspeichern RAM 24, RAM 26, RAM 28 und RAM 30 und drei Fehlerkorrekturcodedecodern (ECC) 254, 27 und 29 besteht. Wie erläutert wird, ermittelt und korrigieren die Decoder 25, 27 und 29 Fehler in den Daten S2 unter Verwendung der drei Fehlerermittlungs-/Korrekturfolgedaten C11 (auch als erste C1-Sequenz bekannt), der Daten C2 und der Daten C12 (auch als zweite C1-Sequenz bekannt), welche C1/C2-Faltungs-Reed- Solomon-Codes (d. h., CIRC-Plus-Codes) enthalten. Die Datensequenzen sind auch in den demodulierten EFM-Daten S2 enthalten. Die Daten S2 werden zum RAM 24 geliefert, der die Daten in der Adreßordnung 00, 01, ..., A8 und A9 speichert (hier als "EFM-Schreiben" bezeichnet), und, nachdem zwei Rahmen der S2 Daten im RAM 24 gespeichert sind, liefert der RAM 24 die zuerst gespeicherten Rahmendaten zum Decoder 25 in der Adreßordnung 00'. 02', ..., A8', 01, 03, ..., A9 (hier als "C1-Lesen" bezeichnet), um die C1-Datensequenz zu entschachteln, wie in Fig. 3 gezeigt ist. Der Decoder 25 empfängt die gelesenen Daten und korrigiert Fehler in den S2 Daten, wobei er die Fehlerpositionen und die Korrekturmuster der Daten identifiziert, die fehlerhaften Daten vom RAM 24 liest (d. h., das C1-Lesen), die gelesenen Daten exklusiv logisch zu den Korrekturmustern addiert und die resultierenden Daten in den RAM 26 schreibt (hier als "C1-Schreiben" bezeichnet), wie in Fig. 4 gezeigt ist. Der Decoder 25 decodiert die C1-Datensequenz (und ermittelt/korrigiert die S2-Daten bezüglich Fehler) über die C2-Codesequenzlänge.
- Nachdem die C1-Sequenzdaten decodiert sind (über die gesamte C2-Codesequenzlänge), werden die C2-Sequenzdaten "ECC"-decodiert. Die im RAM 26 gespeicherten Daten werden aus diesem in der Adreßordnung "00', 01', 02', 03', ..., A9' gelesen (hier als "C2-Lesen" bezeichnet), und die gelesenen Daten werden zum Decoder 27 geliefert, der die gelesenen C2-Sequenzdaten nacheinander decodiert. Der Decoder 27 erzeugt ein Flag "nichtkorrigierbarer Fehler" für jeden Datenrahmen, der nicht korrigierbar ist, und liefert das Flag "nicht korrigierbarer Fehler" zum Decoder 29 synchron mit der Lieferung der decodierten S2- Daten, um erlauben, daß die nicht-korrigierbaren Daten aus dem Datenstrom gelöscht (d. h., beseitigt) werden. Die Fehlerermittlung/Fehlerkorrektur im Decoder 27 ist ähnlich der im Decoder 25, und ein Flag "C1-nicht-korrigerbar" wird erzeugt, wenn die Daten nicht korrigierbar sind.
- Nachdem der Decoder 27 die Daten unter Verwendung der C2-Daten decodiert, werden die decodierten Daten im RAM 28 gespeichert (hier als "C2-Schreiben" bezeichnet), wie in Fig. 5 gezeigt ist. Danach liest der RAM 28 die Daten einschließlich die C12-Sequenzdaten, die in ihm gespeichert sind, von der Adreßordnung "00', 01, 02, 03, ..., A9 (hier als "C12-Lesen" bezeichnet), und liefert die gelesenen Daten zum Decoder 29. Ähnlich dem Flag "C2 nicht korrigierbarer Fehler" wird ein Flag "C 12 nicht-korngierbarer Fehler" erzeugt und dazu genutzt, um nicht korrigierbare Fehler auf der Basis der C12-Sequenzdaten zu löschen (d. h., zu beseitigen). Der Decoder 29 ermittelt/korrigiert die Daten (unter Verwendung der C12-Daten) und speichert die Daten im RAM 30 in der Ordnung 00, 01, 02, 03, ..., A9 (hier als "C12-Schreiben" bezeichnet), wie in Fig. 6 gezeigt ist. Die im RAM 30 gespeicherten Daten werden aus diesem in der Ordnung 00, 01, 02, 03, ..., A9 gelesen (hier als "OUT-Lesen" bezeichnet), entschachtelt und zum Ringpufferspeicher 10 geliefert, wie oben erläutert wurde.
- Die Speicheradressen RA, bei denen Daten gespeichert werden, werden aus den folgenden Gleichungen erzeugt und verwenden eine Datenordnung Dn in der Richtung der C1-Daten und Rahmennummern Fn in "C1-Codeeinheiten", die auf den Datenadressen der RAMs 24, 26, 28 und 30 basieren, wie in Fig. 7 gezeigt ist. Alle Zahlen in den Gleichungen anschließend sind in hexadezimaler Schreibweise.
- Dn: Datennummer (00-A9)
- Fn: Rahmennummer (00-B9)
- RA: RAM-Adresse (0000-7FFF)
- Fna = Fn + 46 + 01
- wenn (ECC MODE = C2), Fna = Fna + Dn
- wenn (Fna > FF), Fna = Fna + 46 - 100 (1)
- (Dn = 00) UND (00 < Dn < 80)
- RA = [(Fna) · 80] + Dn [6 : 0] (2)
- (Dn = 80) UND (80 < Dn < A0)
- RA = [[Fna + 18) · 20] + Dn [4 : 0] (3)
- (Dn = AO) UND (80 < Dn < AF)
- RA = [(Fna + BA - 100) · 10] + Dn[3 : 0] (4)
- Wie oben erläutert wird der CIRC-Plus-Code fehlerermittelt/korrekturdecodiert unter Verwendung der Decoder 25, 27 und 29, welche die C11-, C2- und C12-Datensequenzen entsprechend decodieren, und die resultierenden decodierten Daten werden im RAM 26, 28 und 30 umgeordnet. Da jedoch der zeitliche Ablauf zum Ausgeben der fehlerkorrigierten Daten nicht fest ist, werden zwei Zähler benötigt, um die Übertragung der Daten bereitzustellen und um Fehlei zu korrigieren, was einen unnötig komplizierten Aufbau zur Folge hat. Außerdem hat die Verwendung von drei separaten Speichereinrichtungen, d. h., der RAMs 24, 26 und 28, um die C11, C2- und C12-Datensequenzen separat zu decodieren, eine unerwünscht große Speicherkapazität zur Folge.
- Mit Hilfe von Fig. 8A sind Zeitablaufdiagramme für mehrere unterschiedliche Signale gezeigt. Wenn eine Einzelspeichereinrichtung dazu verwendet wird, zwei Rahmen von C11-Daten innerhalb einer Taktperiode eines Leserahmenstakts (Signal RFCK in Fig. 8A) zu übertragen, sind zwei separate Rahmenzähler erforderlich, um die separaten Funktionen zum Übertragen von Daten und zum Korrigieren von Fehlern durchzuführen. Außerdem sind separate Rahmenzähler ebenfalls erforderlich, wenn Daten übertragen werden und wenn Daten korrigiert werden, sogar, wenn der Takt lediglich während Datenübertragungen ausgegeben wird, wie in Fig. 8B gezeigt ist. Die US-A 5 255 272 offenbart ein Gerät zum Decodieren von codierten Daten, denen Fehlerkorrekturdaten hinzugefügt sind, gemäß dem Oberbegriff des Patentanspruchs 1.
- Gemäß einem Merkmal der Erfindung wird ein Gerät zum Decodieren codierter Daten, denen Fehlerkorrekturdaten hinzugefügt sind, bereitgestellt welches aufweist:
- eine Speichereinrichtung, um codierte Daten, denen Fehlerkorrekturdaten hinzugefügt sind, zu speichern;
- eine Decodiereinrichtung, um Fehler in den codierten Daten, welche in der Speichereinrichtung gespeichert sind, zu ermitteln, um Positionen der Fehler in den codierten Daten festzustellen und um Fehlerkorrekturmuster entsprechend den Fehlern als Ausgangssignal zu liefern;
- eine Fehlerregister-Speichereinrichtung, um die festgestellten Positionen der Fehler und der Ausgabefehler-Korrekturmuster zu speichern; und
- eine Steuereinrichtung, um die Speichereinrichtung zu steuern, um die gespeicherten codierten Daten entsprechend den Positionen der Fehler, die in der Fehlerregister- Speichereinrichtung gespeichert sind, zu lesen, und um die Decodiereinrichtung zu steuern, um die codierten Daten unter Verwendung der Fehlerkorrekturmuster, die in der Fehlerregister-Speichereinrichtung gespeichert sind, zu decodieren, um korrekte decodierte Daten zu erzeugen;
- dadurch gekennzeichnet, daß
- die codierten Daten in mehreren Rahmen angeordnet sind, wobei jeder Rahmen durch die Speichereinrichtung während eines Leserahmens-Taktzyklus einer vorher festgelegten Länge empfangen wird;
- die Fehlerkorrekturdaten C1/C2-Faltungs-Reed-Solomon-Codes sind, die eine Fehlerkorrekturcode-C11-Sequenz als eine erste C1 Sequenz, eine Fehlerkorrekturcode-C2 Sequenz und eine Fehlerkorrekturcode-C12-Sequenz als zweite C1 Sequenz umfassen;
- die Steuereinrichtung die Speichereinrichtung steuert, um die gespeicherten Fehlerkorrekturcode-C11-, C2- und C12-Sequenzen zur Decodiereinrichtung sequentiell zu liefern, und, nachdem die Fehlerkorrekturcode-Sequenz zur Decodiereinrichtung geliefert ist, die Decodiereinrichtung steuert, um die gelieferten Fehlerkorrekturcode-C11-, C2- und C12- Sequenzen sequentiell zu steuern, wobei die Steuereinrichtung die Fehlerkorrektur von C11, C2 oder C12 in Abhängigkeit von der Fehlerposition und dem Fehlerkorrekturmuster, das von der Fehlerregister-Speichereinrichtung gelesen wird, im Zeitpunkt der Beendigung der Übertragung eines Datenrahmens von C11, C2 oder C12 von der Speichereinrichtung zu einer Decodiereinheit der Decodiereinrichtung ausübt;
- das Gerät eine Einrichtung aufweist, um einen einzelnen Systemtakt, der eine vorher festgelegte Taktperiode besitzt, bereitzustellen, wobei die gespeicherten codierten Daten von der Speichereinrichtung gelesen und zur Decodiereinrichtung während einer ersten vorausgewählten Anzahl von Taktperioden des Systemtakts geliefert werden; und
- die Decodiereinrichtung die gelesenen Daten während einer zweiten vorausgewählten Anzahl von Taktperioden des Systemtakts decodiert, wobei die erste und die zweite vorausgewählte Anzahl von Taktperioden innerhalb eines Leserahmen-Taktzyklus stattfindet.
- Gemäß einem weiteren Merkmal der Erfindung wird ein Verfahren zum Decodieren codierter Daten, denen Fehlerkorrekturdaten hinzugefügt sind, bereitgestellt welches folgende Schritte aufweist:
- Speichern - in der Datenspeichereinrichtung - codierter Daten, denen Fehlerkorrekturdaten hinzugefügt sind;
- Ermitteln von Fehlern in den codierten Daten, welche in der Datenspeichereinrichtung gespeichert sind;
- Feststellen von Positionen der Fehler in den codierten Daten;
- Liefern von Fehlerkorrekturmustern entsprechend den Fehlern;
- Speichern - in der Fehlerregister-Speichereinrichtung - der festgestellten Positionen der Fehler und der gelieferten Fehlerkorrekturmuster;
- Lesen - von der Datenspeichereinrichtung - der codierten Daten entsprechend den Positionen der Fehler, die in der Fehlerregister-Speichereinrichtung gespeichert sind; und
- Decodieren der gelesenen codierten Daten entsprechend den Positionen der Fehler unter Verwendung der Fehlerkorrekturmuster, die in der Fehlerregister-Speichereinrichtung gespeichert sind, um korrigierte decodierten Daten zu erzeugen;
- dadurch gekennzeichnet, daß
- die codierten Daten in mehreren Rahmen angeordnet sind, wobei alle Rahmen durch die Datenspeichereinrichtung während eines Lesenrahmen-Taktzyklus einer vorher festgelegten Länge empfangen werden;
- die Fehlerkorrekturdaten C1/C2-Faltungs-Reed-Solomon-Codes sind, welche eine Fehlerkorrekturcode-C11-Sequenz als eine erste C1-Sequenz, eine Fehlerkorrekturcode-C2- Sequenz und eine Fehlerkorrekturcode-C12-Sequenz als zweite C1-Sequenz aufweisen;
- die Fehlerkorrekturcode-C11-, C2- und C12-Sequenzen sequentiell von der Datenspeichereinrichtung gelesen werden, bevor die gelesenen Fehlerkorrekturcode-C11-, C2- und
- C12-Sequenzen decodiert werden;
- ein Systemtakt, der eine vorher festgelegte Taktperiode hat, vorgesehen ist;
- die gespeicherten codierten Daten von der Datenspeichereinrichtung während einer ersten vorher ausgewählten Anzahl von Taktperioden des Systemtakts gelesen werden;
- die gelesenen Daten während einer zweiten vorher ausgewählten Anzahl von Taktperioden des Systemtakts decodiert werden, wobei die erste und die zweite vorher ausgewählte Anzahl von Taktperioden innerhalb eines gelesenen Rahmentaktzyklus stattfindet; und
- die Fehlerkorrektur von C11, C2 oder C12 in Abhängigkeit von der Fehlerposition und dem Fehlerkorrekturmuster ausgeübt wird, das von der Fehlerregister-Speichereinrichtung gelesen wird, mit der zeitlichen Abstimmung des Abschlusses der Übertragung eines Datenrahmens von C11, C2 oder C11 von der Datenspeichereinrichtung zu einer Decodiereinheit, die verwendet wird, die Decodierung auszuführen.
- Ausführungsformen der Erfindung können ein Gerät und ein Verfahren zum Decodieren eines codierten Digitalsignals bereitstellen, mit denen die Nachteile der oben beschriebenen Einrichtungen überwunden oder zumindest gemildert werden.
- Ausführungsformen der Erfindung können ein Gerät und ein Verfahren zum Decodieren eines codierten digitalen Videosignals bereitstellen, denen Fehlerermittlungs- /Korrekturdaten in einer wirksamen und vereinfachten Weise hinzugefügt sind.
- Ausführungsformen der Erfindung können ein Gerät und ein entsprechendes Verfahren zum Decodieren eines codierten digitalen Videosignals bereitstellen, dem Fehlerermittlungs-/Korrekturdaten hinzugefügt sind, wobei ein reproduziertes digitales Videosignal unter Verwendung einer relativ kleinen Anzahl von Zufallszugriffsspeichern fehlerkorrigiert wird.
- Die Erfindung wird nun beispielhaft mit Hilfe der beiliegenden Zeichnungen beschrieben, wobei gleiche Teile durchwegs mit gleichen Bezugszeichen versehen sind, und in denen:
- Fig. 1 ein Blockdiagramm eines Geräts zum Reproduzieren von Daten mit einer variablen Rate von einer Compact Disc ist;
- Fig. 2 ein Blockdiagramm der ECC-Schaltung 8, die in Fig. 1 gezeigt ist, ist;
- Fig. 3 eine Tabelle ist, die zur Erläuterung des C1-Lesebetriebs der ECC-Schaltung 8 nützlich ist;
- Fig. 4 eine Tabelle ist, um den Schreibbetrieb und den C2-Schreib-Lesebetrieb der ECC-Schaltung 8 zu erläutern;
- Fig. 5 eine Tabelle ist, die zur Erläuterung des C12-Lesebetriebs und des C2- Schreibbetriebs der ECC-Schaltung 8 nützlich ist;
- Fig. 6 eine Tabelle ist, die zur Erläuterung des C12-Schreibbetriebs und des OUT- Lesebetriebs der ECC-Schaltung 8 nützlich ist;
- Fig. 7 ein Tabelle ist, die für das Verständnis der Adressierung des RAM 30 in Fig. 2 nützlich ist;
- Fig. 8A und 8B Zeitablaufdiagramme verschiedener Signale und Arbeitsweisen der in Fig. 2 gezeigten ECC-Schaltung sind;
- Fig. 9 eine Blockdarstellung eines Geräts zum Reproduzieren von Daten mit einer variablen Rate von einer Compact Disc gemäß dem Decodiergerät gemäß der vorliegenden Erfindung ist;
- Fig. 10 ein Blockdiagramm der in Fig. 9 gezeigten ECC-Schaltung 50 ist;
- Fig. 11 ein Blockdiagramm des in Fig. 9 gezeigten Demodulationssystems 35 ist;
- Fig. 12 eine Tabelle ist, die zur Erläuterung der Adressierung des RAM 51, der in Fig. 10 gezeigt ist, nützlich ist;
- Fig. 13 ein Tabelle ist, die für das Verständnis von den verschiedenen Betriebsweisen der in Fig. 10 gezeigten ECC-Schaltung 50 nützlich ist;
- Fig. 14 Zeitablaufdiagramme verschiedener Signale und Decodierbetriebsweisen der in Fig. 10 gezeigten ECC-Schaltung 50 und der in Fig. 11 gezeigten Schaltung 35 zeigt;
- Fig. 15 Zeitablaufdiagramme verschiedener Signale und Übertragungs- und Korrekturoperationen zeigt;
- Fig. 16 Zeitablaufdiagramme verschiedener Signale während eines Fehlerkorrekturprozesses zeigt;
- Fig. 17 ein Diagramm ist, welches die Anzahl von Speicherleseoperationen und Schreiboperationen des in Fig. 10 gezeigten RAM 51 während eines Fehlerkorrekturprozesses zeigt;
- Fig. 18 Zeitablaufdiagramme verschiedener Signale zeigt, die Prioritätspegel für Lese-/Schreibzugriffe des RAM 51 zeigen;
- Fig. 19 eine schematische Darstellung der Datenstruktur von Sektordaten gemäß einer anderen Ausführungsform der vorliegenden Erfindung ist;
- Fig. 20 die Datenstruktur eines ECC-Blocks schematisch zeigt;
- Fig. 21 schematisch zeigt, wie Außencode-Paritätsdaten (PO-Paritätsdaten) mit Sektordaten verschachtelt sind;
- Fig. 22 eine schematische Darstellung der Datenstruktur eines 32-k-Byte-Datenblocks von nichtmodulierten Daten ist;
- Fig. 23 eine Blockdarstellung einer Demodulationsschaltung ist;
- Fig. 24 die Datenstruktur eines nichtmodulierten physikalischen Sektors zeigt;
- Fig. 25 ein schematische Darstellung der Datenstruktur eines jeden Datensektors ist;
- Fig. 26 einen Datenspeicherbetrieb schematisch zeigt;
- Fig. 27A bis 27F verschiedene Signalschwingungsformen während des Schreibbetriebs von EFM-demodulierten Daten sind;
- Fig. 28 ein Flußdiagramm einer "Verriegelungs"-Operation ist;
- Fig. 29 ein Flußdiagramm eines SCSY-Signalerzeugungsbetriebs ist;
- Fig. 30 ein Flußdiagramm des Haupt-FMSY-Signalerzeugungsbetriebs ist;
- Fig. 31A bis 31H Signalschwingungsformen während eines Starts der Blockermittlungsoperation sind;
- Fig. 32A bis 32H Signalschwingungsformen nach dem Start der Blockermittlungsoperation sind;
- Fig. 33A bis 33H Signalschwingungsformen während einer "SUE"-Übertragungsoperation sind;
- Fig. 34 ein Diagramm ist, welches die Datenstruktur der Sektorinformation zeigt;
- Fig. 35 ein Flußdiagramm einer ECC-Kontinuitätsermittlungs- und Bestimmungsoperation ist;
- Fig. 36 ein Flußdiagramm einer ID-Kontinuitätsermittlungsoperation ist;
- Fig. 37 ein Flußdiagramm einer SALK-Erzeugungsoperation ist;
- Fig. 38A bis 38E Signalschwingungsformen während einer Fehlerkorrekturoperation sind;
- Fig. 39A bis 391 weitere Signalschwingungsformen während einer Fehlerkorrekturoperation sind;
- Fig. 40A bis 40E Zeitablaufdiagramme einer ECC-Verarbeitungssteueroperation sind;
- Fig. 41A bis 41E weitere Zeitablaufdiagramme der ECC-Verarbeitungssteueroperation sind;
- Fig. 42A bis 42E zusätzliche Zeitablaufdiagramme der ECC-Verarbeitungssteueroperation sind;
- Fig. 43 ein Flußdiagramm einer RAM-Steuerübertragungsoperation ist;
- Fig. 44 ein Blockdiagramm einer Fehlerkorrekturschaltung ist;
- Fig. 45 ein Diagramm ist, welches die Ergebnisse der Fehlerkorrekturoperationen zeigt;
- Fig. 46A bis 46 G Signalschwingungsformen einer Busentscheidungsoperation sind;
- Fig. 47 ein Diagramm ist, welches die Anzahl von RAM-Zugriffen während einer Blockkorrekturoperation zeigt; und
- Fig. 48A bis 48F Signalschwingungsformen während einer Fehlerkorrektur-Ergebnisausgabeoperation sind.
- Mit Hilfe von Fig. 9 ist ein Blockdiagramm eines Geräts zum Reproduzieren von Daten mit einer variablen Rate von einer Compact Disc gemäß dem Decodiergerät nach der vorliegenden Erfindung (anschließend als Datenwiedergabegerät 40 bezeichnet) gezeigt.
- Ähnlich dem in Fig. 1 gezeigten Datenwiedergabegerät 1 besitzt das Datenwiedergabegerät 40 eine Abtasteinrichtung 3, die einen Laserstrahl auf die optische Platte 2 liefert, um die darauf aufgezeichneten Daten in einer durch den Stand der Technik bekannten Weise zu reproduzieren. Die Abtasteinrichtung 3 liefert ein Wiedergabesignal S1 zu einer Demodulationsschaltung 6, welche in einem Demodulationssystem 35 enthalten ist, welches durch eine Systemsteuerung 4 gesteuert wird. Das Wiedergabesignal S1 wird demoduliert und zu einer Sektorermittlungsschaltung 7 geliefert, die Adressen von jedem Sektor ermittelt und die Adressen zur Ringpuffer-Steuerschaltung 11 liefert, und die Daten, die im Signal enthalten sind, außerdem zu einer ECC-Schaltung 50 (Fehlerkorrekturcode-Schaltung) liefert. Die ECC-Schaltung 50 ermittelt und korrigiert Fehler gemäß der vorliegenden Erfindung in einer Weise, die erläutert wird. Die Sektorermittlungsschaltung 7 ermittelt neue Sektoren im Wiedergabesignal, jedoch, wenn eine Sektornummer oder Adresse nicht ermittelt wird oder wenn eine laufende Ermittlung nicht vorkommt (was besprochen wird), wird ein Sektornummer- Fehlersignal über eine Ringpuffer-Steuerschaltung 11 zu einer Spursprung-Ermittlungsschaltung 9 geliefert. In ähnlicher Weise wird ein Fehlersignal über die Systemsteuerung 4 zur Spursprung-Ermittlungsschaltung 9 geliefert, wenn die ECC-Schaltung 50 einen nicht-korrigierbaren Fehler im Signal ermittelt (was erläutert wird).
- Die ECC-Schaltung 50 ermittelt Fehler in den gelieferten Daten und korrigiert ermittelte Fehler unter Verwendung eines Redundanzbits, welches in den Daten enthalten ist, und die fehlerkorrigierten Daten werden zum Ringpufferspeicher 10 geliefert, der eine FIFO- Speichereinrichtung ist. Die im Speicher 10 gespeicherten Daten werden zu einer Multiplexdaten-Trennschaltung 13 geliefert, und danach ermittelt die ECC-Schaltung 50 Sektordatenkopfdaten in den gelieferten Daten und liefert die Sektordatenkopfdaten über die Ermittlungsschaltung 7 zur Systemsteuerung 4. Wie oben erwähnt wird, wenn die ECC-Schaltung 50 keine Fehler in den Daten korrigieren kann, ein Fehlersignal zur Systemsteuerung 4 geliefert.
- Die Spursprung-Bestimmungsschaltung 9 überwacht das Ausgangssignal der Ringpuffer-Steuerschaltung 11, und, wenn ein Spursprung erforderlich ist, liefert die Schaltung 9 ein Spursprungsignal JP1 zu einer Spurnachführungsservoschaltung 22, um einen Spursprung der Wiedergabeposition der Abtasteinrichtung 3 auf der optischen Platte 2 auszuführen. Wenn die Sektorermittlungsschaltung 7 ein Sektornummer-Fehlersignal liefert, oder wenn die ECC-Schaltung ein Fehlersignal (oben erwähnt) liefert, steuert die Systemsteuerung 4 die Spursprung-Bestimmungsschaltung 9, um ein Spursprungssignal zur Spurnachführungsservoschaltung 22 zu liefern, um so einen Spursprung der Wiedergabeposition der Abtasteinrichtung 3 zu veranlassen.
- Die ECC-Schaltung 50 ermittelt und korrigiert Fehler in den gelieferten Daten und liefert die fehlerkorrigierten Daten zum Ringpufferspeicher 10, welcher die Daten bei Adressen gemäß einem Schreibzeiger WP speichert, der von der Ringpuffer-Steuerschaltung 11 geliefert wird. Der Ringpufferspeicher 10 liest außerdem die Daten, die in ihm gespeichert sind, von Adressen gemäß einem Lesezeiger RP, der von der Steuerschaltung 11 geliefert wird. Die Steuerschaltung 11 erzeugt Schreibadressen (Schreibzeiger WP) von Sektorsignalen, welche von der Sektorermittlungsschaltung 7 geliefert werden, und erzeugt die Leseadressen (Lesezeiger RP) als Antwort auf Steuersignale, welche durch die Systemsteuerung 4 geliefert werden, und ein Codeanforderungssignal R10, welches von der Datentrennschaltung 13 geliefert wird.
- Der Ringpufferspeicher 10 liefert die in ihm gespeicherten Daten zu einer Datenkopf-Trennschaltung 14 in der Datentrennschaltung 13, welche einen Stapeldatenkopf von jedem Datenstapel, der zu ihr geliefert wird, trennt, und außerdem einen Paketdatenkopf von jedem Paket trennt, welches in den Daten enthalten ist, wonach die getrennten Datenköpfe zu einer Trennschaltungsteuerung 15 geliefert werden. Die Schaltungsteuerung 15 liefert ein Umschaltsteuersignal zu einer Schaltschaltung 16, um zu bewirken, daß die gelieferten Videodaten zum Eingangsanschluß 6 geliefert werden, damit diese über den Anschluß H1 zu einem Videocodepuffer 17 geliefert werden, und um zu bewirken, daß die Audiodaten, die zum Eingangsanschluß G geliefert werden, über den Anschluß H2 zu einem Audiocodepuffer 19 geliefert werden. Die Datenstrom-Identifikationsinformation (Datenstrom-ID), die in den Datenköpfen enthalten ist, identifiziert den Datentypus (beispielsweise Audio, Video), der in den Paketen enthalten ist.
- Der Videocodepuffer 17 speichert die zu ihm gelieferten Videodaten und erzeugt und liefert ein Codeanforderungssignal R1 zur Datentrennschaltung 13 gemäß der Datenmenge, welche im Puffer 17 gespeichert ist. Der Videocodepuffer 17 gibt die gespeicherten Daten als Antwort auf ein Codeanforderungssignal R1', welches vom Videodecoder 18 geliefert wird, an einen Videodecoder 18 aus. Der Videodecoder 18 decodiert die gelesenen Videodaten, um ein digitales Videosignal zu erzeugen, und liefert das digitale Videosignal als ein Ausgangssignal am Ausgangsanschluß OUT1.
- In ähnlicher Weise speichert der Audiocodepuffer 19 die gelieferten Audiodaten und erzeugt und liefert ein Codeanforderungssignal R2 zur Datentrennschaltung 13 gemäß der Datenmenge, welche im Puffer 19 gespeichert ist. Der Audiocodepuffer 19 gibt die gespeicherten Daten als Antwort auf ein Codeanforderungssignal R2', welches vom Audiodecoder 20 geliefert wird, an einen Audiodecoder 20 aus. Der Audiodecoder 20 decodiert die gelesenen Audiodaten, um ein digitales Audiosignal zu erzeugen, und liefert das digitale Audiosignal als Ausgangssignal am Ausgangsanschluß OUT2.
- Wenn die Datenmenge, die eine vorgegebene Zeit lang im Videodecoder 18 decodiert wird, aufgrund beispielsweise einer fortlaufenden Datenverarbeitung von einfachen Bildern abnimmt, nimmt die Rate, mit der Daten vom Speicher 10 gelesen werden, ab. Wenn dies geschieht, besteht die Möglichkeit, daß ein Überlaufzustand existieren kann. In diesem Fall berechnet die Spursprung-Bestimmungsschaltung 9 von den Schreib- und Lesezeigern WP und RP die Datenmenge, die zur Zeit im Speicher 10 gespeichert ist, und, wenn die berechnete Menge einen vorher festgelegten Wert übersteigt, liefert die Schaltung 9 eine geeignete Spursprunginstruktion zur Spurnachführungs-Servoschaltung 22, um einen Überlauf des Speichers 10 zu verhindern.
- Wenn die Sektorbestimmungsschaltung 7 ein Sektornummer-Fehlersignal liefert, oder wenn die ECC-Schaltung 50 ein Fehlersignal liefert, bestimmt die Spursprung-Bestimmungsschaltung 9 in ähnlicher Weise von den Schreib- und Lesezeigern WP und RP die Datenmenge, die im Ringpufferspeicher 10 bleibt, und bestimmt außerdem die Datenmenge, welche erforderlich ist, ein Lesen durch die Schaltung 13 der Daten zu beenden, die im Speicher 10 gespeichert sind, bevor die optische Platte 2 eine einzelne vollständige Drehung von ihrer laufenden Spurposition ausführt.
- Wenn weiter der Speicher 10 eine große Datenmenge enthält, wird verhindert, daß der Speicher 10 unterläuft, sogar wenn die Daten aus ihm mit der höchstmöglichen Übertragungsrate gelesen werden. Die Spursprung-Bestimmungsschaltung 9 bestimmt in diesem Fall, daß nicht korrigierbare Daten wiederherstellbar sind, d. h., nochmals von der optischen Platte gelesen werden, wobei die Position bestimmt wird, bei der der Fehler auftrat, und eine geeignete Spursprungsinstruktion an die Spurnachführungs-Servoschaltung 22 ausgegeben wird, um die Daten nochmals zu reproduzieren.
- Gemäß Fig. 10 ist nun ein Blockdiagramm der ECC-Schaltung 50 gezeigt, die einen Zufallszugriffsspeicher (RAM) 51, der ein Ringpufferspeicher ist, einen Fehlerkorrekturcode-Decoder (ECC-Decoder) 52 und ein Fehlerregister 53 aufweist. Wie man sieht ermittelt und korrigiert der ECC-Decoder 52 Fehler in den Daten, und das Fehlerregister 52 speichert Flags nicht korrigierbarer Fehler, Fehlerkorrekturmuster und Fehlerpositionen. Fig. 11 ist ein Blockdiagramm des Demodulationssystems 35 zusammen mit einer Zufallszugriffsspeicher- Schnittstellenschaltung (RMIF-Schaltung) 48 und einer CLV-Steuerschaltung 46. Das Fehlerkorrekturcode-Decodieren (anschließend auch als ECC-Decodieren bezeichnet) wird unter Verwendung einer RF-Verarbeitungsschaltung 42 (in der Demodulationsschaltung 6) ausgeführt, welche das reproduzierte Signale F1, welches von der optischen Platte gelesen wird RF- und binär-verarbeitet, und einer Demodulationsschaltung 44, um ein EFM-Synchronisationsmuster zu ermitteln. Wenn ein EFM-Synchronisationsmuster ermittelt wird, erlaubt die CLV- Steuerschaltung 46, daß ein Bahn-Servomechanismus arbeitet. Wenn ein EFM-Synchronisationsmuster ermittelt wird, wird ein PLL-Servomechanismus so gesteuert, damit er in bezug auf das reproduzierte Signal arbeitet. Wenn schließlich mehrere Synchronisationsmuster laufend ermittelt werden, werden die demodulierten Daten S2, die von der Demodulationsschaltung 6 geliefert werden, in Einheiten von Rahmen im RAM 51 der ECC-Schaltung 50 über die RMIF-Schaltung 48 gespeichert. Die im RAM 51 gespeicherten Daten werden über eine Ausgabesteuerschaltung (OCTL-Schaltung) zum Speicher 10 geliefert. Die ECC-Schaltung 50 erzeugt und liefert über die RMIF-Schaltung 48 Schreibadressen zum RAM 51. Die vom RAM 51 gelesenen Daten werden über die RMIF-Schaltung 48 zum ECC-Steuerabschnitt 54 und zum ECC-Decodierabschnitt 55 (im ECC-Decoder 52 enthalten) geliefert.
- Wenn ein ermittelter Fehler korrigierbar ist, wird dessen Position in den Daten (d. h., die Fehlerposition) und ein Fehlerkorrekturmuster (vom Korrekturcode) vom ECC-Decodierabschnitt 55 zum ECC-Steuerabschnitt 54 geliefert, und die Fehlerpositionen und die Fehlerkorrekturmuster jedes korrigierbaren Fehlers werden für jeden Rahmen an das Fehlerregister 53 ausgegeben, in welchem die Fehlerdaten gespeichert werden. Dann wird jeder Fehler durch erstes Lesen der Fehlerposition und des Korrekturmusters vom Fehlerregister 53, durch Lesen der fehlerhaften Daten vom RAM 51, die der Fehlerposition entsprechen, durch exklusives logisches Addieren der fehlerhaften Daten zum Korrekturmuster (Exklusiv-ODER oder EXOR) und durch Schreiben des resultierenden Wertes zurück in den RAM 51 korrigiert. Wenn ein ermittelter Fehler nicht korrigierbar ist, wird ein Flag "nichtkorrigierbarer Fehler" für diesen Rahmen, in welchem der nichtkorrigierbare Fehler enthalten ist, im Fehlerregister 53 gespeichert, so daß ein nachfolgender Löschbetrieb (Beseitigungsbetrieb) ausgeführt werden kann.
- Wie man aus der obigen Beschreibung sieht, werden Fehlerpositionen und Korrekturmuster im Fehlerregister 53 für jede Fehlerkorrekturcode-Sequenz gesammelt und gespeichert, d. h., für die C11-Datensequenz (die erste C1-Sequenz), für die C2-Sequenz und für die C12-Sequenz (die zweite C1-Sequenz). Wenn die Fehlerpositionen und die Korrekturmuster im Fehlerregister 53 gespeichert sind, korrigiert der ECC-Steuerabschnitt 54 die Fehler in der oben erläuterten Weise.
- Die Datenspeicheradressen RA werden von den Daten, die im RAM 51 gespeichert sind, bestimmt, wie beispielsweise in Fig. 12 gezeigt ist, wobei die Ordnung Dn der C1- Sequenz von Daten verwendet wird, die Rahmennummern Fn in den C1-Codeeinheiten und die folgenden Gleichungen, wobei alle Zahlen (Nummern) in hexadezimaler Schreibweise dargestellt sind:
- Dn: Datennummer (00-A9)
- Fn: Rahmennummer (00-B9)
- RA: RAM-Adresse (0000-7FFF)
- Fna = Fn + 46 + 01
- IF (ECC-MODE = C2), Fna = Fna + Dn
- IF (Fna > FF), Fna = Fna + 46 - 100 (5)
- (Dn = 00) UND (00 < Dn < 80)
- RA = [(Fna) · 80] + Dn[6 : 0] (6)
- (Dn = 80) UND (A0 < Dn < A0)
- RA = [(Fna + 18) · 20] + Dn [4 : 0] (7)
- (Dn = A0) UND (80 < Dn < AF)
- RA = [(Fna + BA - 100) · 10] + Dn [3 : 0] (8)
- Aus Fig. 13 sieht man nun, daß, wenn beispielsweise der Rahmen 182 zum RAM 51 geliefert und in ihm gespeichert wird (hier als "EFM-Schreiben" bezeichnet), wird die C11-Sequenz von Daten (der Rahmen 174, 175, usw.) simultan zum Decoder 53 in der Ordnung 00, 02, ... A9 geliefert (hier als "C11-Lesen" bezeichnet). Die C2-Sequenz von Daten wird zum Decoder 52 übertragen (hier als "C2-Lesen" bezeichnet), und die C12-Sequenz von Daten wird zum Decoder 52 übertragen (hier als "C12-Lesen" bezeichnet). Ein erster Rahmen 1, der decodiert wurde (für alle Datensequenzen C11, C2 und Cl2) wird zur OCTL-Schaltung 56 geliefert (hier als ("OUT-Lesen" bezeichnet). Das Liefern (d. h., das Übertragen) der C11-, C2- und C12-Sequenzen von Daten wird fortlaufend in festen Zeitintervallen ausgeführt. Anders ausgedrückt ist bei einem vorgegebenen Taktsignal RFCK mit einer Periode von 1168 Folgen der Fehlerkorrekturcode einer Länge von 170 Bytes innerhalb jeder Taktperiode dreifach übertragbar.
- Alle C11-, C2- und C12-Datensequenzen, die im RAM 51 gespeichert sind, werden zum Decoder 52 innerhalb einer Taktperiode RFCK übertragen. Die im RAM 51 gespeicherten Fehlerkorrekturcodedaten (oder einfach "ECC-Daten") werden darin nicht geändert, und wenn ein Fehler ermittelt wird oder dieser als korrigierbar gefunden wird, wird eine Fehlerposition und ein Fehlerkorrekturmuster zum Fehlerregister 53 als Fehlerergebnis "ER" geliefert. Die ECC-Schaltung 50 korrigiert dann den Fehler durch exklusives logisches Addieren des Korrekturmusters, welches im Fehlerregister 53 gespeichert ist, und der fehlerhaften Daten, die im RAM 51 gespeichert sind und durch diesen geliefert werden, auf der Basis der Fehlerposition (hier als "EXOR-Betrieb" bezeichnet), und durch anschließendes Speichern des resultierenden Werts an den geeigneten Stellen im RAM 51. Schließlich werden die decodierten Daten S10 zum Pufferspeicher 10 geliefert, und die Sektordatenkopfdaten SH werden zur Sektorermittlungsschaltung 7 geliefert.
- Ein Zeitablaufdiagramm der Übertragung, der Fehlerergebnisausgabe und der Fehlerkorrekturoperationen ist in Fig. 14 gezeigt. Wie gezeigt ist, korrigiert der ECC-Steuerabschnitt 54 (Fig. 11) die Fehler in der C11-Datensequenz (als "C11W" bezeichnet), nachdem die C12-Datensequenz zum ECC-Decodierabschnitt 55 übertragen wurde (als "C12R" bezeichnet). Wenn dann die C11-Datensequenz des nächsten Rahmens zum Decoder 52 vom RAM 51 geliefert wird, korrigiert der ECC-Steuerabschnitt 54 Fehler in der C2-Datensequenz des laufenden Rahmens (als "C2W" identifiziert). Nachdem schließlich die C2-Datensequenz des nächsten Rahmens geliefert ist, korrigiert der ECC-Steuerabschnitt 54 Fehler in der C12- Datensequenz des laufenden Rahmens (als "C12W" identifiziert). Somit werden die drei Sequenzen der ECC-Daten fortlaufend vom RAM 51 zum ECC-Decodierabschnitt 55 übertragen (d. h., C11R, C2R und C12R) und nachfolgend der ECC-Fehlerkorrektur unterworfen (d. h., C11W, C2W und C12W), wobei dies alles innerhalb einer Taktperiode RFCK durchgeführt wird. Man sieht außerdem, daß jede C11-, C2- und C12-ECC-Datensequenz vom RAM 51 in festen Zeitintervallen innerhalb jeder Taktperiode RFCK ausgegeben wird.
- Die ECC-Übertragungscodelänge NCYC beträgt 170 Perioden (d. h., NCYC = 170), und eine Paritätsübertragungs-Codelänge PCYC ist ein Maximum von 14 Perioden (d. h., PCYC = 14), und aus den folgenden Gleichungen sieht man, daß das Intervall, in welchem Fehlerergebnisse zum Fehlerregister 53 geliefert werden, auf 395 Perioden eines ECC- Betriebstakts (ECCK) gesetzt wird:
- NCYC: Codelänge (170)
- PCYC: Paritätslänge (maximal 14)
- 2 · NCYC + 3 · PCYC + 13 = 395 (9)
- Die RMIF-Schaltung 48 (der ECC-Schaltung 50) zählt die ECCK-Taktimpulse für eine Anzahl von Symbolen entsprechend den C1- (d. h., C11 und C12) und den C2-Datensequenzen, damit die drei Ausgangssignale innerhalb einer Taktperiode RFCK liegen, um mit C11R-, C2R- und C12R-Datenübertragungen synchronisiert werden. In diesem Fall werden die Ergebnisse der C11-Datensequenz während der Übertragung der C12-Datenseugenz ausgegeben, und die Ergebnisse der C2- und C12-Sequenzen werden während der Übertragung der C11- und C2-Datensequenzen entsprechend ausgegeben.
- Fig. 15 ist ein Zeitablaufdiagramm für den Fall, wenn der ECCK-Takt in der Ordnung C11, C2 und C12 innerhalb einer Taktperiode RFCK ausgegeben wird und wenn lediglich die C11-Datensequenz übertragen wird. Wie gezeigt ist wird ein Rahmenzähler dazu verwendet, sowohl die Anzahl der Datenübertragungen (beispielsweise C11) als auch die Anzahl von Fehlerkorrekturen (beispielsweise [C11]) zu zählen.
- Fig. 16 ist ein Zeitablaufdiagramm der Fehlerausgabe der ECC-Schaltung 50. Wie gezeigt ist, tritt ein "OSTT"-Signal, welches die Zeit zeigt, mit der die ECC-Ergebnisse ausgegeben werden, 395 Taktperioden ECCK nach Empfang der C1- und C2-Daten auf (d. h., wenn das Startimpulssignal ESTT nach oben geht), ein Auslösesignal OCORRECT geht drei Taktperioden nach dem Anstieg des OSTT-Signals nach oben (d. h., gleich "1"), und die Fehlermuster EDX und die Fehlerpositionen EAX werden als Daten ODATA [7 : 0] bzw. OORIG [7 : 0] ausgegeben, wenn das OCORRECT-Auslösesignal hoch ist. Die Zeitablaufdiagramme von Fig. 16 zeigen den Fall, wenn drei Fehler (ED0, ED 1 und ED2) existieren. Das Startimpulssignal ESTT geht nach oben, wenn der Decodierabschnitt 55 den Beginn der C1- und C2- Daten identifiziert, und das OCORRECT-Auslösesignal wird dazu verwendet, die ECC-Ergebnisse ODATA [7 : 0] und OORIG [7 : 0] zu erzielen. Wie oben erläutert werden die Fehlermuster (EDX) und die Fehlerpositionen (EAX) im Fehlerregister 53 gespeichert, und die Fehler werden korrigiert, nachdem die Datenübertragung zum Decoder 52 abgeschlossen ist.
- Mit Hilfe von Fig. 17 ist ein Diagramm der Anzahl von Speicherleseoperationen und Schreiboperationen des RAM 51 (d. h., von ECCK-Taktperioden) während einer Taktperiode RFCK (d. h., eines Rahmens) gezeigt. Wie oben erläutert werden die EFM-, C11-, C2-, C12- und OUT-Operationen während der 1168 Taktperioden ECCK durchgeführt. Wie in Fig. 17 gezeigt ist, wird das Sektorsynchronisationsmuster im RAM 51 in einer Taktperiode gespeichert, und die EFM-Daten werden in 170 +/- α-Taktperioden gespeichert. Die C11- Datensequenz wird (vom RAM 51) in 170 Taktperioden gelesen, die C 11-Korrektur wird in "8 + 8"-Taktperioden durchgeführt (Lesen und Schreiben), die C11-Korrekturergebnisse und "SUB" (was erläutert wird) werden in einer Taktperiode gespeichert, ein Sektorsynchronisationsmuster wird in einer Taktperiode gelesen, Datenkopfdaten werden in 20 Taktperioden gelesen, und die Ergebnisse der Leseoperation der Sektorinformation von den Datenkopfdaten werden in 1 + (14)-Taktperioden geschrieben.
- Die C2-Datensequenz wird vom RAM 51 in 170 Taktperioden gelesen, die Fehler in den C2-Daten werden in 14 + 14 Taktperioden korrigiert und die korrigierten C2-Daten werden in einer Taktperiode gespeichert. Die C12-Datensequenz wird in 170 Taktperioden gelesen, die Fehler (Lesen und Schreiben) in den C12-Daten werden in 8 + 8 Taktperioden korrigiert und die korrigierten C12-Daten werden in einer Taktperiode gespeichert.
- Schließlich wird die Sektorinformation der decodierten ECC-Daten in einer Taktperiode gelesen, die Korrekturergebnisse der C11-Daten werden in einer Taktperiode gelesen, die Korrekturergebnisse der C2-Daten werden in einer Taktperiode gelesen, die Korrekturergebnisse der C12-Daten werden in einer Taktperiode gelesen und die OUT-Operation (d. h., die Übertragung aller Daten vom RAM 51 zum Speicher 10) wird in 170 Taktperioden durchgeführt. Alle obigen Operationen werden während 948 der 1168 ECC-Taktperioden einer Taktperiode (d. h., eines Rahmens) des Takts RFCK durchgeführt.
- Die SUB-Operation, die oben erwähnt wurde, bezieht sich auf das Lesen der Datenkopfdaten und das Übertragen eines Vier-Byte-Synchronisationscodes und von 16 Bytes von Datenkopfdaten zur Sektorermittlungsschaltung 7, die in Fig. 9 gezeigt ist. Die Sektorermittlungsschaltung 7 extrahiert eine Sektoradresse von den Datenkopfdaten, führt eine CRC- Operation durch, führt die sogenannte "Schwungrad"-Operation (FW-Operation) aus und überträgt deren Ergebnis zur Systemsteuerung 4. Die Systemsteuerung 4 identifiziert die Sektordatenkopfdaten SH innerhalb der Daten von lediglich der C11-Datensequenz, die ECCdecodiert wurde. Wie in Fig. 14 gezeigt ist, wird die SUB Information geliefert, nachdem die C11-Daten fehlerkorrigiert sind (C11W). Damit wird die Lageinformation (d. h., die Lage auf der Platte 2) erhalten, bevor die C2- und C12-Datensequenzen decodiert sind.
- Die oben erwähnte Schwungradoperation bezieht sich auf den Schutz und die Interpolationsroutinen, die einen "Verriegelungs"-Zustand ermöglichen, der bewahrt wird, sogar in dem Fall, daß ein Synchronisationssignal nicht mehrere Male ermittelt wird. Die Systemsteuerung 4 bestimmt, ob ein wiedergegebener Sektor ein gewünschter Sektor ist, und die Schwungsradoperation wendet eine "EW-Verriegelung" an, wenn mehrere Synchronisationsmuster, insbesondere, mehrere Haupt- und Sub-Synchronisationsmuster laufend im wiedergegebenen RF-Signal ermittelt werden.
- Eine Ausführungsbedingung für eine "Rahmeneinheit"-Operation (hier als "JOB- Operation" bezeichnet) für Lese- und Schreiboperationen von und zum RAM 51 ist unter Verwendung der folgenden Gleichungen gezeigt:
- Rahmenzähl- und Ausführungsbedingung für JOB
- (SUB ist in C11 enthalten)
- die Ausführungsbedingung von C11: Fn (EFM) - Fn(C 11) > 1
- die Ausführungsbedingung von C2: Fn (C11) - Fn(C2) > 169
- die Ausführungsbedingung von C 12: Fn(C2) - Fn(C12) > 0
- die Ausführungsbedingung von OUT: Fn(C12) - Fn(OUT) > 0 (10)
- Unter der Annahme, daß das Rahmenzählen für "JOBXXX" als Fn(XXX) bezeichnet wird, wird Fn(XXX) um eins inkrementiert, wenn alle JOB-Operationen für die Rahmeneinheiten XXX beendet sind. In diesem Fall wird angenommen, daß "SUB"- in der C11-Datensequenz enthalten ist.
- Wie oben erwähnt ist das Synchronisationsmuster FW "verriegelt", wenn die Synchronisation laufend mehrere Male ermittelt wird. In diesem Zeitpunkt wird das Speicherschreib-Freigabesignal MWENS hoch gesetzt und die Schreiboperation der EFM-demodulierten Daten wird begonnen. Wenn die Synchronisation mehrere Male nicht laufend ermittelt wird, wird das Synchronisationsmuster FW entriegelt und das Speicherschreib-Freigabesignal MWENS wird auf den niedrigen Wert gesetzt, um das Schreiben der EFM-Daten zu verbieten, und jeder Rahmenzähler wird auf Null zurückgesetzt.
- Fig. 18 ist ein Zeitablaufdiagramm verschiedener Leseanforderungs- und Leseanerkennungssignale des RAM 51 während des Fehlerkorrekturprozesses. Wie gezeigt ist wird ein OUT-Anforderungssignal OUTREQ pro vier Perioden eines Signals C11M geliefert, und die Anforderungssignale werden in der Ordnung OUTREQ (OUT-Anforderung), EFMREQ (EFM-Anforderung) und ECCREQ (ECC-Anforderung) geliefert. Ein bestimmtes "JOB" wird durchgeführt, wenn "XXX ACK" ein bestimmtes Anerkenntnissignal) hoch ist. Weiter werden die ECC-Daten an der ansteigenden Flanke des Takts RFCK ausgegeben und wenn eine bestimmte JOB-Ausführungsbedingung existiert. Wie in Fig. 14 gezeigt ist, werden Lese- /Schreiboperationen der ECC-Daten und "SUB" in der folgenden Ordnung (Reihenfolge) durchgeführt: C11R, C2W, C2R, C12W, C12R, C11W und SUB.
- Aus der obigen Erläuterung sieht man, daß für die verschiedenen C11-, C2-, C12- und OUT-Operationen der Zählwert zwischen Fn(C11) und Fn(OUT) fest ist, vorausgesetzt, daß die Synchronisations-FW verriegelt ist, das MWENS-Signal hoch bleibt und die Ausführungsbedingung für jede JOB erfüllt ist.
- Das Datendecodiergerät 40 setzt, beispielsweise wie in Fig. 9 gezeigt ist, die Kanalbitrate während der Reproduktion (Signal RFCK) auf einen Wert, der größer ist als die Referenzkanalbitrate von 26,6 Mbit/s während der Aufzeichnung auf der Platte (Schneiden), um so sicherzustellen, daß die Daten vom Pufferspeicher 10 gelesen und zur Multiplexdaten- Trennschaltung 13 geliefert werden können.
- Wie oben erläutert werden Fehlerpositionen, Korrekturmuster und nichtkorrigierbare Datenflags vom Decoder 52 geliefert und im Fehlerregister 53 gespeichert. Fehler werden nachfolgend durch exklusives logisches Addieren der ECC-Daten, die im RAM 51 gespeichert sind, und der Korrekturmuster korrigiert, und die im RAM 51 gespeicherten ECC- Daten werden nicht verändert, um somit die Notwendigkeit zu beseitigen, einen weiteren Speicher vorzusehen, um die Daten ECC-zu-decodieren. Aus der obigen Erläuterung sieht man weiter, daß lediglich ein Decoder 52 benötigt wird, um die Fehler in allen C11-, C2- und C12-Sequenzen der ECC-Daten zu korngieren.
- Die Schaltung von Fig. 9, die die Decodierschaltung, die in Fig. 9 und 10 gezeigt ist, verkörpert, liefert außerdem für lediglich einen einzelnen Rahmenzähler (sowohl für die Datenübertragung als auch die Fehlerkorrekturoperationen) einen einzigen Speicher 51, um die reproduzierten Daten zu halten, wodurch somit die reproduzierten Daten nicht von einem ersten Speicher zu einem zweiten Speicher zu einem dritten Speicher wie bei der in Fig. 2 gezeigten Einrichtung übertragen werden, wobei außerdem die Speichereinrichtung 51 unter Verwendung von Werten, die in einer Tabelle gespeichert sind, adressierbar ist.
- Schließlich kann die Decodierschaltung 35, wie oben erläutert, Fehler in allen C11-, C2- und C12-Sequenzen von ECC-Daten innerhalb einer Taktperiode RFCK korrigieren. Somit sind die fehlerkorrigierten C11-, C2- und C12-Daten in festen Zeitintervallen vorgesehen.
- Fig. 19 bis 22 zeigen ein Aufzeichnungsdatenformat gemäß einer weiteren Ausführungsform der vorliegenden Erfindung, wo Daten in Einheiten von 32 kByte-Clustern aufgezeichnet sind. Fig. 19 zeigt die Datenstruktur eines Sektors, der aus ungefähr 2 kBytes (2060 Bytes) von Daten und 4 Bytes von Fehlerermittlungscodes (EDC) bei einer Gesamtzahl von 2046 Bytes pro Sektor besteht. 16 Sektoren (jeweils 2064 Bytes) sind in der in Fig. 20 gezeigten Weise kombiniert, wobei jeder Sektor aus 12 · 172 Datenbytes gebildet wird, und 16 Sektoren sind kombiniert, um 192 · 172 Datenbytes zu bilden (d. h., 12 · 16 · 172 Datenbytes). 16 Bytes des Außenparitätscodes PO (oder einfach Außencode PO) sind zu jeder Spalte der Sektordaten addiert, und 10 Bytes von Innenparitätscodes PI sind zu jeder Sektordatenreihe wie auch zu jeder Reihe von PO-Paritätsdaten addiert.
- Die Außencodereihe (die 16 · 172 Bytes von PO-Daten und 16 · 10 Bytes von PI- Daten umfaßt) ist in 16 separate Reihen von jeweils 182 Bytes unterteilt und jede 182-Byte- Reihe ist unter einer entsprechenden Reihe der 16 Sektoren eingefügt (die 12 · 182 Bytes umfassen), die von 0 bis 15 numeriert sind, wie in Fig. 21 gezeigt ist. Jeder Sektor besteht somit aus 13 · 182 Bytes für eine Gesamtzahl von 208 · 182 Bytes (16 · 13 · 182) pro 16 Sektoren. Die in Fig. 21 gezeigten Daten sind weiter in zwei Abschnitte von jeweils 91 Bytes unterteilt, wie beispielsweise in Fig. 22 gezeigt ist, und jeder Satz von 91 Bytes wird als Daten eines einzelnen Rahmens betrachtet für eine Gesamtzahl von 208 · 2 Rahmen. Ein Zwei- Byte-Rahmensynchronisationssignal FS ist jedem 91-Byte-Rahmen hinzugefügt, wie in Fig. 22 gezeigt ist, um 416 (208 · 2) Rahmen von jeweils 93 Bytes zu erzeugen. 416 solche Rahmen erzeugen ein Cluster (oder einen ECC-Block) von Daten. Wie aus der obigen Erläuterung gesehen werden kann, beträgt die Größe eines "aktuellen" Sektors (der nicht die "Zusatz"-Daten enthält) 2 kBytes, ein Cluster (ein ECC-Block) besteht aus 16 Sektoren, und ein Sektor besteht aus 24 Rahmen. Wie man sieht, werden die Daten auf der optischen Platte 2 in Einheiten von Clustern aufgezeichnet.
- In Fig. 23 ist ein ausführliches Blockdiagramm der Demodulationsschaltung 35 für den Fall gezeigt, wenn das Datenwiedergabegerät 40 Daten reproduziert, die das oben erläuterte Aufzeichnungsdatenformat haben. Wie oben erläutert besteht die Demodulationsschaltung 35 aus der Demodulationsschaltung 6, der Sektorermittlungsschaltung 7 und der ECC- Schaltung 50. Die Demodulationsschaltung 6 umfaßt eine RF-Verarbeitungsschaltung 130 und eine EFM-Demodulationsschaltung 131. Die Sektorermittlungsschaltung 7 kann eine SBCD-Schaltung 134, eine RAM-Steuerung 135 und einen RAM 137 aufweisen. Die ECC- Schaltung 50 kann die RAM-Steuerung 135, eine ECC-Steuerschaltung 136, einen RAM 137, eine ECC-Kernschaltung 138 und eine OCTL-Schaltung (Ausgabesteuerschaltung) 139 aufweisen.
- Die RF-Verarbeitungsschaltung 130 empfängt das Signal S1, welches von der Abtasteinrichtung 3 (in Fig. 9 gezeigt) geliefert wird, setzt das Signal S1 in ein Binärsignal um und liefert das Binärsignal zur EFM-Demodulationsschaltung 131. Die EFM-Demodulationsschaltung 131 demoduliert das Signal und ermittelt ein Synchronisationsmuster darin. Als Antwort auf das von der EFM-Demodulationsschaltung 131 gelieferte Synchronisationsmuster steuert die CLV-Steuerschaltung 132 eine Ansteuerschnittstellenschaltung (IF-Schaltung) 131. Die Subcodeschaltung (SBCD) 134 ermittelt Sektoren im Signal, welches von der EFM- Demodulationsschaltung 131 geliefert wird, und die RAM-Steuerung 135 (welche der RMIF- Schaltung 48 in Fig. 11 entspricht) steuert die Lese- und Schreiboperationen des RAM 137. Der RAM 137 speichert vorübergehend Daten, die zu ihm während der Fehlerkorrektur durch die ECC-Steuerschaltung 138 geliefert werden, die ECC-Kernschaltung 138 (welche dem ECC-Decodierabschnitt 55 in Fig. 11 entspricht) nutzt Reed-Solomon-Codes (PI und PO), um ECA-, EXD- und SFLG-Signale (die erläutert werden) zu erzeugen, die zur ECC-Steuerschaltung 136 geliefert werden, und die ECC-Steuerschaltung 136 korrigiert Fehler in den Daten, wobei die ECA-, ECD- und SFLG-Signale, die zu ihr geliefert werden, verwendet werden. Die OCTL-Schaltung 139 entschachtelt Fehlerermittlungscodes und gibt die Daten aus. Eine Host-CPU 140 (welche der Systemsteuerung 4, die in Fig. 9 gezeigt ist, entspricht), steuert den Betrieb aller Schaltungen der Demodulationsschaltung 35.
- Wie oben erläutert steuert die CLV-Steuerschaltung 132 eine Ansteuerschnittstellenschaltung (IF-Schaltung) 133. Die CLV-Steuerschaltung 132 erlaubt es, daß ein Grob-Servomechanismus auf ein Signal S1 auf der Basis von ermittelten Synchronisationsmustern einwirkt, um weiter Synchronisationscodes darin zu ermitteln, beispielsweise Codes SYO bis SY7, die in Fig. 24 gezeigt sind. Wie auch oben erwähnt wirkt ein PLL-Phasenservomechanismus auf das Signal ein. In Fig. 24 ist eine beispielhafte Datenstruktur eines physikalischen Sektors der optischen Platte 2 gezeigt. Jeder physikalische Sektor besteht aus 26 Synchronisationsrahmen (zwei Spalten von 16 Reihen von Synchronisationsrahmen), und jeder Synchronisationsrahmen besteht aus 32 Kanalbits (zwei 16-Bit-Bytes) von Synchronisationscodes (SYO bis SY7) vor der Modulation, denen ein Datenabschnitt von 1456 Kanalbits (91 16-bit- Bytes) folgen) (ausgedrückt als Bits vor der Modulation). Der Datenabschnitt des ersten Synchronisationsrahmens umfaßt die ID-Information (beispielsweise eine Sektornummer), den Fehlerermittlungscode für die ID (IED) und Hauptdaten. Die unteren 22 Bits des Synchronisationsmusters, die als erste 32 Kanalbits jedes Synchronisationsrahmens gespeichert sind, haben das Bitmuster "0001000000000000010001", wobei das Muster einzig ist und in den Daten nicht erscheint.
- Auf den ersten Synchronisationsrahmen in der linken Spalte folgen 11 Synchronisationsrahmen, die jeweils ein Synchronisationsmuster haben, denen Hauptdaten folgen, denen ein Synchronisationsrahmen folgen, die ein Synchronisationsmuster haben, denen PO- Paritätsdaten folgen (d. h., im letzten Synchronisationsrahmen in der linken Spalte). Jeder Synchronisationsrahmen in der rechten Spalte umfaßt Hauptdaten wie auch PI-Paritätsdaten, wobei der zwölfte Synchronisationsrahmen in der rechten Spalte den EDC (Fehlerermittlungscode) und PI-Paritätsdaten aufweist, und der letzte (dreizehnte) Synchronisationsrahmen in der rechten Spalte sowohl PO- als auch PI-Paritätsdaten darin aufweist.
- Fig. 25 zeigt die Datenstruktur eines Sektors ohne die PI- und die PO-Paritätsdaten. Wie gezeigt ist besteht ein Sektor aus einem Vier-Byte-ID-Code (d. h., einer Sektornummer), einem Zwei-Byte-Fehlerermittlungscode für den ID-Code (IED), 6 Bytes an reservierten Daten (RSV), verschachtelten Hauptdaten und 4 EDC-Bytes (Fehlerermittlungscode). Wie oben erläutert sind 16 Sektoren mit PI- und PO-Daten in der in Fig. 20-21 gezeigten Weise kombiniert, und Rahmensynchronisationscodes FS sind hinzugefügt, wie beispielsweise in Fig. 22 gezeigt ist. Die Rahmensynchronisationscodes sind als SYx (x = 0, 1, 2, ... 7) dargestellt, wie beispielsweise in Fig. 24 gezeigt ist, und, da ein ECC-Block aus 16 Sektoren besteht, werden die unteren 4 Bits der physikalischen Sektoradresse von 0000 bis 1111 festgesetzt, wobei die unteren 4 Bits der physikalischen Adresse des ersten Sektors des ECC-Blocks 0000 sind.
- Die Hauptdaten des in Fig. 25 gezeigten Sektors sind verschachtelt, wobei die Hauptdaten mit Verschachtelungsdaten exklusiv logisch addiert werden, die erzeugt werden, wobei als Anfangswert ein Wert verwendet wird, der durch die unteren 4 bis 7 Bits der physikalischen Sektoradresse spezifiziert wird.
- Die vorliegende Ausführungsform, die hier beschrieben wird, verwendet die folgenden Bezeichnungen und Signalnamen:
- Blockspitze: dieses Signal geht am Anfang eines Sektors nach oben, wenn ein SYLK-Signal hoch ist.
- C11M: der Systembetätigungstakt, der eine Frequenz von 11,2896 MHz hat.
- DSTB (Datenauslösesignal): ein Datenauslösesignal, welches hoch ist, wenn Hauptdaten als Datenstromdaten SD geliefert werden.
- ECA (ERR-Korrekturadresse): ein Fehlerkorrekturadresse, die die Position (d. h., Adresse) eines Fehlers zeigt.
- ECCK (ECC-Takt): ein Betriebstakt für die ECC-Kernschaltung 138.
- ECD (Fehlerkorrekturdaten): Fehlerkorrekturdaten, die zu korrekten Daten werden, wenn diese zu fehlerhaften Daten exklusiv logisch addiert werden.
- ECDE (ECC-Codedatenende): ein Steuersignal, welches das Ende der Eingangsdaten zeigt.
- ECOD (ECC-Codefehler): dieses Signal ist hoch, wenn ein Fehler nicht korrigierbar ist.
- ECOR (ECC-Korrektur): ein Auslösesignal, welches die Ausgabe von Daten mit korrigierbaren Daten zeigt (ECA, ECD).
- ECYE (ECC-Periodenende): ein Steuersignal, welches das Ende einer Periode von Eingangscodedaten zeigt.
- EDT (ECC-Daten): Daten, die vom RAM 137 gelesen werden und die zur ECC- Steuerschaltung 136 zur Fehlerkorrektur geliefert werden.
- ESTB (Fehlerauslösesignal): eine Fehlerkorrektur hat das Auslösesignal zur Folge, welches während der Übertragung der Fehlerkorrekturergebnisse ER hoch ist.
- ESTT (ECC-Start): ein Steuersignal, welches den Beginn von Eingangsdaten zeigt.
- EFM-W-Rahmen (EFM-Schreib-Rahmenzähler): dieses Signal zeigt einen Hauptrahmen, der in den RAM 137 geschrieben werden soll.
- HDEN (Datenkopf-Datenfreigabesignal): ein Auslösesignal für Sektordatenkopfdaten.
- Haupt-FMSY (Haupt-Rahmensynchronisation): dieses Signal ist bei der Hauptsynchronisation (Anfangssynchronisation) jeder PI-Reihe hoch.
- MWEN (Speicherschreibfreigabesignal): dieses Signal ermöglicht, daß EFM-demodulierte Daten in den RAM 137 geschrieben werden.
- MWRQ (EFM-Schreibanforderung): dieses Signal fordert ein Schreiben von EFM-demodulierten Daten in den RAM 137 an.
- OUTE (Ausgangsflag): ein Interpolations-Flag (Ausgabe-Flag).
- OSTT (ECC-Ausgangsstartsignal): dieses Signal wird 477 Perioden des ECCK- Takts ausgegeben, nachdem das ESTT-Signal in einer speziellen Codesequenz nach oben geht.
- RDT (Lesedaten): Daten auf einem Lesedatenbus zum RAM 137.
- SALK (Sektoradreßverriegelung): dieses Signal zeigt, daß die Sektoradressen (IDs) korrekt ermittelt wurden.
- SAUL (Sektoradreßentriegelung): ein Signal, welches eine entgegengesetzte Polarität zum SALK-Signal hat.
- SCSY (Sektorsynchronisation): dieses Signal geht in einem SYO-Rahmen nach oben, um den Anfang eines Sektors anzuzeigen.
- SD (Datenstrom-Daten): decodierte Ausgangsdaten
- SDCK (Datenstrom-Datentakt): ein Datenstrom-Datentakt
- SFLG (Sektor-Flag): ein Flag für einen nicht ECC-korrigierbaren Fehler für PI1- Korrekturen.
- SINF (Sektorinformation): ein Sektorinformations-Auslösesignal, welches am Beginn eines Sektors nach oben geht.
- SUB (SUB-Daten): Daten, welche zur SBCD-Schaltung 134 übertragen werden und welche eine ID und einen ECC umfassen.
- SYLK (Synchronisationsverriegelung): dieses Signal geht nach oben, wenn drei Synchronisationscodes stetig ermittelt wurden.
- SYUL (Synchronisationsentriegelung): dieses Signal hat eine entgegengesetzte Polarität zum SYLK-Signal.
- WDT (Schreibdaten): Daten auf einem Schreibdatenbus zum RAM 137.
- XHWE (Sektordatenkopf-Schreibfreigabe): dieses Signal ermöglicht es, daß das Ausgangssignal der Sektorinformation von der SBCD-Schaltung 134 in den RAM 137 geschrieben wird.
- Demodulierte Daten (durch die Schaltung 131, die in Fig. 23 gezeigt ist, demoduliert) werden im RAM 137 als Antwort auf verschiedene Steuersignale gespeichert, die von der RAM-Steuerung 135 geliefert werden, was schematisch in Fig. 26 gezeigt ist. Fig. 26 zeigt einen ECC-Block. Die RAM-Steuerung 35 liest weiter aus dem RAM 137 gewünschte Daten durch Spezifizieren von Reihen- und Spaltenwerten, wobei die Werte (M, N) angeben, daß die Daten, die am N-ten Byte der M-ten Reihe angeordnet sind, daraus gelesen werden.
- Wie oben erläutert identifiziert die SBCD-Schaltung 134 den Anfang eines Sektors, der von der optischen Platte 2 reproduziert wird, vom Typus und der Kontinuität der Synchronisationscodes. Nachdem der Anfang eines Sektors identifiziert ist, werden die demodulierten Daten beginnend mit den Anfangsdaten nacheinander im RAM 137 gespeichert.
- Fig. 27A bis 27F sind Zeitablaufdiagramme, die die Werte der verschiedenen Signale SCSY, Haupt-FMSY, SUB, MWEN, EFM-W-Rahmen und PI1-Rahmen während der Speicherung der demodulierten Daten zeigen. Diese Signale werden unten weiter beschrieben.
- Fig. 28 ist ein Flußdiagramm der Synchronisations-"Verriegelungs"-Operation der Demodulationsschaltung 137, wo im Anfrageschritt SP1 bestimmt wird, ob die Synchronisationscodes (beispielsweise SYO bis SY7, die in Fig. 24 gezeigt sind) in jedem Synchronisationsrahmen ermittelt werden, und, wenn dies so ist, wird SClock, welches die Anzahl der fortlaufend ermittelten Synchronisationscodes zeigt, um eins inkrementiert, und SCunlock, welches die Anzahl der fortlaufend ermittelten Fehler zeigt, wird auf null bei der Instruktion SP2 zurückgesetzt. Dann wird im Anfrageschritt SP3 bestimmt, ob SClock gleich 3 ist, anders ausgedrückt, ob drei Synchronisationscodes stetig ermittelt werden. Wenn dies nicht ist, kehrt die Routine zurück zum Anfrageschritt SP1, wobei jedoch, wenn SClock gleich 3 ist, bei der Instruktion SP4 das Signal SYLK hoch gesetzt wird, um anzuzeigen, daß der Synchronisationsverriegelungszustand begonnen hat, und SClock wird gleich dem Wert 2 in der Instruktion SP5 gesetzt, bevor zur Anfrage SP1 zurückgekehrt wird, um den nächsten Synchronisationscode fortlaufend zu ermitteln.
- Wenn jedoch im Anfrageschritt SP1 bestimmt wird, daß ein Synchronisationscode nicht ermittelt wird, wird SCunlock um eins inkrementiert und SClock wird auf null bei der Instruktion SP6 zurückgesetzt. Bei der Anfrage SP7 wird dann bestimmt, ob SCunlock gleich 3 ist, oder, anders ausgedrückt, ob ein Synchronisationscode fortlaufend nicht dreimal ermittelt wird. Wenn ein Synchronisationscode nicht weniger als dreimal ermittelt wird, läuft die Routine weiter zur Anfrage SP1, wobei jedoch, wenn ein Synchronisationscode nicht dreimal ermittelt wird, das Signal SYLK bei der Instruktion SP8 nach unten gesetzt wird und SCunlock wird auf 2 (um SYLK auf dem niedrigen Wert zu halten) bei der Instruktion SP9 gesetzt, bevor zur Anfrage SP1 zurückgegangen wird. Im Flußdiagramm von Fig. 28 wird die Anzahl von Ermittlungen, bevor die Synchronisationscodes verriegelt (oder entriegelt) werden, auf 3 gesetzt, wobei jedoch klar ist, daß auch andere Zahlen verwendet werden können.
- Fig. 29 ist ein Flußdiagramm der Arbeitsweise der EFM-Demodulationsschaltung 131, wenn das Signal SYLK hoch ist (d. h., wenn der Verriegelungszustand begonnen hat). Zunächst wird im Anfrageschritt SP21 bestimmt, ob der Synchronisationscode SYO (der am Beginn jedes Sektors ist, wie beispielsweise in Fig. 24 gezeigt ist) ermittelt ist, und, wenn dies so ist, wird das Signal SCSY ein bestimmte Zeitdauerlang hoch gesetzt, wie beispielsweise in Fig. 27A gezeigt ist, um so den Anfang eines Sektors bei der Instruktion SP22 anzuzeigen, und, bei der Anfrage SP23 wird bestimmt, ob das Signal SYLK auf einen niedrigen Pegel gesetzt ist. Wenn dies nicht ist (d. h., wenn SYLK hoch ist), läuft die Routine zurück zur Anfrage SP21. Wenn bei der Anfrage SP21 bestimmt wird, daß der Synchronisationscode SYO ermittelt ist, läuft die Verarbeitung weiter zur Instruktion SP23 (d. h., die Instruktion SP22 wird übersprungen). Schließlich endet die Routine, wenn das Signal SYLK bei der Anfrage SP23 hoch ist.
- Fig. 30 ist ein Flußdiagramm der Arbeitsweise der EFM-Demodulationsschaltung 131, wenn das Signal SYLK nach oben geht. Zunächst wird bei der Anfrage SP31 bestimmt, ob ein "Hauptrahmen"-Synchronisationscode in einem "Haupt"-Rahmen ermittelt wird, wo ein "Haupt"-Rahmen aus zwei horizontalen Synchronisationsrahmen besteht, wie in Fig. 24 gezeigt ist, wobei jeder der Synchronisationscode in den linksseitigen Synchronisationsrahmen als "Hauptrahmen"-Synchronisationscode bezeichnet wird. Wenn ein "Hauptrahmen"- Synchronisationscode ermittelt wird, wird das Signal Haupt-FMSY, welches in Fig. 27B gezeigt ist, bei der Instruktion SP32 erzeugt. Wenn jedoch ein "Hauptrahmen"-Synchronisationscode nicht ermittelt wird, wird die Instruktion SP32 übersprungen. Dann wird bei der Anfrage SP33 bestimmt, ob das Signal SYLK niedrig ist, und, wenn dies nicht ist (d. h., das Signal SYLK hoch ist), kehrt die Routine zurück zur Anfrage SP31, jedoch, wenn das Signal SYLK bei der Anfrage SP33 niedrig ist, wird die Erzeugung des Signals Haupt-FMSY (wie auch die Routine) beendet. Gemäß Fig. 24 und 27B erzeugt die EFM-Demodulationsschaltung 131 das Signal Haupt-FMSY jedesmal dann, wenn ein Hauptrahmen (zwei horizontale Synchronisationsrahmen) ermittelt wird.
- Gemäß Fig. 27A und 27D setzt die RAM-Steuerung 135 das Signal MWEN hoch, was die Speicherung des ermittelten Sektors im RAM 137 einleitet, wenn das Signal SCSY durch die Demodulationsschaltung 131 empfangen wird. Die RAM-Steuerung 135 zählt unter Verwendung eines EFM-W-Rahmenzählers (nicht gezeigt) die Hauptrahmen (in Fig. 24 gezeigt), um einen Hauptrahmenzählwert "EFM-W-Rahmen" zu erzeugen, was in Fig. 27E gezeigt ist. Die RAM-Steuerung 135 enthält außerdem einen PI1-Rahmenzähler (nicht gezeigt), um die Hauptrahmennummern zu halten, die zum RAM 137 übertragen werden, dessen Zählwert in Fig. 27F gezeigt ist. Wenn der erste Hauptrahmen, der mit 0 numeriert ist und als Kopfreihe von Fig. 24 gezeigt ist, im RAM 137 gespeichert ist, wird außerdem der erste Hauptrahmen zur ECC-Steuerschaltung 136 als Antwort auf ein Steuersignal von der RAM- Steuerung 135 geliefert, und der erste Hauptrahmen wird zur ECC-Kernschaltung 138 übertragen, welche Fehler in den gelieferten Daten korrigiert (hier als "PI1"-Verarbeitung oder - Korrektur bezeichnet). Nach der PI1-Korrektur werden die Daten zurück in den RAM 137 gespeichert.
- Nach der PI1-Korrektur werden die ID- und IED-Daten in der Hauptrahmennummer 0 im RAM 137 gespeichert und außerdem über einen Datenbus zur SBCD-Schaltung 134 synchron mit dem Signal SUB (0), was in Fig. 27C gezeigt ist, geliefert. Wie oben erläutert sind die ID- und IED-Daten lediglich am Anfang jedes Sektors angeordnet (siehe Fig. 24), und somit wird diese Datenübertragung lediglich für die Hauptrahmennummer 0 durchgeführt. Die SBCD-Schaltung 134 ermittelt dann die Adresse (ID) des reproduzierten physikalischen Sektors. Wie oben erläutert erlauben die unteren vier Bits der Adresse des ermittelten physikalischen Sektors, daß der Anfangssektor des ECC-Blocks ermittelt werden kann.
- Fig. 31A bis 31H sind Zeitablaufdiagramme verschiedener Signale während der Ermittlung des Anfangs eines Blocks, nachdem die ID übertragen wurde; Fig. 32A bis 32H sind Zeitablaufdiagramme nach dem Ermittlungsprozeß; und Fig. 33A bis 33F sind Zeitablaufdiagramme der Übertragung des ID-Prozesses. Fig. 31 bis 33 werden unten weiter erläutert.
- Betrachtet man zunächst Fig. 33A bis 33F, so wird ein Signal HDEN, welches in Fig. 33A gezeigt ist, von der RAM-Steuerung 1235 ausgegeben und zur SBCD-Schaltung 134 geliefert, um den Zeitpunkt zu identifizieren, bei dem die ID- und IED-Daten vom RAM 137 gelesen werden. Während dieser Zeit werden die vier Bytes-ID-Daten und die zwei Byte-ID- Daten vom RAM 137 gelesen und zur SBCD-Schaltung 134 bei Lesendaten RDT geliefert, wie in Fig. 33C gezeigt ist, synchron mit dem Takt C11M (der ein Frequenz von 11,2896 MHz hat), wie in Fig. 33F gezeigt ist. Das Signal SFLG ist niedrig, wie in Fig. 33B gezeigt ist, und wird von der ECC-Kernschaltung 138 zur ECC-Steuerschaltung 136 geliefert, um zu zeigen, daß die ID- und IED-Daten durch "PI1-Korrektur" korrigiert wurden, wobei jedoch das Signal SFLG hoch gesetzt wird, wenn die Daten nicht korrigierbar sind. Wenn die ID (die Sektoradresse) empfangen wird, erzeugt die SBCD-Schaltung 134 die Sektorinformation S1, welche der ID entspricht, als Antwort auf verschiedene Steuersignale (beispielsweise eines Erzeugungsmodus für Interpolationsflags, eines Startsektors und eines Endsektors) von der Host-CPU 140. So wird beispielsweise das Sektorinformationsbit 5 auf 1 gesetzt, und das Bit 4 wird auf 0 für den Sektor mit der ID gesetzt, die als Daten, die auszugeben sind, spezifiziert werden.
- Fig. 34 ist ein Diagramm, welches die Datenstruktur der Sektorinformation (SI) zeigt. Die Sektorinformation SI umfaßt die folgenden Bits:
- Bit 7: Setzen eines Interpolationsflags (OUTF)-Erzeugungsmodus (1: Interpolationsflag-Erzeugungsmodus)
- Bit 6: Anfangssektor eines ECC-Blocks (1, wenn die unteren 4 Bits einer physikalischen Sektoradresse 0 sind) (1: Anfangssektor)
- Bit 5: Startsektor (1, wenn eine physikalische Sektoradresse zu einer Startsektoradresse paßt, die durch die Host-CPU 40 spezifiziert wird) (1: Startsektor)
- Bit 4: Endsektor (1, wenn eine physikalische Sektoradresse zu einer Endsektoradresse paßt, welche durch die Host-CPU 40 spezifiziert wird) (1: Endsektor)
- Bit 3: Bit 3 einer Entschachtelungsinitialisierungsadresse (das siebte Bit einer physikalischen Sektoradresse)
- Bit 2: Bit 2 einer Entschachtelungsinitialisierungsadresse (das sechste Bit einer physikalischen Sektoradresse)
- Bit 1: Bit 1 einer Entschachtelungsinitialisierungsadresse (das fünfte Bit einer physikalischen Sektoradresse)
- Bit 0: Bit 0 einer Entschachtelungsinitialisierungsadresse (das vierte Bit einer physikalischen Sektoradresse)
- Die ECC-Schaltung 136 setzt das Signal XHWE nach unten, wie in Fig. 33D gezeigt ist, wenn die ID- und IED-Daten in der Weise verarbeitet werden, die in den Flußdiagrammen von Fig. 35 bis 37 gezeigt sind (was erläutert wird). Das Signal XHWE ermöglicht die Lieferung der Sektorinformation SI von der SBCD-Schaltung 134 als Schreibdaten WDT (8 Bits) zum RAM 137, um in diesem gespeichert zu werden. Die Sektorinformation SI von 16 Sektoren wird zum RAM 137 geliefert und dort gespeichert, so daß sie den 16 PI-Reihen entspricht, wie in Fig. 26 gezeigt ist. Wenn somit die Anzahl einer PI-Reihe angegeben wird, wird die entsprechende Sektorinformation erhalten.
- Mit Hilfe von Fig. 35 ist ein Flußdiagramm der Arbeitsweise der SBCD-Schaltung 134 gezeigt, um zu bestimmen, ob drei (oder irgendeine andere Zahl) von fortlaufenden Sektoren mit gültigen IDs erhalten werden. Es wird zunächst im Anfrageschritt SP41 bestimmt, ob die IED-Daten akzeptierbar sind (d. h., ob die ID auf der Basis der IED-Daten gültig ist), und wenn dies bejahend wird, wird der Wert SAlock um eins inkrementiert, um die Sektornummern mit einer "normalen" ID anzuzeigen, und der Wert SAunlock wird auf null zurückgesetzt, um die Anzahl von fortlaufenden Sektoren mit einer ungültigen (nicht normalen) ID zu identifizieren (d. h., einen Fehler in der ID) in der Instruktion SP42. Im Anfrageschritt SP43 wird dann bestimmt, ob SAlock gleich 3 ist, und, wenn dies verneint wird, kehrt die Verarbeitung zurück zur Anfrage SP41. Wenn SAlock gleich 3 ist (d. h., daß drei Sektoren mit einer gültigen ID fortlaufend reproduziert werden), wird ein Flag IECOK im Instruktionsschritt SP44 hoch gesetzt, und SAlock wird auf 2 im Instruktionsschritt SP45 gesetzt, bevor zur Anfrage SP41 zurückgekehrt wird.
- Wenn im Anfrageschritt SP41 die IED als ungültig bestimmt wird, wird der Wert SAunlock um eins inkrementiert und der Wert SAlock wird auf null im Instruktionsschritt SP46 zurückgesetzt. Im Anfrageschritt SP47 wird dann bestimmt, ob SAunlock gleich 3 ist, wenn dies verneint wird, kehrt die Routine zurück zum Anfrageschritt SP41, jedoch, wenn SAunlock gleich 3 ist (d. h., daß drei fortlaufende Sektoren ein nichtnormales IED-Prüfergebnis haben), wird das Flag IECOK im Instruktionsschritt SP 48 nach unten gesetzt und SAunlock wird im Instruktionsschritt SP 49 auf zwei gesetzt, bevor zum Anfrageschritt SP 41 zurückgekehrt wird.
- Wie oben erläutert setzt die SBCD-Schaltung 134 das Flag IECOK nach oben, wenn drei oder mehrere fortlaufende IED-Prüfungen ein normales Ergebnis erzeugen (d. h., drei sind drei oder mehrere fortlaufende gültige IDs), und sie setzt das Flag IECOK nach unten, wenn drei oder mehrere fortlaufende IED-Prüfungen ein nicht normales Ergebnis erzeugen (d. h., drei sind drei oder mehrere fortlaufende ungültige IDs).
- Fig. 36 ist ein Flußdiagramm der Arbeitsweise der SBCD-Schaltung 134, wenn diese die Kontinuität der IDs bestimmt (Adressen), die sequentiell um eins inkrementiert werden. Es wird zunächst im Anfrageschritt SP61 bestimmt, ob eine ID ermittelt wird, und wenn dies bejaht wird, wird die ID im Speicher im Instruktionsschritt SP62 für den Zweck gespeichert, um die laufende ID (die gespeicherte ID) mit einer nachfolgenden ID zu vergleichen. Es wird dann im Anfrageschritt SP63 bestimmt, ob die laufend verarbeitete ID einen Wert um eins größer als die vorherig gespeicherte und verarbeitete ID hat, und wenn dies bejaht wird, wird ein Wert NS um eins inkrementiert (das zeigt, daß die andere korrekte ID ermittelt wird), und der Wert NNS wird auf null im Instruktionsschritt SP64 zurückgesetzt. Im Anfrageschritt SP65 wird dann bestimmt, ob NS gleich 3 ist, und wenn dies verneint wird, kehrt die Routine zurück zum Anfrageschritt SP61. Wenn jedoch Ns gleich 3 ist, wird ein Flag AS im Instruktionsschritt SP66 hoch gesetzt, um zu zeigen, daß fortlaufend-ermittelte IDs gültig sind, und Ns wird auf zwei im Instruktionsschritt SP67 gesetzt, bevor zum Anfrageschritt SP61 zurückgekehrt wird.
- Wenn im Anfrageschritt SP61 eine ID nicht ermittelt wird, oder wenn die laufendermittelt ID nicht um eins größer ist als die vorherig-ermittelte ID im Anfrageschritt SP63, wird im Anfrageschritt SP68 bestimmt, ob das Flag SALK hoch ist, und, wie weiter erläutert wird, wird SALK hoch gesetzt, wenn drei oder mehrere fortlaufende ID-Prüfungen gültig sind und die Kontinuität von drei oder mehreren IDs beibehalten wird. Wenn das Flag SALK im Anfrageschritt SP68 hoch ist, wird die ID im Instruktionsschritt SP69 interpoliert. Das heißt, da eine ID nicht ermittelt wird oder die ermittelten IDs nicht aufeinanderfolgend sind, wird die vorherig-ermittelte ID um 1 inkrementiert, um eine neue ID zu erzeugen, und die erzeugte neue ID wird anstelle der ermittelten ID verwendet (wenn diese ermittelt wurde). Wenn das Flag SALK niedrig ist, wird der Instruktionsschritt SP69 übersprungen. Dann wird im Instruktionsschritt SP70 NNS um eins inkrementiert und NS wird auf null zurückgesetzt, und es wird im Anfrageschritt SP71 bestimmt, ob NNS gleich 3 ist, und wenn dies nicht so ist, kehrt die Routine zurück zum Anfrageschritt SP61. Wenn jedoch NNS gleich 3 ist, wird das Flag SA im Instruktionsschritt SP72 nach unten gesetzt, und NNS wird auf zwei im Instruktionsschritt SP73 gesetzt, bevor zum Anfrageschritt SP61 zurückgekehrt wird. Wie oben erläutert setzt die SBCD-Schaltung 134 das Flag AS nach oben, wenn die IDs gültig und fortlaufend (stetig) sind, und sie setzt das Flag AS auf einen niedrigen Wert, wenn die IDs nicht fortlaufenden sind.
- Fig. 37 ist ein Flußdiagramm der Arbeitsweise der SBCD-Schaltung 134, um das Flag SALK unter Verwendung der Flags IECOK und AS zu erzeugen. Zunächst wird im Anfrageschritt SP81 bestimmt, ob das Flag IECOK hoch ist, und, wenn dies bejaht wird, wird im Anfrageschritt SP82 bestimmt, ob das Flag AS hoch ist. Wenn das Flag AS hoch ist, wird im Instruktionsschritt SP83 das Flag ASLK hoch gesetzt. Wenn das Flag IECOK niedrig ist oder das Flag AS niedrig ist, wird das Flag SALK im Instruktionsschritt SP84 auf einen niedrigen Wert gesetzt, wobei in diesem Zeitpunkt die Routine zum Anfrageschritt SP81 zurückkehrt.
- Wie oben erläutert setzt die SBCD-Schaltung 34 das Flag hoch, wenn drei oder mehrere fortlaufende "IECs" "normal" sind und wenn drei oder mehrere IDs fortlaufend numeriert sind, setzt jedoch das Flag SALK auf einen niedrigen Wert, wenn drei oder mehrere fortlaufende IECs "nicht normal" sind oder wenn die Ermittlung von drei fortlaufenden IDs nicht erfolgreich war.
- Die Host-CPU 140 ermittelt die Position, die mit einem Laserstrahl (d. h., die Zugriffsposition auf der optischen Platte) bestrahlt wird, indem auf die Werte von SALK und die ID-Daten, die oben erläutert wurden, bezuggenommen wird.
- Die Ergebnisse von PI1-Korrekturen können zum Zustand für SAlock oder SAunlock im Flußdiagramm von Fig. 35 hinzugefügt werden. Obwohl die Anzahl der Häufigkeit für SAlock oder SAunlock auf drei festgelegt ist, kann diese auf einen anderen Wert durch die Host-CPU 140 festgelegt werden.
- Wenn SYLK auf einen niedrigen Wert geht (SYUL hoch ist), werden, wenn SALK niedrig ist (SALK hoch ist) sowohl das Schreiben von EFM-demodulierten Daten von der EFM-Demodulationsschaltung 31 zum RAM 37 als auch die ECC-Steuerung zurückgesetzt. Der Entriegelungszustand wird anschließend gelöscht (SAUL ist niedrig), und SYLK wird auf einen hohen Wert gesetzt. Das Schreiben (Speichern) der EFM-demodulierten Daten in den RAM 137 wird danach wieder aufgenommen.
- Eine "Entriegelung" kann durch die Host-CPU 140, weit notwendig, zwangsweise ausgeführt werden. Beispielsweise kann die Host-CPU 140 den Entriegelungszustand nach einem Spursprung initialisieren, um die ECC-Steuerung zurückzusetzen. Der Entriegelungszustand kann entweder durch die Host-CPU 140 gelöscht werden oder er kann automatisch ohne die Intervention der Host-CPU 140 gelöscht werden.
- Wenn SYLK hoch ist (d. h., der Verriegelungszustand vorhanden ist) und das Bit 6 der Sektorinformation 1 ist, um den Beginn eines Sektors zu zeigen (siehe Fig. 34), hält die SBCD-Schaltung 134 die "Blockspitze" hoch, bis SYLK nach unten geht (d. h., bis die Verriegelung gelöst wird), was in den Zeitablaufdiagrammen von Fig. 31A bis 31H gezeigt ist. Wenn die Blockspitze festgelegt ist, ändert sich der Wert des EFM-W-Rahmens von 12 auf 0, wenn sowohl das Signal SCSY als auch die Haupt-FMSY hoch werden (am Anfang des Sektors). Das heißt, daß der Wert des EFM-W-Rahmens wiederholt von 0, 1, 2, ... 12 für jeden Hauptrahmen geändert wird.
- Wenn die Blockspitze hoch ist, wird damit fortgefahren, daß der Wert des EFM- W-Rahmens um 1 inkrementiert wird, nachdem dieser den Wert 13 erhalten hat, was in Fig. 32A bis 32H gezeigt ist. Somit werden die Daten in den Hauptrahmen eines jeden ECC- Blocks sequentiell in unterschiedlichen Adressen des RAM 137 gespeichert, wie in Fig. 26 beispielsweise gezeigt ist.
- Die EFM-demodulierten Daten werden nachfolgend und in ähnlicher Weise in den RAM 137 geschrieben, während PI1 Korrekturen ausgeführt werden. Wenn die PI1-Korrektur der Daten in einem ECC-Block (208 Datenreihen) beendet ist, wird die ECC-Verarbeitung in der Richtung von PO-Spalten ausgeführt (d. h., die "PO-Korrektur"). Um jedoch Daten vom Speicher in der Richtung der PO-Spalten genau zu lesen, müssen die PO-Reihen zunächst entschachtelt werden (siehe Fig. 21). Wenn die Spalte, die dem N-ten Byte entspricht, wie in Fig. 26 gezeigt ist, vom Speicher gelesen wird, werden die Daten dieser Spalte in Richtung nach unten gelesen, während die verschachtelten PO-Reihen übersprungen werden, und die Codes in lediglich den PO-Reihen in der gleichen Spalte, die dem N-ten Byte entspricht, wird gelesen und zur ECC-Kernschaltung 138 geliefert. Wenn die ECC-Kernschaltung 138 die PO- Korrektur beendet (alle Spalten mit Ausnahme der 10 PI-Spalten am rechten Ende von Fig. 26, d. h., 172 Spalten wurden verarbeitet), wird die PI2-Korrektur durchgeführt. Die ECC- Verarbeitung in der Richtung der PI-Reihen wird zweimal durchgeführt, um die Fehlerkorrekturleistungsfähigkeit zu verbessern.
- Während der PO-Korrektur werden Löschkorrekturen gemäß einem Fehlerflag ausgeführt (einem PI1-Flag), welches auf der Basis der Ergebnisse der PI1-Korrektur erzeugt wird. Während der PI2-Korrektur werden ebenfalls Löschkorrekturen unter Verwendung eines Fehlerflags (eines PO-Flags) ausgeführt, welches auf der Basis der Ergebnisse der PO- Korrektur erzeugt wird. Diese Löschkorrekturen werden durchgeführt, um die Fehlerkorrekturleistungsfähigkeit wie oben erläutert zu verbessern.
- Die PI-Sequenz von Daten (nachdem die PI2-Korrektur beendet ist) wird vom RAM 137 zur OCTL-Schaltung 139 übertragen, und die Haupotdaten werden für jeden Sektor unter Verwendung von Bits 3 bis 0 der Sektorinformation entschachtelt, wie in Fig. 34 gezeigt ist. Zusätzlich führt die OCTL-Schaltung 139 den EDC (Fehlerermittlungscode) in bezug auf Berechnungen aus, und unter Bezug auf die Ergebnisse dieser Berechnung kann die Anwesenheit eines Fehlerflags den Hauptdaten hinzugefügt werden (d. h., es wird bestimmt, ob es irgendwelche Fehler im gewünschten Sektor gibt). Von dieser Bestimmung bestimmt die Host-CPU 140, ob bestimmte Daten nochmals von der optischen Platte 2 reproduziert werden sollten, und wenn dies bejaht wird, wird auf die optische Platte 2 wieder zugegriffen. Wenn Daten nicht wieder reproduziert werden, werden die Daten im Sektor (und die enthaltenen Fehler) zur Multiplexdaten-Trennschaltung 13 geliefert (Fig. 9).
- Die ECC-Kernschaltung 138 umfaßt allgemeine Reed-Solomon-Code-Fehlerkorrektur-LSIs, von der Codelänge, die Anzahl von Paritäten und der Korrekturmodus (entweder lediglich Normalkorrekturen oder sowohl Normal- als auch Löschkorrekturen) programmiert werden können. Die ECC-Kernschaltung 138 ermöglicht außerdem, daß multi-codierte und fortlaufend-korrigierte Daten (mehrere Codesequenzen unterschiedlicher Codelängen) in Realzeit decodiert werden können. Die Reed-Solomon-Code-Fehlerkorrektur-LSIs umfassen beispielsweise CXD307-111G, die im Handel von Sony erhältlich sind, und eine ASC (Application Specialized Integrated Circuit), welche gebildet wird, wobei diese LSIs verwendet werden, die als ECC-Kern bezeichnet wird. Der ECC-Kern wird in der ECC-Kernschaltung 138, die in Fig. 23 gezeigt ist, verwendet.
- Fig. 38A bis 38D zeigen Zeitablaufdiagramme verschiedener Signale während eines Fehlerkorrekturbetriebs. Ein Steuersignal SETT, welches in Fig. 38A gezeigt ist, zeigt den Beginn der Codes (die PI- oder PO-Reihe), ein Steuersignal ECDE, welches in Fig. 38B gezeigt ist, zeigt das Ende der Codes (die PI- oder PO-Reihe), und ein Steuersignal ECYE, welches in Fig. 38C gezeigt ist, zeigt das Ende eines Codezyklus (die PI- oder PO-Reihe). Diese drei Signale werden von der RAM-Steuerung 135 über die ECC-Steuerschaltung 136 zur ECC-Kemschaltung 138 geliefert, und die ECC-Kernschaltung 138 nutzt die gelieferten Steuersignale, um Daten zu identifizieren, welche vom RAM 137 geliefert werden. Wie in Fig. 38A bis 38D gezeigt ist, werden die PI-Codes während 182 Taktperioden ECCK zwischen dem Auftreten (Impulsen) von Signalen ESTT und EDCE übertragen. Die PO-Codes werden ebenfalls während 238 ECCK-Taktperioden zwischen dem Auftreten der Signale ESTT und ECDE übertragen.
- Wenn der Code in der PI-Reihe und der Code in der PO-Spalte unterschiedliche Codelängen hat, können Daten, die zu korrigieren sind (EDT), und die Fehlerflags für Löschkorrekturen (die PI1-, PI2- und PO-Flags) mit dem gleichen Zeittakt unabhängig von der Codesequenz (in Fig. 38A bis 38D gezeigt) durch Anpassen der Codeperiodenlänge an die längere der PI-Reihen- und PO-Spaltcodelänge eingegeben werden. Bei der offenbarten Ausführungsform ist die Codezykluslänge 208, die Länge des PO-Spaltencodes. Es können beliebige Werte für verschiedene Parameter einschließlich der Codelänge und der Anzahl von Paritäten verwendet werden. Das heißt, wenn eine Einstellung geändert wird, erlaubt das Liefern von neuen Einstelldaten zur ECC-Kernschaltung 138, daß diese Schaltung automatisch die interne Einstellung auf der Basis der gelieferten Daten ändert, wenn das Signal ESTT nach oben geht.
- Die Datenkorrekturergebnisse werden unter Verwendung eines 477-ECCK-Zyklus ausgegeben, wie in der folgenden Gleichung gezeigt ist:
- Durchsatz = 2 · NCYC + 3 · PCYC + 13
- = 2 · 208 + 3 · 16 + 13 = 477 (ECCK)
- In der obigen Gleichung zeigt NCYC die längere der PI-Reihen- und der PO- Spaltencodelänge, und PCYC zeigt die längere Zahl von Paritäten. In Fig. 38A bis 38D wird das Signal OSTT (Fig. 38D) von der ECC-Kernschaltung 138 zur ECC-Steuerschaltung 136 nach dem zeitlichen Ablauf des Signals ESTT (Fig. 38A) um eine Zeit geliefert, die benötigt wird, um die Daten auszugeben (d. h., wenn die Korrekturergebnisse ausgegeben werden). Bei der offenbarten Ausführungsform wird das Signal OSTT um 477 ECCK-Taktperioden nach dem Auftreten des Signals ESTT verzögert.
- Fig. 39A bis 391 sind Zeitablaufdiagramme verschiedener Signale, die ECCK, ESTT, EDT, OSTT, ECOR, "O. CODEERR", ECD und ECA während der Fehlerkorrektur umfassen. Wenn die Fehlerermittlung durchgeführt wird und herausgefunden wird, daß ein ermittelter Fehler korrigierbar ist, liefert die ECC-Kernschaltung 138 ein Signal "O. CODEERR" mit einem niedrigen Wert, wie in Fig. 39G gezeigt ist, zur ECC-Steuerschaltung 136, wenn das Signal OSTT nach oben geht, wie in Fig. 39E gezeigt ist. Danach werden 8 Datenbits ECD [7 : 0], die ein Fehlermuster identifizieren (d. h., die Daten, denen fehlerhafte Daten exklusiv logisch hinzugefügt sind, um korrekte Daten zu erzielen), wie in Fig. 39H gezeigt ist, und eine Fehlerposition ECA [7 : 0], 8 Bits, die eine Position (Adresse) zeigen, bei der der Fehler auftritt, wie in Fig. 391 gezeigt ist, geliefert, wenn das Signal ECOR, welches in Fig. 39F gezeigt ist, hoch ist.
- Bei dem oben erläuterten Löschkorrekturmodus entsprechen die Fehlerpositionsdaten (ECA [7 : 0]) der Position, bei der ein Fehlerflag EFLG (siehe Fig. 39C) geliefert wird, wobei sichergestellt wird, daß dieses ausgegeben wird, jedoch, wenn die Daten in dieser Position korrekt sind, wird das Fehlermuster EDC [7 : 0] auf 00 (hexadezimal) gesetzt.
- Wenn der Fehler nicht korrigierbar ist, wird das Signal OSTT (Fig. 39E) auf einen hohen Wert gesetzt, das Signal O. CODEERR (Fig. 39 G) wird simultan auf den hohen Wert gesetzt, und es wird verboten, daß das Signal ECOR (Fig. 39F) nach oben geht (nicht in Fig. 39F gezeigt). Zusätzlich wird die Ausgabe des Signals ECOD (Fig. 39G) gespeichert, bis das Signal OSTT (Fig. 39G) wieder auf einen hohen Wert geht, während die Signale ECOR (Fig. 39F), ECD [7 : 0], Fig. 39H) und ECA [7 : 0] (Fig. 391) weiter ausgegeben werden, bis das OSTT (Fig. 39E) auf den hohen Wert umschaltet.
- Fig. 40 bis 42 sind Zeitablaufdiagramme verschiedener Signale während der ECC- Verarbeitung. Wie erläutert wird, zeigen die Bezeichnungen PI1-R, PO-R und PI2-R, die in Fig. 40B, 41B und 42B gezeigt sind, jeweils den zeitlichen Ablauf, mit dem die PI1-, PO- und PI12-Datensequenzen EDT [7 : 0] und EFLG (Fig. 39C), für welche Fehler korrigiert werden, vom RAM 137 über die ECC-Steuerschaltung 136 zur ECC-Kernschaltung 138 übertragen werden. Wie in Fig. 40A, 41A und 42A gezeigt ist, wird das Signal MWRQ 182 mal geliefert, um die Daten EFM-W (die 182 Bytes haben) in eine PI-Reihe zu schreiben, die von der EFM- Demodulationsschaltung 131 geliefert werden und im RAM 137 gespeichert werden, wodurch somit die EFM-demodulierten Daten in einer PI-Reihe im RAM 137 gespeichert werden. Obwohl die Daten in einer PI-Reihe gespeichert werden, werden die Daten in einem ECC-Block, der schon im RAM 137 gespeichert wurde, daraus gelesen und zur ECC-Kernschaltung 138 über die ECC-Steuerschaltung 136 geliefert. Das heißt, daß, während die Daten in einer PI-Reihe im RAM 137 mit einer relativ niedrigen Geschwindigkeit gespeichert werden, die Daten in einer anderen PI-Reihe oder einer PI-Spalte, die schon dort gespeichert ist, daraus dreimal mit einer relativ hohen Geschwindigkeit gelesen werden. Wenn die Daten in der PI-Reihe am Beginn des Sektors übertragen werden, werden ebenfalls die Subcodedaten (die ID und IEC) gelesen. Die Schreib- und Leseoperationen werden in einer Weise ausgeführt, daß, wenn eine Operation ausgeführt wird, es verhindert wird, daß eine andere Operationsart auftritt.
- Wenn beispielsweise die PI1-Korrektur eines ECC-Blocks ausgeführt wird, werden die Daten in einer PI-Reihe während der Zeitdauer gelesen, in welcher das Schreiben von Daten in eine PI-Reihe ausgeführt wird. Das heißt, daß die Daten in einer PI-Reihe vom RAM 137 gelesen werden und zur ECC-Kernschaltung 138 über die ECC-Steuerschaltung 136 geliefert werden. Wie in Fig. 40B, 41B und 42B gezeigt ist, werden 208 ECCK-Perioden dazu verwendet, die Daten PI1-R zur PI1-Korrektur zu lesen, wobei diese Anzahl von ECCK-Perioden an die Länge der PO-Spalte angepaßt wird, welche die längste Datenlänge ist, und lediglich 182 ECCK-Perioden tatsächlich zur Datenübertragung verwendet werden, um die Daten in der PI-Reihe zu übertragen, während der Rest nicht übertragen wird.
- Fig. 43 ist ein Flußdiagramm von Lese-/Schreiboperationen während der ECC- Korrektur. Die RAM-Steuerung 135 überträgt Daten in einer PI-Reihe vom RAM 137 zur ECC-Kernschaltung 138 im Instruktionsschritt SP101. Bei der offenbarten Ausführungsform werden PI-Codes (eine Parität) und P-Codes (eine Parität) jedem ECC-Block hinzugefügt, und die PO-Datensequenz PO-R oder die PI2-Sequenz von gelesenen Daten PI2-R vom gleichen ECC-Block werden nicht übertragen, bis die Korrektur und das Zurückschreiben der ersten PI-Datensequenz vom ersten ECC-Block abgeschlossen ist. Damit werden Daten während der nachfolgenden 2 · 208 ECCK-Perioden übertragen. Wenn es außerdem Subcodedaten (SUB) gibt, welche auf die oben erläuterten Daten folgen, werden außerdem die Subcodedaten übertragen.
- Die RAM-Steuerung 135 überträgt sequentiell die Daten in einer PI-Reihe des ersten ECC-Blocks im Instruktionsschritt SP101 und überträgt die Subcodedaten, wenn vorhanden, im Instruktionsschritt SP102. Es wird dann im Anfrageschritt SP103 bestimmt, ob die PI1-R-Daten in 208 Reihen des ersten ECC-Blocks übertragen werden, und, wenn dies verneint wird, kehrt die Routine zurück zum Instruktionsschritt SP101. Wenn dies bejaht wird, wird PI1-R von einem nachfolgenden ECC-Block übertragen, und es werden zwei Reihen PO-R vom ersten ECC-Block (während jeder Periode von 182) im Instruktionsschritt SP104 übertragen. Es wird dann im Anfrageschritt ein SP105 bestimmt, ob die PO-Daten in 172 Spalten des ersten ECC-Blocks übertragen werden, und, wenn dies verneint wird, wird die Instruktion SP104 wiederholt. Wenn dies bejaht wird, wird die PI2-Sequenz von Daten PI2-R vom ersten ECC-Block im Instruktionsschritt SP106 übertragen (siehe Fig. 42A bis 42E). Außerdem werden die Daten PI2-R mit dem gleichen zeitlichen Ablauf übertragen, mit dem die Daten PO-R des ersten ECC-Blocks, der in Fig. 41B gezeigt ist, übertragen werden. In diesem Zeitpunkt gehören die Daten PIL-R zum nächsten ECC-Block (zum zweiten ECC- Block). Die PI2-R in 208 PI-Reihen des ersten ECC-Blocks werden auf diese Art und Weise übertragen, und, wenn die Verarbeitung von PIL-R, PO-R und PI2-R des ersten ECC-Blocks beendet ist, erhält die RAM-Steuerung 135 ein Zustimmungsergebnis im Anfrageschritt SP107. Die Verarbeitung kehrt dann zurück zum Instruktionsschritt SP101.
- Die Takt-ECCK (Fig. 39A) wird von der RAM-Steuerung 135 zur ECC-Kernschaltung 138 lediglich während der Datenübertragung geliefert. Zusätzlich werden die Ergebnisse der Korrektur der übertragenen Daten 477 ECCK-Taktperioden ausgegeben, nachdem sie geliefert wurden. Somit werden die Ergebnisse der Bestimmung, ob eine Datensequenz einen Fehler enthält (Fig. 40C, 41C und 42C) ausgegeben, wenn die nächsten, jedoch zwei, von dieser Sequenz übertragen werden (Fig. 40B, 41B und 42B). Die Ausgabedaten werden in einer ERR-FIFO-Schaltung 136B, die in Fig. 44 gezeigt ist, was erläutert wird, gespeichert.
- Wenn die Daten, die fehler-korrigiert werden sollen, vom RAM 137 zur ECC- Steuerschaltung 136 geliefert werden, führt, wie oben erläutert, die Schaltung 136 die PI1- Korrektur der Daten in einer PI-Reihe aus und gibt die Ergebnisse 477 Taktperioden ECCK danach aus (siehe Fig. 40C, 41C und 42C). Die resultierenden Daten werden zum ERR-FIFO 136B übertragen und dort vorübergehend gespeichert, der als Puffer für die ECC-Steuerschaltung 136 verwendet wird, wie oben erläutert wurde. Diese Daten werden außerdem vom ERR-FIFO-136B gelesen, zum RAM 137 als fehler-korrigierte Daten zurück übertragen und dort als Daten PIL-W gespeichert, wie beispielsweise in Fig. 41D und 42D gezeigt ist. Daten (in denen die PO- oder PI2-Korrektur abgeschlossen wurde) werden außerdem im RAM 137 als Daten PO-W oder PI2-W gespeichert. Die fehler-korrigierten Daten werden weiter für jede PI-Reihe der Verwendung einer Periode von 182 SDCK-Taktperioden gelesen und von der OCTL-Schaltung 139 ausgegeben, wie in Fig. 40E, 41E und 42E gezeigt ist.
- In Fig. 44 wird nun ein Blockdiagramm, welches den Signalfluß während der Fehlerkorrektur zeigt, gezeigt. Die ECC-Steuerschaltung 136 umfaßt einen ERR-COUNT (ERR-Zähler) 136A, einen ERR-FIFO 136B, einen FLAG-RAM 136C und eine EX-ODER- Schaltung 136D. Demodulierte Daten, welche von der EFM-Demodulationsschaltung 131 geliefert werden, werden im RAM 137 als Antwort auf Steuersignale, welche von der RAM- Steuerung 135 geliefert werden, gespeichert. Die SUB-Daten (die ID und IEC), die am Anfang jedes Sektors gespeichert sind, werden vom RAM 137 gelesen und zur SBCD-Schaltung 134 geliefert, welche die Sektorinformation SI erzeugt, wie in Fig. 34 gezeigt ist. Die Sektorinformation wird von der SBCD-Schaltung 134 geliefert und im RAM 137 gespeichert.
- Die RAM-Steuerung 135 liefert die Daten in einer PI-Reihe, die im RAM 137 gespeichert sind, über die ECC-Steuerschaltung 136 zur ECC-Kernschaltung 138. Wie in Fig. 44 gezeigt ist, werden die EDT-Daten unmittelbar zur ECC-Kernschaltung 138 aus Einfachheitsgründen geliefert. Wenn die Daten in einer PI-Reihe zur ECC-Kernschaltung 138 geliefert werden, verwendet die Schaltung 138 die PI-Codes, um 8 Bits an Fehlerkorrekturdaten ECD (Fig. 39H) und 8 Bits an Fehlerkorrekturadressen ECA (Fig. 391) zu erzeugen. Die Fehlerkorrekturdaten ECD und die Fehlerkorrekturadresse ECA werden von der ECC-Kernschaltung 138 geliefert und im ERR-FIFO 136B in der ECC-Steuerschaltung 136 gespeichert.
- Danach liest, um den Fehler zu korrigieren, die RAM-Steuerung 135 die Daten EDT in dieser PI-Reihe und liefert diese zur EX-ODER-Schaltung 136D. Die EX-ODER- Schaltung 136D wird mit den Fehlerkorrekturdaten ECD und der Fehlerkorrekturadresse ECA vom ERR FIFO 136B beliefert. Die EX-ODER-Schaltung 136D korrigiert den Fehler durch exklusives logisches Addieren mit den Fehlerkorrekturdaten ECD und den Daten EDT, welche von der RAM-Steuerung 135 gelesen werden, mit dem Bit, welches durch die Fehlerkorrekturadresse ECA angegeben wird. Die Daten (der Fehler, der korrigiert wurde), werden in den RAM 137 zurückgespeichert. Zusätzlich erzeugt die ECC-Kernschaltung 138 von der EDC und ECA ein Fehlerkorrekturergebnis ER (8 Bits), welches in Fig. 45 gezeigt ist. Das Fehlerkorrekturergebnis ER wird zum ERR-COUNT 136A geliefert und dort gespeichert. Das Fehlerkorrekturergebnis ER wird im RAM 137 gespeichert, so daß es dieser PI-Reihe entspricht, wie in Fig. 26 gezeigt ist.
- Die 8 Bits des Fehlerkorrekturergebnisses ER zeigen die folgende Information:
- Bit 7: nicht-korrigierbares Fehlerflag (0: korrigierbar; 1: nicht korrigierbar);
- Bit 6: zeigt, ob die Sequenz von einer PI-Reihe oder einer PO-Spalte herkommt (0: PI; 1: PO);
- Bit 5: zeigt, ob die Sequenz eine PI1- oder eine PI2-Sequenz ist (0: PI1; 1: PI2);
- Bit 4: das höchstwertigste Bit (MSB) der Anzahl von Korrekturen;
- Bit 3: das zweithöchste Bit der Anzahl von Korrekturen;
- Bit 2: das dritthöchste Bit der Anzahl von Korrekturen;
- Bit 1: das vierthöchste Bit der Anzahl von Korrekturen;
- Bit 0: das niedrigwertigste Bit (LSB) der Anzahl von Korrekturen.
- Das PI1-Fehlerflag (Bit 7), welches das Ergebnis der Bestimmung zeigt, ob die Daten korrigierbar sind, wird im ERR-COUNT 136A als Teil der Fehlerkorrekturergebnisse ER gespeichert und außerdem im FLAG-RAM 136C gespeichert. Die PI1-Korrektur wird für die 208 PI-Reihen, wie in Fig. 26 gezeigt ist, durchgeführt.
- Die RAM-Steuerung 135 liest dann die 208 Datenbytes in der ersten PO-Spalte vom RAM 137 und liefert diese zur ECC-Kernschaltung 138 über die ECC-Steuerschaltung 136 als EDT. Das PI1-Flag, welches im Flag-RAM 136C gespeichert ist, wird zur ECC-Kernschaltung 138 geliefert, welche das Muster PO und das PI1-Flag verwendet, um ein ECD und ECA für Normal- oder Lösch-Korrekturen zu erzeugen. Die ECD- und ECA-Daten werden von der ECC-Kernschaltung 138 zum ERR-FIFO 136B in der ECC-Steuerschaltung 136 geliefert und dort gespeichert. Die Fehlerkorrekturergebnisse ER für diese PO-Spalte, die durch die ECC-Kernschaltung 138 auf der Basis der ECD- und ECA-Daten erzeugt werden, werden außerdem zum ERR-COUINT 136A geliefert und darin gespeichert. Das PO-Flag, welches im Bit 7 der Fehlerkorrekturergebnisse entspricht, wird außerdem im FLAG-RAM 136C gespeichert.
- Die Daten EDT in dieser PO-Spalte, welche vom RAM 137 gelesen werden, werden zur EX-ODER-Schaltung 136D geliefert. Die EX-ODER-Schaltung 136D wird außerdem mit den ECD- und ECA-Daten vom ERR-FIFO 136B beliefert. Die EX-ODER-Schaltung 136D korrigiert den Fehler durch exklusives logisches Addieren der Daten ECD und EDT, so daß sie den Bits der Adresse entsprechen, die durch die ECA-Daten angegeben wird. Die fehler-korrigierten Daten werden zurück in den RAM 137 gespeichert. Zusätzlich werden die Fehlerkorrekturergebnisse ER für diese PO-Spalte von ERR COUINT 36A gelesen und im RAM 137 gespeichert. Die Fehlerkorrekturergebnisse ER für diese PO-Spalte werden sequentiell in die Positionen geschrieben, die den 172 PI-Reihen entsprechen, beginnend von dem Anfang. Diese PO-Korrektur wird für die 172 PO-Reihen ausgeführt.
- Wenn die PI2-Korrektur nach der PI1- und PO-Korrektur durchgeführt wird, werden die Daten in der ersten PI-Reihe vom RAM 137 wie die EDT-Daten gelesen und zur ECC-Kernschaltung 138 geliefert. Im FLAG-RAM 136C gespeicherte PO-Flag wird daraus gelesen und zur ECC-Kernschaltung 138 geliefert. Die ECC-Kernschaltung 138 verwendet das PO-Flag und die Parität PI, um ECD- und ECA-Daten zu erzeugen und liefert und speichert die Daten im ERR-FIFO 136B der ECC-Steuerschaltung 136. Die im ERR-FIFO 136B gespeicherten ECD- und ECA-Daten und die Daten in der PI-Spalte, die zur EX-ODER- Schaltung 136D geliefert werden und vom RAM 137 gelesen werden, werden exklusiv logisch addiert, um so den Fehler zu korrigieren. Die fehler-korrigierten Daten werden zurück in den RAM 137 gespeichert.
- Die ECC-Kernschaltung 138 erzeugt Fehlerkorrekturergebnisse ER von den ECD- und ECA-Daten und liefert diese Daten zum ERR-COIJNT 136A, in welchem die Daten gespeichert werden. Das PI2-Flag (Bit 5) wird ebenfalls im FLAG-RAM 136C gespeichert.
- Die Fehlerkorrekturergebnisse ER für die PI2-Reihe, die im ERR-COUNT 136A gespeichert wurden, werden daraus gelesen und im RAM 137 gespeichert. Die Fehlerkorrekturergebnisse ER für die PI2-Reihe werden auf die Positionen geschrieben, die jeder der 208 PI-Reihen entsprechen.
- Fig. 46A bis 46G sind Zeitablaufdiagramme, welche die Busentscheidung für Zugriffe zum RAM 137 zeigen. Das Signal EFMREQ (Fig. 46A) wird von der EFM-Demodulationsschaltung 131 zur RAM-Steuerung 135 geliefert, um einen Schreibbetrieb von EFMdemodulierten Daten in den RAM 137 anzufordern. Das Signal OUTREQ (Fig. 46B) wird von der OCTL-Schaltung 139 zur RAM-Steuerung 135 geliefert, um einen Lesebetrieb der ECC-verarbeiteten Daten vom RAM 137 anzufordern. Das Signal ECCREQ (Fig. 46C) wird von der ECC-Steuerschaltung 136 zur RAM-Steuerung 135 geliefert, um auf den RAM 137 zuzugreifen, um Daten zur ECC-Kernschaltung 138 zu übertragen, oder um eine Anfrage auszugeben, um SUB (eine ID und eine IEC) zur SBCD-Schaltung 134 zu übertragen.
- Die RAM-Steuerung 135 zeigt Prioritätspegel für diese drei Signale und gibt nacheinander ein ACK-Signal (Anerkennungssignal) an den RAM 137 gemäß der Prioritätspegel aus, wenn diese Anfragen simultan vorgetragen werden. Die Signale EFMACK (Fig. 46D), OUTACK (Fig. 46E) und ECCACK (Fig. 46F) zeigen die Anerkenntnis der Anfragen der Signale EFMREQ, OUTREQ bzw. ECCREQ. Bei der offenbarten Ausführungsform sind die Prioritätspegel in der Reihenfolge OUTREQ, EFMREQ und ECCREQ festgelegt. Somit gibt die RAM-Steuerung 135 ein ACK-Signal für das entsprechende REQ-Signal gemäß dem Prioritätspegel aus, wie in Fig. 46A bis 46G gezeigt ist. Diese Signale werden synchron mit dem Signal C11M (Fig. 46G) empfangen, welches als Systemtakt verwendet wird.
- Wie oben erläutert wird ein Zugriff zum RAM 137 als Antwort auf die Signale EFMREQ, ECCREQ oder OUTREQ während jedes einzelnen Zyklus gewährt. Dieser Zyklus kann jedoch gemäß der Konfiguration oder dem Typus des RAM 137 oder der Zugriffsgeschwindigkeit geändert werden.
- Fig. 47 ist ein Zeitablaufdiagramm, welches die Anzahl von Lese- oder Schreibzugriffen zum RAM 137 zeigt, die erforderlich sind, um die PI1-, PI2- und PO-Korrektur der Daten in einem ECC-Block auszuführen. Wie in Fig. 47 gezeigt ist, beträgt die Anzahl von Zugriffen zum RAM 137, die erforderlich ist, die PI1-, PO- und PI2-Korrektur auszuführen, 214 716 pro ECC-Block, und der Durchschnittswert pro Hauptrahmen beträgt 1033. So beträgt beispielsweise die Anzahl von Zugriffen zum RAM 137 während eines Schreibens von EFM-demodulierten Daten 182 pro Hauptrahmen, und die ECC-Ausführungszykluslänge beträgt 208 Bytes (208 Hauptrahmen), und somit sind 37856 (182 · 208) Zugriffe pro Block erforderlich. Der obige Wert wird durch Berechnen der Anzahl von erforderlichen Zugriffen für jeden Betrieb und durch Addieren der erhaltenen Werte erhalten.
- Fig. 48A bis 48F sind Zeitablaufdiagramme verschiedener Signale während der Übertragung von Fehlerkorrekturergebnisdaten ER vom RAM 137 über die OCTL-Schaltung 139. Die Zeitbasis des Taktsignals SDCK (182 Perioden) vor dem Signal, welches in Fig. 48A gezeigt ist, ist in Fig. 40E, 41E und 41E gezeigt. Der Takt SDCK (Fig. 48A) wird als Systemtakt verwendet, um ER-Daten als Datenstromdaten auszugeben. Das Auslösesignal SINF (Fig. 48B) geht nach oben am Anfang eines Sektors und zeigt, daß die übertragenen Daten die Sektorinformation (51) ist. Das Auslösesignal ESTB (Fig. 48C) wird ausgelöst, um zu zeigen, daß diese Korrekturergebnisse ER zu übertragen sind. In jeder PI-Reihe wird ein Byte jedem der Fehlerkorrekturergebnisse ER für die PI1-, PO- und PI2-Sequenzen zugeteilt, so daß die Ergebnisdaten drei Bytes insgesamt einnehmen. Da diese Daten in der Reihenfolge ausgegeben werden, mit der diese gespeichert sind, wird, wie in Fig. 26 gezeigt ist, die Sequenz, mit der ein bestimmtes Ergebnis in bezug gebracht wird, durch Bezugnahme auf die Bits 5 und 6 der Daten identifiziert, wie in Fig. 45 gezeigt ist. Für die PI-Reihen, für welche die Ergebnisse von PO-Korrektur nicht ausgegeben werden, geht das Auslösesignal ESTB nach unten, wenn die Ergebnisse ausgegeben werden.
- Das Auslösesignale DSTB (Fig. 48D) geht nach oben, wenn das Signal SD [7 : 0], welches in Fig. 48E gezeigt ist, Hauptdaten sind. Die Signale SINF, ESTB und DSTB werden durch die OCTL-Schaltung 139 erzeugt. Die Sektorinformation SI und die Fehlerkorrekturergebnisse ER werden ausgegeben, unmittelbar bevor die Daten in der Richtung der PI-Reihen ausgegeben werden, wobei 182 Taktperioden SDCK, wie in Fig. 48E gezeigt ist, verwendet werden. Das Fehlerflag OUTG (das Interpolationsflag) zeigt in den Hauptdaten Fehler und wird zu den Hauptdaten addiert, bevor es gemäß den PI- und PO-Flags "nicht orrigierbarer Fehler", die im FLAG-RAM 136C gespeichert sind, ausgegeben wird, wie in Fig. 44 gezeigt ist. Die OCTL-Schaltung 139 bestimmt aus den Bits 4 und 5 (siehe Fig. 34) der Sektorinformation, welche durch die SBCD-Schaltung 134 erzeugt wird, ob die Daten im Sektor (schon decodiert) ausgegeben werden sollten. Die Bits 4 und 5 der Sektorinformation zeigen Ende- bzw. Startsektoren (siehe Fig. 34). Die OCTL-Schaltung 134 gibt somit Sektordaten mit 4 Bits gleich 0 und 5 Bits gleich 1 als Daten im spezifizierten Sektor aus (die Daten, die auszugeben sind).
- Die OCTL-Schaltung bestimmt außerdem, ob beispielsweise das Vorhandensein von Fehlerflags für die Hauptdaten oder von EDC-Ergebnissen zu den Zuständen passen, die durch die Host-CPU 140 vorher festgelegt sind, und wenn dies bejaht wird, gibt sie die codierten Daten aus. Wenn dies nicht der Fall ist, werden die decodierten Daten nicht ausgegeben und die Host-CPU 140 über den Fehler informiert. Beispielsweise sind die Zustände für die Daten, die auszugeben sind, wie folgt:
- (1) die Daten werden spezifiziert, um ausgegeben zu werden;
- (2) es werden keine Fehler auf der Basis der ECC-Ergebnisse ermittelt;
- (3) es werden keine Fehlerflags den Hauptdaten hinzugefügt;
- Wenn die obigen Bedingungen erfüllt werden, werden die Daten ausgegeben. Zusätzlich ist die Host-CPU 140 immer in der Lage, die Ausgabe der Daten, wenn notwendig, zu verbieten.
- Bei der oben erläuterten Ausführungsform werden die Daten, welche vom RAM 13 zur ECC-Kernschaltung 138 während einer Periode von 182 Perioden des Signals MWRQ übertragen werden (d. h., Daten PI1-R, PO-R und PI2-R) (siehe Fig. 40A bis 40E, 41A bis 41E und 42A bis 42E) vom Speicher gemäß dem Übertragungstakt ECCK gelesen. Somit wird durch Stoppen (d. h., durch Nichtbereitstellen) des Übertragungstakts ECCK eine vorgegebene Zeitdauer lang zwischen den Datenübertragungsperioden die Übertragung der Daten verboten. Während dieser "Stopp"-Periode ist es möglich, die Fehlerpositionsinformation und das Korrekturmuster im ERR-FIFO 136B (das Fehlerregister) zu verwenden, um die entsprechenden Daten vom RAM 137 zu lesen, um zu ermöglichen, daß die EX-ODER-Schaltung 136 exklusive logische Additionen ausführt, um Fehler zu korrigieren, und um die korrigierten Daten zurück in den RAM 137 zu schreiben, wobei die einfache Bereitstellung der ECC- Kernschaltung 138 und das Fehlerregister (ERR-FIFO), welches für alle Daten verwendet werden kann (PI1-R, PO-R und PI2-R), ermöglicht, daß die ECC-Verarbeitung ausgeführt wird.
- Wenn die Daten (PI1-R, PO-R und PI2-R) übertragen werden, werden PIL-R und PO-R während der ersten Taktperiode MWRQ übertragen (siehe Fig. 41A bis 41E), und die RAM-Steuerung 135 führt die PI1-Fehlerkorrektur (PI1-W) durch, wenn die Übertragung der zweiten Reihe von PO-R zur ECC-Kernschaltung 136 über die ECC-Steuerschaltung 136 abgeschlossen ist. Die RAM-Steuerung 135 korrigiert Fehler in der ersten PO-Reihe, die während der ersten 182 Taktperioden MWRQ übertragen werden, wenn die Übertragung von PIL- R während der nächsten 182 Taktperioden MWRQ abgeschlossen ist, und korrigiert dann die Fehler in der zweiten PO-Reihe, welche während der ersten 182 Perioden übertragen werden, wenn die Übertragung der ersten Spalte von PIL-R während der zweiten 182 Perioden abgeschlossen ist. Danach wird verhindert, daß mehrere Operationen zum gleichen Zeitpunkt durchgeführt werden. Somit erfordert die RAM-Steuerung 135 lediglich einen PI-Zähler (sowohl zum Schreiben als auch zum Lesen), einen PO-Lesezähler (zur Übertragung) und einen PO-Schreibzähler (für Korrekturen).
- Die oben erläuterte Ausführungsform stellt außerdem ein Datenwiedergabegerät bereit, welches einen vereinfachten strukturellen Aufbau hat und welches ein Register (ERR- FIFO) für eine Codesequenz umfaßt, bei dem Fehlerpositionen und Korrekturmuster gespeichert sind und eine Minimalzahl an Zählern durch die RAM-Steuerung 135 verwendet werden muß.
- Da ein ECC-Block durch Addieren von PI-Codes in der horizontalen Richtung und durch Addieren von PO-Codes in der vertikalen Richtung aufgebaut ist, können die Daten in der Richtung der Reihen gespeichert werden, damit die Daten in einer horizontalen Reihe übertragen werden können, nachdem diese gespeichert sind, wodurch somit die ECC-Verarbeitungszeit im Vergleich zu einem Verfahren reduziert wird, bei dem die Daten über einen ersten Rahmen (der ersten Reihe) und einen zweiten Rahmen (der zweiten Reihe) zickzackförmig geschrieben werden.
- Wie oben erläutert werden die zu decodierenden codierten Daten sequentiell vom Speicher gelesen und bezüglich Fehlerpositionen berechnet, und die Korrekturmuster werden in einem Fehlerregister gespeichert, um die Fehlerkorrektur unter Verwendung der Korrekturmuster und der fehlerhaften gelesenen Daten durchzuführen. Dieses Korrekturverfahren der Daten liefert ein einfaches, jedoch wirksames Decodierverfahren. Dieses Verfahren liefert außerdem eine Datenwiedergabeeinrichtung, die einen vereinfachten ECC-Decoder aufweist und wobei nicht so viel Speicherplatz wie beim Stand der Technik erforderlich ist.
- Obwohl die vorliegende Erfindung insbesondere in Verbindung mit bevorzugten Ausführungsformen gezeigt und beschrieben wurde, versteht es sich, daß durch den Fachmann sehr wohl verschiedene Änderungen durchgeführt werden können. Obwohl sowohl beispielsweise die offenbarten Ausführungsformen Daten beschreiben, die dreimal während 182 Taktperioden MWRQ übertragen werden, ist die vorliegende Erfindung nicht auf diese Ausführungsform beschränkt und kann Daten viermal oder mehrmals während dieser Periode beispielsweise durch Reduzieren der Zugriffszeit des RAM 137 übertragen.
- Obwohl die vorliegende Erfindung sich auf das Decodieren von Daten richtet, die mit dem C1/C2-Faltungs-Reed-Solomon-Codes codiert sind, ist als weiteres Beispiel die vorliegende Erfindung nicht auf lediglich diesen Typus des Codierens/Decodierens beschränkt und kann bei anderen Codiersystemen angewandt werden.
Claims (19)
1. Gerät zum Decodieren codierter Daten, denen Fehlerkorrekturdaten hinzugefügt
sind, welches aufweist:
eine Speichereinrichtung (51), um codierte Daten, denen Fehlerkorrekturdaten
hinzugefügt sind, zu speichern;
eine Decodiereinrichtung (52), um Fehler in den codierten Daten, welche in der
Speichereinrichtung gespeichert sind, zu ermitteln, um Positionen der Fehler in den codierten
Daten festzustellen und um Fehlerkorrekturmuster entsprechend den Fehlern als
Ausgangssignal zu liefern;
eine Fehlerregister-Speichereinrichtung (53), um die festgestellten Positionen der
Fehler und der Ausgabefehler-Korrekturmuster zu speichern; und
eine Steuereinrichtung (54), um die Speichereinrichtung (51) zu steuern, um die
gespeicherten codierten Daten entsprechend den Positionen der Fehler, die in der
Fehlerregister-Speichereinrichtung (53) gespeichert sind, zu lesen, und um die Decodiereinrichtung (52)
zu steuern, um die codierten Daten unter Verwendung der Fehlerkorrekturmuster, die in der
Fehlerregister-Speichereinrichtung gespeichert sind, zu decodieren, um korrekte decodierte
Daten zu erzeugen;
dadurch gekennzeichnet, daß
die codierten Daten in mehreren Rahmen angeordnet sind, wobei jeder Rahmen
durch die Speichereinrichtung während eines Leserahmens-Taktzyklus einer vorher
festgelegten Länge empfangen wird;
die Fehlerkorrekturdaten C1/C2-Faltungs-Reed-Solomon-Codes sind, die eine
Fehlerkorrekturcode-C11-Sequenz als eine erste C1 Sequenz, eine Fehlerkorrekturcode-C2
Sequenz und eine Fehlerkorrekturcode-C12-Sequenz als zweite C1 Sequenz umfassen;
die Steuereinrichtung die Speichereinrichtung steuert, um die gespeicherten
Fehlerkorrekturcode-C11-, C2- und C12-Sequenzen zur Decodiereinrichtung sequentiell zu
liefern, und, nachdem die Fehlerkorrekturcode-Sequenz zur Decodiereinrichtung geliefert ist,
die Decodiereinrichtung steuert, um die gelieferten Fehlerkorrekturcode-C11-, C2- und C12-
Sequenzen sequentiell zu steuern, wobei die Steuereinrichtung die Fehlerkorrektur von C11,
C2 oder C12 in Abhängigkeit von der Fehlerposition und dem Fehlerkorrekturmuster, das von
der Fehlerregister-Speichereinrichtung (53) gelesen wird, im Zeitpunkt der Beendigung der
Übertragung eines Datenrahmens von C11, C2 oder C12 von der Speichereinrichtung (51) zu
einer Decodiereinheit (55) der Decodiereinrichtung ausübt;
das Gerät eine Einrichtung aufweist, um einen einzelnen Systemtakt (RFCK), der
eine vorher festgelegte Taktperiode besitzt, bereitzustellen, wobei die gespeicherten codierten
Daten von der Speichereinrichtung (51) gelesen und zur Decodiereinrichtung (52) während
einer ersten vorausgewählten Anzahl von Taktperioden des Systemtakts geliefert werden; und
die Decodiereinrichtung (52) die gelesenen Daten während einer zweiten
vorausgewählten Anzahl von Taktperioden des Systemtakts decodiert, wobei die erste und die
zweite vorausgewählte Anzahl von Taktperioden innerhalb eines Leserahmen-Taktzyklus
stattfindet.
2. Gerät nach Anspruch 1, wobei die Decodiereinrichtung (52) die
Fehlerkorrekturmuster von den Fehlerkorrekturdaten, welche in der Speichereinrichtung (51) gespeichert
sind, erzeugt.
3. Gerät nach Anspruch 1, wobei die Decodiereinrichtung (52) korrigierbare
Fehler und nicht korrigierbare Fehler ermittelt und die Positionen lediglich der korrigierbaren
Fehler in den codierten Daten feststellt.
4. Gerät nach Anspruch 1, wobei die Speichereinrichtung (51) eine
FIFO-Speichereinrichtung ist.
5. Gerät nach Anspruch 1, wobei die codierten Daten Datenreihen und
Datenspalten aufweisen und die Fehlerkorrekturdaten Innencodes aufweisen, die allen Datenreihen
hinzugefügt sind, und Außencodes, die allen Datenspalten hinzugefügt sind.
6. Gerät nach Anspruch 5, wobei die Steuereinrichtung (54) die
Decodiereinrichtung (52) steuert, um sukzessiv Fehler, die in allen Reihen in den codierten Daten, welche in
der Speichereinrichtung (51) gespeichert sind, zu decodieren, wobei die Innencodes
verwendet werden; danach die Decodiereinrichtung steuert, um sukzessiv Fehler, welche in allen
Spalten in den codierten Daten, die in der Speichereinrichtung gespeichert sind, zu
decodieren, wobei die Außencodes verwendet werden; und dann die Decodiereinrichtung steuert, um
sukzessiv Fehler, welche in allen vorher decodierten Reihen in den codierten Daten ermittelt
wurden, unter Verwendung der Innencodes zu decodieren.
7. Gerät nach Anspruch 5, wobei die Speichereinrichtung (51) zunächst einen
Block von gespeicherten codierten Daten zur Decodiereinrichtung (52) liefert, um Fehler im
Block zu ermitteln, und anschließend codierte Daten im Block entsprechend den Positionen
der Fehler, wie durch die Speichereinrichtung gesteuert, liefert.
8. Gerät nach Anspruch 7, wobei die Steuereinrichtung (54) gegenüber der
Decodiereinrichtung (52) wirksam ist, um Fehler, die in allen Reihen im gelieferten Block ermittelt
werden, zu decodieren, um erste korrigierte decodierte Daten zu erzeugen und um die
Speichereinrichtung (51) zu steuern, um die ersten korrigierten decodierten Daten zu speichern,
und anschließend die Decodiereinrichtung steuert, um Fehler, die in allen Spalten im
gelieferten Block ermittelt werden, zu decodieren, um zweite korrigierte decodierte Daten zu
erzeugen und um die Speichereinrichtung zu steuern, um die zweiten korrigierten decodierten
Daten zu speichern.
9. Gerät nach Anspruch 5, wobei die Außencodes Reihen von Außencodes
aufweisen, wobei jede Reihe von Außencodes zwischen zwei Datenreihen verschachtelt ist und
wobei die Decodiereinrichtung (52) eine Einrichtung aufweist, um die codierten Daten, denen
Fehlerkorrekturdaten hinzugefügt sind, zu entschachteln.
10. Gerät zum Reproduzieren und Decodieren codierter Videosignale, denen
Fehlerkorrekturdaten hinzugefügt sind, von einem Aufzeichnungsträger, welches aufweist:
eine Einrichtung zum Reproduzieren - von einem Aufzeichnungsträger - von
codierten Videodaten, denen Fehlerkorrekturdaten hinzugefügt sind; und
ein Decodiergerät gemäß einem der Ansprüche 1 bis 9 zum Decodieren der
reproduzierten Daten.
11. Verfahren zum Decodieren codierter Daten, denen Fehlerkorrekturdaten
hinzugefügt sind, welches folgende Schritte aufweist:
Speichern - in der Datenspeichereinrichtung (51) - codierter Daten, denen
Fehlerkorrekturdaten hinzugefügt sind;
Ermitteln von Fehlern in den codierten Daten, welche in der
Datenspeichereinrichtung gespeichert sind;
Feststellen von Positionen der Fehler in den codierten Daten;
Liefern von Fehlerkorrekturmustern entsprechend den Fehlern;
Speichern - in der Fehlerregister-Speichereinrichtung (53) - der festgestellten
Positionen der Fehler und der gelieferten Fehlerkorrekturmuster;
Lesen - von der Datenspeichereinrichtung (51) - der codierten Daten entsprechend
den Positionen der Fehler, die in der Fehlerregister-Speichereinrichtung gespeichert sind; und
Decodieren (52) der gelesenen codierten Daten entsprechend den Positionen der
Fehler unter Verwendung der Fehlerkorrekturmuster, die in der
Fehlerregister-Speichereinrichtung gespeichert sind, um korrigierte decodierten Daten zu erzeugen;
dadurch gekennzeichnet, daß
die codierten Daten in mehreren Rahmen angeordnet sind, wobei alle Rahmen
durch die Datenspeichereinrichtung während eines Lesenrahmen-Taktzyklus einer vorher
festgelegten Länge empfangen werden;
die Fehlerkorrekturdaten C1/C2-Faltungs-Reed-Solomon-Codes sind, welche eine
Fehlerkorrekturcode-C11-Sequenz als eine erste C1-Sequenz, eine Fehlerkorrekturcode-C2-
Sequenz und eine Fehlerkorrekturcode-C12-Sequenz als zweite C1-Sequenz aufweisen;
die Fehlerkorrekturcode-C11-, C2- und C12-Sequenzen sequentiell von der
Datenspeichereinrichtung gelesen werden, bevor die gelesenen Fehlerkorrekturcode-C11-, C2- und
C12-Sequenzen decodiert werden;
ein Systemtakt (RFCK), der eine vorher festgelegte Taktperiode hat, vorgesehen
ist;
die gespeicherten codierten Daten von der Datenspeichereinrichtung während
einer ersten vorher ausgewählten Anzahl von Taktperioden des Systemtakts gelesen werden;
die gelesenen Daten während einer zweiten vorher ausgewählten Anzahl von
Taktperioden des Systemtakts decodiert (52) werden, wobei die erste und die zweite vorher
ausgewählte Anzahl von Taktperioden innerhalb eines gelesenen Rahmentaktzyklus
stattfindet; und
die Fehlerkorrektur von C11, C2 oder C12 in Abhängigkeit von der Fehlerposition
und dem Fehlerkorrekturmuster ausgeübt wird, das von der
Fehlerregister-Speichereinrichtung (53) gelesen wird, mit der zeitlichen Abstimmung des Abschlusses der Übertragung
eines Datenrahmens von C11, C2 oder C11 von der Datenspeichereinrichtung zu einer
Decodiereinheit (55), die verwendet wird, die Decodierung auszuführen.
12. Verfahren nach Anspruch 11, wobei die Fehlerkorrekturmuster von den
Fehlerkorrekturdaten, welche in der Datenspeichereinrichtung (51) gespeichert sind, erzeugt
werden.
13. Verfahren nach Anspruch 12, wobei der Ermittlungsschritt durch Ermitteln
von korrigierbaren Fehlern in den codierten Daten, welche in der Datenspeichereinrichtung
gespeichert sind, durchgeführt wird.
14. Verfahren nach Anspruch 11, wobei die codierten Daten Datenreihen und
Datenspalten aufweisen; und die Fehlerkorrekturdaten Innencodes aufweisen, die allen
Datenreihen hinzugefügt sind, und Außencodes, die allen Datenspalten hinzugefügt sind.
15. Verfahren nach Anspruch 14, wobei der Decodierschritt (52) durch
sukzessives Decodieren von Fehlern, die in allen Reihen der codierten Daten ermittelt werden, die in
der Datenspeichereinrichtung (51) gespeichert sind, unter Verwendung des Innencodes, durch
sukzessives Decodieren von Fehlern, welche in allen Spalten in den codierten Daten ermittelt
werden, die in der Datenspeichereinrichtung gespeichert sind, unter Verwendung der
Außencodes, und durch sukzessives Decodieren von Fehlern, welche in allen vorher decodierten
Reihen in den codierten Daten ermittelt werden, wobei die Innencodes verwendet werden,
ausgeführt wird.
16. Verfahren nach Anspruch 14, wobei im ersten Speicherschritt ein Block von
codierten Daten gespeichert wird, der Ermittlungsschritt durch Ermitteln von Fehlern im
Block ausgeführt wird und der Leseschritt durch Lesen von der Datenspeichereinrichtung (51)
der codierten Daten im Block entsprechend den Positionen der Fehler ausgeführt wird.
17. Verfahren nach Anspruch 16, wobei die Fehler in allen Reihen im Block, der
in der Datenspeichereinrichtung (51) gespeichert ist, ermittelt und decodiert werden, um erste
korrigierte codierte Daten zu erzeugen, und dann die Fehler in allen Spalten im Block, der in
der Datenspeichereinrichtung gespeichert ist, ermittelt und decodiert werden, um zweite
korrigierte codierte Daten zu erzeugen.
18. Verfahren nach Anspruch 14, wobei die Außencodes Außencodereihen
aufweisen, wobei alle Außencodereihen zwischen zwei Datenreihen verschachtelt sind, wobei
das Decodierverfahren einen Schritt aufweist, um die codierten Daten, die den
Fehlerkorrekturdaten hinzugefügt sind, zu entschachteln.
19. Verfahren zum Reproduzieren und Decodieren codierter Videosignale, denen
Fehlerkorrekturdaten hinzugefügt sind, von einem Aufzeichnungsträger, welches folgende
Schritte aufweist:
Reproduzieren codierter Videodaten, denen Fehlerkorrekturdaten hinzugefügt
sind, von einem Aufzeichnungsträger; und
Decodieren der reproduzierten Daten durch ein Verfahren nach Anspruch 11 bis
18.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35163095 | 1995-12-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69622360D1 DE69622360D1 (de) | 2002-08-22 |
DE69622360T2 true DE69622360T2 (de) | 2003-03-27 |
Family
ID=18418558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69622360T Expired - Lifetime DE69622360T2 (de) | 1995-12-25 | 1996-12-24 | Vorrichtung und Verfahren zur Dekodierung eines kodierten digitalen Signals |
Country Status (7)
Country | Link |
---|---|
US (1) | US5901159A (de) |
EP (1) | EP0782138B1 (de) |
JP (1) | JP3305966B2 (de) |
KR (1) | KR100449931B1 (de) |
CN (1) | CN1127085C (de) |
DE (1) | DE69622360T2 (de) |
MY (1) | MY115663A (de) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173429B1 (en) * | 1997-03-14 | 2001-01-09 | Harris Corporation | Apparatus for providing error correction data in a digital data transfer system |
JP3042607B2 (ja) * | 1997-06-13 | 2000-05-15 | 日本電気株式会社 | 同期検出回路 |
JP3488603B2 (ja) * | 1997-09-16 | 2004-01-19 | 株式会社東芝 | 電子透かしを利用したコピープロテクトシステム |
US6671292B1 (en) * | 1999-06-25 | 2003-12-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for adaptive voice buffering |
KR100611955B1 (ko) * | 1999-07-20 | 2006-08-11 | 삼성전자주식회사 | 스크램블러 |
US6772385B2 (en) * | 2000-01-31 | 2004-08-03 | Sanyo Electric Co., Ltd. | Error-correcting device and decoder enabling fast error correction with reduced circuit scale |
KR100378181B1 (ko) | 2000-06-09 | 2003-03-29 | 삼성전자주식회사 | Efm/efm+ 디코딩에 의해 검출된 에러위치를 이용한c1/pi 워드의 에러정정 방법 및 장치 |
EP1233523A1 (de) * | 2001-02-16 | 2002-08-21 | Deutsche Thomson-Brandt Gmbh | Verfahren und Gerät zur Fehlerkorrekturkodendekodierung |
TWI227869B (en) * | 2002-11-04 | 2005-02-11 | Mediatek Inc | Data coding method and system |
JP3708064B2 (ja) | 2002-05-31 | 2005-10-19 | 株式会社東芝 | ディスク記憶装置、ディスクコントローラ及び同装置に適用するエラー訂正方法 |
EP1388944A1 (de) * | 2002-08-10 | 2004-02-11 | Deutsche Thomson-Brandt Gmbh | Cross-interleave Reed-Solomon Codekorrektion |
US7055082B2 (en) | 2002-10-29 | 2006-05-30 | Victor Company Of Japan, Ltd. | Information recording and reproducing apparatus |
US7904786B2 (en) * | 2003-03-06 | 2011-03-08 | Hewlett-Packard Development Company, L.P. | Assisted memory system |
CN100399452C (zh) * | 2003-10-31 | 2008-07-02 | 仁宝电脑工业股份有限公司 | 资料读取及判别的方法与装置 |
US7444581B2 (en) * | 2003-11-04 | 2008-10-28 | Texas Instruments Incorporated | Error handling of storage device data in real time systems |
KR100578030B1 (ko) * | 2004-04-27 | 2006-05-22 | 충북대학교 산학협력단 | 정치식 원적외선 건조기 |
DE102004036383B4 (de) * | 2004-07-27 | 2006-06-14 | Siemens Ag | Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen |
KR100688534B1 (ko) * | 2005-01-26 | 2007-03-02 | 삼성전자주식회사 | 변조 코드의 부호화 및 복호화방법 및 장치 |
US7370261B2 (en) * | 2005-05-09 | 2008-05-06 | International Business Machines Corporation | Convolution-encoded raid with trellis-decode-rebuild |
US7613983B2 (en) * | 2005-06-24 | 2009-11-03 | Kabushiki Kaisha Toshiba | Error correction device of optical disk unit |
US7949927B2 (en) | 2006-11-14 | 2011-05-24 | Samsung Electronics Co., Ltd. | Error correction method and apparatus for predetermined error patterns |
CN101312349B (zh) * | 2007-05-26 | 2010-08-25 | 华为技术有限公司 | 信息块编码及同步检测的方法和装置 |
JPWO2010134328A1 (ja) * | 2009-05-21 | 2012-11-08 | パナソニック株式会社 | 光ディスク再生装置、光ディスク再生方法、再生処理装置及び再生処理方法 |
JP2011065599A (ja) * | 2009-09-18 | 2011-03-31 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
JP5586448B2 (ja) * | 2010-12-20 | 2014-09-10 | 三菱電機株式会社 | 光伝送装置 |
US8484542B2 (en) | 2011-02-08 | 2013-07-09 | Sandisk Technologies Inc. | Data recovery using additional error correction coding data |
US20150067444A1 (en) * | 2013-09-04 | 2015-03-05 | Kabushiki Kaisha Toshiba | Semiconductor storage device and memory system |
JP6028709B2 (ja) * | 2013-10-18 | 2016-11-16 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
CN105472390B (zh) * | 2015-12-25 | 2018-05-25 | 福州瑞芯微电子股份有限公司 | 一种视频解码方法和系统 |
US10372531B2 (en) * | 2017-01-05 | 2019-08-06 | Texas Instruments Incorporated | Error-correcting code memory |
US10795759B2 (en) * | 2018-09-10 | 2020-10-06 | Micron Technology, Inc. | Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4646303A (en) * | 1983-10-05 | 1987-02-24 | Nippon Gakki Seizo Kabushiki Kaisha | Data error detection and correction circuit |
JPH07107782B2 (ja) * | 1986-02-28 | 1995-11-15 | ソニー株式会社 | ディジタルテープレコーダ |
NL8601437A (nl) * | 1986-06-04 | 1988-01-04 | Philips Nv | Sequentiele bufferinrichting. |
JPS6356022A (ja) * | 1986-08-26 | 1988-03-10 | Victor Co Of Japan Ltd | デイジタル記録再生装置 |
JP2649038B2 (ja) * | 1986-11-05 | 1997-09-03 | 日立電子エンジニアリング株式会社 | 光デイスク検査装置 |
US4845714A (en) * | 1987-06-08 | 1989-07-04 | Exabyte Corporation | Multiple pass error correction process and apparatus for product codes |
US5068855A (en) * | 1988-07-18 | 1991-11-26 | Canon Kabushiki Kaisha | Error correcting method and apparatus |
JPH02132683A (ja) * | 1988-11-11 | 1990-05-22 | Matsushita Electric Ind Co Ltd | ディスク再生装置 |
US5255272A (en) * | 1991-02-25 | 1993-10-19 | Storage Technology Corporation | Predictive tape drive error correction apparatus |
DE69325415T2 (de) * | 1992-05-18 | 1999-11-25 | Canon K.K., Tokio/Tokyo | Datenverarbeitungsvorrichtung |
JPH06111495A (ja) * | 1992-09-30 | 1994-04-22 | Sony Corp | データ再生装置 |
JP2821324B2 (ja) * | 1992-11-04 | 1998-11-05 | 三菱電機株式会社 | 誤り訂正回路 |
JP3555664B2 (ja) * | 1993-09-29 | 2004-08-18 | ソニー株式会社 | データ再生方法及びデータ再生装置 |
JP3336092B2 (ja) * | 1993-09-30 | 2002-10-21 | 株式会社デノン | 再生装置 |
JPH0798890A (ja) * | 1993-09-30 | 1995-04-11 | Sony Corp | 光ディスク記録媒体、光ディスク記録方法及び光ディスク再生装置 |
KR950010768B1 (ko) * | 1993-10-20 | 1995-09-22 | 주식회사 Lg전자 | 에러 정정 코드 복호 장치 및 그 방법 |
JP3154607B2 (ja) * | 1993-12-28 | 2001-04-09 | 三菱電機株式会社 | 誤り訂正復号装置及び誤り訂正復号方法 |
JPH07311950A (ja) * | 1994-03-19 | 1995-11-28 | Sony Corp | 光ディスク記録媒体、光ディスク記録方法、光ディスク記録装置、及び光ディスク再生装置 |
US5715355A (en) * | 1994-03-19 | 1998-02-03 | Sony Corporation | Optical disk having a particular format to store user-selected data, such as video data or computer files, including a dedicated TOC region |
JP3328093B2 (ja) * | 1994-07-12 | 2002-09-24 | 三菱電機株式会社 | エラー訂正装置 |
-
1996
- 1996-10-31 JP JP30697196A patent/JP3305966B2/ja not_active Expired - Fee Related
- 1996-12-19 US US08/769,878 patent/US5901159A/en not_active Expired - Lifetime
- 1996-12-23 MY MYPI9605436 patent/MY115663A/en unknown
- 1996-12-24 EP EP19960309545 patent/EP0782138B1/de not_active Expired - Lifetime
- 1996-12-24 DE DE69622360T patent/DE69622360T2/de not_active Expired - Lifetime
- 1996-12-25 CN CN96123854A patent/CN1127085C/zh not_active Expired - Fee Related
- 1996-12-26 KR KR1019960081375A patent/KR100449931B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0782138A2 (de) | 1997-07-02 |
CN1167981A (zh) | 1997-12-17 |
KR970055617A (ko) | 1997-07-31 |
JP3305966B2 (ja) | 2002-07-24 |
MY115663A (en) | 2003-08-30 |
US5901159A (en) | 1999-05-04 |
CN1127085C (zh) | 2003-11-05 |
JPH09238085A (ja) | 1997-09-09 |
KR100449931B1 (ko) | 2004-12-04 |
EP0782138A3 (de) | 1999-06-30 |
EP0782138B1 (de) | 2002-07-17 |
DE69622360D1 (de) | 2002-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69622360T2 (de) | Vorrichtung und Verfahren zur Dekodierung eines kodierten digitalen Signals | |
DE69431558T2 (de) | Datenwiedergabevorrichtung und datenaufzeichnungsmedium | |
DE69715269T2 (de) | Datenaufnahme und -wiedergabe | |
DE69322060T2 (de) | Vorrichtung zum Wiedergeben multiplexierter Daten von einem Aufzeichnungsträger | |
DE69616845T2 (de) | Optische Platte und optisches Plattenwiedergabegerät | |
DE69531265T2 (de) | Optische Platte und Methode und Gerät zur Aufzeichnung auf und danach Wiedergabe von Informationen von dieser Platte | |
DE69620073T2 (de) | Datenkodier/-dekodierverfahren und -gerät und Aufzeichnungsmedium für kodierte Daten | |
DE69615111T2 (de) | Gerät und Verfahren zur Kodierung von digitalen Videodaten | |
DE69534267T2 (de) | Aufnahme und Wiedergabe eines MPEG-Informationssignals auf/von einem Aufnahmeträger | |
DE69222576T2 (de) | Gerät zur digitalen Datenwiedergabe | |
DE69427685T2 (de) | Verfahren und vorrichtung zur datenwiedergabe | |
DE69322048T2 (de) | Verfahren und Gerät zum Wiedergeben und Dekodieren von auf einer Platte aufgezeichneten Daten | |
DE69717532T2 (de) | Aufzeichnungsdatenerzeugungsverfahren und Datenwiedergabegerät | |
DE69521854T2 (de) | Datenwiedergabe | |
DE69633365T2 (de) | Verfahren und Gerät zur Aufzeichnung von Daten auf einem Aufzeichnungsträger und Verfahren und Gerät zur Wiedergabe derselben, und ein Aufzeichnungsträger | |
US6401228B1 (en) | Data decoding apparatus and method and data reproduction apparatus | |
DE3784745T2 (de) | Verfahren zur uebertragung und aufzeichnung von daten. | |
EP0785551A2 (de) | Fehlerkorrekturkodessystem | |
DE3115902A1 (de) | Digitales videodaten-aufzeichnungs- und/oder -wiedergabegeraet | |
DE69924096T2 (de) | Vorrichtung und verfahren zum aufzeichnen eines digitalen informationssignals mit trickwiedergabeinformation in schrägspuren in einem aufzeichnungsträger | |
DE60037631T2 (de) | Datenwiedergabevorrichtung und Verfahren | |
DE4445013A1 (de) | Erschütterungsresistentes Abspielgerät mit verbesserter Synchronisation | |
DE69429404T2 (de) | Gerät zur Aufzeichnung und Wiedergabe eines komprimierten Videosignals | |
DE69623859T2 (de) | Aufnahme und Wiedergabe von digitalen Signalen | |
DE3729730C2 (de) | Vorrichtung zum Verarbeiten digitaler Daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) |