-
Die Erfindung betrifft ein Verfahren
zum gleichzeitigen Aufzeichnen und Lesen eines Stroms von Audio-
und Videodaten, insbesondere von gemäß der MPEG II-Norm komprimierten
Daten auf einem Aufzeichnungsträger,
der mit einem Lese- und einem Aufzeichnungskopf versehen ist. Die
Erfindung betrifft außerdem einen
digitalen Fernsehempfänger
zur Durchführung
des Verfahrens..
-
Wenn man wünscht, sequentielle Daten auf
einen Träger
aufzuzeichnen, der mit einem Kopf versehen ist, der für das Lesen
und das Aufzeichnen der Daten verantwortlich ist, kann die Zeit,
die der Kopf benötigt, um
von einer Aufzeichnungslogikeinheit (Block) des Trägers zu
einer anderen Einheit zu springen, nicht vernachlässigbar
sein. Die Zeit der Verschiebung eines Kopfs einer konventionell
verfügbaren
Festplatte kann z. B. in der Größenordnung
von 10 bis 12 ms liegen. Insbesondere in dem Fall der Aufzeichnung
von komprimierten Audio- und Videodaten, die einen minimalen Durchsatz
oder Datenrate benötigen,
kann es notwendig sein, die Anzahl der durch einen Kopf durchgeführten Sprünge zu begrenzen,
um so das Austrocknen oder Leerwerden des für die Decodierung dieser Daten
benutzten Pufferspeichers zu vermeiden.
-
Die Erfinder haben insbesondere festgestellt,
dass dieses Problem offenkundig werden kann, wenn man wünscht, einen
Datenstrom in Nicht-Echtzeit zu lesen, während die Aufzeichnung des
Stroms während des
Lesens der vorher aufgezeichneten Daten fortgesetzt wird.
-
Die
US
5 706 388 , ausgegeben am 6. Januar 1998 auf den Namen der
Firma ISAKA, beschreibt ein Verfahren zur Aufzeichnung eines digitalen
Video- und Audio-Datenstroms,
wobei die Aufzeichnung auf einem Träger erfolgt, der in der Form
von logischen Blöcken
in Reihe organisiert ist und einen Aufzeichnungs- und Lesekopf enthält. Dieses
Dokument schlägt
jedoch keine Lösung
vor, die eine Verringerung der Anzahl der Sprünge des Lesekopfs ermöglicht.
-
Die Aufgabe der Erfindung besteht
darin, ein Aufzeichnungsverfahren vorzuschlagen, das unnötige Sprünge des
Lese- und Aufzeichnungskopfs vermeidet.
-
Die Erfindung betrifft ein Verfahren
zur Aufzeichnung eines Stroms von digitalen Video- und Audiodaten,
wobei die Aufzeichnung auf Aufzeichnungsmitteln mit einem Träger erfolgt,
der in der Form von logischen Blöcken
in Reihe organisiert ist und einen Aufzeichnungs- und Lesekopf enthält, gekennzeichnet
durch folgende Schritte:
- – Aufzeichnung der Daten in
einem Block von zwei Blöcken,
beginnend bei einem ersten Block,
- – abwechselndes
Lesen eines vorher aufgezeichneten Blocks und Fortsetzung der Aufzeichnung
in dem auf den gelesenen Block folgenden Block nach der Auslösung des
Lesens der Daten.
-
Während
des Schreibens ohne Lesen erfolgt ein einziger Sprung des Kopfes.
Während
des Lesens und der Fortsetzung der Aufzeichnung erfolgt kein Sprung:
Der Lesekopf liest einen Block und bewirkt eine Aufzeichnung in
dem unmittelbar folgenden Block. Auf diese Weise wird die Anzahl
der Sprünge
in einer effizienten Weise verringert.
-
Gemäß einer besonderen Ausführungsform
wird darin, wenn der Satz von Blöcken,
die vor der Auslösung
des Lesens aufgezeichnet wurden, gelesen worden ist, die Aufzeichnung
in aneinandergrenzenden Blöcken
in einer nicht-verschachtelten Weise fortgesetzt.
-
Gemäß einer besonderen Ausführungsform
wird dann, wenn alle Blöcke,
die vor der Auslösung
des Lesens aufgezeichnet wurden, gelesen worden sind, die Aufzeichnung
in einer Schleife in den vorher gelesenen Blöcken fortgesetzt, wobei die
vorher gelesenen Blöcke
unterdrückt
oder verworfen werden.
-
Gemäß einer besonderen Ausführungsform
erfolgt die Aufzeichnung der Daten in einer Gruppe von N aneinandergrenzenden
Blöcken
von zwei, wobei N größer als
1 ist, anstelle eines einzigen Blocks von zwei.
-
Gemäß einer besonderen Ausführungsform
enthält
das Verfahren den zusätzlichen
Schritt der Detektierung der Folgen der freien Blöcke auf
dem Träger
und der Anwendung der Schritte zur Aufzeichnung und zum Lesen innerhalb
dieser Folgen.
-
Gegenstand der Erfindung ist außerdem ein
digitaler Fernsehempfänger
mit Mitteln zum Empfang eines digitalen Audio- und Videodatenstroms
mit
- – einem
Aufzeichnungsmittel mit einem Aufzeichnungsträger und einem Aufzeichnungs-
und Lesekopf, wobei der Träger
in der Form von logischen Blöcken
in Reihe organisiert ist,
- – einer
Steuerschaltung für
die Verwaltung des Schreibens und des Lesens der Blöcke des
Aufzeichnungsträgers,
gekennzeichnet durch
- – eine
Schaltung zur Bildung einer Schnittstelle des Aufzeichnungsträgers mit
der Steuerschaltung, wobei die Steuersxhaltung in einem ersten Schritt
die Aufzeichnung der Daten in einem Block von zwei anweist, beginnend
von einem ersten Block, und in einem zweiten Schritt nach der Auslösung des
Lesens der Daten anwechselnd das Lesen eines vorher aufgezeichneten
Blocks und die Fortsetzung der Aufzeichnung in dem auf einen gelesenen
Block folgenden Block bewirkt.
-
Gemäß einer besonderen Ausführungsform
steuert die Steuerschaltung die Aufzeichnung der Daten in einer
Gruppe von N aneinandergrenzenden Blöcken, wobei N größer als
1 ist, von zwei anstelle eines einzigen Blocks von zwei.
-
Weitere Merkmale und Vorteile der
Erfindung ergeben sich aus der Beschreibung eines besonderen, nicht
einschränkenden
Ausführungsbeispiels,
das anhand der beigefügten
Figuren erläutert
wird:
-
1 ist
ein Blockschaltbild eines digitalen Empfängers/Decoders mit einer Speichereinheit
gemäß dem vorliegenden
Ausführungsbeispiel,
-
2 ist
ein Blockschaltbild eines Ausführungsbeispiels
der Speichereinheit, in diesem Fall einer Festplatte,
-
3 ist
ein Diagramm und zeigt die Aufteilung der Audio- und Videobereiche
in einem Speicher vom FIFO-Typ, der als Puffer für das Schreiben der Daten benutzt
wird,
-
4 ist
ein Diagramm eines Blocks mit 128 KByte eines Teils der Festplatte,
der für
die Aufzeichnung eines Audio- und Videostroms reserviert ist,
-
5 ist
ein Diagramm und zeigt die beiden Typen des Dateisystems auf der
Festplatte,
-
6 ist
ein Diagramm und zeigt verschiedene Bereiche für die Aufzeichnung des "Strom"-Typ-Dateisystem,
-
7 ist
ein Flußdiagramm
für das
Schreiben einer Datei auf die Platte,
-
8 ist
ein Diagramm und zeigt die Zeiten der verschiedenen Vorgänge während eines
Lesevorgangs von Blöcken,
-
9a und 9b sind Diagramme und zeigen
einen Vorgang, der es möglich
macht, die Verschiebungen eines Schreib/Lese-Kopfes der Platte zu
verringern, wenn die Aufzeichnung und das Lesen gleichzeitig erfolgen,
-
10 ist
ein Blockschaltbild einer Taktrückgewinnungsschaltung.
-
Obwohl die folgende Beschreibung
insbesondere die Aufzeichnung von demultiplizierten Audio- und Video-PES-Pakete
betrifft, kann die Erfindung leicht für die direkte Aufzeichnung
von Transportstrom (TS)-Paketen oder Programmstrom (PS)-Paketen oder auch
für andere
Stromtypen angewendet werden, zum Beispiel vom Digital Video (DV)-Typ.
-
Gemäß dem vorliegendem Ausführungsbeispiel
ist die Speichereinheit eine Festplatte, die in einem die DVB-Norm
erfüllenden,
digitalen Fernsehdecoder integriert ist.
-
1 ist
ein Blockschaltbild eines derartigen Decoders. Letzterer enthält einen
Tuner 101, der mit einer Schaltung 102 zur Demodulation
und Fehlerkorrektur verbunden ist, die außerdem einen Analog/Digital-Konverter
zur Digitalisierung der Signale von dem Tuner enthält. Abhängig von
dem Empfangstyp, Kabel oder Satellit, ist die benutzte Modulation
vom Typ QAM oder QPSK, und die Schaltung 102 enthält die Demodulationsmittel,
die für
den Empfangstyp geeignet sind. Die demodulierten und korrigierten
Daten werden durch einen Konverter 103, der mit einem seriellen
Eingang einer Demultiplexier- und Decodierschaltung 104 verbunden
ist, in eine serielle Form gebracht.
-
Gemäß dem vorliegenden Beispiel
ist diese Schaltung 104 eine Schaltung STi5500, hergestellt
von ST Microelectronics. Die letztere enthält, verbunden mit einem zentralen
32 Bit-Parallelbus 105, einen DVD-Demultiplexer 106,
einen Microprocessor 107, einen sogenannten Cache-Speicher 108,
eine externe Speicherschnittstelle 109, eine serielle Kommunikationsschnittstelle 110,
eine parallele Eingangs/Ausgangs-Schnittstelle 111, eine
Chipkarten-Schnittstelle 112, einen Audio- und Video-MPEG-Decoder 113,
einen PAL- und RGB-Coder 114 und einen Zeichengenerator 115.
-
Die externe Speicherschnittstelle 109 ist
mit einem 16-Bit-Parallelbus verbunden mit dem jeweils eine parallele
Schnittstelle 116 vom Typ IEEE 1284, ein Speicher 117 mit
Zufallszugriff (RAM), ein sogenannter "Flash"-Speicher 118 und eine Festplatte 119 verbunden
sind. Letztere ist für
die Anforderungen des vorliegenden Beispiels vom EIDE-Typ. Die parallele
Schnittstelle 116 ist außerdem mit einem externen Anschluß 120 und
einem Modem 121 verbunden, wobei letzteres mit einem externen
Anschluß 122 verbunden
ist.
-
Die serielle Kommunikationsschnittstelle 110 ist
mit einem externen Anschluß 123 sowie
mit dem Ausgang einer Infrarot-Empfangs-Unteranordnung 124 verbunden,
die zum Empfang von Signalen von einer nicht dargestellten Fernbedienung
vorgesehen ist. Die Infrarot-Empfangs-Unteranordnung ist in eine
Frontplatte des Decoders integriert, die außerdem eine Wiedergabeeinheit
und Steuertasten enthält.
-
Die Chipkarten-Schnittstelle 112 ist
mit einer Chipkarten-Öffnung 125 verbunden.
-
Der Audio- und Videodecoder 113 ist
mit einem RAM 126 mit 16 MBit verbunden, das für die Speicherung der nicht-decodierten
Audio- und Videopakete vorgesehen ist. Der Decoder überträgt die decodierten
Videodaten zu dem PAL- und RGB-Coder 114 und die decodierten
Audiodaten zu einem Digital/Analog-Converter 127. Der Coder
liefert die RGB-Signale zu einem SECAM-Coder 132 und liefert
außerdem
ein Videosignal in Form einer Luminanzkomponente Y und einer Chrominanzkomponente
C, wobei diese beiden Komponenten getrennt sind. Diese verschiedenen
Signale werden durch eine Schalteinheit 128 zu einem Audioausgang 129,
einem Fernsehausgang 130 und einem Videorecorderausgang 131 gemultiplext.
-
Der Weg der Audio- und Videodaten
in dem Decoder ist folgendermaßen:
Der demodulierte Datenstrom besitzt ein Transportstromformat oder
einfacher ein "TS"-Format mit Bezug auf die MPEG II-Systemnorm.
Diese Norm hat die Bezeichnung ISO/IEC 13818-1. Die TS-Pakete enthalten
in ihrem Header mit PIDs bezeichnete Identifizierer, die den elementaren
Strom anzeigen, zu dem die Nutzdaten des Pakets gehören. Normalerweise
ist ein elementarer Strom ein Videostrom für ein bestimmtes Programm,
während
ein Audiostrom dieses Programms ein anderer ist. Die für den Transport
der komprimierten Audio- und Videodaten benutzte Datenstruktur wird
als elementares Strompaket oder auch als "PES"-Paket
bezeichnet.
-
Der Demultiplexer 106 ist
durch den Microprocessor 107 dafür programmiert, aus dem Transportstrom die
Pakete zu extrahieren, die bestimmten Werten des PID entsprechen.
Die Nutzdaten eines demultiplexierten Pakets werden gegebenenfalls
entwürfelt
(wenn die durch eine Chipkarte des Benutzers gespeicherten Rechte
diese Entwürfelung
autorisieren), bevor diese Daten in den Pufferbereichen der verschiedenen
Speicher des Decoders gespeichert werden. Die für die Audio- und Video-PES-Pakete
reservierten Pufferbereiche sind in dem Speicher 126 angeordnet.
Der Decoder 113 liest erneut diese Audio- und Videodaten
entsprechend den Bedürfnissen
und überträgt die dekomprimierten
Audio- und Videoabtastwerte zu dem Coder 114 bzw. zu dem
Converter 127.
-
Bestimmte der obengenannten Schaltungen
werden in bekannter Weise gesteuert, zum Beispiel über einen
Bus vom Typ 12C.
-
Der Fall der oben beschriebenen Figur
entspricht der direkten Decodierung eines durch den MPEG-Decoder 113 demultiplexierten
Programms.
-
Gemäß der Erfindung enthält der Empfänger/Decoder
eine Festplatte für
die Massenspeicherung hauptsächlich
der Audio- und Videodaten in ihrer komprimierten Form.
-
2 ist
ein Blockschaltbild der Anordnung 119 mit der Festplatte
und den Schnittstellenschaltungen, die sie mit der internen Speicherschnittstelle 109 verbinden.
-
Die Festplatte 201 ist eine
handelsübliche
Festplatte mit einer Ultra ATA/EIDE-Schnittstelle. "ATA" bezeichnet
das Kommunikationsprotokoll, das ansonsten bekannt ist, der speziellen,
im Rahmen des vorliegenden Beispiels benutzten spezifischen Platte.
Gemäß dem vorliegenden
Ausführungsbeispiel
enthält
die Platte ein doppeltes Dateisystem. Zwei Dateisysteme für die jeweiligen
Datenbereiche dienen parallel zum Lesen und zum Schrieben der Daten
auf der Platte, wobei das erste Dateisystem für das Schreiben und für das Lesen von
Daten der Computerdatei, des Programms, des Codes usw. vorgesehen
ist, das hier als "Block"-Dateisystem bezeichnet
wird, während
das zweite Dateisystem für
das Schreiben und das Lesen von Audio- und Videoströmen vorgesehen
ist und dieses Dateisystem im folgenden als das "Strom"-Dateisystem bezeichnet wird.
-
Diese Dualität findet sich beim Aufbau der
Schnittstellenschaltungen von 2 wieder.
-
Das Schreiben und das Lesen der Datenblöcke erfolgen
durch jeweils einen Speicher 202 vom Typ First-In-First-Out
(FIFO) zum Schreiben und einen Speicher 203 vom selben
Typ für
das Lesen. Die beiden FIFO-Speicher haben jeweils eine Größe oder
Abmessung von 16 Byte und werden durch eine Blockübertragungsschaltung 204 gesteuert,
die die Adressenzeiger für
diese beiden FIFO-Speicher verwaltet. Gemäß dem vorliegenden Ausführungsbeispiel
sind dies Speicher vom Typ mit einem doppelten synchronen Anschluß.
-
Die Datenaustauschvorgänge gemäß dem "Block"-Modus erfolgen in
einem Modus für
einen direkten Speicherzugriff durch Sendung von sogenannten Bursts
mit 16 Byte. Diese Bursts werden im Schreibmodus und im Lesemodus
durch die beiden FIFO-Speicher 202 und 203 gepuffert,
die die Anpassung der Plattenbitrate an die Busbitrate 215 und
umgekehrt ermöglichen.
-
Die beiden FIFO-Speicher 205 und 206 sind
für das
jeweilige Schreiben und Lesen des Audio- bzw. Videostroms vorgesehen.
Jeder FIFO-Speicher 205 und 206 enthält gemäß dem vorliegenden
Ausführungsbeispiel
einen physischen Speicher von 512 kByte, aufgeteilt in vier Videobanken
von 112 kByte (aufgeteilt in einen "Video"- Bereich,
bezeichnet mit 205a bzw. 206a) und einen Audiobereich
mit 64 kByte (bezeichnet mit 205b bzw. 206b) und
wird durch eine Schaltung 207 zur Steuerung der Stromübertragung
gesteuert. Jede Videobank und jeder Audiobereich werden als ein
First-in-First-Out (FIFO)-Speicher verwaltet. Die Schaltung 207 verwaltet
zwei Schreibzeiger und zwei Lesezeiger, die unabhängig sind
für jede
der Reihen 205 und 206, nämlich ein Paar von Videozeigern
und ein Paar von Audiozeigern. Ein einziger Speicher 205 und 206 ist
im Lesemodus aktiv, und ein einziger Speicher ist in einem bestimmten
Zeitpunkt im Schreibmodus aktiv. Der Zugriff zu den beiden Speichern 205 und 206 ist
jedoch unabhängig
und ermöglicht
das sogenannte gleichzeitige Lesen und Schreiben auf der Platte.
-
Gemäß einer Variante des vorliegenden
Ausführungsbeispiels
sind die Speicher 202, 203, 205 und 206 Bereiche
des RAM 117, wobei jeder dieser Bereiche als einer verwaltet wird
oder gegebenenfalls mehrere Speicher vom FIFO-Typ.
-
Außerdem wäre eine Anpassung des vorliegenden
Ausführungsbeispiels
an die Verwaltung der zusätzlichen
Komponenten, wie zum Beispiel mehrere elementare Audioströme, durch
den Fachmann auf diesem Gebiet durch Einsatz der für diesen
Zweck benötigten
zusätzlichen
Speicher leicht erreichbar.
-
Außerdem ist es auch möglich, TS-Strompakete
direkt aufzuzeichnen, ohne dass die PES-Pakete daraus extrahiert
worden sind. In diesem Fall ist man von der Art (Audio, Video oder
andere) des Inhalts der aufgezeichneten Pakete nicht betroffen,
und die demultiplexierten TS-Pakete werden in Blöcken von 128 Kb aufgezeichnet,
d. h. durch ständige
Verwaltung der 112 und der 16 Kb. In diesem besonderem
Fall gibt es daher keine Entrahmung (reframing) abhängig von
der Art der in dem TS-Paketen enthaltenen elementaren Pakete, im
Gegensatz zu dem, was während
der Aufzeichnung der von der Transportschicht befreiten PES-Pakete
erfolgt.
-
Die beiden Übertragungssteuerschaltungen 204 und 207 sind
Statusgeräte,
deren Betrieb durch den Microprocessor 107 gesteuert wird.
Der Microprocessor zeigt den Steuereinheiten die Übertragungsaufgaben an,
die in dem Modus mit direktem Speicherzugriff erfolgen müssen (dieser
Modus wird im folgenden als der "UDMA"- oder Ultra Direct
Memory Access-Modus bezeichnet) und wird über die Durchführung die ser
Aufgaben durch eine Unterbrechungssteuerschaltung 208 erzeugt,
die mit den beiden Übertragungssteuerschaltungen 204 und 207 verbunden
ist. Im Rahmen des hier beschriebenen Beispiels benutzt man den
UDMA-Modus mit 33 MByte/s pro Sekunde, jedoch ist die Erfindung
offensichtlich nicht auf diesen Modus beschränkt.
-
Die beiden Übertragungssteuerschaltungen
verwalten den richtigen Plattenzugriff über eine Steuerschaltung 209,
die die Ausführung
der Platte und ihres Zugriffsmodus ermöglicht, nämlich der Zugriff zu den Befehl-
und Steuerregistern und der direkte Zugriff zu dem UDMA-Speicher.
Die Befehlsschaltung ist außerdem
für die
direkte Verwaltung der Steuer- und Befehlsregister der Platte mit
dem Microprocessor 107 verbunden, wobei diese die Übertragungsschaltungen 204 und 207 nicht
durchführt.
-
Die Schnittstellenschaltung von 2 enthält außerdem zwei Multiplexer 210 und 211,
die am Eingang jeweils die drei Eingangswege für die Daten empfangen, d. h.
die auf die Platte zu schreibenden Daten und die drei Ausgangswege
der Daten, d. h. für
die von der Platte gelesenen Daten. Jeder Multiplexer besitzt daher
am Eingang drei 16-Bit-Busse und einen 16-Bit-Bus am Ausgang. Die
Umschaltung zwischen den verschiedenen Wegen wird durch den Microprocessor 107 gesteuert.
-
Was den Schreibmultiplexer 210 betrifft,
besteht der erste Eingangsweg aus einem direkten Zugriff des Datenbus 215 der
externen Speicherschnittstelle 109 zu dem Datenbus 212 auf
der Platte 201, der zweite Weg besteht aus dem Ausgang
des FIFO-Speichers 202 für das Schreiben der Blöcke, während der
dritte Weg aus dem Ausgang des FIFO-Speichers 205 für das Schreiben
der Ströme
besteht.
-
Was den Lesemultiplexer 211 betrifft,
besteht der erste Ausgangsweg aus einem direkten Zugriff des Datenbus
der Platte zu dem Datenbus der externen Speicherschnittstelle 109,
während
der zweite Weg aus dem Ausgang des Speichers 203 für das Lesen
der Blöcke
und der dritte Weg des Ausgangs des FIFO-Speichers 206 für das Lesen
der Ströme
besteht.
-
Die jeweiligen Ausgänge der
beiden Multiplexer 210 und 211 sind jeweils mit
dem Datenbus der Platte und dem Datenbus der externen Speicherschnittstelle über die drei-Status-Ausgangsstufen 213 und 214 verbunden,
die durch die Automaten 204 und 207 gesteuert
werden.
-
Jeder Speicher 205 und 206 dient
als ein sogenannter Cache-Speicher für das Daten-Heading für die Platte
oder die von ihr kommt. Die Platte gemäß dem vorliegenden Ausführungsbeispiel
enthält
Sektoren mit 512 Byte. Der Inhalt der 256 Sektoren entspricht damit
der Größe einer
Videospeicherbank eines FIFO-Speichers eines der Speicher 205a und 206a,
plus einem Viertel der Größe eines
der Audiobereiche 205b und 206b, nämlich einer
Gesamtheit von 128 KByte. Das ist im wesentlichen die Menge von
Daten, die während der
mittleren Zeit der Verschiebung eines Lesekopfes der Platte von
oder zu der Platte übertragen
werden kann, die in dem vorliegenden Beispiel benutzt wird, nämlich ungefähr 10 ms.
-
Die Anwendung der FIFO-Speicher mit
den oben definierten Eigenschaften hat es ermöglicht, ein gleichzeitiges
Lesen und Schreiben von Bitraten von 15 MBit/s zu erreichen.
-
Das Schreiben eines Audio/Video-Stroms
auf der Platte wird anhand der 3 und 4 beschrieben.
-
3 zeigt
die Aufteilung der Audio- und Videodaten im PES-Format gemäß der Norm
MPEG II auf zwei FIFO-Speicher, nämlich eine Videobank (eine
der Banken des Teils 205a des Speichers 205) und
ein Audiobereich (Teil 205b des Speichers 205).
-
Die Daten werden auf die Platte in
Audio/Video-Blöcken
mit je 128 KByte geschrieben. Gemäß der vorliegenden Erfindung
wird ein fester Teil des Blocks mit 128 KByte für Videodaten (112 KByte), und
ein anderer Teil, der verfügbar
ist für
die Audiodaten (maximal 16 KByte), reserviert. Da die Blöcke sequentiell
geschrieben, sind daher die Audio- und Videodaten auf der Platte
verschachtelt.
-
Es wurde festgestellt, dass das Verhältnis der
minimalen Bitrate eines Videostroms zu der maximalen Bitrate eines
Audiostroms ungefähr
10 beträgt.
Durch Definition in einem Block mit 128 KByte eines Bereichs von
112 KByte, der für
Video und für
16 KBytes für
Audio reserviert ist, beträgt
das Verhältnis
7. Anders ausgedrückt,
durch Berücksichtigung
eines Audio/Video-Stroms, dessen Videodaten (in der Form von Video-PES-Paketen)
gespeichert sind, sobald sie in dem Bereich von 112 KByte und dessen
Audiodaten (in der Form von Audio-PES-Paketen) in dem Bereich mit
16 KByte gemultiplext sind, wird der Videobereich immer vor dem
Audiobereich gefüllt
sein.
-
Es ist offensichtlich, dass, abhängig von
den zu verwaltenden Strömen
und Bitraten, andere Verhältnisse
als 7 benutzt werden können.
Das ist insbesondere der Fall, wenn andere Komprimieralgorithmen
als diejenigen durchgeführt
werden, die durch die MPEG Norm empfohlen werden.
-
Wenn die Videobank mit 112 KByte
gefüllt
ist, wird der Inhalt dieser Bank auf die Platte geschrieben, gefolgt
von den Audiodaten, die während
derselben Zeit wie die 112 KByte der Videodaten akkumuliert werden,
unabhängig
von dem Füllzustand
des Audiobereichs. Durch diese Anordnung weiß man dennoch, dass weniger
als 16 KByte akkumuliert worden sind.
-
In diesem Zusammenhang gibt es keine
Korrelation zwischen den Grenzen der PES-Pakete und dem Start oder dem Ende einer
Videobank oder der akkumulierten Adiodaten. Die ersten Datenwörter des
Inhalts einer Videobank können
tatsächlich
in die Mitte eines Video-PES-Pakets fallen, während die letzten akkumulierten
Audiodatenwörter
nicht unbedingt dem Ende eines Audio-PES-Pakets entsprechen.
-
Es wird angenommen, dass die Maßnahmen,
die für
die Öffnung
einer Datei für
das Schreiben eines Stroms benötigt
werden, im voraus bei dem Wert des Plattendateisystems erfaßt wurden.
-
Den Video- und Audiodaten ist ein
Dateiidentifizierer, zu dem der Block der Platte gehört, und
ein Datenwort angefügt,
das die Menge der Audiodaten anzeigt, die von dem Status des Schreibzeigers
des Audiobereichs 205b des Speichers 205 zu der
Zeit abgeleitet werden, wo die Füllungsgrenze
der Videobank erreicht ist. Der Identifizierer ist auf 16 Bit codiert,
während
die Menge der Audiodaten auf 14 Bit codiert ist. 4 zeigt die Anordnung der Daten in einem
Block auf der Platte. Der Teil des Audiobereichs des Blocks, der
keine Audiodaten enthält,
ist mit sogenannten Füllbit
(stuffing bits) gefüllt,
um diese Daten auf 16 KByte zu vervollständigen.
-
Im Fall der Aufzeichnung von TS-Paketen
ist es offensichtlich nicht erforderlich, eine Menge von Audiodaten
anzuzeigen.
-
Der Dateiidentifizierer ist derselbe
für alle
Blöcke,
die zu derselben Datei gehören.
Der Identifizierer einer Datei ist eine redundante Information mit
derjenigen, die in einer Datenstruktur enthalten ist, die als sogenannter
Knoten (node) bezeichnet wird und jeder Datei zugeordnet ist. Der
Identifizierer wird jedoch benutzt, wenn eine schreib-offene Datei
nicht richtig geschlossen ist: Das Dateisystem identifiziert dann
aufgrund des Dateiidentifizierers alle die Blöcke, die zu ein und derselben
Datei gehören,
und aktualisiert die entsprechenden Parameter in dem Knoten der
Datei und die anderen Datenstrukturen, die beim Start des Teils
der Festplatte aufgezeichnet sind, der für das "Strom"-Dateisystem reserviert ist. Der Empfänger kennt
den Identifizierer der offenen Datei, da diese in einer Markierung
auf der Platte (bei einer Knotennummer 0) zu Beginn jeder Dateiöffnung geschrieben
wird, wobei diese Markierung beim Schließen der Datei auf null zurückgesetzt
wird.
-
Es ist ersichtlich, dass die Ausrichtung
der Audiodaten mit den Videodaten die Nicht-Benutzung eines variablen Teils des
16 KByte-Audiobereichs eines Blocks der Platte bewirkt. Jedoch ist
die Größe dieses
nicht benutzten Teils relativ klein, verglichen mit den 128 KByte
des vollständigen
Blocks. Wenn die Aufzeichnung der Video- und Audiopakete in der
Reihenfolge der Demultiplexierung der PES-Pakete erfolgt wäre, dann
wäre die
Aufzeichnung der Art jedes Pakets (Audio oder Video, zum Beispiel
in der Form eines PID-Identifizierers) notwendig gewesen. Der Platz,
der für
diese Aufzeichnung benötigt
wird, wäre
einerseits größer gewesen
als der, der für
die Füllbit
in dem Audioteil der aufgezeichneten Blöcke reserviert ist, und wäre andererseits
komplexer zu verwalten gewesen.
-
Die Vorteile der Ausrichtung der
Audiodaten mit den Videodaten sind jedoch beachtlich. Insbesondere würde, selbst
wenn die Audiodaten und die Videodaten nicht in derselben Weise
gemultiplext sind wie in den ankommenden Audio/Video-Strom, der
Synchronismus zwischen den Audio- und Videodaten überall aufrechterhalten.
Die Audiodaten in einem Block sind tatsächlich diejenigen, die zeitlich
gemultiplext mit den Videodaten desselben Blocks empfangen wurden.
Man kann somit einen Audio/Video-Strom beim Decoder ohne Abweichung
des Synchronismus rekonstruieren, die ein Überfließen der Audio- oder Videopuffer
des erneuten Lesens bewirken würde.
-
Der Synchronismus wird auch aufrechterhalten,
wenn der TS-Strom direkt aufgezeichnet wird.
-
Die Anwendung von vier Videospeicherbanken
mit je 112 KByte beim Lesen und/oder Schreiben sowie eines Audiobereichs
von 64 KByte macht es möglich,
die Verschiebezeiten des Schreibkopfes der Platte zu kompensieren
und mögliche
Probleme bei dem Zugriff zu der Platte zu kompensieren, die das
Schreiben verzögern
könnten.
Der Microprocessor 107 versucht trotzdem, die größte Zahl
der Banken des Speichers 205 leer zu halten, und das kann
als eine Verwaltung eines leeren Puffertyps bezeichnet werden. Um
die Audio/Video-Daten zu der Platte zu übertragen, triggert der Microprocessor 107 einen
Mechanismus ("DMA") für einen direkten
Speicherzugriff, der die Übertragung
der Audio/Video-Daten von dem Demultiplexer 106 zu einer
Videobank und dem Audiobereich des FIFO-Speichers 205 durchführt. Im
Rahmen des Ausführungsbeispiels handelt
es sich um einen direkt in dem Demultiplexer 106 integrierten
DMA.
-
Wenn eine Videobank des Speichers 205 voll
ist, erzeugt die Schreibübertragungs-Steuerschaltung 207 eine
Unterbrechung für
den Microprocessor 107, und das Schreiben wird in der nächsten Video-FIFO-Speicherbank
fortgesetzt. Die Video-FIFO-Speicherbanken
werden im Umlauf ausgeführt.
Der Microprocessor, der außerdem
das Plattendateisystem verwaltet, bestimmt den ersten Schreibsektor
von 512 Byte des Blocks mit 120 KByte und liefert ihn über die
Steuerschaltung 209 zu der Platte. Der Microprocessor initialisiert
außerdem
den Mechanismus für
den direkten Speicherzugriff bei der Platte für die Übertragung der Daten von der
ersten Video-FIFO-Speicherbank und die entsprechende Menge von Audio
von dem Audio-FIFO 205b des
Speichers 205. Die Platte schreibt dann 128 KBytes in 256
Sektoren unter Steuerung durch die Schaltung 207. Nach
der Übertragung
der 128 KByte von Daten gibt die Festplatte den Ultra-DMA-Modus aus,
die Steuerschaltung 207 befreit den Ultra-DMA-Modus und
informiert den Microprocessor darüber durch eine Unterbrechung.
Diese Übertragung
wird jedesmal wiederholt, wenn der Microprocessor durch die Steuerschaltung 207 eine
Unterbrechungsanforderung empfängt,
und bis hier gibt es eine Entscheidung, die Aufzeichnung anzuhalten.
Der Microprocessor aktualisiert dann den Knoten (node) entsprechend
der Datei, in der das Schreiben stattgefunden hat, sowie die entsprechende
Bittabellen. Die Rolle der Bittabellen und des Knotens ergeben sich
im folgenden detaillierter.
-
Es sollte bemerkt werden, dass gemäß dem vorliegenden
Ausführungsbeispiel
der Audiobereich jedes Speichers 205 und 206 nicht
als Banken mit fester Größe organisiert
ist, wie es für
die Videobanken mit 112 KByte der Fall ist. Die Audiobereiche werden
dadurch verwaltet, indem im Schreibmodus die Menge der Audiodaten,
die für
jede Videobank geschrieben werden, gespeichert wird und im Lesemodus
die Informationen berücksichtigt
werden, die sich auf die in jedem Block gelesene Audiomenge beziehen.
-
Gemäß dem vorliegenden Ausführungsbeispiel
werden nur die PES-Daten auf der Platte gespeichert. Das bedeutet,
dass die Referenztaktwerte ("PCR" = reference clock
values) nicht aufgezeichnet werden. Jedoch wäre es, wie bereits erwähnt, ebenso
denkbar, Pakete der TS-Transportschicht aufzuzeichnen.
-
Der Lesemechanismus unterscheidet
sich nennenswert von dem Schreibmechanismus. Man bemerkt eine Lese-Initialisierungsphase
und einen ständigen
Lesezustand.
-
Um das Lesen in dem Strom-Modus zu
initialisieren, überträgt der Microprocessor
zu der Festplatte die Adresse des ersten zu übertragenden Blocks und fordert
die Übertragung
der 256 Sektoren an. Wenn die Übertragung
vollendet ist, erzeugt die Übertragungssteuerschaltung 207 eine
Unterbrechung, um das Ende der Übertragung
anzuzeigen. Der Microprocessor fordert daraufhin die Übertragung
des nächsten
Blocks, undsoweiter, bis vier Video-FIFO-Speicherbanken des Blocks 206 (und
ein Teil des Audiobereichs 206b) gefüllt sind. Der Microprocessor
initialisiert nur die Übertragung
und die Decodierung der Daten zu dem Decoder 113. Wenn
die Initialisierung einmal erfolgt ist, erfolgt die Übertragung
der Daten ohne eine Intervention des Microprocessors: der Decoder 113 liest
die Audio- und Videodaten in dem Maße, wie sich die Anforderungen ändern. Die
Geschwindigkeit der Leerung der FIFO-Speicher ist tatsächlich abhängig von dem Inhalt der komprimierten
Audio- und Videopakete.
-
Der ständige Zustand ist folgendermaßen: Wenn
eine Speicherbank mit 112 KByte des Video-FIFO vollständig geleert
ist (und wenn die entsprechenden Audiodaten ebenfalls gelesen worden
sind), wird eine Unterbrechungsanforderung den Microprocessor darüber benachrichtigen,
und dieser triggert die Übertragung eines
neuen Blocks, so wie es möglich
ist, um alle FIFO-Videobanken voll zu halten. Diese Verwaltung ist
vom sogenannten Typ eines "vollen
Puffers".
-
Gemäß dem vorliegenden Ausführungsbeispiel
erfolgt die Rückgewinnung
des Systemtakts durch Demultiplexierung der Transportpakete, die
einem laufenden Programm entsprechen, und durch Verriegelung einer
phasenverkoppelten Schleife mit den Referenztaktwerten ("PCR") eines ankommenden
TS-Stroms. Dieser Vorgang ermöglicht,
die benötigte
Taktfrequenz von 27 MHz zu gewinnen. Man benutzt somit einen TS-Strom zur
Rückgewinnung
der Referenztaktrate, selbst wenn dieser Takt im Zusammenhang mit
Audio- und Videodaten benutzt wird, die in diesem Strom nicht in
Echtzeit gesendet werden.
-
Dieses Prinzip der Rückgewinnung
der Taktrate ist durch das Blockschaltbild von 10 dargestellt, das eine phasenverkoppelte
Schleife (PLL) aus einem Komparator/Subtrahierer 1001 enthält, gefolgt
von einem Tiefpaßfilter 1002 und
einem spannungsgesteuerten Oszillator 1003. Ein Zähler 1004 schließt die Schleife zwischen
dem Ausgang des Oszillators 1003 und einem Eingang des
Komparators/Subtrahierers 1001. Der Komparator/Subtrahierer
empfängt
außerdem
die PCR-Taktwerte
von einem TS-Strom. Die Differenz zwischen einem örtlichen
Taktwert von dem Zähler 1004 und
dem PCR-Taktwert wird zu dem Tiefpaßfilter 1002 übertragen,
und die Rate des Schleifenausgangssignals wird entsprechend angepaßt. Der
in dem Zähler 1004 enthaltene
Taktwert wird regelmäßig mit
dem demultiplexierten PCR-Taktwert aktualisiert. Das hat die Wirkung der
Synchronisierung des Zählers 1004 auf
den Takt des Coders des TS-Stroms. Dieser Takt dient zur Decodierung
und zur Darstellung des in Echtzeit empfangenen TS-Stroms. Wie später beschrie ben
wird, wird nur die Taktrate am Ausgang der PLL-Schleife für die Decodierung
und die Darstellung der von der Festplatte gelesenen Daten benutzt.
-
Es können andere Vorgänge für die Taktrückgewinnung
angewendet werden. Insbesondere kann man einen freien Takt verwenden.
Insbesondere ist die für
den 27 MHz Takt benötigte
Genauigkeit nicht notwendigerweise so hoch wie die für die MPEG
II-Norm beim Coder, nämlich
30 ppm. Diese Genauigkeit wird nur dann wirklich benötigt, wenn
ein Strom der direkt von einem Coder kommt, decodiert werden muß. In einem
derartigen Fall kann tatsächlich
eine übermäßige Abweichung
des Taktes des Decoders bewirken, dass der Pufferspeicher des Decoders
austrocknet (leer wird) oder überläuft. Jedoch
haben die Erfinder in diesem Fall des Lesens eines Stromes aus einer örtlichen
Festplatte festgestellt, dass diese Einschränkung entfällt: Der Decoder kann tatsächlich die
Bitrate des Stroms im Lesemodus in Abhängigkeit von den Anforderungen
regeln, was nicht der Fall ist, wenn der Strom ihn direkt erreicht,
ohne dass er den durch die Platte gebildeten Puffer durchlaufen
muß.
-
Die Decodierung der Videohalbbilder
wird bei einem bestimmten Wert der Füllung eines Decodierpuffers
getriggert oder ausgelöst,
der einen Teil des RAM 126 bildet. Dieser Wert beträgt zum Beispiel
1,5 MBit für
einen Puffer mit einer Kapazität
von 1,8 MBit. Dieser Zeitpunkt, bezeichnet mit TOP BUFFER VIDEO,
wird als der Referenzzeitpunkt für
die Decodierung und die Darstellung der Videohalbbilder angesehen.
Der DTS-Taktwert des ersten aus dem Puffer des Decoders gelesenen
Halbbilds wird in dem Zähler 1005 von 10 geladen. Dieser Zähler zählt bei
der durch die PLL-Schleife erzeugten Taktrate. Die Decodierung des ersten
Video-Halbbildes
wird unmittelbar ausgelöst,
während
die Darstellung dieses ersten Halbbildes sowie die Decodierung und
die Darstellung der folgenden Halbbilder gemäß den entsprechenden DTS- und PTS-Taktwerten
erfolgt, relativ zu dem durch den Zähler 1005 erzeugten
Takt.
-
Die Decodierung und die Darstellung
der Audio-Halbbilder beruhen ebenfalls auf dem derart erzeugten
Takt.
-
5 zeigt
die Art, in der die beiden Dateisysteme "Block" und "Strom" an der Benutzung der Festplatte beteiligt
sind. Gemäß dem vorliegenden
Ausführungsbeispiel
nehmen das Dateisystem und der zugehörige "Block"-Datenbereich mehrere Hundert Megabyte
ein, während
das "Strom"-Dateisystem und
sein Datenbereich mehrere Gigabyte einnehmen.
-
Nicht detaillierter beschrieben werden
das "Block"-Dateisystem, die
Organisation des entsprechenden Dateisystems in bekannter Weise,
zum Beispiel vom UNIX- oder MINIX-Typ mit einem "Superblock", einer Knotentabelle, einer Datenblocktabelle
sowie den tatsächlichen
sogenannten Knoten- und Datenbereichen. Eine Eigenschaft dieses
Dateisystems besteht jedoch darin, dass sie einen Zufallszugriff
zu den Daten begünstigt,
zum Beispiel über
die Anwendung der mehrfachen indirekten Adressierung (d. h. eine
Reihe von Adresszeigern, von denen nur der letzte die Adresse des
gesuchten Datenblocks angibt), während
das "Strom"-Dateisystem die
Eigenschaft der Optimierung des sequentiellen Zugriffs aufweist.
-
Die Festplatte enthält außerdem einen
einzigen sogenannten "Boot-Block" für die Gesamtheit
der beiden Dateisysteme. Die in dem Boot-Block erscheinenden Parameter
sind der Index des sogenannten Boot-Programms, der Name des Volumens,
die Anzahl der Byte je Sektor, die Anzahl der Sektoren des Volumens
sowie die Anzahl der Sektoren des Boot-Blocks.
-
Wie bereits erwähnt, sind die für das "Strom"-Dateisystem gewählten Parameter
die folgenden: die Größe eines
Sektors beträgt
512 Byte, ein "Strom"-Block enthält 256 Sektoren.
-
Das ist zu vergleichen mit der Größe eines
Blocks des "Block"-Dateisystems, nämlich 4
Sektoren.
-
6 zeigt
die Organisation des "Strom"-Dateisystems. Dieses
Dateisystem enthält
zunächst
einen mit "Superblock" bezeichneten Block
mit allgemeinen Informationen über
das Dateisystem. Die Tabelle 1 gibt die in diesem Superblock enthaltenen
Informationen an:
Tabelle
1
-
Die Adressen werden durch die Sektornummern
angegeben, wobei alle Sektoren der Platte von 0 bis zu der Maximalzahl
der Sektoren der Platte nummeriert sind.
-
Zugeordnet zu jeder Datei oder dem
Sachregister des Dateisystems ist eine mit "Knoten" bezeichnete Datenstruktur, die den
Namen der Datei oder des Sachregisters, seine Größe, seine Lage und die seiner
Attribute anzeigt. Die Knoten sind nach dem Superblock zusammen
in dem Dateisystem gruppiert. Die Tabelle 2 zeigt die Zusammensetzung
eines Knotens an:
Tabelle
2
-
Eine Folge ist ein Verlauf von aneinandergrenzenden
Blöcken,
die einen Teil ein und derselben Datei bilden. Sie ist bestimmt
durch die Adresse des ersten Blocks der Folge, gefolgt von der Anzahl
der aneinandergrenzenden Blöcke.
Wenn die Datei aufgeteilt ist, kehrt der Zeiger zu einem Erweiterungsbereich
mit zusätzlichen
Folgen (Folgedateibereich) mit Hilfe eines geeigneten Dateiidentifizierers
zurück.
Daraufhin kann eine Folgedatei zu einer zusätzlichen Datei zurückkehren,
undsoweiter. Dieser Typ einer einfachen indirekten Adressierung
ist auf die sequentielle Art der Daten gut anwendbar. Eine sukzessive
Manipulation mit mehreren Zeigern wird dadurch vermieden, wobei
eine derartige Manipulation zeitaufwendig ist. Die mehrfachen indirekten
Adressierungen sind für
das "Block"-Dateisystem im Hinblick
auf eine Erleichterung eines Zufallszugriffs zu den Daten reserviert.
-
Die Attribute werden in dem "Block"-Dateisystem gespeichert.
Man kann somit sich auf ein Dateisystem mit in dem anderen verwalteten
Daten beziehen.
-
Die zusätzlichen Folgedateien werden
neu in dem "Folgen"-Abschnitt nach dem
für die
Knoten reservierten Bereich gruppiert (siehe 6).
-
Das "Strom"-Dateisystem enthält außerdem eine "Bittabelle", die für jeden
Knoten jede zusätzliche
Dateifolge und jeden Datenblock anzeigt, ob er besetzt ist oder
nicht. Zu diesem Zweck wird ein Bit jedem Knoten, einer zusätzlichen
Folgedatei und einem Block zugeordnet.
-
7 ist
ein Flussdiagramm des Schreibvorgangs einer Datei. Zunächst wird
ein Knoten für
die Datei geschaffen. Die Lage dieses Knotens auf der Platte ist
bestimmt durch Abtastung der Bittabelle der Knoten. Durch Anwendung
der Bittabelle der Blöcke
ermittelt der Microprocessor 107 eine freie Folge von Blöcken und schreibt
die auf ihr aufzuzeichnenden Daten Block nach Block. Am Ende der
Folge werden die Adresse und die Länge der Folge des Knotens der
Datei in einem Speicher gespeichert. Die Markierungen der Bittabelle der
Blöcke,
die den Blöcken
entsprechen, die der Aufzeichnung der Folge zugeordnet sind, werden
dann in einer Tabelle in dem Speicher aktualisiert. Der Vorgang
der Ermittlung und des Schreibens einer Folge wird erforderlichenfalls
wiederholt, bis die vollständige
Datei aufgezeichnet worden ist. Wenn die Aufzeichnung der Daten
vollständig
ist, werden die aktualisierten Informationen für die Lage der Daten (d. h.
des Knotens und der aktualisierten Bittabellen) selbst auf der Platte
aufgezeichnet. Die Informationen werden auf die Platte nur am Ende
der Aufzeichnung geschrieben, um so ständige Hin- und Herbewegungen
durch den Schreib/Lese-Kopf zu vermeiden.
-
Zum Lesen einer Datei liest der Microprocessor
zunächst
den Knoten dieser Datei sowie die Definitionen aller sich darauf
beziehenden zusätzlichen
Folgen. Das vermeidet eine Verschiebung des Lese/Schreib-Kopfes
während
des Lesens der Bereiche zu Beginn des Dateisystems.
-
Eine der denkbaren Anwendungen der
Platte ist das Lesen eines derzeit aufgezeichneten Programms in
Nicht-Echtzeit. Zum Beispiel muß der
Fernsehbetrachter, der ein sogenanntes Live-Programm betrachtet, für einige
Minuten weggehen, und wünscht
die Betrachtung genau in dem Zeitpunkt wieder aufzunehmen, bei dem
er unterbrochen wurde. Wenn er weggeht, beginnt er die Aufzeichnung
des Pro gramms. Bei seiner Rückkehr
löst er
das Lesen des Programms aus, obwohl die Aufzeichnung dieses Programms
immer noch läuft.
Da der Lese/Schreib-Kopf Verschiebungen von den Lesebereichen zu
den Schreibbereichen und umgekehrt durchführen muß und die Zeit der Verschiebung
des Kopfes in der Größenordnung
von 10 ms für
die im Rahmen des vorliegenden Beispiels liegt, müssen bestimmte
Vorsichtsmaßnahmen
getroffen werden, um die minimale Bitrate zu garantieren, die für das Lesen
und das Schreiben benötigt
wird.
-
Um den Einfluß der Kopfsprünge auf
die Bitrate abzuschätzen,
geht man von den ungünstigsten
Bedingungen aus, indem man zum Beispiel die maximale Bitrate eines
MPEG II-Stroms annimmt, nämlich
15 MBit/s. Ein Block mit 120 KByte entspricht somit 66,7 ms von
Audio- und Videodaten, wie es in 8 dargestellt
ist. Das Lesen oder das Schreiben eines Blocks, bei einer Übertragungsrate
von 96 MBit/s, dauert 10,4 ms. Wenn dem Lesen kein Sprung vorausgeht,
bleiben 56,3 ms als Sicherheitsabstand verfügbar.
-
Wie in dem vorangehenden Absatz erläutert, nimmt
ein Kopfsprung von einem ersten Block zu einem zweiten Block, der
nicht an den ersten Block angrenzt, 10 ms ein. Es verbleibt somit
ein freies Intervall von 46,3 ms.
-
Wenn man innerhalb eines Intervalls
von 66,7 ms ein Lesen und ein Schreiben bewirken muß und beiden
Vorgängen
ein Sprung vorausgeht, bleiben nur 25,9 ms verfügbar. Da fehlerhafte Sektoren
innerhalb eines Blocks ebenfalls Kopfsprünge erzeugen können, ist
es vorzuziehen, die Anzahl der Sprünge im Lesemodus und im Schreibmodus
auf ein Minimum zu begrenzen.
-
Gemäß dem vorliegenden Ausführungsbeispiel
wird die Anzahl der Kopfsprünge
während
des gleichzeitigen Aufzeichnens und Lesens dadurch verringert, indem
man ein verschachteltes Schreiben der Blöcke bewirkt, wie es in den 9a und 9b dargestellt ist.
-
Wenn die Aufzeichnung des Programms
ausgelöst
oder getriggert wird (zum Beispiel durch einen Fernsehzuschauer),
erfolgt das Schreiben jedes zweiten Blocks in einer Folge von aneinandergrenzenden
Blöcken.
Das ist durch die 9a dargestellt.
Ein Sprung des Lesekopfs erfolgt daher vor dem Schreiben jedes Blocks.
-
Wenn das Lesen des Programms ausgelöst oder
getriggert wird, wird das Schreiben in den vorher freigelassenen
Blöcken
fortgesetzt. Zum Beispiel erfolgt nach dem Lesen des ersten geschriebenen
Blocks (der Block am weitesten links in 9b) das nächste Schreiben in dem unmittelbar
angrenzenden Block. Es erfolgt dann kein Sprung des Lese/Schreibkopfes
zwischen dem Lesen in dem ersten Block und dem Schreiben in dem
zweiten Block. Die Verringerung der Anzahl der Sprünge des
Kopfes resultiert außerdem
in einer konsequenten Verringerung des durch diese Verschiebungen
erzeugten Rauschens.
-
Wenn alle Blöcke vor dem Beginn des Lesens
geschrieben worden sind, wird das Schreiben in einer nicht-verschachtelten
Weise fortgesetzt. Gemäß einer
Variante der Ausführungsform
wird, wenn der Zweck nur die Betrachtung des Programms in Nicht-Echtzeit
ist, ohne dass eine permanente Aufzeichnung beabsichtigt ist, das
Schreiben durch Überschreiben
des Inhalts der vorher gelesenen Blöcke fortgesetzt.
-
Gemäß einer Variante der Ausführungsform
werden, wenn eine Aufzeichnung erhalten bleiben soll, die entsprechenden
verschachtelten Blöcke
sequentiell in einer solchen Weise neu geschrieben, um diese Blöcke zu entschachteln.
Dadurch muß während des
darauffolgenden Lesens der Lesekopf keine Sprünge aufgrund der Verschachtelung
durchführen.
-
Die Erfindung ist natürlich nicht
auf die angegebene beispielhafte Ausführungsform beschränkt. Zum Beispiel
können
andere Plattentypen benutzt werden. Es reicht aus, die entsprechenden
Schnittstellen anzupassen. Besonders in Betracht gezogen werden
Festplatten mit anderen Eigenschaften als die hier dargestellten,
neubespielbare, magneto-optische Platten oder Datenspeicherträger.
-
Es sollte bemerkt werden, dass die
Erfindung auch in dem Fall anwendbar ist, wo die Audio- und Videodaten
unterschiedlich codiert sind, insbesondere in dem Fall, wo die PES-Pakete
in einem Programmtyp-Strom ("Programmstrom") gemäß der MPEG Norm
oder die Audio- und Videodaten in anderen Strukturen als diejenigen
der PES-Pakete enthalten
sind.
-
Außerdem ist es, wenngleich bestimmte
Elemente der Ausführungsform
in einer unterschiedlichen strukturellen Form dargestellt sind,
für den
Fachmann auf diesem Gebiet offensichtlich, dass ihre Ausführung innerhalb
einer einzigen körperlichen
Schaltung nicht von dem Schutzumfang der Erfindung abweicht. Ebenso weicht
die Software und die Hardware-Ausführung, oder umgekehrt, eines
oder mehrerer Elemente nicht von dem Schutzumfang der Erfindung
ab: Die Speicher vom FIFO-Typ können
zum Beispiel durch Anwendung eines Speichers mit konventioneller
Adressierung mit einer Software-Verwaltung von Adressenzeigern angestrebt
oder emuliert werden.
-
Es wird außerdem bemerkt, dass die zu
speichernden Daten von anderen Übertragungsmitteln
kommen können
als von denjenigen, die in der beispielhaften Ausführungsform
gezeigt wurden. Insbesondere können
bestimmte Daten über
ein Modem laufen.
-
Gemäß dem oben beschriebenen Ausführungsbeispiel
sind die Bereiche der Festplatte, die für jedes der beiden Dateisysteme
reserviert sind, fest oder fixiert. Gemäß einer anderen Ausführungsform
werden die Größen dieser
Bereiche dynamisch an die Anforderungen angepaßt. Auf diese Weise wird ein
erster Systemdatenbereich für
das "Block"-Dateisystem, ein
zweiter Systemdatenbereich für
das "Strom"-Dateisystem, dann ein einziger Bereich
von Blöcken
vom "Strom"-Typ gebildet. Die
Verwaltung des "Strom"-Dateisystems wird
folgendermaßen
durchgeführt.
Die Verwaltung der "Block"-Dateisysteme wird
in der folgenden Weise durchgeführt:
Wenn eine Datei von diesem Typ aufgezeichnet werden soll, reserviert
das "Block"-Dateisystem das Minimum der benötigten Blöcke mit
großer
Abmessung und teilt diese Blöcke
mit großer
Abmessung (256 Sektoren gemäß dem vorliegenden
Beispiel) in Blöcke
mit kleiner Abmessung (4 Sektoren) auf. Die Bittabelle der Knoten
und die Bittabelle der Bereiche des Block-Dateisystems verwalten
diese Fragmente von Blöcken
so, als ob es sich um Blöcke
mit kleiner Abmessung handelt.