-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
zur Verarbeitung von audio-visuellen Informationen und insbesondere
auf ein Verfahren und eine Vorrichtung zum Ermöglichen des nicht-sequentiellen
Zugriffs auf audio-visuelle Informationen, die in einem digitalen
Format gespeichert sind.
-
HINTERGRUND DER ERFINDUNG
-
In
den letzten Jahren hat die Medienindustrie ihren Horizont über die
herkömmlichen
analogen Techniken hinaus erweitert. Tonteile, Photographien und
selbst Spielfilme werden nun in einem digitalen Format aufgezeichnet
oder in ein solches umgesetzt. Zur Unterstützung der Kompatibilität zwischen
Produkten wurden in vielen der Medienkategorien Standardformate
entwickelt.
-
MPEG
ist ein weitverbreiteter Standard, der entwickelt wurde, um audio-visuelle
Sequenzen zu speichern und den Client mit den digitalen Daten, die
die audio-visuellen Sequenzen repräsentieren, zu versorgen. Zum
Zweck der Erläuterung
werden die MPEG-1- und MPEG-2-Formate betrachtet, um die Probleme
zu erklären,
die mit dem Verschaffen eines nichtsequentiellen Zugriffs auf audio-visuelle Informationen
verbunden sind. Die von der vorliegenden Erfindung angewandten Techniken
zur Lösung
dieser Probleme werden ebenso im Zusammenhang mit MPEG beschrieben.
Jedoch sind MPEG-1 und MPEG-2 selbstverständlich lediglich zwei Kontexte,
in denen die Erfindung angewandt werden kann. Die Erfindung ist
nicht auf ein bestimmtes digitales Format beschränkt.
-
Im
MPEG-Format werden die Video- und Audioinformationen in einer binären Datei
(einer "MPEG-Datei") gespeichert. Die
Videoinformationen in der MPEG-Datei repräsentieren eine Sequenz von
Videobildern. Zwischen diese Videoinformationen können Audioinformationen,
die eine oder mehrere Tonspuren repräsentieren, gemischt sein. Die
zur Repräsentation
eines Videobildes in der MPEG-Datei verwendete Informationsmenge
ist sowohl aufgrund des optischen Inhalts als auch aufgrund der
zur digitalen Wiedergabe dieses Inhalts angewandten Techniken von
Bild zu Bild sehr unterschiedlich. In einer typischen MPEG-Datei
beträgt
die Menge von digitalen Daten, die zur Codierung eines einzelnen
Videobildes verwendet wird, zwischen 2 und 50 KByte.
-
Während des
Playbacks werden die in der MPEG-Datei dargestellten audio-visuellen
Informationen in einem Datenstrom (einem "MPEG-Datenstrom") an den Client geschickt. Ein MPEG-Datenstrom
muß bestimmte,
in den MPEG-Standards dargelegte Kriterien erfüllen. In MPEG-2 muß der MPEG-Datenstrom aus Paketen
fester Größe bestehen.
Insbesondere muß jedes
Paket exakt 188 Byte lang sein. In MPEG-1 darf die Größe jedes
Pakets variieren, wobei die typische Größe 2252 Byte beträgt. Jedes
Paket enthält
einen Kopfsatz, der Daten enthält,
die die Inhalte des Pakets beschreiben. Da sich die zur Repräsentation
eines jeden Bildes verwendete Datenmenge und die Größe der Pakete
nicht ändern,
besteht kein Zusammenhang zwischen den Paketgrenzen und den Grenzen
der darin enthaltenen Videobildinformationen.
-
MPEG
verwendet drei grundlegende Techniken zum Codieren von Videobildern.
Die drei Techniken erzeugen drei Typen von Bilddaten: I-Bilddaten
(I = inter = zwischen), P-Bilddaten (P = predicted = vorhergesagt)
und B-Bilddaten (B = bidirektional = bidirektional).
-
I-Bilddaten
enthalten sämtliche
Informationen, die zum vollständigen
Neuaufbau eines Bildes erforderlich sind. P-Bilddaten enthalten
Informationen, die die Differenz zwischen einem Bild und dem den
vorangehenden I-Bilddaten oder P-Bilddaten entsprechenden Bild repräsentieren.
B-Bilddaten enthalten Informationen, die die relative Verschiebung
zwischen vorangehenden I- oder P-Bilddaten repräsentieren und auf I- oder P-Bilddaten
folgen. Diese digitalen Bildformate sind in den folgenden internationalen
Standards genau beschrieben: ISO/IEC 13818-1, 2, 3 (MPEG-2) und
ISO/IEC 11172-1, 2, 3 (MPEG-1). Dokumente, die diese Standards beschreiben
(im folgenden als "MPEG-Spezifikationen" bezeichnet), können von
ISO/IEC Copyright Office Case Postale 56, CH 1211, Genf 20, Schweiz
bezogen werden.
-
Wie
oben erläutert
wurde, können
Videobilder nicht aus P- und
B-Bilddaten allein erzeugt werden. Um durch P-Bilddaten dargestellte
Videobilder neu aufbauen zu können,
sind die vorangehenden I- oder P-Bilddaten erforderlich. Somit läßt sich
sagen, daß ein
P-Bild vom vorangehenden I- oder P-Bild "abhängt". Um durch B-Bilddaten
dargestellte Videobilder neu aufbauen zu können, sind die vorangehenden
I- oder P-Bilddaten und die nachfolgenden I- oder P-Bilddaten erforderlich.
Somit läßt sich
sagen, daß B-Bilder
von den vorangehenden und von den nachfolgenden I- oder P-Bilddaten
abhängen.
-
Die
obenbeschriebenen Abhängigkeiten
sind in 1a gezeigt. Die Pfeile in 1a geben
eine "Abhängigkeits"-Beziehung an. Genauer,
wenn ein gegebenes Bild von einem anderen Bild abhängt, zeigt
ein Pfeil von dem gegebenen Bild zu dem anderen Bild.
-
In
dem gezeigten Beispiel repräsentiert
das Bild 20 ein I-Bild. I-Bilder hängen nicht von anderen Bilder ab, weshalb
kein Pfeil von dem Bild 20 weg zeigt. Die Bilder 26 und 34 repräsentieren
P-Bilder. Ein P-Bild hängt vom
vorangehenden I- oder P-Bild ab. Folglich zeigt ein Pfeil 36 von
dem P-Bild 26 auf das I-Bild 20, während ein
Pfeil 38 von dem P-Bild 34 auf das P-Bild 26 zeigt.
-
Die
Bilder 22, 24, 28, 30 und 32 repräsentieren
B-Bilder. B-Bilder hängen
von den vorangehenden und von den nachfolgenden I- oder P-Bilder
ab. Folglich zeigen ein Pfeil 40 von jedem Bild 22, 24, 28, 30 und 32 zu
jedem I- oder P-Bild, das den einzelnen B-Bilder vorangeht, und
zu jedem I- oder P-Bild, das den einzelnen B-Bilder nachfolgt.
-
Die
Eigenschaften des obenbeschriebenen MPEG-Formats ermöglichen
das Speichern einer großen Menge
von audio-visuellen
Informationen in einem relativ klein bemessenen digitalen Speicherraum.
Jedoch lassen dieselben Eigenschaften nur schwerlich ein anderes
als das streng sequentielle Abspielen des audio-visuellen Inhalts
einer MPEG-Datei zu. Beispielsweise wäre es äußerst schwer, auf ein Videobild
wahlfrei zuzugreifen, da die Daten für das Videobild in der Mitte
eines MPEG-Pakets beginnen und in der Mitte eines anderen MPEG-Pakets
enden können.
Außerdem
kann das Bild, wenn es durch P-Bilddaten repräsentiert wird, nicht neu aufgebaut
werden, ohne die den P-Bilddaten unmittelbar vorangehenden I- und
P-Bilder zu verarbeiten. Wenn das Bild durch B-Bilddaten repräsentiert
wird, kann es nicht neu aufgebaut werden, ohne die den B-Bilddaten
unmittelbar vorangehenden I- und P-Bilder und die den B-Bilddaten
unmittelbar nachfolgenden I- und P-Bilder zu verarbeiten.
-
Erwartungsgemäß wünscht sich
der Betrachter eines digitalen Videos von den Lieferanten eines
digitalen Videos dieselbe Funktionalität, die er beim Anschauen von
analo gen Videobändern
auf Videorecordern gewöhnt
ist. Beispielsweise will ein Betrachter innerhalb des Videos vorwärts und
rückwärts springen
können, das
Video sowohl schnell vorwärts
und schnell rückwärts als
auch langsam vorwärts
und langsam rückwärts laufen
lassen und das Bild anhalten können.
Jedoch waren MPEG-Video-Lieferanten aufgrund der Eigenschaften des
MPEG-Videoformats nur in der Lage, teilweise Implementierungen dieser
Merkmale anzubieten.
-
Einige
MPEG-Lieferanten haben die Schnellvorlauffunktionalität eingebaut,
indem sie Schnellvorlauf-MPEG-Dateien erzeugten. Eine Schnellvorlauf-MPEG-Datei
wird erstellt, indem der Schnellvorlaufvorgang einer analogen Version
einer audio-visuellen Sequenz im MPEG-Format aufgezeichnet wird.
Sobald eine Schnellvorlauf-MPEG-Datei erzeugt worden ist, kann ein
MPEG-Server während
des Playbacks den Schnellvorlauf simulieren, indem sowohl aus der
Normalgeschwindigkeits-MPEG-Datei als auch aus der Schnellvorlauf-MPEG-Datei
ein MPEG-Datenstrom an einen Anwender übertragen wird. Genauer, der
MPEG-Server schaltet in Antwort auf durch den Anwender erzeugte
Schnellvorlauf- und Normalabspielbefehle zwischen dem Lesen aus
der normalen MPEG-Datei und dem Lesen aus der Schnellvorlauf-MPEG-Datei
um. Dieselbe Technik kann angewandt werden, um den Schnellrücklauf,
die Vorwärtszeitlupe
und die Rückwärtszeitlupe
zu implementieren.
-
Die
obenbeschriebene Implementierung einer separaten MPEG-Datei für den Schnellvorlauf
weist zahlreiche Nachteile auf. Insbesondere erfordert die Implementierung
einer separaten MPEG-Datei für
jede Geschwindigkeit, die unterstützt wird, die Durchführung einer
eigenen Analog-MPEG-Umsetzung.
Dieser Nachteil wiegt schwer, da der Analog-MPEG-Umsetzungsprozeß komplex
und kostenaufwendig ist. Ein zweiter Nachteil ist der, daß die Verwendung
von
-
Mehrfach-MPEG-Dateien
den für
eine bestimmte audio-visuelle Sequenz erforderlichen Speicherraums
mehr als ver doppeln kann. Eine MPEG-Datei für Vorlauf mit doppelter Geschwindigkeit
nimmt nahezu die halbe Größe der Normalgeschwindigkeits-MPEG-Datei
ein. Eine MPEG-Datei für
Zeitlupe mit halber Geschwindigkeit nimmt nahezu die zweifache Größe der Normalgeschwindigkeits-MPEG-Datei
ein. Da ein typischer Film 2 bis 4 Gigabyte Plattenspeicher benötigt, sind
die Kosten hoch.
-
Ein
dritter Nachteil der Lösung
mit der separaten MPEG-Datei
ist der, daß für den Anwender
nur die spezifisch codierten Playbackgeschwindigkeiten verfügbar sind.
Die Technik unterstützt
keine Geschwindigkeiten, die schneller oder langsamer als die spezifisch
codierten Geschwindigkeiten sind oder dazwischen liegen. Ein vierter
Nachteil ist der, daß die
Lösung
mit der separaten MPEG-Datei das Vorhandensein einer kompletten
analogen Version der audio-visuellen Zielsequenz erfordert. Folglich
kann die Technik nicht auf Live-Sendungen wie etwa Sportereignisse,
die einem MPEG-Codierer und Anwendern in Echtzeit zugeleitet werden,
angewandt werden.
-
Aus
dem Vorhergehenden wird deutlich, daß das Schaffen eines Verfahrens
und einer Vorrichtung zur sequentiellen Wiedergabe nichtsequentieller
Bilder eines digitalen Videos wünschenswert
ist. Es ist ferner wünschenswert,
einen solchen nichtsequentiellen Zugriff in der Weise zu schaffen,
daß keine
Erzeugung und Verwendung von digitalen Mehrfach-Videodateien erforderlich
ist. Es ist ferner wünschenswert,
einen solchen Zugriff sowohl für
Echtzeitsendungen als auch für
den gespeicherten audio-visuellen Inhalt zu schaffen.
-
US-A-5,267,351 beschreibt
ein System zum Management von Mediendaten and zum Indizieren von Mediendaten.
Ein Mediendateimanager MFM erzeugt und verwaltet Mediendateien.
Ein Quellmanager SM führt
eine Tabelle von Beziehungen zwischen den linearen aufgezeichneten
Mediendaten, z. B. auf Quellbändern,
und den digitalisierten Mediendateien. Die MFM lokalisiert Medien
(oder darauf bezogene Informationen), die durch eine Benutzeranforderung
spezifiziert wurden, die due aus einem Zeitraum von einer bestimmten
Quelle besteht. Der Zeitraum kann durch den bekannten SMPTE Zeiotcode
bestimmt werden, Film-Kantennummern, Echtzeit oder einen anderen
Standard zur Identifizierung des Bereichs des Quellmaterials. Dabei wird
beabsichtigt, ein Editiersystem zu verbessern, bei dem unterschiedliche
Materialen (Clips) zusammengefügt
werden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung ist in den unabhängigen Ansprüchen 1 und
7 definiert. Die abhängigen
Ansprüche
definieren besondere Ausführungsbeispiele
der Erfindung.
-
Es
wird ein Verfahren und eine Vorrichtung zur Verwendung in einem
digitalen Video-Übermittlungssystem
geschaffen. Es wird eine digitale Darstellung eines audio-visuellen
Erzeugnisses wie etwa einer MPEG-Datei analysiert, um eine Etikettdatei
zu erzeugen. Die Etikettdatei enthält Informationen über jedes einzelne
Bild in dem audiovisuellen Erzeugnis. Insbesondere enthält die Etikettdatei
Zustandsinformationen über
den Zustand einer oder mehrerer Zustandsmaschinen, die zur Decodierung
der digitalen Darstellung verwendet werden. Die Zustandsinformationen
hängen
von der zur Codierung des audio-visuellen Erzeugnisses angewandten
spezifischen Technik ab. Für
MPEG-2-Dateien enthält
die Etikettdatei beispielsweise Informationen über den Zustand der Programm-Elementarstramm-Zustandsmaschine,
die Video- Zustandsmaschine und
die Transportschicht-Zustandsmaschine.
-
Während der
Wiedergabe des audio-visuellen Erzeugnisses werden von einer Videopumpe
Daten aus der digitalen Darstellung an einen Decodierer gesendet.
Gemäss
einem Ausführungsbeispiel
werden die Informationen in der Etikettdatei verwendet, um während der
Wiedergabe des audio-visuellen Erzeugnisses den Suchlauf, den Schnellvorlauf,
den Schnellrücklauf,
den Langsamvorlauf und des Langsamrücklauf auszuführen.
-
Suchläufe werden
ausgeführt,
indem veranlaßt
wird, daß die
Videopumpe die Übertragung
von Daten an der momentanen Position in der digitalen Darstellung
unterbricht und mit der Übertragung
von Daten an einer neuen Position in der digitalen Darstellung beginnt.
Die Informationen in der Etikettdatei werden untersucht, um die
neue Position, an der die Datenübertragung
zu beginnen ist, zu bestimmen. Um sicherzustellen, daß der durch
die Videopumpe übertragene
Datenstrom die Konformität
mit dem anwendbaren Videoformat bewahrt, werden von der Videopumpe
vor dem Übertragen
von Daten von der neuen Position ausgehend Vorspanndaten, die zugehörige Kopfsatzinformationen
enthalten, übertragen.
-
Schnellvorlauf-,
Schnellrücklauf-,
Langsamvorlauf- und Langsamrücklaufvorgänge werden
ausgeführt,
indem anhand der in der Etikettdatei enthaltenen Informationen und
die gewünschte
Wiedergabegeschwindigkeit Videobilder ausgewählt werden und ein Datenstrom
mit den die ausgewählten
Videobilder repräsentierenden
Daten erzeugt wird. Der Auswahlprozeß berücksichtigt eine Vielzahl von
Faktoren einschließlich der
Datenübertragungsrate
des Kanals, über
den die Daten zu senden sind, den Bildtyp der Bilder, eine Mindestauffüllrate (für Stopfbits)
und die Möglich keit
eines Pufferüberlaufs
im Decodierer. Vor und nach den Daten für ein einzelnes Bild werden
Vorspann- und Nachspanndaten in den übertragenen Datenstrom eingefügt, um die
Konformität
mit dem vom Decodierer erwarteten Datenstromformat zu bewahren.
-
Ein
Video-Editor wird zum Erzeugen einer neuen Videodatei aus zuvor
vorhandenen Videodateien bereitgestellt. Der Video-Editor wählt Bilder
aus den zuvor vorhandenen Videodateien anhand von Editierbefehlen
und den Informationen in den Etikett-Dateien der vorexistierenden
Videodateien aus. Die Darstellungsrate, die Startposition, die Endposition
und die Quellendatei können
für jede
durch den Video-Editor zu erzeugende Sequenz getrennt spezifiziert
werden. Der Video-Editor fügt
zwischen die Videodaten vorzugsweise Vorspann- und Nachspanndaten
ein, um sicherzustellen, daß die
neue Videodatei mit dem gewünschten
Format konform ist. Kennzeichnend ist, daß die durch dieses Verfahren
erzeigten neuen Videodateien erzeugt werden, ohne eine zusätzliche
Analog-Digital-Umsetzung durchführen
zu müssen.
Da keine Analog-Digital-Umsetzung durchgeführt wird, kann die neue Datei
auch dann erzeugt werden, wenn kein Zugriff auf die ursprünglichen Aufzeichnungen
der audio-visuellen Erzeugnisse besteht.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
Die
vorliegende Erfindung wird in den Figuren der begleitenden Zeichnung,
in denen gleiche Bezugszeichen gleichartige Elemente bezeichnen,
beispielhaft und keinesfalls einschränkend veranschaulicht, wobei in
der Zeichnung:
-
1a ein
Diagramm ist, das die Abhängigkeiten
zwischen verschiedenen Typen von Bildern in einem MPEG-Datenstrom
zeigt;
-
1b ein
Blockschaltbild eines Übermittlungssystems
für audio-visuelle
Informationen gemäss
einem Ausführungsbeispiel
der Erfindung ist;
-
2a die
verschiedenen Schichten einer MPEG-Datei zeigt;
-
2b die
Inhalte einer Etikettdatei zeigt, die gemäss einem Ausführungsbeispiel
der Erfindung erzeugt wurde;
-
2c die
von jedem Bild in einer MPEG-Datei erzeugten Etikettinformationen
zeigt;
-
3a die
vom Strom-Server in Antwort auf eine Suchanforderung an die Videopumpe
gesendeten Befehle gemäss
einem Ausführungsbeispiel
der Erfindung zeigt;
-
3b die
in Antwort auf die in 3a gezeigten Befehle von der
Videopumpe für
einen Client erzeugten Daten zeigt;
-
4a die
vom Strom-Server während
eines in der Geschwindigkeit spezifizierten Playbackvorgangs an
die Videopumpe gesendeten Befehle gemäss einem Ausführungsbeispiel
der Erfindung zeigt;
-
4b die
in Antwort auf die in 4a gezeigten Befehle von der
Videopumpe für
einen Client erzeugten Daten zeigt;
-
5 einen
MPEG-Editor zeigt, der zur Ausführung
eines erfindungsgemäßen nichtinteraktiven MPEG-Editierens
gemäss
einem Ausführungsbeispiel
der Erfindung konfiguriert ist;
-
6 ein
Ablaufplan ist, der die Arbeitsweise des MPEG-Editors von 5 gemäß einer
Ausführungsform
der Erfindung zeigt; und
-
7 ein
Blockschaltplan ist, der ein Mehrplatten-MPEG-Playbacksystem gemäss einem Ausführungsbeispiel
der Erfindung zeigt.
-
GENAUE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORM
-
In
der folgenden Beschreibung werden die verschiedenen Merkmale der
Erfindung unter Überschriften besprochen,
die in der folgenden Reihenfolge auftreten:
- I. Übersicht
- II. Etikettdateierzeugung
- III. Digitale Audio/Video-Dateistruktur
- IV. Etikettdateiinhalte
- V. Suchvorgänge
- VI. Vorspanndaten
- VII. Paketdiskontinuitäten
- VIII. Pufferbeschränkungen
- IX. Playbackvorgänge
mit spezifizierter Geschwindigkeit
- X. Bit-Budgetierung
- XI. Bildtypeinschränkungen
- XII. Nachspanndaten
- XIII. Zeitlupenvorgänge
- XIV. Rücklaufvorgänge
- XV. Laufzeitkommunikation
- XVI. Genaue Bildpositionierung
- XVII. Plattenzugriffsbedingungen
- XVIII. Playbackvorgänge
mit variabler Geschwindigkeit
- XIX. Nichtinteraktives digitales Audio/Video-Editieren
- XX. Verteiltes System
-
I. Übersicht
-
1b ist
ein Blockschaltbild, das ein Übermittlungssystem 100 für audio-visuelle
Informationen gemäss
einem Ausführungsbeispiel
der Erfindung zeigt. Das Übermittlungssystem 100 für audio-visuelle
Informationen enthält
mehrere Clients (1-n) 160, 170 und 180.
Die Clients (1-n) 160, 170 und 180 repräsentieren im
allgemeinen Vorrichtungen, die zur Decodierung audio-visueller Informationen,
die in einem Strom von digitalen audiovisuellen Daten enthalten
sind, konfiguriert sind. Beispielsweise können die Clients (1-n) 160, 170 und 180 vorgeschaltete
Umsetzerboxen sein, die mit einem Wiedergabegerät wie etwa einem Fernsehgerät gekoppelt
sind.
-
Wie
in 1b gezeigt ist, enthält das Übermittlungssystem 100 für audio-visuelle
Informationen außerdem
einen Strom-Server 110, der mit einem Steuernetz 120 gekoppelt
ist. Das Steuernetz 120 kann ein beliebiges Netz sein,
das eine Kommunikation zwischen zwei oder mehreren Geräten ermöglicht.
Beispielsweise kann das Steuernetz 120 ein Netz mit hoher
Bandbreite sein, eine X.25-Schaltung oder eine serielle EIA-232-(RS-232)-Leitung
(EIA = Electronic Industry Association) sein.
-
Die
Clients (1-n) 160, 170 und 180, die ebenfalls
an das Steuernetz 120 gekoppelt sind, kommunizieren mit
dem Strom-Server 110 über
das Steuernetz 120. Beispielsweise können die Clients 160, 170 und 180 Anforderungen
zur Initiierung der Übertragung
von audio-visuellen Datenströmen übertragen,
Steuerinformationen, um das Playback von laufenden digitalen audio-visuellen Übertragungen
zu beeinflussen, übertragen oder
Abfragen von Informationen übertragen.
Solche Abfragen können
beispielsweise Anforderungen von Informationen darüber, welche
audio-visuellen Datenströme
momentan zum Betrieb verfügbar
sind, enthalten.
-
Das Übermittlungssystem 100 für audio-visuelle
Informationen enthält
ferner eine Videopumpe 130, eine Massenspeichervorrichtung 140 und
ein Netz 150 mit einer hohen Bandbreite. Die Videopumpe 130 ist mit
dem Strom-Server 110 gekoppelt und empfängt von diesem Befehle. Die
Videopumpe 130 ist mit der Massenspeichervorrichtung 140 gekoppelt,
so daß die
Videopumpe 130 Daten in der Massenspeichervorrichtung 140 speichert
und Daten aus derselben wiedergewinnt. Die Massenspeichervorrichtung 140 kann
irgendeine Art von Gerät
oder Geräten
sein, die zur Speicherung großer
Datenmengen verwendet werden. Beispielsweise kann die Massenspeichervorrichtung 140 eine
magnetische Speichervorrichtung oder eine optische Speichervorrichtung
sein. Unter der Massenspeichervorrichtung 140 ist eine
breite Kategorie von nichtflüchtigen
Speichervorrichtungen zu verstehen, die zur Speicherung digitaler
Daten verwendet werden, die dem Fachmann wohlbekannt sind und nicht
weiter beschrieben werden. Obwohl die Netze 120 und 150 zum
Zweck der Erläuterung
als verschiedene Netze dargestellt sind, können diese auch als einzelnes
Netz implementiert sein.
-
Neben
der Kommunikation mit dem Strom-Server 110 empfangen die
Clients (1-n) 160, 170 und 180 Informationen
von der Videopumpe 130 über
das Netz 150 mit hoher Bandbreite. Das Netz 150 mit
hoher Bandbreite kann irgendeine Art leitungsvermittelter Netzverbindung
sein, die große
Datenmengen übertragen kann.
Eine leitungsvermittelte Netzverbindung ist so konfiguriert, daß der Bestimmungsort
der Daten durch das zugrundeliegende Netz, anstatt durch das Übertragungsprotokoll
garantiert ist. Beispielsweise kann das Netz 150 mit hoher
Bandbreite eine Schaltung im asynchronen Übertragungsmodus (ATM) oder
eine Stammleitung wie etwa eine Ti- oder E1-Leitung sein. Außerdem kann
das Netz 150 mit hoher Bandbreite einen Lichtwellenleiter,
eine verdrillte Doppelleitung, ein Koaxialkabel oder ein drahtloses
Kommunikationssystem wie etwa ein Mikrowellenkommunikationssystem
verwenden.
-
Das Übermittlungssystem 100 für audio-visuelle
Informationen der vorliegenden Erfindung ermöglicht einem Server wie etwa
der Videopumpe 130 bei einem minimalen Overhead die Übertragung
großer
Datenmengen aus der Massenspeichervorrichtung 140 über das
Netz 150 mit hoher Bandbreite an die Clients (1-n) 160, 170 und 180.
Ferner ermöglicht
das Übermittlungssystem 100 für audio-visuelle
Informationen den Clients (1-n) 160, 170 und 180 die Übertragung
von Anforderungen an den Strom-Server 110 über das
Steuernetz 120 unter Verwendung eines Standard-Netzprotokolls. In
einer bevorzugten Ausführungsform
wird das zugrundeliegende Protokoll sowohl für das Netz 150 mit
hoher Bandbreite als auch das Steuernetz 120 verwendet. Der
Strom-Server 110 kann aus einem einzelnen Computersystem
oder aus mehreren, als Server konfigurierten Rechnern bestehen. Ähnlich kann
die Videopumpe 130 aus einer einzelnen Server-Einrichtung
bestehen oder mehrere solcher Server umfassen.
-
Um
aus einer bestimmten digitalen audio-visuellen Datei einen digitalen
audio-visuellen Datenstrom zu empfangen, überträgt ein Client (1-n) 160, 170 oder 180 eine
Anforderung an den Strom-Server 110. In Antwort auf die
Anforderung überträgt der Strom-Server 110 Befehle
an die Videopumpe 130, um diese zu veranlassen, den angeforderten
digitalen audio-visuellen Datenstrom an den Client, der den digitalen
audio-visuellen Datenstrom angefordert hatte, zu übertragen.
-
Die
vom Strom-Server 110 an die Videopumpe 130 gesendeten
Befehle enthalten für
die Client-Anforderung spezifische Steuerinformationen. Beispielsweise
identifizieren die Steuerinformationen die gewünschte digitale audio-visuelle
Datei, die Anfangsverschiebung der gewünschten Daten innerhalb der
digitalen audio-visuellen Datei und die Adresse des Client. Um einen
gültigen
digitalen audiovisuellen Strom an der spezifizierten Verschiebung
zu erzeugen, sendet der Strom-Server 110 außerdem "Vorspanndaten" an die Videopumpe 130 und
fordert die Videopumpe 130 auf, die Vorspanndaten an den
Client zu senden. Wie weiter unten genauer beschrieben wird, sind
Vorspanndaten Daten, die den Client auf den Empfang digitaler audio-visueller Daten ausgehend
vom spezifizierten Ort in der digitalen audio-visuellen Datei vorbereiten.
-
Nach
dem Empfang der Befehle und der Steuerinformationen vom Strom-Server 110 beginnt
die Videopumpe 130 die digitalen audio-visuellen Daten
ausgehend vom spezifizierten Ort in der spezifizierten digitalen
audio-visuellen Datei auf der Massenspeichervorrichtung 140 wiederzugewinnen.
Zum Zweck der Erläuterung
wird angenommen, daß das
System 100 audio-visuelle Informationen gemäß einem
oder mehrerer der MPEG-Formate liefert. Somit gewinnt die Videopumpe 130 die
audio-visuellen Daten aus einer MPEG-Datei 104 auf der Massenspeichervorrichtung 140 wieder.
-
Die
Videopumpe 130 überträgt die Vorspanndaten
an den Client und unmittelbar darauf die aus der Massenspeichervorrichtung 140 wiedergewonnenen
Daten, wobei an dem für
den Client spezifizierten Ort begonnen wird. Die Vorspanndaten enthalten
einen Paketkopfsatz, der, wenn diesem die MPEG-Daten, die an der
spezifizierten Position angeordnet sind, folgen, ein MPEG-konformes Übertragungspaket
erzeugt. Die Daten, die dem ersten Paket folgen, werden sequentiell
aus der MPEG-Datei 104 wiedergewonnen, weshalb sie eine
Reihe von MPEG-konformen Paketen bilden. Die Videopumpe 130 überträgt diese
Pakete an den anfordernden Client über das Netz 150 mit
hoher Bandbreite.
-
Der
anfordernde Client empfängt
den MPEG-Datenstrom, wobei mit den Vorspanndaten begonnen wird.
Der Client decodiert den MPEG-Datenstrom, um die in dem MPEG-Datenstrom
dargestellte audio-visuelle Sequenz zu reproduzieren.
-
II. Etikettdateierzeugung
-
Das
System 100 enthält
einen Etikettdateigenerator 112. Der Etikettdateigenerator 112 erzeugt
aus der MPEG-Datei 104 eine Etikettdatei 106.
Für den
gespeicherten MPEG-Inhalt
wird der Etikettdateierzeugungsvorgang durch den Etikettdateigenerator 112 "off-line" (d. h. vor einer
Client-Anforderung von MPEG-Daten aus der MPEG-Datei 104)
ausgeführt.
Jedoch wird die Etikettdateierzeugung in bestimmten Fällen wie etwa
bei einer Echtzeit-MPEG-Sendung während des Empfangs des MPEG-Datenstroms
in Echtzeit ausgeführt.
Folglich erzeugt der Etikettdateigenerator 112 die Etikettdatei 106 in
der bevorzugten Ausführungsform in
Echtzeit oder schneller. Die Geschwindigkeit der Etikettdateierzeugung
kann durch Parallelisierung der Etikettdateioperation beschleunigt
werden.
-
Der
Etikettdateigenerator 112, der Strom-Server 110 und
die Videopumpe 130 sind zum Zweck der Erläuterung
als separate Funktionseinheiten gezeigt. Jedoch kann sich die spezielle
Aufteilung der Funktionalität auf
die Einheiten von einer Implementierung zur anderen unterscheiden.
Die vorliegende Erfindung ist nicht begrenzt auf eine bestimmte
Aufteilung der Funktionalität.
Der Etikettdateigenerator 112 ist beispielsweise als selbständige Einheit
gezeigt. Jedoch kann der Etikettdateigenerator 112 in einer
Ausführungsform
in einem MPEG-Codierer enthalten sein. Ein solcher MPEG-Codierer
würde die
in der Etikettdatei 106 enthaltenen Informationen gleich zeitig
mit der Erzeugung der in der MPEG-Datei 104 enthaltenen
Informationen erzeugen. Eine Implementierung, die den MPEG-Codierungsvorgang
mit dem Etikettdatei-Erzeugungsvorgang
kombiniert, kann dadurch, daß die
Notwendigkeit, redundante Operationen ausführen zu müssen, entfällt, die Effizienz erhöhen. Ein
solcher Zuwachs an Effizienz ist besonders nützlich, wenn audio-visuelle
Sendungen in Echtzeit verarbeitet werden.
-
Die
Etikettdatei 106 enthält
Steuerinformationen, die vom Strom-Server 110 zur Implementierung
von Schnellvorlauf-, Schnellrücklauf-,
Langsamvorlauf-, Langsamrücklauf-
und Suchoperationen verwendet werden. Die Verwendung der Etikettdatei 106 zur
Durchführung
dieser Operationen wird weiter unten näher beschrieben. Die Etikettdatei 106 enthält allgemeine
Informationen über
die MPEG-Datei 104 und spezifische Informationen über die
einzelnen Videobilder in der MPEG-Datei 104. Bevor die
Inhalte der Etikettdatei 106 näher besprochen werden, soll
mit Bezug auf 2a die allgemeine Struktur der
MPEG-Datei 104 beschrieben werden.
-
III. MPEG-Dateistruktur
-
Digitale
audio-visuelle Speicherformate, ob komprimiert oder unkomprimiert,
verwenden Zustandsmaschinen und Pakete verschiedenartiger Struktur.
Die hier beschriebenen Techniken lassen sich auf alle solche Speicherformate
anwenden. Obwohl die vorliegende Erfindung auf kein bestimmtes digitales
audio-visuelles Format beschränkt
ist, wird zum Zweck der Veranschaulichung die MPEG-2-Transportdateistruktur
beschrieben.
-
2a zeigt
die Struktur einer MPEG-2-Transportdatei 104 näher. Die
Daten in der MPEG-Datei 104 sind in drei Schichten gepackt:
eine Programm-Elementarstrom-("PES")- Schicht, eine Transportschicht und eine
Videoschicht. Diese Schichten sind in den MPEG-2-Spezifikationen
näher beschrieben.
In der PES-Schicht besteht die MPEG-Datei 104 aus einer
Sequenz von PES-Paketen. In der Transportschicht besteht die MPEG-Datei 104 aus
einer Sequenz von Transportpaketen. In der Videoschicht besteht
die MPEG-Datei 104 aus
einer Sequenz von Bildpaketen. Jedes Bildpaket enthält die Daten
für ein
Videobild.
-
Jedes
PES-Paket besitzt einen Kopfsatz, der die Länge und die Inhalte des PES-Pakets
identifiziert. Im gezeigten Beispiel enthält ein PES-Paket 250 einen
Kopfsatz 248, gefolgt von einer Sequenz von Transportpaketen 251-262.
Die PES-Paketgrenzen stimmen mit den gültigen Transportpaketgrenzen überein.
Jedes Transportpaket enthält
ausschließlich
einen Datentyp. Im gezeigten Beispiel enthalten die Transportpakete 251, 256, 258, 259, 260 und 262 Videodaten.
Die Transportpakete 252, 257 und 261 enthalten
Audiodaten. Das Transportpaket 253 enthält Steuerdaten. Das Transportpaket 254 enthält Zeitsteuerungsdaten.
Das Transportpaket 255 ist ein Stopfbitpaket.
-
Jedes
Transportpaket besitzt einen Kopfsatz. Der Kopfsatz enthält eine
Programm-ID ("PID") für das Paket.
PID 0 zugewiesene Pakete sind Steuerpakete. Beispielsweise kann
das Paket 253 PID 0 zugewiesen sein. Auf weitere Pakete,
die Steuerpakete enthalten, wird in den PID-0-Paketen verweisen.
Genauer, PID-0-Steuerpakete enthalten Tabellen, die die Pakettypen
der Pakete, die unmittelbar auf die PID-0-Steuerpakete folgen, angeben.
Für alle
Pakete, die keine PID-0-Steuerpakete sind, enthalten die Kopfsätze PID's, die als Zeiger
auf die Tabelle dienen, die in demjenigen PID-0-Steuerpaket enthalten
ist, das den Paketen unmittelbar vorangeht. Beispielsweise würde der
in einem Paket mit einer PID 100 enthaltene Datentyp durch Untersuchen
desjenigen Eintrags bestimmt, der mit der PID 100 in der
Tabelle des PID-0-Steuerpakets, das dem Paket unmittelbar voraus
geht, zusammenhängt.
-
In
der Videoschicht ist die MPEG-Datei 104 gemäß den Grenzen
der Bilddaten unterteilt. Wie oben erwähnt wurde, besteht kein Zusammenhang
zwischen den Grenzen der Daten, die Videobilder repräsentieren,
und den Transportpaketgrenzen. Im gezeigten Beispiel sind die Bilddaten
für ein
Videobild "F" wie durch die Klammern 270 angegeben
angeordnet. Genauer, die Bilddaten für das Bild "F" befinden
sich zwischen dem Punkt 280 in dem Videopaket 251 und
dem Ende des Videopakets 251, in dem Videopaket 256 und
zwischen dem Beginn des Videopakets 258 und dem Punkt 282 im
Videopaket 258. Deshalb repräsentieren die Punkte 280 und 282 die
Grenzen für
das Bildpaket für
das Bild "F". Die Bilddaten für ein zweites
Videobild "G" sind wie durch die
Klammern 272 angegeben angeordnet. Die Grenzen für das Bildpaket
für das
Bild "G" sind durch die Klammern 276 gekennzeichnet.
-
Zu
den oben für
MPEG-2-Transportströme
beschriebenen Strukturen analoge Strukturen gibt auch in anderen
digitalen audio-visuellen Speicherformaten einschließlich MPEG-1,
Quicktime, AVI, Indeo, Cinepak, Proshare, HP.261 und der Fraktal-Formate.
In der bevorzugten Ausführungsform
werden Indikatoren für
Video-Zugriffspunkte, Zeitstempel, Dateiorte usw. gespeichert, so
daß vom
selben Server auf mehrere digitale audio-visuelle Speicherformate
zugegriffen werden kann, um Clients gleichzeitig eine Vielfalt an
Speicherformaten anbieten zu können.
Vorzugsweise sind alle diese formatspezifischen Informationen und
Techniken in dem Etikettgenerator und dem Strom-Server enthalten.
Alle anderen Elemente des Servers sind formatunabhängig.
-
IV. Etikettdateiinhalte
-
Nun
werden in Zusammenhang mit 2b die
Inhalte einer exemplarischen Etikettdatei 106 beschrieben.
In 2b enthält
die Etikettdatei 106 einen Dateityp-Bezeichner 202,
einen Längenindikator 204,
einen Bitrate-Indikator 206, einen Spieldauer-Indikator 208,
einen Bildnummer-Indikator 210,
Stromzugriffsinformationen 212 und eine anfängliche
MPEG-Zeitverschiebung 213. Der Dateityp-Bezeichner 202 gibt den physischen
Umbruch (physical wrapping) in der MPEG-Datei 104 an. Beispielsweise
gibt der Dateityp-Bezeichner 202 an, ob die MPEG-Datei 104 eine
MPEG-2- oder eine MPEG-1-Datei ist.
-
Der
Längenindikator 204 gibt
die Länge
der MPEG-Datei 104 an. Der Bitrate-Indikator 206 gibt
die Bitrate an, mit der die Inhalte der MPEG-Datei 104 während des
Playbacks an einen Client gesendet werden. Der Spieldauer-Indikator 208 spezifiziert
in Millisekunden die zum Abspielen der gesamten Inhalte der MPEG-Datei 104 während eines
normalen Playbackvorgangs erforderliche Zeit. Der Bildnummer-Indikator 210 gibt
die Gesamtzahl der in der MPEG-Datei 104 dargestellten
Bilder an.
-
Die
Stromzugriffsinformationen 212 sind Informationen, die
zum Zugriff auf die in der MPEG-Datei 104 gespeicherten
Video- und Audioströme
erforderlich sind. Die Stromzugriffsinformationen 212 enthalten
eine Video-Elementarstrom-ID und eine Audio-Elementarstrom-ID. Für MPEG-2-Dateien enthalten
die Stromzugriffsinformationen 212 außerdem eine Video-PID und eine
Audio-PID. Der Etikettdatei-Kopfsatz kann außerdem weitere Informationen
enthalten, die zur Implementierung von Merkmalen, die sich von den
oben angeführten unterscheiden,
verwendet werden können.
-
Neben
den obenbeschriebenen allgemeinen Informationen enthält die Etikettdatei 106 einen
Eintrag für
jedes Bild in der MPEG-Datei 104. Der Eintrag für ein Videobild
enthält
Informationen über
den Zustand der verschiedenen MPEG-Schichten, die sich auf die Position
der Daten, die das Bild repräsentieren,
bezieht. Für eine
MPEG-2-Datei enthält
jeder Eintrag den Zustand der MPEG-2-Transportzustandsmaschine,
den Zustand der Programm-Elementarstrom-Zustandsmaschine und den Zustand der
Videozustandsmaschine. Für
eine MPEG-1-Datei enthält
jeder Eintrag den momentanen Zustand des Packsystem-MPEG-Stroms
und den Zustand der Videozustandsmaschine.
-
Der
Etikettdateieintrag
214 zeigt die für ein einzelnes MPEG-2-Videobild "F" gespeicherten Etikettinformationen
näher.
Bezüglich
des Zustands der Programm-Elementarstrom-Zustandsmaschine enthält der Etiketteintrag
214 die
in der Tabelle 1 angegebenen Informationen. TABELLE 1
DATEN | BEDEUTUNG |
PES-Verschiebung
am Beginn von Bild 217 | Verschiebung
des ersten Bytes der Bilddaten für
das Bild "F" innerhalb des PES-Pakets,
das die Bilddaten für
das Bild "F" enthält |
PES-Verschiebung
am Ende von Bild 217 | Verschiebung
zwischen dem letzten Byte in den Bilddaten für das Bild "F" und
dem Ende des PES-Pakets, in dem sich die Bilddaten für das Bild "F" befinden |
-
Bezüglich des
Zustands der Videozustandsmaschine enthält der Etiketteintrag
214 die
in der Tabelle 2 angegebenen Informationen. TABELLE 2
DATEN | BEDEUTUNG |
Bildgröße 220 | Größe des Bildpakets
für das
Bild |
Startposition 226 | Ort
des ersten Bytes der Daten, die dem Bild "F" entsprechen,
innerhalb der MPEG-Datei |
Zeitwert 228 | Zeit
in bezug auf den Beginn des Films, wenn das Bild "F" während
eines normalen Playbacks der MPEG-Datei 104 angezeigt würde |
Bildtyp 232 | Technik,
die zur Codierung des Bildes verwendet wird (z. B. I-Bild, P-Bild
oder B-Bild) |
Zeitsteuerungspufferinformationen | gibt
an, wie voll der Puffer des Decodierers ist (wird an den Deco- |
238 | dierer
gesendet, damit dieser bestimmt, wann Informationen aus dem Puffer
auszutragen sind, um neu ankommende Informationen zu empfangen) |
-
Bezüglich des
Zustands der Transportschicht-Zustandsmaschine enthält der Etiketteintrag
214 die
in der Tabelle 3 angegebenen Informationen. TABELLE 3
DATEN | BEDEUTUNG |
Startverschiebung 234 | Abstand
zwischen dem ersten Byte in den Bilddaten und dem Beginn des Transportpakets,
in dem sich das |
# von Nichtvideopaketen 222 | erste
Byte befindet Anzahl von Nichtvideopaketen (d. h. Audiopaketen,
Stopfbitpaketen, |
# von Stopfbitpaketen 224 | Steuerpaketen
und Zeitsteuerungspaketen), die sich im Bildpaket für das Bild "F" befinden Anzahl von Stopfbitpaketen,
die sich im Bildpaket für
das Bild "F" befinden |
Endverschiebung 217 | Abstand
zwischen dem letzten Byte in den Bilddaten und dem Ende des Pakets,
in dem sich das letzte Byte befindet |
Zähler für momentane
Kontinuität 230 | Kontinuitätswert,
der dem Bild "F" zugeordnet ist |
Diskontinuitätsmerker 230 | gibt
an, ob zwischen dem Bild "F" und dem Bild, das in
dem vorangehenden Etiketteintrag repräsentiert |
| ist,
eine zeitliche Diskontinuität
besteht |
-
Beispielsweise
sei angenommen, daß sich
der Eintrag 214 auf das Bild "F" von 2a bezöge. Die dem
Bild "F" zugeordnete Größe 220 entspräche dann
den durch die Klammern 274 eingefaßten Bits. Die Anzahl 222 von
Nichtvideopaketen wäre
5 (Pakete 252, 253, 254, 255 und 257).
Die Anzahl 224 von Stopfbitpaketen wäre gleich 1 (Paket 255).
Die Startposition 226 entspräche dem Abstand zwischen dem
Beginn der MPEG-Datei 104 und dem Punkt 280. Die
Startverschiebung 234 entspräche dem Abstand zwischen dem
Beginn des Pakets 251 und dem Punkt 280. Die Endverschiebung 236 entspräche dem
Abstand zwischen dem Punkt 282 und dem Ende des Pakets 258.
-
2c zeigt
die von jedem Bild in einer MPEG-1-Datei erzeugten Etikettinformationen.
In
2c enthält
der Eintrag
214 Daten, die den Zustand der drei Zustandsmaschinen,
einer Systemzustandsmaschine, einer Packzustandsmaschine und einer
Videozustandsmaschine, angeben. Insbesondere enthält der Etiketteintrag
214 die
in der Tabelle 4 gezeigten Informationen. TABELLE
4
DATEN | BEDEUTUNG |
Menge
von Nicht-videodaten 221 | Menge
von Nichtvideodaten (in Byte), die innerhalb der Anfangs- und Endgrenzen
der Bilddaten für
das Bild "F" enthalten sind |
Menge
von Stopfbitdaten 223 | Menge
von Stopfbitdaten (in Byte), die innerhalb der Anfangs- und Endgrenzen
der Bilddaten für
das Bild "F" enthalten sind |
Paketverschiebung
bei Start 225 | Verschiebung
zwischen der Anfangsgrenze der Bilddaten für das Bild "F" und
dem Anfang des Pakets, das die Anfangsgrenze für das Bild "F" enthält |
Verbleibendes
Paket bei Start 227 | Abstand
zwischen der Anfangsgrenze für
das Bild "F" und dem Ende des
Packungspakets, das die Endgrenze für das Bild "F" enthält |
Paketverschiebung
bei Ende 229 | Verschiebung
zwischen der Endgrenze für
das Bild "F" und dem Anfang des
Pakets, das die Endgrenze für
das Bild "F" enthält |
Verbleibendes
Paket bei Ende 231 | Abstand
zwischen der Endgrenze für
das Bild "F" und dem Ende des
Packungspakets, das die Endgrenze für das Bild "F" enthält |
Bildgröße 233 | Abstand
(in Byte) zwischen dem Anfang der MPEG-1-Datei und der Endgrenze
für das
Bild "F" |
Bild-Startposition 235 | Abstand
zwischen dem Anfang der MPEG-1-Datei und der Anfangsgrenze für das Bild "F" |
Bild-Endposition 237 | Position
der Endgrenze für
das Bild "F" in bezug auf den
Anfang der MPEG-1-Datei |
Bildtyp 239 | Technik,
die zur Codierung der Daten, die Bild "F" repräsentieren,
verwendet wird |
Zeitwert 241 | Zeit
in bezug auf den Beginn des Films, wenn das Bild "F" während
eines normalen Playbacks der MPEG-Datei 104 angezeigt würde |
Zeitsteuerungspufferinformationen 243 | gibt
an, wie voll der Puffer des Decodierers ist (wird an den Deco-dierer gesendet,
damit dieser bestimmt, wann Informationen aus dem Puffer auszutragen sind,
um neu ankommende Informationen zu empfangen) |
-
Wie
oben mit Bezug auf die MPEG-1- und MPEG-2-Formate erläutert wurde,
enthalten die Etikettinformationen Daten, die den Zustand der relevanten
Zustandsmaschinen am Beginn der Videobilder angeben. Jedoch unterscheiden
sich die durch andere digitale audio-visuelle Formate verwendeten
Zustandsmaschinen von den obenbeschriebenen Formaten, wie auch die
im MPEG-1-Format verwendeten Zustandsmaschinen sich von jenen Formaten
unterscheiden, die in MPEG-2 verwendet werden. Folglich unterscheiden
sich die für jedes
Bild des Videos gespeicherten spezifischen Etikettinformationen
aufgrund des digitalen Audio/Video-Formats der Datei, zu der sie
gehören.
-
V. Suchvorgänge
-
Nachdem
die Inhalte der Etikettdatei 106 erläutert wurden, soll nun die
Verwendung der Etikettdatei 106 zur Durchführung von
Suchvorgängen
beschrieben werden. Wenn ein Client einen Suchlauf ausführen will, überträgt er eine
Suchlaufanforderung an den Strom-Server 110. Die Suchlaufanforderung
kann beispielsweise spezifizieren, daß in der MPEG-Sequenz an eine
Position, die fünf
Minuten vor der momentanen Abspielposition liegt, vorgesprungen
werden soll. In Antwort auf die Anforderung untersucht der Strom-Server 110 die
Etikettdatei 106, um das I-Bild (das "Zielbild"), das fünf Minuten später abgespielt
würde,
wenn der Playbackvorgang mit normaler Geschwindigkeit vor sich ginge,
zu bestimmen. Das Zielbild kann einfach bestimmt werden, indem die
in der Etikettdatei 106 gespeicherten Informationen 228 für den Zeitwert
und 232 für
den Bildtyp untersucht werden.
-
Wenn
das Zielbild bestimmt ist, bestimmt der Strom-Server 110 die
Position innerhalb der MPEG-Datei 104 derjenigen Bilddaten,
die dem Zielbild (der "Zielposition") entsprechen. Der
Strom-Server 110 führt
dieses Bestimmen durch, indem er die Startposition 226,
die in demjenigen Eintrag in der Etikettdatei 106 gespeichert ist,
die der Zielposition entspricht, ausliest. Kennzeichnend ist, daß alle durch
den Strom-Server 110 ausgeführten Operationen ausgeführt werden,
ohne auf die MPEG-Datei 104 zugreifen zu müssen. Dadurch
können der
Strom-Server 110 und die Videopumpe 130 auf verschiedene
Server in dem Server-Komplex
verteilt sein.
-
Zum
Zweck der Erläuterung
wird angenommen, daß verschiedene
Komponenten des Systems 100 aus einem bestimmten Speichermedium
Daten auslesen. Beispielsweise wird angenommen, daß der Etikettdateigenerator 112 und
die Videopumpe 130, wie beschrieben wurde, Daten aus der
MPEG-Datei 104 auslesen,
die sich auf der Massenspeichervorrichtung 140 befindet,
wobei angenommen wird, daß der
Strom-Server 110 Daten aus der Etikettdatei 106 ausliest,
die auf der Massenspeichervorrichtung 140 gespeichert ist. Wenn
jedoch häufig
auf Daten zugegriffen wird, werden diese typischerweise in einem
schnelleren, temporären
Speichermedium wie etwa einem dynamischen Speicher zwischengespeichert.
Anstatt die Daten direkt aus dem langsameren Speicher auszulesen,
lesen die Komponenten die Daten aus dem schnelleren temporären Speicher
aus. In der bevorzugten Ausführungsform
ist wenigstens ein Teil der Etikettdatei 106 in einem Cachespeicher
gespeichert, um die Anzahl der vom Strom-Server 110 ausgeführten Plattenzugriffe
zu verringern.
-
Sobald
die Zielposition bestimmt worden ist, baut der Strom-Server 110 Vorspanndaten
für die Übertragung
auf. Wie oben erwähnt
wurde, sind Vorspanndaten Daten, die vor einer Übertragung in den MPEG-Datenstrom
eingefügt
werden müssen,
um sicherzustellen, daß der
MPEG-Datenstrom MPEG-konform
bleibt. Die Vorspanndaten werden weiter unten näher beschrieben.
-
Sobald
der Strom-Server 110 die Vorspanndaten aufgebaut hat, überträgt er Befehle
an die Videopumpe 130, um diese anzuweisen, von der momentanen
Position in der MPEG-Datei zur Zielposition überzugehen. Für einen
Suchlauf enthalten die vom Strom-Server 110 erzeugten Befehle
typischerweise einen Einfügbefehl und
einen Abspielbefehl. Der Einfügbefehl
weist die Videopumpe 130 an, die Übertragung von MPEG-Daten an
der momentanen Position zu beenden und die Vorspanndaten zu übertragen.
Dieser Prozeß "fügt" tatsächlich die Vorspanndaten in
den MPEG-Datenstrom "ein". Der Abspielbefehl
weist die Videopumpe 130 an, mit der Übertragung von Daten zu beginnen,
wobei innerhalb der MPEG-Datei 104 an der Zielposition
begonnen wird. Die Videopumpe 130 fügt diese Daten byteweise ein,
so daß der
Client keine Grenzen zwischen den Vorspanndaten, den MPEG-Daten
und den Nachspanndaten wahrnimmt.
-
3a zeigt
die vom Strom-Server 110 an die Videopumpe 130 in
Antwort auf eine Suchanforderung von einem Client gesendeten Befehle.
Im gezeigten Beispiel überträgt der Strom-Server 110 zwei
Befehle 302 an die Videopumpe 130. Der erste Befehl
ist ein Einfügbefehl,
der die Videopumpe 130 anweist, "VORSPANN DATEN" in den MPEG-Datenstrom, den die Videopumpe 130 an
den Client sendet, einzufügen.
-
Der
zweite Befehl ist ein Abspielbefehl. Der Abspielbefehl weist die
Videopumpe 130 an, Daten zu übertragen, wobei an der Position "START_POS" begonnen wird. START_POS
ist die Position des ersten Bytes des Zielbildes in der MPEG-Datei.
-
In
der bevorzugten Ausführungsform
unterhält
der "Abspiel"-Befehl einen "Startpositions"-Parameter und einen "Endpositions"-Parameter. In Antwort
auf einen Abspielbefehl überträgt die Videopumpe 130 Daten aus
der MPEG-Datei,
wobei mit der Startposition begonnen wird, und setzt mit der Übertragung
von Daten aus der MPEG-Datei fort, bis die spezifizierte Endposition
erreicht ist. Bei einem Suchlauf wird angenommen, daß das Playback
ausgehend von der Zielposition bis zum Ende der MPEG-Datei vor sich
geht. Deshalb ist für Suchläufe nur
der Startpositionsparameter des Abspielbefehls erforderlich.
-
3b zeigt
die Informationen, die von der Videopumpe 130 in Antwort
auf die vom Strom-Server 110 übertragenen "Einfüg"- und "Abspiel"-Befehle an einen
Client (z. B. den Client 160) gesendet werden. Zum Zeitpunkt,
zu dem die Videopumpe 130 den Einfügbefehl empfängt, sendet
sie MPEG-Daten ausgehend von irgendeiner Position (der momentanen
Position) in der MPEG-Datei. Der Block 320 repräsentiert
Informationen, die vor der momentanen Position von der Videopumpe 130 übertragen
worden sind. Mit dem Empfang des Einfügbefehls unterbricht die Videopumpe 130 das
Senden des momentanen Transportpakets, beendet die Übertragung
von Daten an der momentanen Position und überträgt die Vorspanndaten 322.
Nach der Übertragung
der Vorspanndaten 322 an den Client antwortet die Videopumpe 130 auf
den Abspielbefehl. Genauer, die Videopumpe 130 beginnt
die Übertragung
von Daten 324 an den Client, wobei am Zielort in der MPEG-Datei
begonnen wird.
-
Während dieses
Prozesses tritt keine Unterbrechung in dem von der Videopumpe 130 an
den Client übertragenen
MPEG-Datenstrom
ein. Außerdem
genügt
der vom Client empfangene MPEG-Datenstrom vollkommen dem MPEG-Standard.
Folglich nimmt der MPEG-Decodierer im Client nicht wahr, daß ein Suchlauf ausgeführt wird.
Da die durch die oben besprochene Technik ausgeführten Suchläufe einen MPEG-konformen Datenstrom
erzeugen, sind keine kundenspezifischen MPEG-Decodierer erforderlich.
-
VI. Vorspanndaten
-
Wie
oben erwähnt
wurde, sind MPEG-Daten in Schichten gepackt. Die Clients erwarten,
daß der
Datenstrom, den sie von der Videopumpe 130 empfangen, in
solchen Schichten gepackt ist. Wenn die Videopumpe 130 einfach
von einem Punkt in der MPEG-Datei 104 zu einem anderen
Punkt springt, gehen Packungsinformation verloren und sind die Clients
nicht in der Lage, die Daten korrekt zu decodieren. Wenn beispielsweise
die Videopumpe 130 einfach mit der Übertragung von Daten am Punkt 280 in 2a beginnt,
werden der PES-Kopfsatz 248 für das PES-Paket 250 und
der Kopfsatz für
das Transportpaket 251 überlesen.
Diese Köpfe
enthalten Daten, die angeben, wie die auf ihn folgenden Informationen
zu decodieren sind. Folglich weiß der Client ohne die in diesen
Köpfen
enthaltenen Informationen nicht, wie er die nachfolgenden Daten
zu decodieren hat.
-
Deshalb
müssen
für einen
glatten Übergang
vom momentanen Ort in der MPEG-Datei
104 zu einem neuen
Ort Vorspanndaten aufgebaut und gesendet werden. Die Vorspanndaten
enthalten Packungsinformationen darüber, wo Pakete für die Daten
am neuen Ort beginnen. In der bevorzugten Ausführungsform enthalten die Vorspanndaten
die in der Tabelle 5 beschriebenen Informationen. TABELLE 5
DATEN | BEDEUTUNG |
Informationen
für das
Verwerfen | bei
MPEG-2: entsprechen diese einer Liste von aufzubewahrenden PID's; alle anderen Transportpakete
werden verworfen
bei MPEG-1 entsprechen diese einer Liste von
aufzubewahrenden Elementarströmen |
System-
und Paket-Kopfdaten
(nur MPEG-1) | enthalten
einen gültigen
System-Kopfsatz
und einen gültigen
Paket-Kopfsatz |
Transportpaket-Kopfdaten (nur MPEG-2) | enthalten
private Daten und MPEG-Video-Kopfdaten,
die weiter unten beschrieben werden |
Private
Daten | enthalten
einen privaten Zeitstempel und weitere Daten, die weiter unten beschrieben
werden |
Video-Initialisierungsdaten | enthalten
einen MPEG-Sequenz-Kopfsatz, der die Bilder pro Sekunde und die
horizontalen und vertikalen Auflösungen
angibt |
Kopfdaten
für ein
mögliches
zusätzliches
Stopfbitpaket | weiter
unten erläutert |
und
ein zweites Transportpaket (nur MPEG-2) | |
MPEG-Video-Kopfsatz | MPEG-2:
enthält
einen gültigen
PES-Kopfsatz, eine Video-Wiedergabezeit
und unter bestimmten Bedingungen Diskontinuitätsdaten, die ein Zurücksetzen des
Takts des Client bewirken
MPEG-1: enthält einen gültigen Bild-Kopfsatz |
-
Die
Informationen für
das Verwerfen betreffend wird angenommen, daß das Zielvideobild eines Suchlaufs
dasjenige Videobild ist, daß sich
zwischen den Punkten 280 und 282 in 2a befindet.
Die Informationen für
das Verwerfen, die in dem in Antwort auf den Suchlauf erzeugten
Einfügbefehl
enthalten sind, können die
Videopumpe 130 anweisen, alle Nichtvideopakete, die sich
zwischen den Punkten 280 und 282 befinden, zu
verwerfen. Gemäß einer
Ausführungsform
werden die Pakete durch ihre PID-Nummern identifiziert.
-
Die
privaten Daten betreffend unterscheidet der zum Transport dieser
Daten verwendete Mechanismus zwischen MPEG-i und MPEG-2. Bei MPEG-i
werden in einem Packungspaket auf dem ISO/IEC-Privatdaten-1-Strom
private Daten gesendet (siehe Abschnitt 2.4.4.2. in ISO 11172-1
für nähere Angaben).
Bei MPEG-2 werden private Daten in einem Paket in der Video-PID,
jedoch in einem Abschnitt des Anpassungsfeldes, der als Privatdaten
gekennzeichnet ist (für
nähere
Angaben siehe Abschnitt 2.4.3.4 in ISO/IEC 13818-i), gesendet.
-
Da
es vorkommen kann, daß Clients
spezifische Informationen über
den laufenden Vorgang benötigen (Suchen, Schnellvorlauf,
Rücklauf,
Bildvorlauf oder Bildrücklauf),
was in dem digitalen audio-visuellen Speicherformat der Datei nicht
codiert werden kann, werden private Daten verwendet. Wenn der Server
weiß,
daß kundenspezifische
Informationen benötigt
werden, legt er diese in einem Privatdaten-Mechanismus ab, der von
dem audio-visuelle Speicherformat der Datei unterstützt wird.
Somit bewahrt die Ausgabe an das Netz die Konformität mit dem
geforderten Format. Dies ist dann notwendig, wenn das Netz Prüfungen ausführt, um
sicherzustellen, daß keine
verfälschten
Daten übertragen
werden. Da sich kundenspezifische Daten in privaten Daten befinden,
werden diese nicht geprüft.
-
Das
mögliche
zusätzliche
Stopfen betreffend, ist deshalb, weil Transportpakete im MPEG-2
eine feste Größe besitzen,
ein zusätzliches
Stopfbitpaket erforderlich, wenn die Vorspanndaten zu umfangreich
sind, um in dasselbe Paket wie der erste Videodatenblock zu passen.
Beispielsweise sei angenommen, daß der Punkt 280 zehn
Bytes vom Anfang des Videopakets 251 entfernt ist. Wenn
die für
den Übergang
zum Punkt 280 erforderlichen Vorspanndaten größer als
zehn Bytes sind, passen die Vorspanndaten nicht in dasselbe Paket
wie der erste Videodatenblock. Unter diesen Umständen werden die Vorspanndaten.
in einem Transportpaket gesendet, das durch Stopfen ergänzt wird.
Ein zweites Transportpaket wird aufgebaut, um die Videodaten, die sich
zwischen dem Punkt 280 und dem Ende des Videopakets 251 befinden,
zu übertragen.
Die ersten zehn Bytes in diesem zweiten Transportpaket werden durch
Stopfen aufgefüllt.
-
Da
MPEG-1-Pakete eine variable Größe besitzen,
besteht diese Notwendigkeit für
MPEG-1 nicht. Statt dessen wird die korrekte Paketgröße für die Vorspanndaten
einfach berechnet.
-
VII. Paketdiskontinuitäten
-
In
der ursprünglichen
MPEG-Datei 104 besitzt jedes Paket einen zugeordneten Zeitstempel. Üblicherweise
sind die Zeitstempel von Paketen, die innerhalb der MPEG-Datei 104 sequentiell
angeordnet sind, sequentiell. Während
der Playbackvorgänge
spürt der
Client die Zeitstempel auf, um die Integrität des MPEG-Datenstroms zu bestimmen.
Wenn zwei sequentiell empfangene Pakete nichtsequentielle Zeitstempel
haben, bestimmt der Client, daß eine
Diskontinuität
eingetreten ist. Wenn die Differenz zwischen zwei sequentiell empfangenen
Zeitstempeln klein ist, kann der Client gewöhnlich die Diskontinuität kompensieren.
Wenn die Differenz zwischen zwei sequentiell empfangenen Zeitstempeln
jedoch zu groß ist,
kann der Client sich selbst zurücksetzen
oder eine andere Art von Wiederherstellungsoperation initiieren.
-
Wenn
ein Suchlauf ausgeführt
wird, empfängt
der Client sequentiell Pakete, die innerhalb der MPEG-Datei 104 nichtsequentiell
angeordnet sind. Da die Pakete innerhalb der MPEG-Datei 104 nichtsequentiell
angeordnet sind, sind die den Paketen zugeordneten Zeitstempel nichtsequentiell.
Wenn der durch den Suchlauf spezifizierte Sprung relativ groß ist, kann
die Diskontinuität
zwischen den Zeitstempeln so groß sein, daß sie den Client veranlaßt, das
normale Playback zu beenden. Um diese Situation zu vermeiden, sind
in den Vorspanndaten Daten enthalten, die den Client veranlassen,
seinen Takt zurückzusetzen.
Mit dem Empfang solcher Daten setzt der Client einfach seinen Takt
anhand des in dem folgenden Paket enthaltenen Zeitstempels zurück.
-
Wie
oben angemerkt wurde, sind die Zeitstempel von Paketen, die innerhalb
einer MPEG-Datei sequentiell angeord net sind, typischerweise sequentiell.
Jedoch ist es möglich,
daß es
sequentiell gespeicherte Pakete gibt, die keine sequentiellen Zeitstempel
aufweisen. Wenn zwischen Paketen in der ursprünglichen MPEG-Datei eine große Diskontinuität auftritt,
enthält
die ursprüngliche
MPEG-Datei selbst
Daten, die den Client veranlassen, seinen Takt zurückzusetzen.
Der Strom-Server 110 untersucht die Diskontinuitätsmerker 230 in
der Etikettdatei 106, um zu bestimmen, ob ein bestimmter
Suchlauf irgendwelche Pakete, die Daten enthalten, um den Takt des
Client zurückzusetzen, überspringt.
Wenn der Suchlauf irgend welche diskontinuierliche Pakete überspringt,
werden den Vorspanndaten Daten hinzugefügt, die ein Rücksetzen
des Taktes des Client veranlassen.
-
Obwohl
bei MPEG-1 und MPEG-2 vom Konzept her derselbe Vorgang ausgeführt wird,
ist der Mechanismus, durch den dieser Vorgang ausgeführt wird,
unterschiedlich, da in MPEG-1 und MPEG-2 verschiedene Zeitsteuerungsmechanismen
verwendet werden. Insbesondere wird in der MPEG-1-Ausführungsform
der "Systemtaktverweis" (SCR = System Clock
Reference) verwendet (siehe Abschnitt 2.4.2 in ISO/IEC 11172-1).
-
In
der MPEG-2-Ausführungsform
werden sowohl der "Programmtaktverweis" (PCR = Program Clock Reference)
als auch der "Darstellungszeitstempel" (PTS = Presentation
Time Stamp) verwendet (bezüglich
der Definitionen des PCR bzw. des PTS siehe Abschnitte 2.4.2.1 und
2.4.3.6 in ISO/IEC 13818-1).
-
VIII. Pufferbeschränkungen
-
Der
MPEG-Decodierer in jedem Client weist einen Puffer einer bestimmten
beschränkten
Größe auf. Typischerweise
muß der
Puffer groß genug
sein, um Informationen aus zwei sequentiellen Bildern des Videos aufzunehmen.
Somit können
die Daten für
das spätere
Bild des Videos gleichzeitig mit den Daten für das vorangehende Bild des
Videos geschrieben werden, während
dieses vom Decodierer aus dem Puffer ausgelesen wird.
-
In
vielen Clients wird die Größe des Puffers
aufgrund der Annahme, daß der
ankommende MPEG-Datenstrom niemals zwei sequentiell angeordnete
große
I-Bilder von Videodaten enthält,
ausgewählt.
Während des
normalen Playbacks aus einer MPEG-konformen Datei erweist sich diese
Annahme als wahr, da P- und B-Bilder zwischen aufeinanderfolgenden
I-Bildern auftreten. Jedoch können
Suchläufe
einen Sprung von einem großen
I-Bild, das sich an einem ersten Ort in der MPEG-Datei 104 befindet,
zu einem zweiten I-Bild, das sich an einem zweiten Ort in der MPEG-Datei 104 befindet,
verursachen. Wenn versucht wird, das zweite I-Bild in den Puffer
zu schreiben, bevor das erste I-Bild vollständig aus dem Puffer ausgelesen
ist, kann der Decodierer die Synchronisation verlieren oder anderweitig
ausfallen. Der Strom-Server 110 erfaßt, wenn ein Suchlauf einen
solchen Überlauf
bewirkt, indem er die in der Etikettdatei 106 gespeicherten
Zeitsteuerungspufferinformationen 238 untersucht.
-
Um
einen solchen Pufferüberlauf
zu verhindern, fügt
der Strom-Server 110 Daten in die Vorspanndaten ein, die
bewirken, daß die
Ankunft des zweiten großen
I-Bildes im Decodiererpuffer verzögert wird. Während das
zweite I-Bild verzögert
wird, besitzt der Client Zeit, um die Verarbeitung des ersten I-Bildes
abzuschließen.
Zum Zeitpunkt, zu dem die Daten für das zweite I-Bild ankommen,
ist das erste I-Bild vollständig verarbeitet,
so daß der
Abschnitt des Puffers, der zur Aufnahme des vorangehenden I-Bildes
verwendet wird, zur Aufnahme des zweiten I-Bildes verfügbar ist.
-
Gemäß einer
Ausführungsform
wird das zweite I-Bild verzögert,
indem in dem Transportpaket-Kopfabschnitt der Vorspanndaten ein
verzögerter
Zeitstempel angeordnet wird. Der Transportpaket-Kopfabschnitt der
Vorspanndaten dient als Kopfsatz für dasjenige Paket, das den
Anfang des zweiten I-Bildes enthält
(das "Übergangspaket"). Das Übergangspaket
wird von einem Netzpuffer empfangen, der den Decodiererpuffer speist.
Der Netzpuffer bestimmt anhand des Zeitstempels im Übergangspaket,
wann die in dem Übergangspaket
enthaltenen Videoinformationen an den Decodiererpuffer zu senden
sind. Da der Zeitstempel eine Verzögerung zwischen dem Übergangspaket
und dem vorangehenden Paket angibt, verzögert der Netzpuffer die Übertragung
der Videoinformationen aus dem Übergangspaket
in den Decodiererpuffer.
-
Gemäß einer
alternativen Ausführungsform
wird das zweite I-Bild verzögert,
indem den Vorspanndaten vor den Daten, die als Überschrift für das Übergangspaket
dienen, Stopfbitpakete hinzugefügt
werden. Solche Stopfbitpakete kommen vor dem Übergangspaket beim Client an.
Da der Client die Stopfbitpakete empfängt und verwirft, wird das
erste I-Bild aus dem Decodiererpuffer gelesen. Wenn sämtliche
Stopfbitpakete verarbeitet sind, ist das erste I-Bild vollständig aus
dem Decodiererpuffer ausgelesen, weshalb dieser bereit ist, das
zweite I-Bild zu empfangen.
-
IX. Playbackvorgänge mit spezifizierter Geschwindigkeit
-
Die
meisten Videorecorder ermöglichen
einem Betrachter, audio-visuelle Erzeugnisse auf analoger Basis
bei Playbackgeschwindigkeiten anzusehen, die sich vom normalen Playback
mit einfacher Vorlaufgeschwindigkeit unterscheiden. Beispielsweise
sehen manche Videorecorder mehrere Geschwindigkeiten, den Schnellvorlauf,
den Langsamvorlauf, den Schnellrücklauf
und den Langsamrücklauf,
vor. Die vorliegende Erfindung sieht eine ähnliche Funktionalität für die Betrachter
von MPEG-codierten Erzeugnissen vor. In der bevorzugten Ausführungsform
wird die Funktionalität
von typischen Videorecordern insofern übertroffen, daß jede Geschwindigkeit
für das
Vorwärts-
und Rückwärtsplayback
unterstützt
wird. Beispielsweise könnte
ein Betrachter einen tausendmal schnelleren Vorlauf oder Rücklauf oder
einen tausendmal langsameren Vorlauf oder Rücklauf wählen.
-
In
der bevorzugten Ausführungsform
umfassen die Prozesse, die zur Implementierung des Schnellvorlaufs,
des Langsamvorlaufs, des Langsamrücklaufs und des Schnellrücklaufs
ausgeführt
werden, dieselben allgemeinen Schritte. Deshalb sollen zum Zweck
der Erläuterung
diese Schritte mit Bezug auf einen Schnellvorlauf beschrieben werden.
Wenn der Schnellvorlauf erläutert
worden ist, soll beschrieben werden, inwiefern sich die Zeitlupe
und der Rücklauf
vom Vorlauf unterscheidet.
-
Um
einen Schnellvorlauf zu initiieren, überträgt ein Client eine Schnellvorlaufanforderung
an den Strom-Server 110. In Ausführungsformen, die mehr als
eine Schnellvorlaufgeschwindigkeit unterstützen, enthält die Schnellvorlaufanforderung
Daten, die die Wiedergabegeschwindigkeit bezeichnen. Der Begriff "Wiedergabegeschwindigkeit", wie er hier verwendet
wird, bezeichnet die Geschwindigkeit, mit der das audio-visuelle
Erzeugnis einem Betrachter dargeboten wird.
-
Der
Strom-Server 110 empfängt
vom Client die Schnellvorlaufanforderung und untersucht in Antwort auf
die Anforderung die in der Etikettdatei 106 enthaltenen
Informationen. Genauer, der Strom-Server 110 bestimmt aus
den Informationen in der Etikettdatei 106, welche Bilder
angezeigt werden sollen, um die spezifizierte Wiedergabegeschwindigkeit
zu bewirken. Der vom Strom-Server 110 ausgeführte Bildauswahlprozeß, muß verschiedene
Bedingungen erfüllen,
die weiter unten näher
beschrieben werden.
-
X. Bit-Budgetierung
-
Das
einfachste Verfahren zur Auswahl von Bildern während eines Schnellvorlaufvorgangs
besteht darin, jedes N-te Bild auszuwählen, wobei N die spezifizierte
Wiedergabegeschwindigkeit in bezug auf die normale Wiedergabegeschwindigkeit
ist. Es sei beispielsweise angenommen, daß der Client einen fünfmal schnelleren
Vorlaufvorgang anforderte. In Antwort auf eine solche Anforderung
könnte
der Strom-Server 110 jedes fünfte Bild zur Anzeige auswählen. Der
Strom-Server 110 würde
dann eine Reihe von Abspielkommandos an die Videopumpe 130 übertragen,
um diese zu veranlassen, einen MPEG-Datenstrom zu übertragen, der
Daten für
jedes fünfte
Bild enthält.
Somit betrüge
die Wiedergabegeschwindigkeit das Fünffache.
-
Der
obenbeschriebene einfache Bildauswahlprozeß funktioniert nur, wenn sämtliche
Bilder in der MPEG-Datei 104 im I-Bild-Format codiert sind
und wenn außerdem
sämtliche
I-Bilder dieselbe Größe haben oder
die Bandbreite des Netzes 150 unbegrenzt ist. Jedoch ist
die Bandbreite des Netzes 150 nicht unbegrenzt, besitzen
die I-Bilder nicht alle dieselbe Größe und, wie oben erläutert wurde,
können
die MPEG-Dateien außerdem
Bilder enthalten, die in P-Bild- und B-Bild-Formaten codiert sind,
die nicht unabhängig
von Informationen von anderen Bildern decodiert werden.
-
Die
Bandbreite zwischen der Videopumpe 130 und ihren Clients
ist begrenzt. Beispielsweise kann der Videopumpe 130 ein
1,5- oder 2-Megabit-pro-Sekunde-Kanal für jeden MPEG-Datenstrom, den
er zu einem Client überträgt, zugeteilt
sein. Um festzustellen, ob die Auswahl eines bestimmten Bildes (des "fraglichen Bildes") die verfügbare Bandbreite überschreitet,
bestimmt der Strom-Server 110 die Größe des Zeitfensters, das zum
Senden des bestimmten Bildes verfügbar ist. Die Größe des Zeitfensters
ist gleich (T2 – T1)/PR,
wobei T1 der den zuvor ausgewähltem
Bild zugeordnete Zeitwert ist, T2 der dem fraglichen Bild zugeordnete
Zeitwert ist und PR die momentane Wiedergabegeschwindigkeit ist.
Es sei beispielsweise angenommen, daß die dem zuvor ausgewählten Bild
zugeordnete Zeit um eine Sekunde von der Zeit des fraglichen Bildes
differiert. Es sei außerdem
angenommen, daß die
Wiedergabegeschwindigkeit das Zehnfache beträgt. Dann beträgt das Zeitfenster
für das
Senden des fraglichen Bildes (1 Sekunde)/10 oder 0,1 Sekunden.
-
Sobald
der Strom-Server 110 das zum Senden der Daten für das fragliche
Bild verfügbare
Zeitfenster festgelegt hat, bestimmt er das momentane "Bit-Budget", indem er das Zeitfenster
mit der Datenübertragungsrate
des Kanals, über
den der MPEG-Datenstrom an den Client gesendet wird, multipliziert.
Wenn die anwendbare Datenübertragungsrate
beispielsweise 2 Megabit pro Sekunde beträgt und das Zeitfenster 0,1
Sekunden beträgt,
beträgt
das momentane Bit-Budget 200 KBit. Der Strom-Server 110 liest
dann die Bildgröße aus der Etikettinformation
aus, um zu bestimmen, ob das fragliche Bild innerhalb des momentanen
Bit-Budgets liegt. Wenn
die Größe des fraglichen
Bildes das momentane Bit-Budget übersteigt,
wird das fragliche Bild nicht ausgewählt. Dies ist beispielsweise
der Fall, wenn die Größe der Bilddaten
für das
fragliche Bild 50 KByte (400 KBit) beträgt und das Bit-Budget 200 KBit
beträgt.
Wenn andernfalls das fragliche Bild innerhalb des Bit-Budgets liegt, wird
das fragliche Bild zum Senden ausge wählt. Wenn ein bestimmtes Bild
nicht gesendet wird, ist es wahrscheinlich, daß ein zukünftiges Bild gesendet wird,
da der unbenutzte Zeitraum (und somit Bits in dem Bit-Budget) von
unbenutzten Bildern verwendet wird.
-
XI. Bildtypeinschränkungen
-
Wie
oben erläutert
wurde, kann kein Bild aus P-Bilddaten genau rekonstruiert werden,
wenn das vorangehende I-Bild nicht decodiert wurde. Aus B-Bilddaten
kann kein Bild nicht genau neu aufgebaut werden, wenn nicht die
vorangehenden und nachfolgenden P- oder I-Bilddaten decodiert worden
sind. Folglich ist der Strom-Server 110 in bezug auf die
Auswahl von Bildern eingeschränkt.
-
Wenn
die entsprechende Bandbreite verfügbar ist, kann jedes I-Bild
ausgewählt
werden. Gemäß einer Ausführungsform
der Erfindung werden lediglich I-Bilder für die Auswahl berücksichtigt.
Der Strom-Server 110 greift auf die Etikettinformationen
zu, um den Bildtyp des fraglichen Bildes zu bestimmen. Wenn das
fragliche Bild kein I-Bild ist, wird es automatisch überlesen,
wobei sich der Strom-Server 110 an die Auswertung des nachfolgenden
Bildes begibt. Bei manchen Playbackgeschwindigkeiten kann diese
Technik zu einer unbenutzten Bandbreite führen. Dies bedeutet, daß die Übertragung
eines jeden I-Bildes eine geringere Bandbreite als die verfügbare Bandbreite
erfordert. Deshalb überträgt der Strom-Server 110 Einfügbefehle,
um die Videopumpe 130 zu veranlassen, MPEG-Stopfbits zwischen
der Übertragung
von I-Bild-Informationen zu übertragen.
In der bevorzugten Ausführungsform
werden Stopfbitpakete als eine Komponente von Nachspanndaten gesendet,
die weiter unten näher
beschrieben werden.
-
Gemäß der bevorzugten
Ausführungsform
werden P und B-Bilder im Bildauswahlprozeß nicht automatisch übersprungen.
Statt dessen werden P- und B-Bilder für die Auswahl berücksichtigt,
es sei denn, daß die
Informationen, die sie benötigen,
bereits übersprungen
worden sind. Genauer, wenn vom Strom-Server 110 kein I-Bild
ausgewählt
wird, werden alle Bilder, die zwischen das überlesene I-Bild und das nachfolgende I-Bild
fallen, überlesen.
Außerdem
werden dann, wenn kein P-Bild ausgewählt wird, die B- und P-Bilder,
die zwischen das überlesene
P-Bild und das nachfolgende I-Bild fallen, überlesen. Anhand dieser Regeln
kann jede zusätzliche
Bandbreite, die zwischen der Übertragung
von I-Bildern verfügbar
ist, mit P-Bild- und B-Bilddaten ausgefüllt werden. Im Ergebnis weist
der sich ergebende MPEG-Datenstrom mehr Bilder pro Sekunde auf.
-
Gemäß einer
nochmals weiteren Ausführungsform
ist der Strom-Server 110 so programmiert, daß er einige
I-Bilder selbst dann überspringt,
wenn die Bandbreite, um diese zu senden, verfügbar ist. Beispielsweise kann
der Strom-Server 110 jedes
fünfte
I-Bild überspringen,
das andernfalls für
die Auswahl qualifiziert wäre. Da
I-Bilder wesentlich größer als
P- und B-Bilder sind, können
zahlreiche P- und B-Bilder in der durch Überspringen eines einzelnen
I-Bildes verfügbar
gemachten Bandbreite gesendet werden. Folglich besitzt der sich ergebende
MPEG-Datenstrom
mehr Bilder pro Sekunde, als es der Fall wäre, wenn alle kennzeichnenden I-Bilder
ausgewählt
würden.
-
In
der bevorzugten Ausführungsform
kann ein Client Parameter für
den durch den Strom-Server 110 ausgeführten Auswahlprozeß spezifizieren.
Beispielsweise kann der Client mehr Bilder pro Sekunde anfordern.
In Antwort darauf überträgt der Strom-Server 110 mehr
P- und B-Bilder im MPEG-Datenstrom, indem er die Anzahl von kennzeichnenden
I-Bildern, die er überspringt,
erhöht.
-
Zum
anderen kann der Client ein kontinuierlicheres Bild anfordern. in
Antwort darauf, überträgt der Strom-Server 110 einen
höheren
Prozentsatz von kennzeichnenden I-Bildern, was eine geringere Bandbreite zur Übertragung
von P- und B-Bildern übrigläßt.
-
XII. Nachspanndaten
-
Wenn
der Strom-Server 110 während
eines Schnellvorlaufs die anzuzeigenden Bilder auswählt, überträgt er gleichzeitig
Befehle an die Videopumpe 130, um diese zu veranlassen,
einen MPEG-Videostrom zu senden, der die bereits ausgewählten Bilder
enthält.
Derjenige Teil des MPEG-Datenstroms,
der zum Befördern
von Daten für
ein ausgewähltes
Bild verwendet wird, wird hier als "Segment" bezeichnet. Um die Konformität mit den
MPEG-Standards zu bewahren, enthalten Segmente Vorspanndaten, die
vor der Übertragung der
Bilddaten für
die ausgewählten
Videobilder gesendet werden. Der Prozeß der Erzeugung von Vorspanndaten
wurde oben in Zusammenhang mit Suchläufen beschrieben.
-
Die
Ausführung
eines Schnellvorlaufs ist der Ausführung einer Reihe von Suchläufen, in
denen jeder Suchlauf bewirkt, daß die Videopumpe 130 zu
den Daten für
das nächste
ausgewählte
Bild springt, ähnlich. Genauer,
für jedes
ausgewählte
Bild muß der
Strom-Server 110 Vorspanndaten erzeugen, einen Einfügbefehl an
die Videopumpe 130 übertragen,
damit diese die Vorspanndaten in den Datenstrom einfügt, und
einen Abspielbefehl an die Videopumpe 130 übertragen,
um diese zu veranlassen, Daten aus dem geeigneten Bild zu übertragen.
-
Schnellvorlaufvorgänge unterscheiden
sich von Suchläufen
darin, daß der
Abspielbefehl eine Endposition sowie eine Startposition spezifiziert.
Die Endposition ist der Ort innerhalb der MPEG-Datei 104 des
letzten Bytes der Bilddaten für
das ausgewählte
Bild. Beispielsweise wird angenommen, daß die Bildgrenzen für ein ausgewähltes Bild
F die in 2a gezeigten Punkte 280 und 282 wären. Der
Strom-Server 110 würde
der Videopumpe 130 einen Einfügbefehl senden, um diese zu
veranlassen, Vorspanndaten an den Client zu senden, und einen Abspielbefehl
senden, um diese zu veranlassen, die sich zwischen den Punkten 280 und 282 befindenden
Videodaten an den Client zu senden.
-
Typischerweise
stimmt die im Abspielbefehl spezifizierte Endposition (z. B. der
Punkt 282) nicht mit einer Paketgrenze überein. Deshalb müssen zur
Bewahrung der MPEG-Konformität nach der Übertragung
der Bilddaten zusätzliche
Informationen ("Nachspanndaten") in den Datenstrom
eingefügt
werden. Die Nachspanndaten enthalten die Stopfbits, die das Transportpaket,
das das Ende des ausgewählten
Bildes enthält, vervollständigen.
Beispielsweise würden
die Nachspanndaten, die nach dem Senden des Bildes F in den Datenstrom
eingefügt
werden, einen Länge
mit Stopfbits enthalten, die gleich dem Abstand zwischen dem Punkt 282 und
dem Ende des Videopakets 258 wäre. Unter bestimmten Bedingungen
enthalten die Nachspanndaten auch Stopfbitpakete. Wie weiter unten
beschrieben wird, hängt
die Anzahl von Stopfbitpaketen, die in den Nachspanndaten gesendet
werden, von der Größe der Bilddaten,
der Wiedergabegeschwindigkeit, der Mindeststopfrate und der Anzahl
von Stopfbitpaketen, die in den Bilddaten hinterlassen werden, ab.
Somit besteht ein Segment aus Vorspanndaten, den Bilddaten eines
ausgewählten
Bildes und den Nachspanndaten.
-
Der
Strom-Server 110 erzeugt die Nachspanndaten und überträgt einen
Einfügbefehl
an die Videopumpe 130, damit diese die Nachspanndaten in
den MPEG-Datenstrom einfügt.
Folglich treten während
eines Schnellvorlaufs die vom Strom-Server 110 an die Videopumpe 130 gesendeten
Befehle auf, wie dies in 4a gezeigt
ist. In 4a besitzt ein Strom-Server 110 somit
drei anzuzeigende ausgewählte
Bilder: bild 1, bild 2, bild 3. Nach Auswahl von bild 1 überträgt der Strom-Server 110 drei
Befehle 402 an die Videopumpe 130. Die drei Befehle 402 umfassen
einen ersten Einfügbefehl 408,
einen Abspielbefehl 410 und einen zweiten Einfügbefehl 412.
-
Der
erste Einfügbefehl 408 weist
die Videopumpe 130 an, Vorspanndaten "VORSPANN_DATEN_1" an einen Client zu übertragen. Der Abspielbefehl 410 weist
die Videopumpe 130 an, die zwischen den Positionen START_POS_1
und END_POS_1 befindlichen Daten an den Client zu übertragen.
Im gezeigten Beispiel wäre
START_POS_1 die Position des ersten Bytes von bild_1, während END_POS_1
die Position des letzten Bytes von bild_1 wäre. Der zweite Einfügbefehl 412 weist
die Videopumpe 130 an, Nachspanndaten "NACHSPANN_DATEN_1" an den Client zu übertragen. Die durch diese
drei Befehle spezifizierten Daten bilden ein Segment für bild_1.
-
Wie
oben erläutert
wurde, können
viele Transportpakete erforderlich sein, um die Bilddaten für ein einzelnes
Videobild (z. B. bild_1) zu speichern. Andere Pakete, die keine
Videoinformationen enthalten, wie etwa Stopfbitpakete, Zeitsteuerungspakete
und Audiopakete können
zwischen die Videopakete für
das Videobild verschachtelt werden. In der bevorzugten Ausführungsform überträgt der Strom-Server 110 nicht
nur die Grenzen jedes Bildes an die Videopumpe 130, sondern
gibt auch an, was mit den Nichtvideopaketen innerhalb dieser Grenzen
zu tun ist. Typischerweise werden die Audiopakete verworfen. Jedoch
können
die anderen Nichtvideopakete aufgrund verschiedener Faktoren gegebenenfalls
zurückgehalten
werden. Zur Aufrechterhaltung den Mindeststopfrate kann der Strom- Server 110 beispielsweise
angeben, daß die
Stopfbitpakete zu bewahren sind. Die Wichtigkeit der Aufrechterhaltung
einer Mindeststopfrate wird weiter unten genauer besprochen.
-
Die
Videopumpe 130 empfängt
diese Informationen vom Strom-Server 110 und streicht aus
dem MPEG-Datenstrom jene Nichtvideopakete, die vom Strom-Server 110 angegeben
werden. Folglich enthalten die von der Videopumpe 130 in
Antwort auf einen Abspielbefehl 410 gesendeten Informationen
typischerweise nicht alle Daten, die sich zwischen START_POS_1 und
START_POS_2 befinden.
-
Wiederum
in 4a hat der Strom-Server 110 drei Befehle 404 übertragen,
um die Videopumpe 130 zu veranlassen, ein Segment für bild_2
zu übertragen,
und drei Befehle 406 übertragen,
um die Videopumpe 130 zu veranlassen, ein Segment für bild_3
zu übertragen.
Der Strom-Server 110 setzt mit der Übertragung von Befehlen in
dieser Weise fort, um die Videopumpe 130 zu veranlassen,
Segmente für
jedes Bild, das sie während
des Schnellvorlaufvorgangs zur Anzeige auswählt, zu übertragen.
-
4b zeigt
die von der Videopumpe 130 in Antwort auf die obenbeschriebenen
Befehle übertragenen
Daten. Genauer, in Antwort auf den ersten Einfügbefehl 408 überträgt die Videopumpe 130 VORSPANN_DATEN_1 450 an
den Client 160. In Antwort auf den Abspielbefehl 410 überträgt die Videopumpe 130 die
sich zwischen START_POS_1 und END_POS 1 befindenden Daten.
Diese Daten, die als DATEN_1_452 gezeigt sind, enthalten die Bilddaten
von bild_1. In Antwort auf den zweiten Einfügbefehl 412 überträgt die Videopumpe 130 NACHSPANN_DATEN_1
an den Client 160. Das Segment, das aus VORSPANN_DATEN_1,
DATEN_1 und NACHSPANN_DATEN_1 besteht, befördert die Bilddaten von bild_1 an
den Client 1603, wobei die Konformität mit den MPEG-Standards bewahrt
wird.
-
In
der bevorzugten Ausführungsform
werden diese Befehle zwischen dem Strom-Server 110 und
der Videopumpe 130 über
ein sehr schnelles Lightweight-Netz oder über einen gemeinsamen Speicher
gesendet. Für
einen typischen Strom, der 15 Bilder pro Sekunde für den Schnellvorlauf
unterstützt,
werden pro Sekunde 45 Befehle übertragen, was die Datenübermittlung
innerhalb des Servers stark belastet. In der bevorzugten Ausführungsform
werden die Befehle vom Strom-Server 110 an die Videopumpe 130 in
Stapeln gesendet.
-
XIII. Zeitlupenvorgänge
-
Wie
oben erläutert
wurde, werden bei Playbackvorgängen,
die die normale Playbackgeschwindigkeit überschreiten, Bilder selektiv übersprungen.
Bei Playbackvorgängen,
die langsamer als mit normaler Playbackgeschwindigkeit ablaufen,
werden keine Bilder übersprungen.
Statt dessen wählt
der Strom-Server 110 jedes Bild aus. Schnellvorlaufvorgänge betreffend überträgt die Videopumpe 130 in
Antwort auf Befehle, die vom Strom-Server 110 erzeugt werden,
Segmente für
jedes der ausgewählten
Bilder. Die Nachspanndaten in den Segmenten enthalten Stopfbitpakete,
die die Ankunft der nachfolgenden Segmente verzögern. Folglich kommen die Daten
mit einer langsameren Geschwindigkeit als bei normalen Playbackvorgängen an
und werden mit dieser langsameren Geschwindigkeit decodiert. Alternativ
können
die Zeitverzögerungen
erzwungen werden, indem der Strom-Server 110 veranlaßt wird,
Verzögerungszeitstempel
in die Vorspanndaten, die er an die Videopumpe 130 sendet,
einzufügen.
-
XIV. Rücklaufvorgänge
-
Rücklaufvorgänge werden
in derselben Weise wie Schnell- und
Langsamvorlaufvorgänge
ausgeführt, mit
der Ausnahme, daß für Rücklaufvorgänge (unabhängig davon,
ob die Rücklaufvorgänge schnell
oder langsam sind), nur I-Bilder ausgewählt werden. P- und B-Bilder
werden automatisch übersprungen,
da sie nicht decodiert werden können,
es sei denn, daß Bilder,
die ihnen in der ursprünglichen
MPEG-Datei vorangehen, zuvor verarbeitet wurden. Jedoch werden während Rücklaufvorgängen die
Bilder, von denen P- und
B-Bilder abhängen,
nach den P- und B-Bildern, die von diesen abhängen, verarbeitet.
-
Das
Konzept des "Mehrfachstrom"-Schnellvorlaufs
oder -Rücklaufs
wurde oben erwähnt.
Der Mehrfachstrom-Schnellvorlauf oder -Rücklauf wird von einem Speichern
mehrerer Kopien des Films begleitet, wobei die Kopien bei verschiedenen
Geschwindigkeiten aufgezeichnet worden sind.
-
In
der bevorzugten Ausführungsform
bestimmt der Strom-Server 110 dann,
wenn ein Client eine bestimmte Schnellvorlauf- oder Rücklauf-Wiedergabegeschwindigkeit
anfordert, ob er eine zuvor mit dieser Geschwindigkeit aufgezeichnete
Datei hat. Wenn dies der Fall ist, spielt er die Datei ab. Dies
ergibt für
den Anwender mehr Bilder pro Sekunde und führt zu einer geringeren Rechen-
und Kommunikationslast auf dem Strom-Server 110 und der
Videopumpe 130. Wenn die geforderte Geschwindigkeit jedoch
nicht verfügbar
ist, bestimmt der Strom-Server 110 die beste Datei, aus
der die einzelnen Bilder zu wählen
sind, und verarbeitet diese Datei, wie oben beschrieben wurde. Die
beste Datei ist diejenige, die bei der geforderten Wiedergabegeschwindigkeit
die meisten wählbaren
I-Bilder besitzt.
-
Die
Integration von "Mehrfachstrom"- und "Einfachstrom"-Schnellvorlauf- und -Rücklaufoperationen ermöglicht somit Servern,
das Finden eines Kompromisses zwischen dem Qualitätsniveau,
den Plattenspeicheranforderungen und der Server-Rechen- und -Kommunikationslast,
was einen großen
Vorteil gegenüber der
Anwendung von Mehrfachstrom-Operationen allein bietet.
-
XV. Laufzeitkommunikation
-
In
der bevorzugten Ausführungsform
ist der Strom-Server 110 so konfiguriert, daß er Antworten
auf Abfragen, die durch die Clients erfolgen, empfängt und überträgt, wobei
die Videopumpe 130 einen MPEG-Datenstrom an die Clients
sendet. Der Strom-Server 110 schickt die Antworten auf
die Abfragen an den Client, indem er die Videopumpe 130 veranlaßt, die
Antworten in den an den Client gesendeten MPEG-Datenstrom einzufügen. Dieser
Prozeß wird
dadurch erschwert, daß der
Kommunikationskanal zwischen der Videopumpe 130 und jedem
Client durch den MPEG-Datenstrom, den die Videopumpe 130 sendet,
vollständig
belegt ist.
-
Jedoch
sind manche Pakete in dem MPEG-Datenstrom lediglich Stopfbitpakete
und tragen nicht zu der resultierenden audio-visuellen Anzeige bei.
Um aus der durch diese Stopfbitpakete belegten Bandbreite einen
Nutzen zu ziehen, veranlaßt
der Strom-Server 110 die Videopumpe 130, diese
Stopfbitpakete durch Datenpakete, die Antworten auf die Abfragen
enthalten, zu ersetzen. Wenn die Datenpakete beim Client ankommen,
stellt der MPEG-Decodierer im Client fest, daß die Datenpakete keine audio-visuellen
Daten enthalten und leitet die Datenpakete an eine Anwendung höherer Ebene
weiter. Die Anwendung höherer
Ebene untersucht die Datenpakete und entnimmt den Datenpaketen sämtliche
darin enthaltenen Informationen.
-
Während Schnellvorlauf-
und Schnellrücklaufvorgängen geht die
Fähigkeit
des Strom-Servers 110, auf diese Weise mit dem Client zu
kommunizieren verloren, wenn der Bildauswahlprozeß keinen
Platz für
Stopfbitpakete läßt, die
durch Datenpakete ersetzt werden können. Deshalb wählt der
Strom-Server 110 in einer Ausführungsform der Erfindung Bilder
so aus, daß eine
gewisse verfügbare
Mindeststopfrate sichergestellt ist. Wenn die Auswahl eines Bildes
dazu führt,
daß die
Stopfrate unter die spezifizierte Mindestrate fällt, wird das Bild übersprungen.
Der Strom-Server 110 teilt der Videopumpe 130 außerdem mit,
wo die erforderlichen Stopfbits einzufügen sind.
-
Gemäß einer
Ausführungsform
ersetzt die Videopumpe 130 die Stopfbitpakete nicht durch
Datenpakete, sondern erzeugt die Stopfbitpakete aktuell. Der von
der Videopumpe 130 übertragene
MPEG-Datenstrom geht vor der Ankunft beim Client durch einen nachgeschalteten
Manager 131. Der nachgeschaltete Manager ersetzt die Stopfbitpakete
durch Datenpakete, die die durch den Strom-Server 110 erzeugten
Antworten enthalten. Da der MPEG-Datenstrom eine Mindeststopfrate
aufrechterhält,
garantiert der nachgeschaltete Manager eine Mindestbandbreite zum
Unterbringen von Datenpaketen im MPEG-Datenstrom.
-
XVI. Genaue Bildpositionierung
-
Für viele
Anwendungen ist es wichtig, daß genau
bestimmt werden kann, welches Bild vom Client zur einem gegebenen
Zeitpunkt angezeigt wird. Beispielsweise kann ein Anwender das Playback
eines MPEG-Films unterbrechen, ein Element auf dem Bildschirm auswählen und
eine Menüoption
anwählen
wollen, die einen Befehl für
das Element über
das Netz absetzt. Wenn das momentan angezeigte Bild nicht genau identifiziert
ist, kann das falsche Element angefordert werden.
-
Während des
normalen Filmabspielens wird die genaue Bildpositionierung als Teil
des normalen MPEG-Datenstroms codiert. Genauer, mit den Bilddaten
im MPEG-Datenstrom sind Zeitstempel verschachtelt. Die Hardware
im Client extrahiert diese Zeitinformationen. Üblicherweise folgen jedem Zeitstempel
zahlreiche Bilder. Deshalb identifiziert der Client lediglich das
momentan angezeigte Bild anhand der letzten Zeitinformation und
der Anzahl von Bildern, die seit dem Empfang der letzten Zeitinformationen
verarbeitet worden sind.
-
Während des
Schnellvorlaufs und des Schnellrücklaufs
kann die Identität
von Bildern nicht durch im MPEG-Datenstrom enthaltene Zeitinformationen
bestimmt werden. Beispielsweise könnte das dritte Bild nach einem
bestimmten Zeitstempel, abhängig
von der momentanen Playbackgeschwindigkeit und der Bildauswahltechnik,
irgendeines von mehreren Bildern sein. Deshalb ist der Strom-Server 110 zur
Gewährleistung
einer genauen Bildpositionierung so konfiguriert, daß er vor
jedem in dem MPEG-Datenstrom übertragenen
Bild einen Zeitstempel einfügt.
Die Videopumpe 130 empfängt
die Zeitstempelinformationen vom Strom-Server 110, der
den Zeitstempel aus der Etikettdatei 106 wiedergewinnt.
-
Viele
Clients sind nicht in der Lage, mehr als eine bestimmte Anzahl von
Zeitstempeln pro Sekunde zu decodieren, da die MPEG-Spezifikation
von ihnen nicht verlangt, mehr als eine bestimmte Menge von Zeitstempeln
pro Sekunde zu decodieren. Deshalb ist der vor jedem Bild eingefügte Zeitstempel
in der bevorzugten Ausführungsform
kein MPEG-Zeitstempel. Statt dessen werden Zeitstempel in Pakete
eingesetzt, die als MPEG-"Privatdatenpakete" etikettiert sind.
Wenn ein Client ein privates Datenpaket empfängt, stellt er fest, ob er
die Daten in dem Paket erkennt. Clients die private Datenzeitstempel
nicht unterstützen,
verwerfen die Zeitstempel enthaltenden privaten Datenpakete einfach,
weshalb sie keine perfekte genaue Bildpositionierung ausführen können. Solche
Clients sind dennoch in der Lage, anhand der MPEG-Zeitstempel, die
zufällig
in dem MPEG-Datenstrom enthalten sind, eine annähernd genaue Bildpositionierung
auszuführen.
Clients, die Privatdaten-Zeitstempel unterstützen, extrahieren die Zeitstempel
aus den privaten Datenpaketen, weshalb sie die Identität der Bilder,
die den Zeitstempeln folgen, genau bestimmen können.
-
XVII. Plattenzugriffsbedingungen
-
In
manchen Video-Playbacksystemen kann eine einzelne MPEG-Datei zur
Erhöhung
der Fehlertoleranz des Systems in mehreren Plattenlaufwerken gespeichert
sein. Beispielsweise sei das in 7 gezeigte Mehrplattensystem 700 betrachtet.
Das System 700 umfaßt
N + 1 Plattenlaufwerke. Eine MPEG-Datei ist auf N von N + 1 Platten
gespeichert. Die MPEG-Datei ist in Abschnitte 750, 752, 754 und 756 unterteilt.
Jeder Abschnitt ist in N Blöcke
unterteilt, wobei N die Anzahl von Platten ist, die zur Speicherung
der MPEG-Datei verwendet werden. Jede Platte speichert einen Block
aus einem gegebenen Abschnitt.
-
Im
gezeigten Beispiel enthält
der erste Abschnitt 750 der MPEG-Datei die Blöcke 710, 712 und 714, die
auf den Platten 702, 704 bzw. 706 gespeichert
sind. Der zweite Abschnitt 752 enthält die Blöcke 716, 718 und 720,
die auf den Platten 702, 704 bzw. 706 gespeichert
sind. Der dritte Abschnitt 754 enthält die Blöcke 722, 724 und 726,
die auf den Platten 702, 704 bzw. 706 gespeichert
sind. Der vierte Abschnitt 756 enthält die Blöcke 728, 730 und 732,
die auf den Platten 702, 704 bzw. 706 gespeichert
sind.
-
Die
Platte 708, die nicht zum Speichern der MPEG-Datei verwendet
wird, wird verwendet, um Prüfbits zu
speichern. Jede Prüfbitgruppe
entspricht einem Abschnitt der MPEG-Datei und ist auf der Grundlage der verschiedenen
Blöcke,
die zu dem entsprechenden Abschnitt gehören, aufgebaut. Beispielsweise
entsprechend die Prüfbits 734 dem
Abschnitt 750 und werden erzeugt, indem über alle
Blöcke
im ersten Abschnitt 750 eine Exklusiv-ODER-Verknüpfung ausgeführt wird. Ähnlich sind
die Prüfbits 736, 738 und 740 Produkte
eines Exklusiv-ODER, das über
alle Blöcke
in den Abschnitt 752, 754 bzw. 756 ausgeführt wird.
-
Das
System 700 besitzt insofern eine höhere Fehlertoleranz als ein
Einfach-Plattensystem, daß dann, wenn
eine Platte in dem System aufhört,
korrekt zu arbeiten, die Inhalte der fehlerhaften Platte auf der
Grundlage der Inhalte der restlichen Platten rekonstruiert werden
können.
Wenn beispielsweise die Platte 704 zu funktionieren aufhört, können die
Inhalte des Blocks 712 auf der Grundlage der restlichen
Blöcke
im Abschnitt 750 und der dem Abschnitt 750 zugeordneten
Prüfbits 734 rekonstruiert
werden. Ähnlich
kann der Block 780 auf der Grundlage der restlichen Blöcke im Abschnitt 752 und
der dem Abschnitt 752 zugeordneten Prüfbits 736 aufgebaut
werden. Diese Fehlererfassungs- und Korrekturtechnik ist allgemein
als RAID (Redundant Array of Inexpensive Disks) bekannt.
-
Während eines
Echtzeit-Playbacks unter Anwendung von RAID liest und verarbeitet
eine Videopumpe die MPEG-Datei auf einer abschnittsweisen Grundlage,
so daß sämtliche
Informationen verfügbar
sind, um von der Platte gelesene fehlerhafte Daten zu rekonstruieren.
Während
normaler Playbackvorgänge
bleibt genügend
Zeit um den zum Lesen eines vollständigen Abschnitts erforderlichen
Plattenzugriff auszuführen,
wobei die Daten aus dem vorangehenden Abschnitt in den MPEG-Datenstrom übertragen
werden.
-
Jedoch
werden während
Schnellvorlauf- und Schnellrücklaufvorgängen nicht
sämtliche
Daten eines Abschnitts im MPEG-Datenstrom gesendet. Da weniger Daten
gesendet werden, benötigt
die Übertragung
der Daten weniger Zeit. Folglich ist weniger Zeit zum Lesen und
Verarbeiten des nachfolgenden Abschnitts verfügbar.
-
Beispielsweise
wird angenommen, daß zur
Anzeige während
eines Schnellvorlaufvorgangs nur ein Bild X aus dem Abschnitt 750 ausgewählt wurde.
Während
der Zeit, die zur Übertragung
des Segments für
das Bild X benötigt
wird, müssen
die Daten für
das nächste
ausgewählte
Bild Y ausgelesen und verarbeitet werden. Es wird angenommen, daß sich das
nächste
Bild Y im Abschnitt 752 befindet. Wenn die MPEG-Datei auf
einer abschnittsweisen Grundlage ausgelesen und verarbeitet wird
(für RAID
gefordert), müssen
alle Blöcke
im Abschnitt 752 während
der Übertragung
des einzelnen Bildes X ausgelesen und verarbeitet werden. Selbst
dann, wenn es möglich
wäre, sämtliche
Blöcke
im Abschnitt 752 in der zugemessenen Zeit auszulesen und
zu verarbeiten, wäre
es dennoch wegen der Betriebsmittel, die bei der Durchführung der
erforderlichen Plattenzugriffe benötigt werden, nicht vorteilhaft,
so zu verfahren.
-
Angesichts
des Obengesagten, verwendet die Videopumpe 130 während Schnellvorlauf-
und Schnellrücklaufvorgängen kein
RAID. Statt dessen liest, verarbeitet und überträgt die Videopumpe 130 lediglich
die Daten, die in den Befehlen, die sie vom Strom-Server 110 empfängt, angegeben
sind. Somit würden
in dem oben angegebenen Beispiel lediglich die Bilddaten für das Bild
Y während
der Übertragung
des Segments für das
Bild X ausgelesen und verarbeitet. Durch Umgehen von RAID während Schnellvorlauf-
und Schnellrücklaufvorgängen bleibt
die Plattenbandbreite auf dem Niveau oder unter der während normalen
Playbackvorgängen
verwen deten Plattenbandbreite.
-
Da
RAID während
Echtzeit-Schnellvorlauf- und Schnellrücklaufvorgänge nicht verwendet wird, können während dieser
Vorgänge
keine fehlerhaften Daten rekonstruiert werden. Folglich verwirft
die Videopumpe 130 dann, wenn sie erfaßt, daß die Daten für ein ausgewähltes Bild
verfälscht
oder nicht verfügbar
sind, das gesamte Segment, das mit dem problematischen Bild verbunden
ist. Somit werden dann, wenn die mit einem Bild zusammenhängenden
Daten nicht gesendet werden können,
weder die Vorspanndaten noch die Nachspanndaten für das bild
gesendet. Dennoch werden Stopfbitpakete, die zusammen mit Vorspann- oder Nachspanndaten
zu senden sind, gesendet.
-
Durch
Senden von Daten in ganzen "Segmenten" wird die Konformität mit dem
digitalen audio-visuellen Format aufrechterhalten. In einer Ausführungsform
sendet die Videopumpe 130 Stopfbitpakete weiter, um die
Zeile zu füllen
und die korrekte Wiedergabegeschwindigkeit aufrechtzuerhalten. In
der bevorzugten Ausführungsform
ist dieses Verhalten vom Client wählbar.
-
XVIII. Playbackvorgänge mit variabler Geschwindigkeit
-
Wie
oben erwähnt
wurde, kann ein Client die Wiedergabegeschwindigkeit des audio-visuellen
Erzeugnisses ändern,
indem er an den Strom-Server 110 eine Anforderung zum Ändern der
Geschwindigkeit überträgt. Typischerweise
geben Clients Anforderungen zur Änderung
der Geschwindigkeit in Antwort auf eine von einem Anwender empfangene
Eingabe aus. Beispielsweise kann ein Anwender eine Schnellvorlauftaste
auf einer Fernsteuerung drücken.
Die Fernsteuerung überträgt ein Signal,
das den Knopf, der gedrückt
wurde, identifiziert. Der Client empfängt und decodiert das von der
Fernsteuerung übertragene
Signal, um zu bestimmen, daß der
Schnellvorlaufknopf angefordert wurde. Der Client überträgt dann
eine Anforderung zum Ändern der
Geschwindigkeit an den Strom-Server 110, der eine Wiedergabegeschwindigkeit
spezifiziert, die größer als
die einfache Wiedergabegeschwindigkeit ist.
-
Gemäß einer
Ausführungsform
der Erfindung ist der Client so konfiguriert, daß er erfaßt, wenn der Anwender fortgesetzt
den Schnellvorlaufknopf niederdrückt.
Wenn der Anwender den Schnellvorlaufknopf länger als ein vorgegebenes Zeitintervall
niederdrückt, überträgt der Client
eine zweite Anforderung zum Ändern
der Geschwindigkeit, die eine schnellere Wiedergabegeschwindigkeit
als die zuvor angeforderte Wiedergabegeschwindigkeit bezeichnet.
Wenn der Anwender den Schnellvorlaufknopf weiterhin niederdrückt, wird
die Wiedergabegeschwindigkeit kontinuierlich erhöht. Ein anderer Knopf wie etwa
der Rücklaufknopf,
kann gedrückt werden,
um die Wiedergabegeschwindigkeit schrittweise abzusenken.
-
Der
obenbeschriebene Prozeß erscheint
für den
Anwender als Schnellvorlaufvorgang mit variabler Geschwindigkeit.
Jedoch besteht der Vorgang für
den Strom-Server 110 in Wirklichkeit aus einer Folge unterschiedlicher
Schnellvorlaufvorgänge.
Dieser Prozeß der
schrittweisen Geschwindigkeitseinstellung wurde mit Bezug auf Schnellvorlaufvorgänge beschrieben.
Jedoch kann er gleichermaßen
auf den Langsamvorlauf, den Langsamrücklauf und den Schnellrücklauf angewandt
werden. Ferner können
Geschwindigkeitsänderungen in
Antwort darauf, wie oft ein bestimmter Knopf gedrückt wird,
anstelle oder zusätzlich
dazu, wie lange der Knopf gedrückt
wird, ausgeführt
werden. Zusätzlich
kann eine Sichtanzeige der momentanen Wiedergabegeschwindigkeit
wie etwa ein Pfeil, der eine Länge
aufweist, die die Wiedergabegeschwindigkeit wieder gibt, auf dem
Bildschirm angezeigt werden, wenn die Wiedergabegeschwindigkeit
nicht gleich der einfachen Wiedergabegeschwindigkeit ist.
-
XIX. Nichtinteraktives digitales audio-visuelles
Editieren
-
Durch
Initiieren von Suchläufen
und in der Geschwindigkeit spezifizierten Playbackvorgängen führt ein Anwender
effektiv ein interaktives MPEG-Editieren aus. Dies bedeutet, daß der MPEG-Datenstrom,
der in Antwort auf diese Vorgänge
erzeugt wird, sich auf den Inhalt der ursprünglichen MPEG-Datei stützt, sich
jedoch davon unterscheidet. Zusätzlich
zu einer solchen interaktiven Präsentation
des Inhalts sorgt die vorliegende Erfindung für einen Mechanismus für ein nichtinteraktives
MPEG-Editieren. Während
dem nichtinteraktiven MPEG-Editieren wird eine MPEG-Datei erzeugt,
die sich auf eine oder mehrere zuvor existierende MPEG-Dateien stützt, sich
jedoch von diesen unterscheidet. Mit Bezug auf die 5 und 6 wird
der Mechanismus für
nichtinteraktives MPEG-Editieren beschrieben.
-
In 5 ist
ein MPEG-Editor 502 vorgesehen, der auf der Grundlage eines
zuvor existierenden MPEG-Inhalts neue MPEG-Sequenzen erzeugt. Gemäß einem
Ausführungsbeispiel
liest der MPEG-Editor im Betrieb eine Befehlsdatei 504,
die Editierbefehle enthält.
Die in der Befehlsdatei 504 enthaltenen Befehle umfassen
Parameter zum Spezifizieren von "Scheiben" aus bereits existierenden
MPEG-Dateien. Beispielsweise kann jeder Befehl in der Befehlsdatei 504 das
folgende Format haben:
"Dateiname" [Start_Pos][End_Pos][Darstellungsrate]
-
In
diesem exemplarischen Befehl repräsentiert der Parame ter "Dateiname" eine bereits existierende MPEG-Datei.
Die restlichen Parameter spezifizieren eine Scheibe aus der spezifizierten
MPEG-Datei. Genauer, der Parameter Start_Pos repräsentiert
die Position innerhalb der spezifizierten MPEG-Datei, an der die Scheibe
beginnt. Wenn keine Start_Pos bezeichnet ist, wird angenommen, daß die Scheibe
beim ersten Bild der spezifizierten MPEG-Datei beginnt. Der Parameter
End_Pos repräsentiert
die Position, an der die Scheibe endet. Wenn keine End_Pos bezeichnet
ist, wird angenommen, daß die
Scheibe am Ende der spezifizierten MPEG-Datei endet. Die Darstellungsrate
repräsentiert
die Wiedergabegeschwindigkeit der Scheibe in bezug auf die ursprüngliche
MPEG-Datei. Wenn keine Wiedergabegeschwindigkeit spezifiziert ist,
dann wird eine normale (d. h. einfache) Wiedergabegeschwindigkeit
angenommen.
-
In
der bevorzugten Ausführungsform
sind die Parameter Start_Pos und End_Pos bezüglich der Zeit spezifiziert,
da Zeitsteuerungsinformationen für
einen Anwender typischerweise zugänglicher als Dateipositionsinformationen
sind. Beispielsweise will ein Anwender eine Scheibe von zwei Minuten
spezifizieren, die in einem bestimmten MPEG-Film nach zehn Minuten
beginnt und nach zwölf
Minuten endet. Der Anwender will typischerweise nicht die Dateiposition
des ersten Bytes im Bild, das in dem Film nach zehn Minuten angezeigt wird,
oder das letzte Byte im Bild, das nach zwölf Minuten in dem Film angezeigt
wird, kennen. Wie weiter unten erläutert wird, bestimmt der MPEG-Editor 502 Dateipositionen,
die spezifizierten Zeiten entsprechen, indem er die Etikettinformationen
für die
spezifizierte MPEG-Datei untersucht.
-
Die
Arbeitsweise des MPEG-Editors 502 soll nun mit Bezug auf 6 beschrieben
werden. Im Schritt 600 liest der MPEG-Editor 502 einen
Befehl in der Befehlsdatei 504.
-
Vorzugsweise
werden die Befehle in derselben Reihenfolge, wie sie in der Befehlsdatei 504 auftreten, gelesen.
Deshalb liest der MPEG-Editor 502 den ersten Befehl in
der Befehlsdatei 504, zu dem Zeitpunkt, zu dem der Schritt 600 ausgeführt wird.
-
Im
Schritt 602 bestimmt der MPEG-Editor 502, ob der
Befehl eine einfache Wiedergabegeschwindigkeit spezifiziert. Wenn
eine von der einfachen Geschwindigkeit verschiedene Wiedergabegeschwindigkeit
spezifiziert ist, geht die Steuerung zum Schritt 604 über. Die
Schritte 604 und 608 sind zu den vom Strom-Server 110 und
der Videopumpe 130 während
eines Playbackvorgangs mit spezifizierter Geschwindigkeit ausgeführten Schritten
analog. Genauer, im Schritt 604 wählt der MPEG-Editor 502 Bilder
in der spezifizierten MPEG-Datei aus, die in die spezifizierte Zeitperiode
(Start_Pos bis End_Pos) fallen. Die Bilder werden auf der Grundlage
der spezifizierten Wiedergabegeschwindigkeit und der Zeitinformationen
gemäß dem oben
im einzelnen beschriebenen Auswahlprozeß ausgewählt. Sobald die Bilder ausgewählt sind,
werden Segmente erzeugt (Schritt 606), die die Bilddaten
entsprechend den ausgewählten
Bildern in MPEG-konforme Pakete packen. Diese Segmente werden nacheinander
gespeichert, um einen Abschnitt einer editierten MPEG-Datei 510 zu
erzeugen. Die Steuerung geht dann zum Schritt 612 über, der
entweder bewirkt, daß der
nächste
Befehle verarbeitet wird oder daß die Editieroperation endet,
falls keine Befehle mehr zu verarbeiten sind.
-
Wenn
eine einfache Wiedergabegeschwindigkeit spezifiziert wurde, geht
die Steuerung vom Schritt 602 zum Schritt 614 über. In
den Schritten 614 und 616 führt der MPEG-Editor 502 eine
Operation aus, die zu dem obenbeschriebenen Suchlauf analog ist.
Genauer, der Editor 502 vergleicht die spezifizierte Startposition mit
den in der Etikettda tei 106 enthaltenen Zeitstempelinformationen,
um die Position eines Zielbildes zu bestimmen. Der MPEG-Editor 502 erzeugt
dann Vorspanndaten (Schritt 614), um den Übergang
zum spezifizierten Bild auszuführen.
Nach der Erzeugung der Vorspanndaten kopiert der MPEG-Editor 502 Daten
aus der spezifizierten MPEG-Datei in die editierte MPEG-Datei 502,
wobei mit dem Beginn des Zielbildes begonnen wird (Schritt 616).
-
Sobald
die Daten zwischen Start_Pos und End_Pos in die editierte MPEG-Datei 510 kopiert
sind, bestimmt der MPEG-Editor 502,
ob die Scheibe am Ende der spezifizierten MPEG-Datei endet (Schritt 610). Wenn
die Scheibe am Ende der spezifizierten MPEG-Datei abschließt, endet
die Scheibe an einer Paketgrenze. Andernfalls werden Nachspanndaten
erzeugt (Schritt 618), um das momentane Paket zu vervollständigen (Schritt 618).
Die Steuerung geht dann zum Schritt 612 über, der
entweder bewirkt, daß der
nächste
Befehl verarbeitet wird oder daß die
Editoroperation endet, falls keine Befehle mehr zu verarbeiten sind.
-
Wenn
vom MPEG-Editor 502 alle Befehle in der Befehlsdatei 504 verarbeitet
worden sind, entspricht die editierte MPEG-Datei 510 einer
MPEG-konformen Datei, die die durch die Befehle in der Befehlsdatei 504 spezifizierten
Scheiben enthält.
Wichtig ist, daß die
editierte MPEG-Datei 510 erzeugt wird, ohne eine zusätzliche
Analog-MPEG-Codierung
ausführen
zu müssen.
Ferner kann das Editieren selbst dann ausgeführt werden, wenn kein Zugriff
auf die analogen Versionen der ursprünglichen Erzeugnisse besteht.
Wenn MPEG-Dateien in dieser Weise erzeugt werden, kann ein Anwender
anhand des bereits existierenden MPEG-Inhalts schnell einmalige und ursprüngliche
Filme erzeugen.
-
Typischerweise
wird das nichtinteraktive MPEG-Editieren nicht in Echtzeit ausgeführt. Deshalb
treffen manche der Zeitbedingungen, die für Echtzeitoperationen gelten,
auf das nichtinteraktive MPEG-Editieren nicht zu. Beispielsweise
wurde oben erklärt,
daß aufgrund
von Zeitbedingungen RAID-Fehlerkorrekturtechniken während der
Schnellvorlauf- und Schnellrücklaufvorgänge nicht
angewandt werden. Da für
das nichtinteraktive MPEG-Editieren solche Zeitbedingungen nicht
zutreffen, wird während
der Schnellvorlauf- und Schnellrücklaufvorgänge, die
zur Erzeugung der editierten MPEG-Datei 510 ausgeführt werden,
RAID verwendet. Zum Zweck der Erläuterung sind die verschiedenen
Datenverzeichnisse, die in dem Editierprozeß verwendet werden, als Dateien
gezeigt, die auf einer Speichervorrichtung 140 gespeichert
sind. Jedoch kann sich diese Form und dieser Ort der Daten von einer
Implementierung zur anderen ändern.
Beispielsweise können
die verschiedenen Dateien auf separaten Speichervorrichtungen gespeichert
sein. Ferner kann eine Anwenderschnittstelle vorgesehen sein, über die
ein Anwender graphische Steuerungen betätigen kann, um die Parameter
für eine
Folge von Scheiben zu spezifizieren.
-
XX. Verteiltes System
-
Wie
oben erläutert
wurde, sind die während
der Echtzeitübertragung
von MPEG-Datenströmen
ausgeführten
Tasks auf den Strom-Server 110 und die Videopumpe 130 aufgeteilt.
Die verteilte Art dieser Architektur wird dadurch verstärkt, daß die Videopumpe 130 keinen
Zugriff auf die Etikettdatei 106 fordert und der Strom-Server 110 keinen
Zugriff auf die MPEG-Datei 104 fordert. Folglich können der
Strom-Server 110 und die Videopumpe in verschiedenen Abschnitten
des Netzes arbeiten, ohne die Effizienz des Systems 100 zu beeinträchtigen.