-
Die
vorliegende Erfindung betrifft ein Verfahren zum Puffern von Audiodaten
in Systemen für
optische Aufzeichnungsmedien und eine Vorrichtung zum Lesen und/oder
Beschreiben von optischen Aufzeichnungsmedien unter Verwendung eines
solchen Verfahrens.
-
Heutzutage
können
viele Vorrichtungen zum Lesen und/oder Beschreiben von optischen
Aufzeichnungsmedien mit komprimierten Audiodaten, z.B. MP3-Dateien,
arbeiten. Die Audiodaten werden gewöhnlich zum Beispiel um einen
Faktor von 4 bis 12 komprimiert. Das heißt, daß, wenn die Daten mit einer
Geschwindigkeit von 1x, d.h. mit der zum Lesen unkomprimierter Audiodaten
notwendigen Geschwindigkeit, aus dem optischen Aufzeichnungsmedium
gelesen werden, kommen die wiedergewonnenen Daten zu schnell für den Decoder
an. Im Fall eines Aufzeichnungsmediums, das mit konstanter Lineargeschwindigkeit
betrieben wird, kann der Servocontroller jedoch gewöhnlich die
Umdrehungsgeschwindigkeit auf 0,6x verlangsamen. Deshalb müssen die
ankommenden komprimierten Daten in einem Speicher gepuffert werden,
bevor sie zu dem Decoder übermittelt
werden, und der Decoder ruft die Daten nach Bedarf aus dem Speicher
ab. Der Pufferspeicher ist gewöhnlich
ein SDRAM.
-
Das
Szenario ist im Fall einer erschütterungssicheren
Vorrichtung ähnlich,
bei der ein Speicher früher
und schneller mit Daten gefüllt
wird, als der Speicher ausgelesen wird, um mit durch eine Erschütterung
hervorgerufenen Unterbrechungen fertig zu werden. In diesem Fall
werden durch die Erschütterung
verfälschte
Daten mit korrekten Daten überschrieben.
-
Aus
EP717407 ist eine erschütterungsbeständige Vorrichtung
zur Wiedergabe von Compactdisks bekannt. Eine Steuereinheit speichert
die Adresse eines Schreibzeigers, der die erste Adresse der letzten
gültigen
Subcodeinformationen in einem Puffer angibt. Im Fall einer Unterbrechung
wird der Schreibzeiger als Referenz sowohl für die Stelle der Unterbrechung
auf dem Informationsmedium als auch für die letzten gültigen Daten
in dem Puffer und das Schreiben in den Puffer verwendet. Zur Erzielung der
Synchronisation des Datenstroms in dem Puffer werden die in den
Subcodeinformationen enthaltenen Synchronisationsbyte (S0, S1) verwendet.
-
Auf
optischen Aufzeichnungsmedien mit sehr schlechter Qualität kann das
Markierungssignal jedoch verfälscht
werden. Entweder liegt ein Markierungssignal an der spezifizierten
Position vor oder es liegen zusätzliche
falsche Markierungssignale zwischen zwei gültigen Markierungssignalen
vor.
-
Eine
Aufgabe der Erfindung ist der Vorschlag eines zuverlässigen Verfahrens
zum Puffern der Audiodaten in einer Vorrichtung zum Lesen und/oder Beschreiben
optischer Aufzeichnungsmedien.
-
Gemäß der Erfindung
wird diese Aufgabe gelöst
durch ein Verfahren zum Puffern von aus einem optischen Aufzeichnungsmedium
gelesenen Audiodaten in einem Speicher, wobei die Audiodaten in
Rahmen mit einer vorbestimmten Anzahl von Audioabtastwerten unterteilt
sind, wobei im Fall einer Fehlerbedingung Audiodaten aus einer vorherigen
Position auf dem optischen Aufzeichnungsmedium vor einer Position,
die einer bestimmten verifizierten Schreibposition in einem Speicher
entspricht, gelesen werden und das Schreiben in den Speicher gesperrt
wird, wobei das Verfahren die folgenden Schritte umfaßt:
- – Zählen der
Anzahl der aus dem optischen Aufzeichnungsmedium gelesenen Audioabtastwerte;
- – Suchen
nach zwei nachfolgenden Markierungen mit einer Distanz gleich der
Anzahl der Audioabtastwerte eines Rahmens;
- – nachdem
die nachfolgenden Markierungen gefunden sind, Bestimmen der verbleibenden
Distanz zu der verifizierten Schreibposition auf der Basis der Anzahl
gezählter
Audioabtastwerte;
- – Neustarten
des Schreibens von Audiodaten in den Speicher, wenn die aus dem
optischen Aufzeichnungsmedium gelesenen Audiodaten der verifizierten
Schreibposition entsprechen.
-
Wenn
die Markierungen eine feste Position innerhalb der Rahmen aufweisen,
stellt das Suchen nach zwei nachfolgenden Markierungen mit einer Distanz
gleich der Anzahl der Audioabtastwerte eines Rahmens sicher, daß keine
verfälschten
Markierungen zur Bestimmung der verbleibenden Distanz zu der verifizierten
Schreibposition verwendet werden. Wenn die nachfolgenden Markierungen
gefunden sind, werden die gezählten
Audioabtastwerte vorzugsweise zum Suchen nach den der verifizierten Schreibposition
entsprechenden Audiodaten verwendet.
-
Eine
Fehlerbedingung, bei der das Verfahren vorteilhafterweise verwendet
wird, ist ein Überlauf oder
bevorstehender Überlauf
des Speichers oder eine durch eine Erschütterung verursachte Unterbrechung.
Im ersten Fall wurden bereits mehr Audiodaten gelesen, als tatsächlich vom
Decoder benötigt werden.
Es ist dann notwendig, zu warten, bis der Decoder weitere Audiodaten
von dem Speicher angefordert hat, so daß wieder Speicherplatz verfügbar wird.
Im zweiten Fall enthält
der Speicher eine bestimmte Menge falscher Audiodaten, die mit korrekten
Audiodaten ersetzt werden müssen.
Im Fall einer weiteren Unterbrechung vor dem Erreichen der verifizierten
Schreibposition werden vorzugsweise Audiodaten von einer weiteren
vorherigen Position auf dem optischen Aufzeichnungsmedium gelesen.
-
Vorzugsweise
ist die Markierung ein Synchronisationsbit eines Subcoderahmens.
Ein solches Synchronisationsbit kann leicht in den aus dem optischen
Aufzeichnungsmedium gelesenen Daten detektiert werden. Die Distanz
zu der verifizierten Schreibposition wird vorteilhafterweise als
Anzahl von Subcoderahmen bestimmt. In diesem Fall wird ein Zähler (Nsc)
zum Herunterzählen
der Anzahl der bis zu der verifizierten Schreibposition verbleibenden Subcoderahmen
vorgesehen. Es ist jedoch genauso gut möglich, die Distanz zu der verifizierten Schreibposition
als Anzahl von Audioabtastwerten zu bestimmen usw.
-
Das
Zählen
der Anzahl der aus dem optischen Aufzeichnungsmedium gelesenen Audioabtastwerte
wird vorzugsweise durch ein den Start eines neuen Rahmens anzeigendes
Signal gestartet. Dadurch wird sichergestellt, daß am Ende
eines Rahmens die Anzahl der gezählten
Audioabtastwerte gleich der Anzahl der Audioabtastwerte eines Rahmens
ist.
-
Vorzugsweise
wird ein Fehlerstatus angezeigt, wenn ein Lesezähler des Speichers die verifizierte
Schreibposition erreicht. In dieser Situation hat sich die Vorrichtung
noch nicht von der Fehlerbedingung erholt, so daß keine weiteren verifizierten
Audiodaten in dem Speicher verfügbar
sind.
-
Vorzugsweise
wird ein Verfahren gemäß der Erfindung
in einer Vorrichtung zum Lesen und/oder Beschreiben von optischen
Aufzeichnungsmedien verwendet.
-
Für ein besseres
Verständnis
der Erfindung werden in der folgenden ausführlichen Beschreibung mit Bezug
auf die Figuren beispielhafte Ausführungsformen spezifiziert.
Es versteht sich, daß die
Erfindung nicht auf diese beispielhaften Ausführungsformen beschränkt ist
und daß zweckdienlicherweise spezifizierte
Merkmale auch kombiniert und/oder modifiziert werden können, ohne
von dem Schutzumfang der vorliegenden Erfindung abzuweichen. Es zeigen:
-
1 den
Audiodatenpfad einer Vorrichtung zum Lesen und/oder Beschreiben
von optischen Aufzeichnungsmedien;
-
2 schematisch
die Speicherung neuer Audioabtastwerte in einem Speicher;
-
3 die
Speichersituation unmittelbar nach einer Erschütterung;
-
4 die
Speichersituation nach einem Rücksprung
eines Abnehmers;
-
5 die
Initialisierung eines Subcoderahmenzählers;
-
6 eine
erste Dekrementierung des Subcoderahmenzählers nach dem Start eines
neuen Subcoderahmens;
-
7 eine
zweite Dekrementierung des Subcoderahmenzählers nach dem Start eines
neuen Subcoderahmens;
-
8 den
Neustart der Schreiboperation nach dem Ankommen an einem verifizierten
Schreibzeiger; und
-
9 eine
Erläuterung
der Erzeugung des ESP_S1-Signals durch Kombinieren des S1-Signals und
des ADAT_STRT-Signals.
-
1 zeigt
den Audiodatenpfad einer Vorrichtung zum Lesen und/oder Beschreiben
von optischen Aufzeichnungsmedien 1. Die Vorrichtung kann mit
komprimierten Audiodaten arbeiten. Im folgenden wird auf eine Compactdisk
(CD) als Beispiel für
ein solches optisches Aufzeichnungsmedium und MP3 als Komprimierungsformat
verwiesen. Es versteht sich, daß die
Erfindung weder auf diese Art von optischem Aufzeichnungsmedium
noch auf dieses Komprimierungsformat beschränkt ist. In der Figur werden
Audiodaten mit fettgedruckten Pfeilen angegeben, während andere
Daten, wie etwa Befehle oder Anforderungen, mit dünngedruckten
Pfeilen angegeben sind.
-
Ein
optischer Abnehmer 4 liest Audiodaten aus einem optischen
Aufzeichnungsmedium 1. Das Aufzeichnungsmedium 1 wird
von einem Motor 2 mit konstanter Lineargeschwindigkeit,
z.B. 0,6x bis 4x, gedreht. Die Drehung wird durch einen CLV-Controller 3 gesteuert.
Die von dem optischen Abnehmer 4 gelesenen Audiodaten werden
von einem Analog-Frontend 5 empfangen und zu einem Erfassungsblock 6 gesendet.
Ein Fehlerkorrekturblock 7 führt Fehlerkorrektur an den
erfaßten
Audiodaten aus. Die korregierten Audiodaten werden dann über einen
Speichercontroller 8 in einem Speicher 9 gepuffert.
Wenn ein MP3-Decoder 10 die Übertragung von Audiodaten anfordert,
ruft der Speichercontroller 8 die angeforderten Audiodaten
aus dem Speicher 9 ab und sendet die Daten zu dem MP3-Decoder.
Nach dem Decodieren durch dem MP3-Decoder 10 werden die
Audiodaten zu einem Audioverarbeitungsblock 11 und schließlich zu
einem hochintegrierten Audio-Digital/Analog-Umsetzer (LSI Audio
DAC, nicht gezeigt) gesendet.
-
Der
Erfassungsblock 6 sendet zusätzlich Subcodeinformationen zu
einem Subcodedecoder 12, der seinerseits die decodierten
Subcodes zu einem Mikrocontroller 13 sendet. Der Mikrocontroller 13 dient
zum Steuern des Speichercontrollers 8 im Fall einer Erschütterung
oder wenn der Speicher 9 voll ist.
-
2–8 erläutern die
Organisation des Speichers und das Funktionsprinzip entweder im
Fall einer Erschütterung
oder wenn der Speicher voll ist.
-
In 2 werden
die Audioabtastwerte in dem schraffierten Bereich in dem Speicher 9 gespeichert.
An einem Ende des Speichers 9 wird ein Lesezähler (Read
Cntr) zum Extrahieren der Daten aus dem Speicher 8 mit
einer Geschwindigkeit von exakt 1x (im Fall der Wiedergabe unkomprimierter
Audiodaten) verwendet, oder auf Anforderung durch den MP3-Decoder 10.
Der Lesezähler
wird jedesmal inkrementiert, wenn ein neuer Abtastwert aus dem Speicher 9 ausgelesen
wird.
-
Am
anderen Ende des Speichers 9 wird ein Schreibzähler (Write
Cntr) zum Speichern neuer ankommender Audiodaten in dem Speicher 9 verwendet.
Jedesmal, wenn ein neuer Abtastwert von der CD ankommt, wird er
an der Stelle gespeichert, auf die der Schreibzähler zeigt. Der Schreibzähler wird dann
um eine Position inkrementiert.
-
Die
CD ist in Subcoderahmen unterteilt, die jeweils 1176 (98 × 12) Abtastwerte
lang sind. Am Anfang eines neuen Subcoderahmens wird ein S1-Signal
gesetzt, woraus der Speichercontroller 8 schließen kann,
welche Audioabtastwerte dem Anfang des Rahmens entsprechen. Diese
Stellen werden durch die gestrichelten Pfeile angegeben. Von Zeit
zu Zeit wählt
der Mikrocontroller 13 eine dieser Stellen als die Position
eines verifizierten Schreibzählers
(verified Write cntr). Vorzugsweise wird für diesen Zweck die letzte bekannte
gültige
Subcoderahmen-Startposition ausgewählt.
-
In 3 haben
sich der Lesezähler
und der Schreibzähler
um ein Bit weiter in Richtung "des
Endes" des Speichers 9 bewegt.
Es ist zu beachten, daß sich
der Speicher 9 wie ein Ringpuffer verhält, was bedeutet, daß es dem
Lesezähler
und dem Schreibzähler
erlaubt wird, umzulaufen. Die Figur zeigt die Situation unmittelbar
nach einer Erschütterung
der Vorrichtung. In diesem Fall werden einige falsche Daten in dem
Speicher 9 gespeichert, was durch den schwarzen Bereich
angegeben ist.
-
Der
Mikrocontroller 13 reagiert auf die Erschütterung,
indem er sowohl das Lesen aus der CD als auch das Schreiben in den
Speicher 9 stoppt. Der Mikrocontroller 13 leitet
dann einen "Rücksprung" des Abnehmers 4 auf
eine vorherige Position auf der CD ein. Zum Zeitpunkt des Rücksprungs
ist die Position, an der der Sprung endet, unbekannt.
-
In 4 ist
der Rücksprung
des Abnehmers 4 beendet und der Mikrocontroller 13 startet
das Lesen der CD neu. Das Schreiben in den Speicher 9 bleibt
jedoch gesperrt, d.h. es werden keine neuen Daten in den Speicher
geschrieben. Der Speichercontroller 8 befindet sich in
einem Modus "Lesen
freigegeben, Schreiben gesperrt".
In diesem Moment wissen weder der Mikrocontroller 13 noch
der Speichercontroller 8 genau, an welcher Position auf
der CD sich der Abnehmer 4 befindet und in welche Stelle
des Speichers 9 die aus der CD gelesenen Daten geschrieben
werden sollen. In der Figur ist dies durch den gepunkteten Pfeil
angegeben, der auf die Position der Daten an der tatsächlichen
Position des Abnehmers 4 zeigt. Nur wenn der Mikrocontroller 13 einen
vollständigen
und gültigen
Subcode aus einem Subcoderahmen extrahiert hat, weiß er genau,
wo sich der Abnehmer 4 befindet.
-
Aus
der tatsächlichen
Position des Abnehmers 4 und dem Wert des verifizierten
Schreibzählers
berechnet der Mikrocontroller 13, wie weit der Abnehmer 4 von
der Position auf der CD entfernt ist, an der das Schreiben in den
Speicher 9 neu gestartet werden muß (als Anzahl von Subcoderahmen).
Dies ist in 5 dargestellt, wobei sich der
neue Schreibzähler
an der Position des verifizierten Schreibzählers befindet. Daten, die
nach dem verifizierten Schreibzähler
in den Speicher 9 geschrieben wurden, werden verworfen.
Der Mikrocontroller 13 initialisiert einen Zähler Nsc,
der sich vorzugsweise in dem Speichercontroller 8 befindet,
mit diesem Wert. In dem Beispiel in 5 müssen drei
Subcoderahmen gelesen werden, bevor das Schreiben in den Speicher 9 neu
gestartet werden kann (Nsc = 3).
-
Der
Mikrocontroller 13 versetzt den Speichercontroller 8 dann
in einen suchenden Modus, in dem der Speichercontroller 8 nach
dem Datenabtastwert schaut, der dem folgt, der an der Position des verifizierten
Schreibzählers
gespeichert ist, um die Schreiboperation neu zu starten.
-
In 6 und 7 hat
sich der Abnehmer 4 in Richtung der Position des neuen
Schreibzählers, d.h.
des verifizierten Schreibzählers,
bewegt. Jedesmal, wenn ein neuer Subcoderahmen beginnt, dekrementiert
der Speichercontroller 8 Nsc um "1".
Der Speichercontroller 8 detektiert den Anfang eines neuen
Subcoderahmens aus dem Auftreten des S1-Signals. Für diesen
Zweck wird eine ansteigende Flanke des S1-Signals verwendet.
-
Bei
Aufzeichnungsmedien mit sehr schlechter Qualität kann das S1-Signal jedoch
verfälscht sein.
Entweder liegt kein S1-Signal
am Anfang eines neuen Subcoderahmens vor oder es liegen zusätzliche
falsche S1-Signale zwischen zwei gültigen S1-Signalen vor. Um mit dieser Situation
fertig zu werden, wird ein Riegelmechanismus implementiert. Der
Riegelmechanismus wird durch einen Befehl aus dem Mikrocontroller 13 zurückgesetzt
und neu gestartet. Nach einem Rücksetzen
sucht der Riegelmechanismus nach einem Paar von S1-Signalen, das durch
genau 1176 Abtastwerte, d.h. einen vollständigen Subcoderahmen, getrennt
wird. Zum Zählen
der 1176 Abtastwerte wird durch Hardware in einem Eingangs-FIFO
durch Synchronisieren des S1-Signals mit einem ADAT_STRT-Signal
ein ESP_S1-Signal erzeugt. Weitere Einzelheiten bezüglich des ESP_S1-Signals
werden nachfolgend mit Bezug auf 9 gegeben.
Genauer gesagt erzeugt das nächste
ADAT_STRT-Signal nach dem S1-Signal das ESP_S1-Signal. Sobald ein
Paar von S1-Signalen gefunden
wurde, wird alle 1176 Abtastwerte ein Start_SCF-Signal erzeugt.
Das ESP_S1-Signal ist für
eine korrekte Funktionsweise des Speichercontrollers 8 nicht
mehr relevant. Das Start_SCF-Signal dient zum Abspeichern des Werts
des Schreibzeigers. Da man sich im 'Suchmodus' befindet, wird das ESP_S1-Signal nicht
mehr zum Herunterzählen
des Nsc-Zählers benötigt. Statt
dessen werden nur die Abtastwerte (ADATEN) gezählt. Nach dem Ende von 1176
Abtastwerten wird Nsc um '1' dekrementiert. Vorzugsweise
befindet sich der gesamte Regelmechanismus in dem Eingangs-FIFO.
-
Der
Riegelmechanismus muß nach
jeder Rücksprungoperation
zurückgesetzt
werden, um das Suchen nach einem gültigen Paar von S1-Signalen neu
zu starten. Man beachte, daß nur
ein gültiges S1-Signal
notwendig ist, um exakt zu bestimmen, wo das Schreiben neu zu starten
ist. Dieses gültige
Subcodesignal wird auch von dem Mikrocontroller 13 benötigt, um
die tatsächliche
Position des Abnehmers nach der Rücksprungoperation zu berechnen.
-
Wenn
während
einer Suchoperation eine neue Erschütterung auftritt, wird der
Speichercontroller 8 aus dem Suchmodus wieder in den Modus "Lesen freigegeben,
Schreiben gesperrt" versetzt.
Die Operationen beginnen dann erneut wie in 3 abgebildet.
-
Wenn
während
des Schreibsperr- oder Suchmodus der Lesezähler den Wert des verifizierten
Schreibzählers
erreicht, ist der Speicher 9 leer und der Mikrocontroller 13 muß entsprechend
reagieren, z.B. indem er ein Interrupt- oder Fehlersignal erzeugt.
-
Wie
in 8 abgebildet, wird, wenn sich der Speichercontroller
in dem Suchmodus befindet, die Position der ankommenden Daten letztendlich
exakt mit der Position des verifizierten Schreibzählers übereinstimmen.
In diesem Fall wird die Schreiboperation neu gestartet und die neuen
Daten werden an die vorherigen Daten in dem Speicher 9 ohne
Diskontinuität
angehängt.
Der Speichercontroller 8 schaltet sich dann selbst in den
Modus "Lesen freigegeben, Schreiben
freigegeben" um
und es ist keine weitere Intervention von dem Speichercontroller
notwendig. Die Operation ist zu der in 2 abgebildeten
Situation zurückgekehrt.
-
Derselbe
Riegelmechanismus wird verwendet, wenn komprimierte Audiodaten aus
einer CD abgerufen werden und der Speicher voll ist. In diesem Fall
wird ein Rücksprung
des Abnehmers 4 eingeleitet und es wird eine bestimmte
Menge an Daten verworfen. Wenn der Abnehmer den verifizierten Schreibzähler erreicht,
wurde ein Teil der in dem Speicher 9 gepufferten Daten
bereits gelesen und der Speicher ist nicht mehr voll.
-
9 erläutert die
Erzeugung des ESP_S1-Signals durch Kombinieren des S1-Signals, das
einen neuen Subcoderahmen anzeigt, das aber nicht mit den Abtastwerten
synchron ist, mit dem ADAT_STRT-Signal, das den Anfang eines neuen CD-Rahmens
anzeigt und mit den Abtastwerten synchron ist. Anstelle des S1-Signals
ist es genauso gut möglich,
das S0-Signal zur Synchronisation zu verwenden.