-
Die
Erfindung betrifft ein Verfahren zum Kodieren von Trickbetriebsart-Informationen
in einem digitalen Video-Umfeld, und eine Vorrichtung zur Erzeugung
dieser Informationen.
-
Ein
mit MPEG II oder DVB konformer digitaler Fernsehstrom umfasst mehrere
Schichten, darunter die elementare Stromschicht, die paketisierte
elementare Strom-(PES)-Schicht und die Transportstrom-(TS)-Schicht.
Ein entsprechender Dekodierer umfasst üblicherweise einen Demultiplexer
zum Filtern besonderer TS-Schicht-Pakete,
einen PES-Parser zum Entfernen der PES-Schicht und zum Überführen der ursprünglichen
elementaren Ströme,
und wenigstens einen Video-Dekodierer zum Dekodieren des elementaren
Videostroms.
-
Zukünftige Dekodierer
werden Massenspeicher enthalten, um komprimierte TS- oder PES-Ströme aufzuzeichnen.
Um Trickwiedergabe-Betriebsarten auszuführen, wie langsame oder schnelle
Vorwärts-
oder Rückwärts-Wiedergabe,
muss der Videostrom bearbeitet werden, bevor er von dem Massenspeicher
zum Video-Dekodierer überführt wird.
Insbesondere bei Wiedergabe in schnellem Vor- oder Rücklauf müssen nur spezifische Bilder
oder Bildsequenzen angezeigt werden. Somit ist ein wirksamer Weg
für den
Zugriff zu diesen Informationen auf dem Aufzeichnungsmedium erforderlich.
-
Das
Dokument EP-0 695 098 betrifft eine Steuervorrichtung für kodierte
Daten, bei der auf Trickwiedergabe-Betriebsarten bezogene Informationen
auf einer Platte aufgezeichnet werden. Nur notwendige Daten werden
zur Zeit eines willkürlichen
Zugriffs gelesen.
-
Die
Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur
Erzeugung von Trick-Betriebsart-Informationen, die eine leichtere
Verarbeitung als bisher ermöglicht.
-
Ein
Gegenstand der Erfindung ist ein Verfahren zur Erzeugung von Trick-Betriebsart-Informationen
für einen
digitalen Videostrom, der in einem digitalen Videosystem aufgezeichnet
werden soll, das die Schritte umfasst:
- – Analysieren
der Struktur des Videostroms und Ableiten einer Mehrzahl von Descriptoren
von Objekten des Stroms;
- – Schreiben
des Stroms auf ein Aufzeichnungsmedium;
- – Einfügen von
Informationen in die Objekt-Descriptoren, die die Adressen der Objekte
auf dem Aufzeichnungsmedium beschreiben.
-
Gemäß der Erfindung
enthält
jeder Descriptor eine Verknüpfung
zu dem vorhergehenden und/oder zu dem folgen Descriptor.
-
Dadurch
kann mittels der Verknüpfungen
zwischen den Descriptoren ein Kanal von Descriptoren erstellt werden.
Somit ist es möglich,
den sequentiellen Inhalt des Stroms in einer sehr praktischen Weise
durch eine Datenstruktur zu ersetzen, die die Verarbeitung sehr
viel leichter machen kann.
-
Andere
Eigenschaften und Vorteile der Erfindung ergeben sich aus der Beschreibung
von besonderen, nicht begrenzenden Ausführungsbeispielen der Erfindung,
die in den Zeichnungen dargestellt sind. In den Zeichnungen stellen
dar:
-
1 ein
Blockschaltbild eines erfindungsgemäßen Fernsehempfängers;
-
2 ein
Diagramm des Dateisystems eines Festplatten-Laufwerks, das als Massenspeicher-Medium gemäß der vorliegenden
Ausführungsform
verwendet wird;
-
3 ein
Diagramm des Teils des Dateisystems, das der Aufzeichnung und Wiedergabe
von Audio/Video-Strömen
zugeordnet ist;
-
4a ein
Diagramm einer elementaren Speichereinheit (,SEU'), die zur Speicherung von Stromdaten
in PES-Betriebsart dient, während 4b ein
Diagramm einer SEU ist, die zur Speicherung von Stromdaten in Transportstrom-Betriebsart
dient;
-
5a und 5b Diagramme
der FIFOs, die zur Speicherung von PES-Daten dienen, die in der PES-Betriebsart in das
Festplatten-Laufwerk geschrieben werden sollen;
-
6 ein
Diagramm, das verschiedene Datenstrukturen zur Speicherung von Trick-Betriebsart-Informationen
gemäß der vorliegenden
Ausführungsform
darstellt;
-
7a eine
Darstellung eines PES-Schicht-Videostroms
vor Einfügung
eines Blind-PES-Headers;
-
7b eine
Darstellung des PES-Schicht-Videostroms
von 7a nach Einfügung
eines Blind-PES-Headers;
-
8a eine
Darstellung eines TS-Schicht-Videostroms
vor Einfügung
eines TS-Pakets einschließlich eines
Blind-PES-Headers;
-
8b eine
Darstellung eines TS-Schicht-Videostroms
von 8a nach Einfügung
eines TS-Pakets einschließlich
eines PES-Headers;
-
9 eine
Darstellung eines elementaren Video-stroms, wie er von dem Eingangspuffer
eines Video-Dekodierers gesehen wird.
-
Die
vorliegende Beschreibung erfolgt im Rahmen eines Systems, das einen
mit MPEG II konformen Datenstrom akzeptiert und das entsprechende
Vokabular verwendet. Mehr Informationen über die MPEG II-Norm-Syntax
für Video-
und Transport-Ebenen-Kodierung
findet man zum Beispiel in den Dokumenten: ISO/IEC 13818-1 (Information
Technology – Generic
coding of moving pictures and associated audio information: Systems)
und ISO/IEC 13818-2 (Information Technology – Generic coding of moving
pictures and associated audio information: Video). Das vorliegende
System ist auch konform mit der DVB ETR-154-Norm.
-
Die
Erfindung ist natürlich
nicht auf das MPEG II-Umfeld oder die in der vorliegenden Patentanmeldung
beschriebenen Datenschichten beschränkt.
-
1. Systemüberblick
-
Um
ein hochqualitatives Trick-Betriebsart-Management zu erzielen, wenn
ein Videostrom von einem lokalen Massenspeicher ab gespielt werden
soll, ist die Kenntnis der Struktur des aufgezeichneten Videostroms
erforderlich. Diese Struktur wird nachfolgend als Trick-Betriebsart-Information
bezeichnet. Sie resultiert von einem Parsing-Prozess, der vor und
während
der Aufzeichnung des Videostroms ausgeführt wird. Das Parsing besteht
aus der Analyse der Strom-Struktur und der Speicherung der Eigenschaft
von bestimmten syntaktischen Strukturen. Informationen hinsichtlich
der Strukturen wie auch ihrer Position auf dem Massenspeicher-Medium
werden ebenfalls aufgezeichnet.
-
Gemäß der vorliegenden
Ausführungsform
werden Videodaten ohne darauf beschränkt zu sein bei der Transportstrom-Schicht
oder der paketisierten elementaren Stromschicht aufgezeichnet. Trick-Betriebsart-Informationen
beschreiben die Struktur des gespeicherten Videostroms bei einer
Anzahl von Schichten (Transportstrom (TS) – paketisierter elementarer
Strom (PES) – elementarer
Strom (ES) gemäß der allgemein
bekannten MPEG II-Syntax), bis hinunter zu der komprimierten Video-Information.
-
Das
Haupt-Ausführungsbeispiel,
das die Aufzeichnung auf der TS-Schichtebene ausführt, wird
zuerst beschrieben. Unterschiede zu der zweiten Ausführungsform,
die auf der PES-Schichtebene aufzeichnet, werden in jedem Fall angegeben.
Beide Ausführungsformen
sind in dem Sinn kompatibel, dass beide Aufzeichnungsebenen in demselben
Dekodierer zusammenwohnen können,
sie werden beide in Verbindung mit 1 beschrieben.
-
(a) TS-Schicht-Aufzeichnung
-
1 ist
ein Blockschaltbild eines digitalen Fernsehempfängers gemäß der vorliegenden Ausführungsform.
Der Empfänger 1 umfasst
eine Eingangsschaltung 2 (FE), die einen Transportstrom
an einen Transportstrom-Demultiplexer und ein Filter 4 liefern kann.
Die Eingangsschaltung enthält üblicherweise
einen Tuner, einen Analog/Digital-Wandler, einen geeigneten Demodulator
und Vorwärts-Fehlerkorrektur-Schaltungen.
Sie empfängt
ein Signal von einer Signalquelle (nicht dargestellt), die üblicherweise
ein Kabel, eine Satellitenschüssel
mit zugeordnetem rauscharmen Block und Abwärts-Wandler, oder eine terrestrische
Antenne ist. Umfassende Betriebsmittel in dem System sind ein RAM 5,
ein PES-Parser 6,
ein zweiter Transportstrom-Demultiplexer 7, Audio- und
Video-Dekodierer 8 und 9 und ein Mikroprozessor 10.
Das TS-Filter und
der Demultiplexer 4 werden durch den Mikroprozessor so
programmiert, dass aus dem ankommenden Transportstrom Datenpakete
gefiltert und herausgezogen werden, die bestimmten Kriterien entsprechen,
wobei typische Datenpakete bestimmte Paket-Identifizierer-(PID)-Werte haben. Der
Inhalt des ankommenden Stroms, insbesondere PID-Zuweisung, ist beispielsweise
aus einer bestimmten Zahl von übertragenen
Datentabellen bekannt, die durch die MPEG II-Norm oder die DVB-Service-Informations-Norm
(Dokument-Referenz ETSI EN 300 468) definiert sind. Private PID-Werte können auch
definiert werden.
-
Die
gefilterten Transportstrom-Datenpakete werden im Speicher 5,
von dem ein Teil als TS Schreib-FIFO 15 angeordnet ist,
für die
weitere Verarbeitung durch den Strom-Parser 3 gepuffert.
-
Im
Gegensatz zu einem konventionellen Demultiplexer, der die verschiedenen
TS-Pakete getrennten Puffern gemäß ihrem
PID-Wert, und damit ihrer Zielanwendung, zuführt (z.B. den Audio- und Video-Dekodierern),
schreiben das TS-Filter und der Demultiplexer 4 alle Pakete,
die PIDs von aufzuzeichnenden Strömen entsprechen, in der Reihenfolge
des Paketempfangs in einen einzigen Puffer (d.h. TS-Schreib-FIFO 15 bei
der vorliegenden Ausführungsform).
-
Die
komprimierten Stromdaten und andere Daten (z.B. Steuerdaten) werden
zwischen peripheren Blöcken über Datenwege übertragen,
die durch den Bus 11 nachgebildet sind. Der Empfänger umfasst
ferner eine Massenspeicher-Vorrichtung 12, die gemäß der vorliegenden
Ausführungsform
ein Festplatten-Laufwerk ist. Die Massenspeicher-Vorrichtung 12 ist
mit dem Bus 11 über
eine Schnittstelle 13 verbunden, im vorliegenden Fall eine
EIDE-Schnittstelle.
Die Video-Dekodierer-Schaltung 9 ist in bekannter Weise
mit der Videoverarbeitungs- und Anzeigeschaltung 14 verbunden.
Der Speicher 5 enthält
die folgenden Bereiche:
- – den bereits erwähnten Schreib-FIFO 15 zur
Speicherung gefilterter TS-Paketdaten, die auf die Festplatte geschrieben
werden sollen,
- – einen
TS-Lese-FIFO 16 zur Speicherung von TS-Paketdaten, die
von der Festplatte gelesen werden,
- – einen
Trick-Betriebsart-Pufferbereich 17 zur Speicherung von
Trick-Betriebsart-Informationen, die auf die Festplatte geschrieben
oder von dieser gelesen werden sollen.
-
(b) PES-Schicht-Aufzeichnung
-
Für die PES-Schicht-Aufzeichnung
enthält
der Speicher 5 drei Schreib-FIFOs 18 bis 20,
die jeweils Audio-PES, Video-PES und anderen Daten zugeordnet sind,
und drei Lese-FIFOs 21 bis 23, die auch jeweils ähnlichen
Paketarten zugeordnet sind.
-
Wenn
der Dekodierer in der PES-Betriebsart arbeitet, wird der zweite
Demultiplexer 7 nicht verwendet, und die PES-Pakete werden
unmittelbar von der Festplatte 12 über die FIFOs 21 und
22 dem PES-Parser 6 übermittelt.
-
Die
FIFOs 15, 16 und 18 bis 23 sind
vorzugsweise in einer zirkularen Weise organisiert.
-
2. Massenspeicher-Vorrichtung
-
Es
wird nun das Dateisystem des Festplatten-Laufwerks beschrieben.
Das Festplatten-Laufwert 12 besitzt ein Dateisystem, das
in dem Diagramm von 2 gezeigt ist, wobei das Dateisystem
der Audio/Video-Strom-Aufzeichnung und -Wiedergabe zugeordnet ist.
Das Dateisystem spricht auf die besonderen Erfordernisse des Datentyps
an, den es managt. Das gegenwärtige
Dateisystem ist für
sequentiellen Zugriff von isochronen Datenströmen mit Blöcken, die relativ groß sind,
optimiert.
-
Als
Variante kann ein zweites Dateisystem (nicht dargestellt), das der
Aufzeichnung und Wiedergewinnung von anderen Daten als den strömenden Daten
zugeordnet ist, auf derselben Festplatte vorhanden sein. Dieses
zweite Dateisystem wird für
willkürlichen
Zugriff zu konventionelleren Computer-Typ-Dateien optimiert. Der
Boot-Block kann für
beide Dateisysteme gemeinsam sein. Dieses zweite Dateisystem ist
von üblicher
Art, z.B. ein UNIX- oder MINIX-Dateisystem und wird nicht weiter
in Einzelheiten beschrieben.
-
3 zeigt
einen detaillierteren Blick auf das Strom-Dateisystem. Dieses Dateisystem umfasst
einen Superblock, einen Knoten-Speicherbereich, einen laufenden
Erweiterungs-Speicherbereich,
einen Audio/Video-Datenspeicherbereich und einen Bit-Tabellenbereich,
der drei Bit-Tabellen hält,
die den Zustand jeder elementaren Speicher-Struktur in jedem der
drei Speicherbereiche beschreibt.
-
Der
Boot-Block umfasst allgemeine Informationen hinsichtlich des Festplatten-Laufwerks,
z.B. Inhalts-Namen- und Inhalts-Identifizierer,
BIOS-Parameter und ein Boot-Programm.
-
Der
Superblock enthält
Informationen über
das Strom-Dateisystem,
insbesondere die Adressen (unter der Form von logischen Blockadressen – ,LBAs') und Größen der
verschiedenen Bereiche des Dateisystems.
-
Der
Knoten-Speicherbereich dient zur Speicherung von Knoten. Ein Knoten
ist eine Datenstruktur, die eine Datei beschreibt, die in dem Audio/Video-Datenspeicherbereich
gespeichert ist. Er kann auch ein Verzeichnis beschreiben. Er enthält Informationen
wie den Dateinamen, Mutter-Verzeichnis-Informationen und eine Beschreibung
der Teile des Audio/Video-Datenspeicherbereiches, wo die Datei sich
befindet. Diese Information wird unter der Form von LBA-Abläufen gegeben,
die durch eine LBA-Startadresse und eine Anzahl von LBA-Blöcken definiert
ist, die den Ablauf bilden. Da eine begrenzte Zahl von Abläufen in
einem gegebenen Knoten gespeichert werden kann, kann ein Zeiger
innerhalb des Knotens auf eine Ablauf-Erweiterungs-Datenstruktur
weisen, die sich in dem entsprechenden Speicherbereich befindet.
Die Information über
den Dateiort wird durch Datei- oder Verzeichnis-Identifizierer ersetzt, wenn der Knoten
zur Beschreibung eines Verzeichnisses verwendet wird. Der erste
Knoten beschreibt das Stammverzeichnis.
-
Der
Ablauf-Erweiterungs-Speicherbereich enthält besondere Datenstrukturen,
die weitere LBA-Abläufe
für eine
gegebene Datei identifizieren.
-
Der
Bit-Tabellenbereich enthält
drei Bit-Tabellen: die Knoten-Bit-Tabelle, die Ablauf-Erweiterungs-Bit-Tabelle
und die elementare Speichereinheit-Bit-Tabelle. Die ersten beiden
Tabellen zeigen jeweils den freien oder verwendeten Zustand jedes
Knotens bzw. der Ablauf-Erweiterung an. Die dritte Tabelle tut dasselbe
für jede
elementare Speichereinheit, die gemäß der vorliegenden Ausführungsform
einen Block von 128 Kbytes darstellt (natürlich können Blöcke mit einer unterschiedlichen
Größe und insbesondere
erhöhter
Größe verwendet
werden, wobei der 128 K-Wert
nur als Beispiel gegeben ist).
-
Schließlich umfasst
der Audio/Video-Datenspeicherbereich eine Reihe von elementaren
Speichereinheiten (,SEU').
Jede SEU umfasst 256 Sektoren und stellt somit 129 Kbytes dar.
-
Bei
Verwendung der obigen Datenstrukturen kann der Mikroprozessor 10 Dateien
errichten und löschen
wie auch Daten in diese Dateien schreiben und aus diesen lesen.
-
(a) Für TS-Schicht-Aufzeichnung:
-
4b ist
ein Diagramm einer SEU, wenn sie für TS-Schicht-Aufzeichnung verwendet
wird.
-
Die
SEU umfasst einen kurzen Header und Nutzdaten, die aus einer Anzahl
von gemultiplexten ganzen TS-Paketen bestehen. Da die SEU-Größe ein Vielfaches
von 512 Bytes ist, da sie eine ganze Zahl von TS-Paketen enthält, muss
eine gewisse Anzahl von Füll-Bits
den Nutzdaten hinzugefügt
werden.
-
(b) Für PES-Schicht-Aufzeichnung:
-
4a veranschaulicht
die Inhalte eines PES-Stroms SEU. Der SEU umfasst einen Header und
gemäß der vorliegenden
Ausführungsform
bis zu drei Bereichen von sich ändernder
Größe, die
jeweils PES-Paketen, Audio-PES-Paketen und anderen PES-Paketen zugeordnet
sind.
-
Die
Zahl von Bereichen ist nicht auf drei begrenzt, obwohl dies ein
realistisches Beispiel ist. Mehrere elementare Videoströme, elementare
Audioströme
und Zusatz-Datenströme
können
zu einer entsprechenden Zahl von Bereichen innerhalb einer SEU führen. In
diesem Fall enthält
der Speicher 5 eine entsprechende Zahl von Lese/Schreib-FIFOs.
-
3. Aufzeichnungs-Prozess
-
(a)TS-Schicht-Aufzeichnung
-
Die
Bildung einer SEU für
TS-Schicht-Aufzeichnung und – Wiedergabe
kann am besten durch Beschreibung erläutert werden, wie gefilterte
TS-Pakete durch die verschiedenen Elemente des Empfängers gehandhabt
werden. Nachdem der Demultiplexer die Pakete entsprechend den programmierten
PID-Werten ausgewählt
hat, speichert er sie in dem zirkularen Schreib-FIFO 15 im
Speicher 5. Der Typ des Inhalts eines Pakets, d.h. Video
(V), Audio (A) oder sonstige (O) wird durch den Mikroprozessor 10 aus
den entsprechenden PID-Werten in den Paket-Headern bestimmt. Der
Inhalt von Video-(V)-Transport-Strom-Paketen, die von dem Demultiplexer
verarbeitet werden, wird analysiert, d.h. durch den Strom-Parser
6, um gewisse Arten von Trick-Betriebsart-Informationen herauszuziehen,
was in Einzelheiten später
beschrieben wird. Im Prinzip wird eine solche Analyse für Audio-
oder andere Datenpakete nicht ausgeführt. Die anfängliche
Reihenfolge der TS-Pakete in dem Strom wird in dem FIFO 15 aufrechterhalten.
Auf diese Weise bleiben die Kontinuitäts-Zählerwerte in den verschiedenen
Paketen kohärent.
Ferner wird die Synchronisation zwischen den verschiedenen Strömen (insbesondere
den Video- und Audio-Strömen,
die einem selben Event entsprechen), aufrechterhalten. Der Mikroprozessor 10 managt
einen Lese- und Schreib-Zeiger für
den Schreib-FIFO 15. Wenn die Differenz zwischen dem Schreib-
und Lese-Zeiger das Äquivalent
von 128 Kbytes minus der Größe eines SEU-Headers
erreicht, startet der Mikroprozessor einen Schreibprozess zu der
Festplatte.
-
Für TS-Aufzeichnung
enthält
jeder SEU-Header eine Anzeige der Länge von nutzbaren Daten in
den TS-Paket-Nutzdaten, zwischen TS-Paketen und Füll-Bits
zu unterscheiden.
-
(c) PES-Schicht-Aufzeichnung
-
In
diesem Fall filtern der Demultiplexer und Filter 4 nicht
nur TS-Pakete: sie streichen auch die TS-Schicht weg, bevor die
TS-Nutzdaten, d.h. die PES-Pakete, in den RAM 5 geschrieben
werden. PES-Pakete werden in Abhängigkeit
von dem Wert des PID des TS-Pakets, in dem sie transportiert werden,
zu einem der zirkularen Schreib-FIFOs übertragen. Der Mikroprozessor 10 managed
Lese- und Schreibzeiger für
jeden dieser FIFOs. Wenn die Summe aller Differenzen zwischen den
Schreib- und Lesezeigern für
alle Puffer das Äquivalent
von 128 Kbytes minus der Größe eines
SEU-Headers erreicht,
startet der Mikroprozessor einen Schreibprozess zur Festplatte.
-
Video-PES
werden durch den Strom-Parser 3 auf Trick-Betriebsart-Informationen
analysiert.
-
Für PES-Aufzeichnung
enthält
der Header eine Information der Datenmenge jedes Typs, der gerade in
die SEU geschrieben wird, d.h. die Größe jedes einer spezifischen
PID zugeordneten Bereiches und die Offset-Adresse jedes Bereiches
innerhalb der SEU. Keine Füll-Bits
werden im Fall der PES-Aufzeichnung verwendet: PES-Pakete können in
einer SEU beginnen und in der folgenden SEU enden.
-
Der
Schreibprozess, sei es für
TS- oder PES-Aufzeichnung, wird durch den Mikroprozessor 10 durch Senden
eines geeigneten Befehls an die EIDE-Schnittstelle gestartet, wobei
die LBA-Adresse
spezifiziert wird, wo das Schreiben beginnen sollte und die Zahl
der LBAs, die geschrieben werden soll. Nachdem das Festplatten-Laufwerk
bereit ist, den Schreibprozess auszuführen, informiert die EIDE-Schnittstellen
den Mikroprozessor durch eine geeignete Unterbrechung.
-
Der
Schreibprozess setzt sich durch Schreiben des SEU-Header-Inhalts, der
von dem Mikroprozessor 10 erzeugt wird, in die HDD-Schnittstelle
fort. Der Schreibprozess setzt sich weiter fort durch Auslösen von DMA-Prozessen
zu der HDD-Schnittstelle 13 entweder von dem TS-Schreib-FIFO 15 (für TS-Aufzeichnung) oder
seinerseits für
jeden der Schreib-FIFOs 18 bis 20 (für PES-Aufzeichnung). In
bekannter Weise umfasst die HDD-Schnittstelle 13 einen
Cache-Speicher, der als Puffer für
Platten-Zugriffe wirkt.
-
Es
wird natürlich
hier vermutet, dass die richtige Datei durch den Mikroprozessor
geöffnet
worden ist und dass der Mikroprozessor auch die Ziel-SEU für die überführten Daten
zu der EI-DE-Schnittstelle
angezeigt hat.
-
Während dieser
Festplatten-Schreibprozess stattfindet, wird das Schreiben von Paketen
(ob TS oder PES) in die FIFOs fortgesetzt.
-
Während 5a für PES-Aufzeichnung
den Lese- und Schreib-Zeiger-Zustand
gerade vor dem Beginn der Übertragung
zu der Platte veranschaulicht, stellt 5b den
Zustand dar, nachdem die Übertragung erreicht
worden ist. Wenn die Zeiger die Top-Adressen der FIFOs erreichen, laufen
sie zu den Boden-Adressen um. Obwohl die FIFOs alle dieselbe scheinbare
Größe in 5a und 5b haben,
können
unterschiedliche Größen verwendet
werden. Ein ähnlicher
Prozess gilt für
TS-Aufzeichnung.
-
4. Erzeugung
von Trick-Betriebsart-Daten
-
6 ist
ein Diagramm der Datenstrukturen, die zur Speicherung von Trick-Betriebsart-Informationen verwendet
werden. Diese Strukturen und ihre Speicherung wird zuerst erläutert, und
es folgt dann das Verfahren zur Gewinnung der entsprechenden Daten
während
der Strom-Aufzeichnung.
-
Eine
Trick-Betriebsart-Informations-Datenstruktur hat mehrere Funktionen:
- – sie
beschreibt die Video-MPEG-Struktur des Stroms;
- – sie
liefert die notwendigen Daten für
den Zugriff zu den MPEG-Video-Zugriffseinheiten in dem Festplatten-Laufwerk
und für
deren Übertragung
zu dem Dekodierer;
- – sie
erlaubt einen willkürlichen
Zugriff zu den MPEG-Video-Zugriffseinheiten
auf der Basis von Zeit-Indexing;
- – dies
ist eine Struktur, die bi-direktional verwendet werden kann (d.h.
in der Vorwärts-
und Rückwärts-Richtung):
Descriptoren der MPEG-Syntax-Elemente sind miteinander gemäß ihrer
Reihenfolge in dem Strom verknüpft,
und die Descriptoren und Tabellen werden in einer solchen Weise
definiert, dass es leicht ist, einen Descriptor zu finden, der einem
gegenwärtigen
Descriptor vorangeht oder nachfolgt;
- – die
Trick-Betriebsart-Daten sind über
drei verschiedene Strukturen verstreut: eine Video-Descriptions-Einheit-Tabelle (VDU-Tabelle),
eine zeitliche Indexing-Tabelle (DT) und eine Anzahl von Blöcken (Video-Descriptions- Einheiten-VDUs),
für leichten
und schnellen Zugriff zu Informationen je nach den Umständen;
- – eine
Video-Descriptions-Einheit ist im Speicher wiederauffindbar. Zu
diesem Zweck werden relative Adressen-Zeiger verwendet. Demzufolge kann die
Trick-Betriebsart-Informations-Datenstruktur,
wenn sie in dem Festplatten-Laufwerk
gespeichert ist, in den Speicher in Teilen je nach Bedarf in Abhängigkeit
von dem verfügbaren
Speicher geladen werden;
- – die
VDU-Tabelle enthält
Informationen für
einen Zugriff zu einer VDU auf der Festplatte und zu ihrer Speicherung
- – teilweise
oder nicht – im
Speicher.
-
6 zeigt
die beiden VDUs, die in Grau erscheinen. Eine VDU enthält Descriptoren
von einer Anzahl von Sequenzen, und für jede Sequenz Descriptoren,
die sich auf die PES-Header und die Bilder beziehen, die in dieser
Sequenz enthalten sind. Beispielsweise enthält in 6 jede VDU
drei Sequenz-Descriptoren,
die annähernd
1,5 Sekunden des Videosignals entsprechen. Trick-Betriebsart-Informationen
werden über
mehrere VDUs verteilt, um dem System zu ermögliche, Zugriff zu den VDUs
nur so weit notwendig zu nehmen und die Gesamtmenge an Speicherung
zu vermindern, die zur Manipulation dieser Daten benötigt wird.
-
VDUs
können
einfach auch eine maximale Größe haben
und eine variable Zahl von Sequenzen beschreiben. Die Kenntnis der
maximalen Größe einer
VDU durch das System erlaubt Speicher-Erfordernisse vorherzusagen. So kann
es zum Beispiel während
der Wiedergabe ratsam sein, immer zwei VDUs im Speicher zu haben:
die VDU, die gegenwärtig
verarbeitet wird, und die nachfolgende VDU.
-
Vorzugsweise
hält jede
VDU Decriptoren, die vollständige
und keine teilweisen Sequenzen betreffen. Dies vermeidet mit verschiedenen
VDUs arbeiten zu müssen
(von denen einige erst geladen werden müssten), wenn Bilder einer selben
Sequenz bearbeitet werden.
-
Die
Tabellen und die nachfolgend gegebenen Erläuterungen beziehen sich auf
die PES-Schicht-Aufzeichnungs-Betriebsart. Für TS-Schicht-Aufzeichnung ist
eine Adresse eines Elements auf der Platte oder in einer SEU durch
die Adresse des TS-Paket-Headers des TS-Pakets zu ersetzen, die
das erste Byte des Elements enthält.
-
Gemäß der vorliegenden
Ausführungsform
werden nur vollständige
SEUs von der Platte gelesen oder in diese geschrieben. Daher enthält jeder
Stromobjekt-Descriptor Informationen, die (a) einen Transfer von
entsprechenden SEUs von dem Platten-Laufwerk und (b) einen Transfer
vom Speicher zu dem Dekodierer ermöglichen.
-
Für den Schritt
(a) (einer ganzzahligen SEU-Übertragung)
werden die folgenden Daten verwendet:
- (1) Adresse
der ersten SEU (logische Block-Adresse), die überführt werden soll
- (2) Zahl von zu überführenden
SEUs
-
Für den Schritt
(b)
- (3) Offset eines Objekts in der ersten
SEU
- (4) Länge
des Objekts (zum Beispiel in Bytes).
-
Zusätzliche
Daten, insbesondere Daten zum Verknüpfen der Descriptoren, werden
auch in jedem Descriptor vorgesehen, wie nachfolgend angegeben wird.
Jeder Sequenz-Descriptor („S"-Descriptor) umfasst die in Tabelle 1
angegebenen Daten:
-
Tabelle
1 – Sequenz-Descriptor
-
Gemäß der vorliegenden
Ausführungsform
ist eine ,Sequenz' eine
MPEG II-Sequenz wie sie in dem ISO/IEC 13818-1-Dokument definiert
ist.
-
Der
Sequenz-Index gibt den Rang einer Sequenz an im Vergleich zu dem
Beginn des aufgezeichneten Videostroms. Er spielt auch die Rolle
eines Identifizierers des Sequenz-Descriptors. Die PES-Ausrichtung
ist ein Kennzeichen, das anzeigt, ob PES-Headern in der Sequenz unmittelbar ein
Bild-Header folgt oder nicht.
-
Die „SEQ & EXT-Header-Größe in Bytes-Einheit" ist die größe in Zahl
von Bytes des MPEG-Sequenz-Headers plus aller nachfolgenden MPEG-Header
und Erweiterungen, die dem ersten Bild-Header in der Sequenz vorangehen.
-
Diese
Informationen ermöglichen
eine schnelle Überführung dieser
Header (die neben anderen Daten die MPEG-Quantifizierungs-Tabellen, Bild-Größe ... enthalten)
zu dem Dekodierer, oder den Sequenz-Header zusammen mit dem ersten
Bild einer Sequenz zu übertragen.
-
Die „SEQ & EXT-Header-Größe in SEU-Einheit" ist die Zahl von
SEUs, die einen Teil der MPEG-Header und Erweiterungen enthalten,
die in Verbindung mit dem vorherigen Element erwähnt wurden, da diese Header über mehrere
SEUs verstreut sein können.
Bei der vorliegenden Ausführungsform
ist diese Zahl maximal gleich zwei.
-
Der „Zeiger
zum Descriptor des ersten Bildes" ist
ein Zeiger in der VDU zu dem Bild-Descriptor des ersten Bildes in
der betrachteten Sequenz. Es sei bemerkt, dass der Sequenz-Descriptor
und die Descriptoren aller Bilder, die zu dieser Sequenz gehören, gemäß der vorliegenden
Ausführungsform
durch Konstruktion immer in derselben VDU sind.
-
Alle
Zeiger in den VDUs sind ein relatives Adressierungs-Schema, das auf der
VDU-Basis-Adresse beruht. Auf diese Weise kann die VDU in jeden
Speicherbereich geladen werden, während die gültigen Zeigerwerte beibehalten
werden.
-
Der „Zeiger
zu dem Descriptor des letzten Bildes" ist ein Zeiger in der VDU zu dem Bild-Descriptor
des letzten Bildes in der betrachteten Sequenz.
-
Die
Zeiger zu dem ersten und letzten Bild sind nützlich, um die Wiedergabe in
Vorwärts-
bzw. Rückwärts-Richtung
durchzuführen.
Wie man in Verbindung mit Tabelle 2 sieht, zeigt jeder Bild-Descriptor
zu dem vorherigen und dem nächsten
Bild.
-
Der „Zeiger
zu dem Descriptor der nächsten
Sequenz" ist ein
Zeiger in der VDU zu dem Descriptor der folgenden Sequenz in dem
Strom. Wenn dieser Descriptor nicht in derselben VDU ist, dann ist
der Zeiger null. In diesem Fall ist der Descriptor der folgenden
Sequenz der erste Sequenz-Descriptor in der nächsten VDU.
-
Zu
dieser weiteren VDU kann leicht unter Verwendung der VDU-Tabelle Zugriff genommen
werden.
-
Der „Zeiger
zu dem Descriptor der vorhergehenden Sequenz" ist ein Zeiger in der VDU zu dem Descriptor
der vorhergehenden Sequenz in dem Strom. Wenn dieser Descriptor
nicht in derselben VDU ist, dann ist der Zeiger null. In diesem
Fall ist der Descriptor der vorhergehenden Sequenz der letzte Sequenz-Descriptor
in der vorhergehenden VDU. Zu dieser vorhergehenden VDU kann unter
Verwendung der VDU-Tabelle Zugriff genommen werden.
-
Die
logische Block-Adresse (Ziffer 9) ist die Adresse der SEU,
die das erste Byte des Sequenz-Headers enthält. In Verbindung mit Ziffer 11 (Offset
von dem SEU-Start des Sequenz-Headers)
wird die von der Platte gelesene SEU leicht analysiert. Die SEU-(elementare
Speichereinheit)-Adresse ist die Adresse (logische Block-Adressen-Nummer)
auf der Festplatte des 128 Kb-Blocks,
der das erste Byte des Sequenz-Headers enthält.
-
Die
Zahl von SEUs (Ziffer 10) zeigt die Zahl von SEUs an, die
geladen werden müssen,
um die gesamte Sequenz im Speicher zu haben. Tatsächlich wird
gemäß einer
Lese-Betriebsart zur Zeit wenigstens eine vollständige Sequenz in den Speicher
geladen, und von ihm nacheinander herausgezogene Bilder werden dann
den entsprechenden Dekodierern zugeführt. Diese Art von Prozess
ist sehr wirksam bei einer Rückwärts-Wiedergabe-Betriebsart,
so weit die Platten-Zugriffs-Wirksamkeit betroffen ist.
-
Jeder
Bild-Descriptor („P"-Descriptor) hält die folgenden
Datenelemente:
-
Tabelle
2 – Bild-Descriptor
-
Der
Bild-Index gibt den Rang eines Bildes im Vergleich zu dem Beginn
des aufgezeichneten Videostroms an. Er spielt auch die Rolle eines
Identifizierers des Bild-Descriptors, insbesondere in Bezug auf
die unten beschriebene zeitliche Tabelle.
-
Die
Bild-Typ-Informationen zeigen an, ob das Bild vom intra, vorhersagenden
oder bi-direktionalen Kodiertyp ist.
-
Die
zeitlichen Referenz-Informationen werden unmittelbar aus dem MPEG
II-Bild-Header herausgezogen. Sie geben die Anzeige-Reihenfolge der Bilder
relativ zueinander an.
-
Die
Halbbild/Vollbild-Informationen zeigen an, ob das Bild ein geradzahliges
Halbbild, ein ungeradzahliges Halbbild oder ein Vollbild umfasst.
-
Der „Zeiger
zu dem Descriptor des nächsten
Bildes" ist ein
Zeiger in der VDU zu dem Bild-Descriptor des nächsten Bildes in der gegenwärtigen Sequenz.
Wenn das gegenwärtige
Bild das letzte in der Sequenz ist, dann ist der Zeiger null.
-
Der „Zeiger
zum Descriptor des vorhergehenden Bildes" ist ein Zeiger in der VDU zu dem Bild-Descriptor
des vorhergehenden Bildes in der gegenwärtigen Sequenz. Wenn das gegenwärtige Bild
das erste in der Sequenz ist, dann ist der Zeiger null.
-
Wenn
der gegenwärtige
PES-Strom ausgerichtet ist, dann ist jedes Bild innerhalb eines
einzigen PES-Pakets eingekapselt. In diesem Fall ist es von Interesse,
jedem Bild das PES-Paket zuzuordnen, das es einkapselt. Das Feld 7 in
Tabelle 2 erlaubt die Zuordnung des Descriptors des ausgerichteten
PES-Pakets zu dem Descriptor des Bildes, das es enthält. Ob Ausrichtung
vorliegt oder nicht, kann von einer Information abgeleitet werden,
die in den PES-Headern vorhanden ist. Im Falle von Ausrichtung können Bilddaten
zusammen mit dem entsprechenden PES-Header vom Speicher zu dem PES-Parser
ohne weitere Verarbeitung übermittelt
werden.
-
Der
Inhalt des Feldes 7 wird auf null gesetzt, wenn keine Ausrichtung
vorliegt.
-
Wenn
der gegenwärtige
Strom nicht ausgerichtet ist, dann kann ein Bild über mehreren
verschiedenen PES-Paketen verstreut sein. In diesem Fall ist es
von Interesse, die PES-Header zu identifizieren, die „innerhalb" eines Bildes beginnen,
um sie entweder durch Verarbeitung im Speicher zu entfernen oder
sie zu modifizieren. Insbesondere kann das in den PES-Headern vorhande ne
PES-Paket-Längen-Merkmal
eine Modifikation erfordern, falls nur Teile von PES-Paketen zum
PES-Parser übertragen
werden. Das Feld 8 in Tabelle 2 zeigt zu dem Descriptor
des ersten PES-Pakets,
das in den Daten enthalten ist, die dem gegenwärtigen Bild entsprechen. Jeder
PES-Paket-Descriptor zeigt selbst zu dem Descriptor des folgenden
PES-Pakets in demselben Bild.
-
Die
SEU-(elementare Speicher-Einheit)-Adresse ist die Adresse (logische
Block-Adressen-Nummer) auf der Festplatte der SEU, die das erste
Byte des Bild-Headers enthält.
-
Die
erste Byte-Adresse in SEU ist der Offset in Bytes im Vergleich zu
dem Beginn der SEU-Adresse des ersten Bytes des Bild-Headers. Er
erlaubt einen direkten Zugriff zu dem ersten Byte des Bildes. Diese
Information wird von dem Strom-Parser abgeleitet.
-
Die
Adresse des ersten Bytes in der PES-Sequenz ist die relative Adresse
zwischen dem ersten Byte des Bild-Start-Codes und dem ersten Byte
der ganzen Videosequenz, die in den Speicher für die Bearbeitung während der
Wiederherstellung geladen wird.
-
Die
Ziffern 10 und 12 ermöglichen das Laden der SEUs,
die alle Daten relativ zu einem Bild enthalten. Somit ist es nicht
notwendig, eine ganze Sequenz zu laden, und um die Menge an potentiell
unbenutzten Daten für
die Überführung von
der Platte zu vermeiden (d.h. Vermeiden der Überführung einer ganzen Sequenz, wenn
nur ein Bild gezeigt werden soll), brauchen nur SEUs relativ zu
einem einzigen Bild übertragen
zu werden. Es kann notwendig sein, auch den entsprechenden Sequenz-Header
zu laden, um die richtigen Parameter an den Video-Dekodierer zu
senden.
-
Der
Inhalt des PES-Headers kann benötigt
werden, um das Bild richtig zu dekodieren und/oder darzustellen.
Demzufolge werden auch Descriptoren für PES-Header erstellt.
-
Jeder
PES-Descriptor („E"-Descriptor) hält die folgenden
Datenelemente:
-
Tabelle
3 – PES-Descriptor
-
Der
PES-Index gibt den Rang eines PES-Pakets im Vergleich zu dem Beginn
des aufgezeichneten Videostroms an. Er spielt auch die Rolle eines
Identifizierers des PES-Descriptors.
-
Die
SEU-Adresse ist die Nummer der ersten LBA der SEU (128 Kb-Block),
die das erste Byte des PES-Headers enthält.
-
Die
erste Byte-Adresse in SEU ist der Offset in Bytes im Vergleich zu
dem Beginn der SEU-Adresse des ersten Bytes des PES-Headers.
-
Ziffer 6 ist
ein Zeiger zu dem Descriptor der nächsten PES in demselben Bild.
Wenn es kein folgenden PES-Paket in demselben Bild gibt, dann ist
dieser Zeiger null.
-
Berücksichtigt
man das, was zu den Tabellen 1 und 2 gesagt worden ist, sind die
anderen Elemente der Tabelle 3 selbsterklärend. Obwohl dies bei dem gegenwärtigen Ausführungsbeispiel
nicht der Fall ist, wird gemäß einer
abgewandelten Ausführungsform
ein anderer Descriptor Gruppen von Bildern (GOP) und ihren Headern
zugeordnet. Die zeitliche Index-Tabelle hat das in der Tabelle 4
gezeigte Format.
-
Tabelle
4 – Zeitliche
Tabelle
-
Der
zeitliche Index entspricht der Zahl von Sekunden, gezählt vom
Beginn eines Videostroms. Gemäß der vorliegenden
Ausführungsform
sind 14400 Einträge
möglich,
die vierhundert Video-Stunden
entsprechen, wobei ein Bild oder Vollbild 40 ms darstellt.
-
Die
Sequenz-Descriptor-Adresse gibt den Zeiger zu dem Sequenz-Descriptor
an, der das erste Bild nach dem zeitlichen Index im Vergleich zu
der entsprechenden VDU-Basis-Adresse enthält. Wenn die entsprechende
VDU im Speicher nicht vorhanden ist, muss sie zuerst von der Festplatte
unter Verwendung von Informationen, die in der VDU-Tabelle gegeben
sind, geladen werden.
-
Die
SEU-Adresse ist die Adresse, als LBA-Nummer in dem Festplatten-Laufwerk,
der SEU, die enthält
- (a) im Fall von TS-Schicht-Aufzeichnung den
Transportpaket-Header
des Transport-Strom-Pakets, das den Sequenz-Header der ersten Videosequenz
enthält,
die nach T Sekunden beginnt,
- (b) im Falle von PES-Schicht-Aufzeichnung den Sequenz-Header
der ersten Videosequenz, die nach T Sekunden beginnt.
-
Für den Zugriff
zu einer Videosequenz, die unmittelbar zu einer Zeit T in Sekunden
beginnt, reicht es aus, die zeitliche Tabelle unter Verwendung von
T als Index zu adressieren und die entsprechende SEU-Adresse zu
verwenden, um das Lesen von der Platte beginnend bei der LBA zu
starten, die den Beginn des Transportstrom-Pakets enthält, das
zur Dekodierung der Sequenz (im Fall (a)) oder unmittelbar des Sequenz-Header-Ortes
(im Fall (b)) erforderlich ist. Für einen solchen Zugriff ist
nur die zeitliche Tabelle erforderlich.
-
Der
Rest der in den beiden Tabellen und VDUs gespeicherten Daten wird
hauptsächlich
für Trick-Betriebsart-Wiedergabe
verwendet.
-
Die
VDU-Tabelle hat das in Tabelle 5 gezeigte Format
-
-
Die
VDU-Tabelle hat einen Eintrag für
jede VDU und zeigt für
jede VDU die Nummer der ersten LBA auf der Festplatte, die Größe der VDU
in Form von LBAs, das Zeitintervall (in Sekunden beginnend beim
Start des Videostroms) des Teils des Videosignals an, das durch
die VDU dargestellt wird. Dieses Intervall spezifiziert die Einträge in die
TT-Tabelle.
-
Die
zeitliche Index-Tabelle, die VDU-Tabelle und die VDUs werden auf
der Festplatte gespeichert. Die Tabellen werden auch in den Trick-Betriebsart-Pufferbereich 17 des
Speichers 5 für
die Modifikation im Fall einer Aufzeichnung von Videosignalen auf
die Festplatte und als Referenz im Fall der Wiedergabe von der Festplatte
geladen. Die erforderlichen VDUs werden gelesen/geschrieben von/in
die Festplatte wie erforderlich, in Abhängigkeit auch von der verfügbaren Menge
an freiem Speicherraum.
-
Die
Erzeugung der Trick-Betriebsart-Daten, die in den TT- und VDU-Tabellen
und in den VDUs gespeichert sind, wird wie folgt ausgeführt.
-
Die
zu erzeugenden Informationen sind von dreierlei Art: Informationen,
die unmittelbar aus den gedemultiplexten Videopaketen herausgezogen
werden, Informationen, die die Struktur des Videostroms beschreiben
und Informationen, die sich auf den Ort von bestimmten Videostrom-Daten
auf dem Festplatten-Laufwerk beziehen. Im ersten Fall liefert ein
einfaches Analysieren des PES- oder Bild-Headers in dem Strom die
erforderlichen Informationen. Im zweiten Fall muss der Videostrom
analysiert und seine Struktur gespeichert werden. Im dritten Fall
müssen
weitere Informationen aus dem Dateisystem gesucht werden. Die Tabelle
zeigt den Ursprung jeder Datenart.
-
-
-
-
Nachfolgend
wird angenommen, dass nur ein elementarer Videostrom zu einer gegebenen
Zeit aufgezeichnet wird, d.h. es wird nur ein Video-PID gefiltert.
Wenn mehr als ein Video-PID gefiltert wird, werden die Tabellen
und VDUs parallel und getrennt für
jeden Strom erstellt.
-
Das
Analysieren wird in gleicher Weise für TS- und PES-Schicht-Aufzeichnung
ausgeführt,
d.h. es werden dieselben Elemente in den gespeicherten Daten aufgestellt.
Was sich ändert
ist, dass für
die TS-Aufzeichnung, wenn ein Element aufgestellt wird, die Adresse
des TS-Headers des TS-Pakets, das dieses Element enthält, anstatt
der Adresse des Elements verwendet wird.
-
Die
TS- oder PES-Pakete, die von dem Demultiplexer im Speicher 8 gespeichert
werden, werden durch erste Feststellungs-Sequenz-Header, PES-Header oder Bild-Header
analysiert. Jeder dieser Header hat einen vordefinierten Start-Code,
der durch die MPEG II-Video-Norm definiert ist und kann leicht in
den ankommenden TS-Paket-Nutzdaten oder PES-Paketen aufgestellt
werden. Es muss dafür
gesorgt werden, dass keine Bild- oder Sequenz-Start-Codes fehlen, die über zwei
PES-Pakete verstreut sind, und Bild-Sequenz- oder PES-Header-Start-Codes,
die über
zwei TS-Pakete verstreut
sind. Für
jeden festgestellten Header wird ein entsprechender Descriptor (S,
P, E) erstellt. PES- und Bild-Header
werden ferner analysiert, um die relevanten Felder herauszuziehen,
die in die Descriptoren eingefügt
werden sollen. Sequenzen, PES-Pakete und Bilder werden beginnend
von der ersten Sequenz bzw. dem PES-Paket oder Bild nummeriert.
-
Gemäß der vorliegenden
Ausführungsform
hält eine
VDU nur vollständige
Sequenzen. Die maximale Größe einer
VDU kann vordefiniert werden, wobei die Zahl von in einer VDU gespeicherten
Sequenzen gemäß der Zahl
von Bildern pro Sequenz und dem Vorhandensein von PES-Paketen begrenzt
wird. Nachdem die erste Sequenz mit all den zugeordneten Bildern
und PES-Paketen beschrieben worden ist, ist die Größe des zur Speicherung
der zugeordneten Trick-Betriebsart-Informationen benötigte Speicherraum
bekannt, und die Zahl von Sequenzen, die in jeder VDU beschrieben
wird, kann bestimmt werden.
-
Der
Mikroprozessor 10 bestimmt auch (durch das Dateisystem)
die nächste
SEU-Block-Adresse, in die Audio-, Video- und/oder andere Daten geschrieben
werden sollen. Während
des Analyse-Prozesses
bestimmt der Strom-Parser 6 den Offset in Bytes (oder LBAs
und Bytes) eines gegebenen Datenstücks im Vergleich zu dem Beginn
der SEU. Der Offset wird jedes Mal zurückgestellt, wenn eine SEU auf
die Platte geschrieben wird. Offsets werden unter anderem für die folgenden
Datenelemente bestimmt: für PES-Schicht-Aufzeichnung,
Sequenz-Header, Bild-Header, PES-Header, und für TS-Schicht-Aufzeichnung, die
Adressen der entsprechenden TS-Paket-Header. SEU-Adresse und Offsets
für die
drei Header werden in die entsprechenden Descriptoren eingefügt.
-
Parallel
zur Erstellung der VDUs erstellt der Mikroprozessor die VDU-Tabelle
und die zeitliche Tabelle.
-
Ein
Eintrag in die VDU-Tabelle wird jedes Mal erstellt, wenn eine VDU
bereit ist, auf die Platte geschrieben zu werden. (Gemäß der vorliegenden
Ausführungsform
werden VDUs in eine Datei des Strom-Dateisystems geschrieben). Für jede VDU
ist seine Position und Größe in LBAs
gegeben. Das abgedeckte Zeitintervall (in Sekunden, verglichen mit
dem Beginn des Videostroms) wird auf der Basis der Zahl von Bildern
berechnet, die in der VDU enthalten sind. Diese Information wird
auch in die VDU-Tabelle eingefügt.
-
Die
zeitliche Index-Tabelle umfasst gemäß der vorliegenden Ausführungsform
einen Eintrag pro Sekunde. Ihr Inhalt wird unter Verwendung des
Inhalts der VDUs und der TS-Header-Offsets (für TS-Schicht-Aufzeichnung)
oder der Sequenz-Header-Offsets (für PES-Schicht-Aufzeichnung)
bestimmt.
-
Natürlich kann
je nach spezifischer Anwendung die Periodizität der TT-Einträge größer oder
kleiner als eine Sekunde sein.
-
Sowohl
die VDU-Tabelle als auch die zeitliche Index-Tabelle werden in die
Festplatte geschrieben, wenn sie errichtet werden. Je nach ihrer
Größe und dem
verfügbaren
Speicher kann es erforderlich sein, diese Tabellen aufzuspalten
und erforderlichenfalls Teil-Tabellen zu laden.
-
VDUs
werden absichtlich aus verknüpften
Elementen unter Verwendung relativer Adressierung erstellt, um eine
Aufspaltung und eine dynamische Verschiebung im Speicher zu erlauben.
-
Während der
Wiedergabe der Videosignale wird die Analyse der Trick-Betriebsart-Informationen
unter Verwendung einer Cursor-Struktur
ausgeführt,
die zwei Zeiger umfasst: einen Zeiger zu Sequenz-Descriptoren, der
von einer Sequenz zur anderen springt, und einen Zeiger zu Bild-Descriptoren,
die auf Bilder innerhalb der Sequenz zeigt auf die von dem Sequenz-Zeiger
gezeigt wird.
-
5. Trick-Betriebsart
-
Gemäß der vorliegenden
Ausführungsform
werden während
der Trick-Betriebsart-Video-Wiederherstellung keine Audiodaten zum
Audio-Dekodierer übertragen.
-
Es
wird nun die Wiedergabe von dem Festplatten-Laufwerk für Trick-Betriebsart-Zwecke
beschrieben. Während
dieser Phase führt
der Mikroprozessor 10 eine Echtzeit-Strom-Bearbeitung des
zuvor aufgezeichneten Videostroms, das Herausziehen und die Neuordnung
der Video-Zugriffseinheiten (eine Einheit ist mit Daten kodiert,
die sich auf ein Bild beziehen) auf der Basis von Trick-Betriebsart-Informationen,
Speisen des Dekodierers 9 und Steuerung der Dekodierungs-
und Anzeige-Prozesse durch.
-
Da
die Zeit für
den willkürlichen
Zugriff zu dem Festplatten-Laufwerk ziemlich lang ist, besteht ein
realistisches Verfahren darin, eine Scheibe des aufgezeichneten
Stroms, die eine einzige Video-Sequenz enthält, von der Platte in den Speicher 5 zu
lesen. Auf die ganze in dem Speicher 5 befindliche Sequenz,
jedes Bild (oder andere Daten wie ein Sequenz-Header) in der Sequenz
kann zugegriffen werden, um zum Video-Dekodierer überführt zu werden.
-
Der
PES-Parser 6 und/oder der TS-Demultiplexer 7 entfernen
die entsprechenden PES- oder TS-Schichten und ziehen Informationen
heraus, die relevant für
die unteren Schichten sind, aus den PES-Headern bzw. TS-Headern
heraus. Wenn Daten empfangen werden, sei es direkt von dem Bus oder
von dem Demultiplexer 7, weist der PES-Parser alle Daten
zurück,
die vor einem gültigen
PES-Header-Start-Code
erscheinen.
-
Für Trick-Betriebsart-Wiedergabe
wird auf Bilder in dem Strom in dem Speicher nacheinander Zugriff genommen,
nachdem eine entsprechende Sequenz aus der Festplatte gelesen worden
ist. Sei es in der TS- oder der PES-Aufzeichnungs-Betriebsart, geht
ein PES-Header jedoch nicht systematisch unmittelbar dem entsprechenden
Bild-Header voraus. Mit anderen Worten sind Bild-Header nicht notwendigerweise auf den Beginn
von PES-Paket-Nutzdaten
ausgerichtet, und es können
Daten, die unerheblich für
das in Betracht gezogene Bild sind, zwischen dem PES-Header und
dem Bild-Header existieren. Damit der PES-Parser sich richtig verhält, ist
es nicht desto weniger notwendig, diesen PES-Header zu versorgen.
Sonst könnte
der PES-Parser nicht die Bilddaten zu dem Video-Dekodierer 9 leiten:
alle Daten, die dem ersten PES-Header
vorausgehen, werden üblicherweise
nach einer Dekodierer-Rückstellung
zurückgewiesen.
Somit würde
ein Bild-Header, dem Bilddaten folgen, denen nicht ein PES-Header
vorausgeht, auch zurückgewiesen.
Gemäß der vorliegenden
Ausführungsform
wird ein Blind-PES-Header vor dem Bild-Header des zu dekodierenden
Bildes eingefügt.
Somit wird ein kohärenter
PES-Strom wiederhergestellt, wobei ein Minimum von unerheblichen
Daten aus der Festplatte gelesen und keine unerheblichen Daten dem
Dekodierer 9 zugeführt
werden.
-
Ein
einfaches Beispiel, das einen schnellen Vorlauf mit dem Zwölffachen
der normalen Geschwindigkeit beinhaltet, dient zur Beschreibung
der Einfügung
des Blind-PES-Headers. Zum Zweck dieses Beispiels wird angenommen,
dass Zugriff nur zu I-Typ-Bildern genommen wird. Es sind Vorsichtsmaßnahmen
zu treffen, wenn dies nicht der Fall ist, d.h. wenn das anzuzeigende
Bild vom P- oder B-Typ ist, was später beschrieben wird.
-
Schneller
Vorlauf mit dem Zwölffachen
der normalen Geschwindigkeit beinhaltet das Lesen und Dekodieren
eines Bildes von zwölf
Bildern (unter der Annahme, dass Zugriff nur zu I-Typ-Bildern genommen
wird) und die Anzeige der dekodierten Bilder mit einer normalen
Rate von einem Bild alle 40 ms für
den Fall einer 50 Hz-Vollbildrate.
-
(a) Strom-Bearbeitung
auf der PES-Schicht-Ebene
-
Die
erste Aufgabe des Mikroprozessors 10 dient dazu, dass die
erste Video-Zugriffs-Einheit aus dem Festplatten-Laufwerk herausgezogen
wird. Unter der Annahme, dass der schnelle Vorlauf zu einer Zeit
T im Vergleich zu dem Beginn des Videostroms beginnt, ist das erste
anzuzeigende Bild das erste Bild, das in dem Strom nach T vorhanden
ist.
-
Um
als Index in der VDU-Tabelle und der zeitlichen Tabelle verwendet
zu werden, wird T auf eine ganze Zahl von Sekunden abgeschnitten.
Unter Verwendung der VDU-Tabelle wird die entsprechende VDU von der
EIDE-Schnittstelle angefordert und in den Speicher geladen (d.h.
den Trick-Betriebsart-Pufferbereich), wenn sie nicht bereits vorhanden
ist.
-
Die
zeitliche Tabelle zeigt auf den Sequenz-Descriptor in dieser VDU,
die den Bild-Descriptor enthält. Der
Inhalt des Sequenz-Descriptors dient zum Laden der entsprechenden
gesamten Video-Sequenz in den Speicher 5. Der Dekodierer 9 ist
so ausgebildet, dass der Mikroprozessor 10 die Dekodier-Parameter
des Dekodierers 9 einstellen kann. Es könnte dann nicht notwendig sein,
Sequenz-Header zum PES-Parser zu übertragen, bevor die Blind-PES-Header,
gefolgt von den Bilddaten, übertragen
werden.
-
Wenn
jedes Bild 40 ms darstellt und die Bild-Liste verwendet (die zu
den verschiedenen Bild-Descriptoren der Bilder in der Sequenz zeigt,)
ist es leicht zum Bild-Descriptor Zugriff zu nehmen, der zeitlich
T am nächsten
ist. Der Bild-Descriptor zeigt den Offset des Bild-Headers in der
in den Speicher geladenen Video-Sequenz an. Somit wird das gewünschte Bild
dem Dekodierer zugeführt,
und der Dekodierer wird durch den Mikroprozessor 10 programmiert,
um dieses Bild richtig zu handhaben.
-
In
diesem Fall werden Daten vom Speicher 5 an den PES-Parser 6 geliefert,
da die Transport-Schicht bereits entfernt worden ist.
-
7a und 7b stellen
einen PES-Strom in der Form von sequentiellen Bildern dar, die in
PES-Pakete, die ein zu dekodierendes Bild enthalten, eingemappt
wurden. Der dargestellte Teil des Stroms kann der sein, der in dem
Video-Lese-FIFO gespeichert ist, unter der Annahme, dass nur die
PES-Schicht aufgezeichnet wurde. Allen Bilddaten voran geht ein
Bild-Header, die zusammen eine Video-Zugriffs-Einheit bilden. Der Strom
enthält
PES-Header an Positionen, die im allgemeinen unabhängig von
dem Inhalt des elementaren Videostroms sind.
-
7a zeigt
den unbearbeiteten PES-Strom, wobei das Bild n das anzuzeigende
Bild ist. Ihm geht ein Header voraus. Der Header des PES-Pakets,
das den Bild-Header des Bildes n enthält, ist durch einen Pfeil angezeigt. 7b zeigt
den bearbeiteten PES-Strom, in den der Mikroprozessor 10 den
Blind-PES-Header unmittelbar vor dem Bild-Header des Bildes n eingefügt hat,
um so alle störenden
Daten zwischen den beiden Headern zu vermeiden.
-
Gemäß der vorliegenden
Ausführungsform
hat der Blind-PES-Header
das in Tabelle 7 angegebene Format. Es ist der kürzeste Header, der von dem
MPEG II-System-Dokument zugelassen ist (d.h. 9 Bytes), und wird
dem Video-Dekodierer 9 zugeführt, bevor der Inhalt des Video-Lese-FIFO,
beginnend von der durch den Bild- Header-Offset
definierten Adresse gelesen wird. Der Dekodierer sieht dann einen
gültigen
PES-Strom und verarbeitet die Bilddaten nach der Instruktion durch
den Mikroprozessor 10.
-
Ein
Blind-PES-Header wird jedes Mal eingefügt, wenn ein Zwischenraum in
der Sequenz von Video-Zugriffs-Einheiten, die dem Dekodierer zugeführt werden
sollen, vorhanden ist.
-
In
den nachfolgenden Tabellen bedeutet die Bezeichnung ,0x' hexadezimale Werte.
-
Der
Buchstabe ,u' im
unteren Fall bezeichnet einen variablen binären Wert.
-
-
Tabelle
7 – Blind-PES-Header
-
(b) Strom-Bearbeitung
auf der TS-Schicht-Ebene
-
In
diesem Fall werden Daten von dem Lese-FIFO 22 zu dem Transport-Strom-Demultiplexer 7 übertragen.
-
Die
TS-Schicht hat eine zusätzliche
Beschränkung
im Vergleich zu der PES-Schicht: Bearbeitung kann nur auf der TS-Paket-Ebene vorgenommen
werden, d.h. es muss ein ganzes TS-Paket hinzugefügt oder entfernt
werden. Das Einfügen
von Lösch-Bytes
in vorhandene Pakete führt
zu einem ungültigen
TS-Strom, da ein TS-Paket eine feste Länge von 188 Bytes hat.
-
Demzufolge
wird die Bestimmung der SEU, die das zu dekodierende Bild enthält, in leicht
unterschiedlicher Weise im Vergleich zum Fall (a) ausgeführt. Wiederum
wird eine ganze Scheibe des Stroms, der die Video-Sequenz enthält, die
das Bild enthält,
in den Speicher 5 geladen. Um konform mit dem Erfordernis
zu sein, nur vollständige
TS-Schicht-Pakete dem Demultiplexer 7 zuzuführen, ist
es erforderlich, das Lesen beginnend von dem TS-Header des TS-Pakets zu starten, das
den Bild-Header des zu dekodierenden Bildes enthält. Die Trick-Betriebsarten-Informationen sorgen
für die
notwendigen Adressen-Informationen: im Fall der TS-Strom-Aufzeichnung
werden alle Adressen in Trick-Betriebsart-Informations-Descriptoren
in geeigneter Weise auf die TS-Paket-Grenzen ausgerichtet.
-
8a stellt
einen TS-Strom von Paketen derselben Video-Komponente (d.h. die denselben PID haben)
dar, die den Bild-Header
des zu dekodierenden Bildes enthält.
-
Anstatt
der Einfügung
nur eines PES-Headers wird ein ganzes TS-Paket eingefügt. Dieses
TS-Paket enthält
auch einen Blind-PES-Header
aus denselben Gründen
wie für
(a). 8 veranschaulicht den Strom nach
der Einfügung
des TS-Pakets.
-
Der
eingefügte
TS-Paket-Header enthält
denselben PID-Wert wie den des TS-Paket-Headers des TS-Pakets, das
den Bild-Header umfasst. Der TS-Paket-Header enthält auch
einen Kontinuitäts_Zählwert,
der gleich dem des TS-Paket-Headers des TS-Pakets ist, das den Bild-Header
vermindert um eins enthält
und Modulo 16 nimmt, um konsistent mit dem folgenden TS-Paket-Wert
zu sein. Der Kontinuitäts
Zählwert
wird unmittelbar in dem Strom in dem Speicher gelesen. Unter den
Anpassungs-Feld-Kennzeichen wird das Diskontinuitäts-Fehlerkennzeichen
so gesetzt, dass es eine Dis kontinuität im Vergleich zu irgendeinem
vorherigen Kontinuitäts_Zählwert anzeigt.
Die Länge
des Anpassungsfeldes wird so gewählt,
dass die Länge
des gesamten TS-Pakets einschließlich des Headers 188 Bytes
beträgt.
-
Die
TS-Nutzdaten enthalten den bereits beschriebenen Blind-PES-Header. Im Gegensatz
zum Fall (a) können
unerhebliche oder unbrauchbare Daten zwischen dem PES-Header und
dem Bild-Header des zu dekodierenden Bildes vorhanden sein, da der
Bild-Header nicht notwendigerweise mit dem Ende des TS-Headers ausgerichtet
ist. Um den Video-Dekodierer zu informieren, diese unerheblichen
Daten zu ignorieren, enthält
der eingefügte
TS-Header auch einen Sequenz-Fehler-Code nach dem Blind-PES-Header. 9 veranschaulicht
die von dem Dekodierer bei entfernter PES-Schicht empfangenen Daten.
Das Bild X ist das zu dekodierende Bild. Der Eingangspuffer des
Dekodierers enthält
noch zuvor empfangene Teildaten, die ein Bild B+1 betreffen, was
von der Überführung eines
vorherigen zu dekodierenden Bildes, z.B. des Bildes B, herrührt. Sich
auf das Bild X-1 beziehende Daten sind die Daten, die zwischen dem
durch den Mikroprozessor 10 eingefügten Blind-TS-Paket und dem Bild-Header des Bildes
X vorhanden sind. Der TS-Header des Blind-TS-Pakets ist durch den
Demultiplexer 7 entfernt worden, und der in der Nutzlast
des Blind-TS-Pakets enthaltene Blind-PES-Header ist durch den PES-Parser 6 entfernt
worden. Zwischen den Teildaten der Bilder B+1 und X-1 verbleibt
der Fehler-Sequenz-Code („0×00 00 01
B4") dem ein anderer
Code („0×B4") vorausgeht.
-
Bei
Feststellung des Sequenz-Fehler-Codes, der unter anderem in Abschnitt
6.2.1 und der Tabelle 6-1 des MPEG II-Video-Dokuments erwähnt ist, weist der Dekodierer 9 alle
Daten zurück,
die vor dem Fehler-Code empfangen werden, und alle Daten, die in
Zukunft empfangen werden, bis zum nächsten Bild-Header. Der Dekodierer 9 ist
so aufgebaut, dass er dieses Verhalten aufweist.
-
Ein
neues Problem wird durch die Einfügung des Sequenz-Fehler-Codes eingeführt: nachdem
der PES-Parser 17 den Strom von den PES-Headern befreit
hat, kann es passieren, dass die letzten Bytes der Nutzdaten des
PES-Pakets, die dem eingefügten
PES-Paket vorangehen,
kombiniert mit den ersten Bytes des Sequenz-Fehler-Codes (d.h. „0×00") einen Bild-Header-Start-Code bilden
(d.h. „0×00 00 01
00"). Um diesen Fall
zu vermeiden, wird ein Byte mit einem Wert von „0×B4" zwischen dem Blind-PES-Header und dem
Sequenz-Fehler-Code eingefügt.
Wenn in diesem Fall die letzten drei Bytes der vorangehenden PES-Paket-Nutzdaten
tatsächlich „0×00 00 01" sind, dann ist der
gebildete Code ein anderer Sequenz-Fehler-Code „0×00 00 01 B4". Ob dieser Code
einmal oder zweimal vorhanden ist, ist nicht wichtig, solange das
Verhalten des Video-Dekodierers betroffen ist. Wenn die letzten
drei Bytes und das „0×B4"-Byte nicht den Sequenz-Fehler-Code
bilden, ist das Vorhandensein des B4 ohne Folgen, weil der folgende
Sequenz-Fehler-Code
in jedem Fall den vorhergehenden Inhalt des Video-Dekodierer-Eingangspuffers
einschließlich
des zusätzlichen „0×B4" eliminiert.
-
-
Tabelle
8 – TS-Paket
mit Blind-PES-Header und Sequenz-Fehlercode
-
Normalerweise
sind Bilder, zu denen nacheinander während der Trick-Betriebsart
Zugriff genommen wird, nicht notwendigerweise Bilder vom Intra-Typ.
Es kann somit notwendig sein, andere Bilder zu dekodieren und sie
im Speicher zu halten, um ein bestimmtes Bild zu dekodieren. Wenn
das anzuzeigende Bild vom P-Typ ist, dann ist es notwendig, das
vorangehende Bild vom I-Typ zu dekodieren (das unter Verwendung
des Bild-Descriptors gefunden werden kann, der dem Bild-Descriptor
des anzuzeigenden Bildes vorausgeht) und jenes Bild vom I-Typ zuerst
zu dekodieren. Es muss daran erinnert werden, dass Bilder gemäß der Reihenfolge übertragen – und gespeichert – werden,
in der sie dekodiert werden sollen, nicht in der Reihenfolge, nach
der sie angezeigt werden sollen. Diese Reihenfolge unterscheidet
sich generell von der Anzeige-Reihenfolge. Der Video-Dekodierer
wird von dem Mikroprozessor 6 instruiert, nur das Bild
vom I-Typ zu dekodieren, aber es nicht anzuzeigen. Das Bild vom
P-Typ wird dann dekodiert und angezeigt.
-
Wenn
ein Bild vom B-Typ dekodiert werden soll, müssen in gleicher Weise die
vorhergehenden und folgenden I- und/oder P-Typ-Bilder aus der Festplatte herausgezogen
und zuerst dekodiert werden.
-
Das
vorliegende Ausführungsbeispiel
betrifft weitgehend TS-Strom-Paket-Aufzeichnung
und -Wiedergabe, aber natürlich
ist die Aufzeichnung/Wiedergabe von anderen Schichten, insbesondere
der PES-Schicht, nicht außerhalb
des Schutzumfangs der Erfindung.
-
Ferner
managt gemäß dem vorliegenden
Ausführungsbeispiel
der Mikroprozessor zwar die Dateisysteme des Festplatten-Laufwerks,
jedoch kann diese Aufgabe auch von einem anderen Prozessor in dem
Empfänger,
insbesondere dem Video-Dekodierer 10, übernommen werden.
-
Obwohl
bei der vorliegenden Ausführungsform
die verwendete Massenspeicher-Vorrichtung ein Festplatten-Laufwerk
ist, kann eine andere Art von Vorrichtung ebenfalls verwendet werden.
Zum Beispiel können aufzeichnungsfähige Kompaktplatten
oder digitale Videoplatten verwendet werden.