-
Peripheriegeräte, die
Video- und Audiodaten verarbeiten, sind für gewöhnlich an einen Hostrechner angeschlossen,
entweder um Funktionen auszuführen,
die vom Hostrechner nicht ausgeführt
werden, oder um die Video- und Audiodaten zwischen digitalen und
analogen Formaten umzuwandeln. Die Verbindung zwischen dem Peripheriegerät und dem
Hostrechner wird in der Regel von einem Bus bereitgestellt, über den
unter Verwendung von Paketen Kommunikation durchgeführt wird.
Zu beispielhaften Typen eines Busses zählen ein paralleler Bus, wie
ein PCI-Bus (PCI = peripheral component interconnect), ein serieller
Bus, wie ein IEEE-1394-konformer Bus, oder ein Rechnernetz, wie
das Ethernet.
-
Video-
und Audiodaten sind in der Regel in einem Standardformat, wie dem
Format, das durch „Specifications
of Consumer-Use Digital VCR's
using 6.3mm magnetic tape" der
HD Digital VCR Conference, datiert mit Dezember 1994, auch das „Blue Book" genannt, oder durch
SMPTE 314M-1999 oder durch IEC-61834, die Video- und Audiodaten
in einem Format beschreiben, das gewöhnlich „DV" genannt wird, beschrieben wird. Videodaten
können
komprimiert oder unkomprimiert sein. Audiodaten sind in der Regel
unkomprimiert.
-
Ein
beispielhaftes Peripheriegerät,
das Video- und Audiodaten verarbeitet, ist ein Transcoder. Ein Transcoder
empfängt
in der Regel über
einen seriellen Bus, wie einen IEEE-1394-konformen Bus, komprimierte
digitale Videodaten und Audiodaten, wie DV, und verarbeitet die
Daten zur Ausgabe. Insbesondere werden die Videodaten in ein analoges
Videosignal zur Ausgabe an ein Videogerät, wie einen Videokontrollschirm
oder Camcorder, umgewandelt. Die Audiodaten werden in ein Audiosignal
zur Ausgabe an ein Audiogerät,
wie einen Lautsprechersatz, umgewandelt. Ein solcher Transcoder
kann auch ein zugeführtes
analoges Videosignal und Audiosignal empfangen und komprimierte
digitale Videodaten und Audiodaten, wie DV, erzeugen, die über einen
seriellen Bus, wie einen IEEE-1394-konformen Bus, an den Hostrechner übertragen
werden.
-
Gegenwärtig sind
viele Systeme erhältlich,
die Video- und Audiodaten zwischen einem Peripheriegerät, wie einem
Camcorder oder einem Transcoder, und einem Hostrechner übertragen.
Der Hostrechner kann für
einen beliebigen einer Reihe von Zwecken verwendet werden, wie Video-
und Audioeditierung. Wenn DV eingesetzt wird, wird DV für gewöhnlich unter
Verwendung eines IEEE-1394-konformen Busses zwischen dem Hostrechner
und einem Peripheriegerät übertragen.
Es ist ein Standard für
das Transportieren von DV-Strömen über einen
IEEE-1394-konformen Bus definiert, IEC-61883 genannt. In einem Editiersystem,
das gespeichertes DV editiert und DV unter Anwendung von IEC-61883 über einen
IEEE-1394-Bus ausgibt, dekomprimiert der Host zunächst das
DV, führt
an den dekomprimierten Daten Editiervorgänge durch und komprimiert die
Resultate zurück
in DV, bevor DV über
den IEEE-1394-Bus übertragen
wird. Dieser Vorgang macht erforderlich, dass Ressourcen des Hostrechners
zur Kompression verwendet werden, wodurch die Echtzeit-Verarbeitungsfähigkeiten
des Hostrechners eingeschränkt
werden. Daher wird häufig
eine DV-Version des gesamten Programms erstellt und in einer Datendatei
gespeichert, bevor es vom Rechner an eine andere Vorrichtung übertragen
wird. Des Weiteren muss, um Video in einem beliebigen anderen Ausgabeformat
als DV, wie einem analogen Videosignal, zu produzieren, die DV-Version
außerdem
zunächst
dekomprimiert werden. Die Dekompression von DV und Kodierung der
Resultate in einem analogen Videosignal wird im Allgemeinen von
einem Transcoder durchgeführt.
-
Eine
IEEE-1394-konforme Vorrichtung überträgt Daten
auf Grundlage einer lokalen Zeitbasis unter Verwendung eines so
genannten Buszeitgebertakts. Infolgedessen weist jede an einen IEEE-1394-Bus
angeschlossene Vorrichtung ihre eigene Zeitbasis auf, die im Allgemeinen
schneller oder langsamer als die Zeitbasis auf anderen Vorrichtungen
am selben Bus ist. Obgleich der Standard IEC-61883 eine Technik
zum Synchronisieren dieser Takte bereitstellt, liegen aufgrund von
Jitter und Phasendifferenzen zwischen den Takten auf verschiedenen
Vorrichtungen am Bus im Allgemeinen unterschiedliche Zeitbasen vor.
Eine Folge der unterschiedlichen Zeitbasen ist, dass ein Host entweder
mehr Datenpakete überträgt, als
ein Transcoder verbrauchen kann, oder zu wenige Datenpakete an den
Transcoder überträgt, was
bewirkt, dass ein Rahmen (Frame) wiederholt oder fallengelassen
wird. Um dieses Problem anzugehen, wird ein Host benötigt, um
periodisch leere Datenpakete zu senden und einen Präsentationszeitstempel
(das SYT-Feld) in einem Paket jedes Rahmens zu verwenden. Der Präsentationszeitstempel
nennt dem Transcoder einen Zeitpunkt, zu dem der Rahmen angezeigt
werden sollte. Der Zeitstempel wird jedoch von einem Sender unter
Verwendung des Buszeitgebertakts des Senders erzeugt, wird aber
vom Empfänger
unter Verwendung des Buszeitgebertakts des Empfängers verwendet. Folglich verlängern die
leeren Datenpakete, selbst wenn die Anzahl und Häufigkeit der Übertragung
der leeren Datenpakete vor der Übertragung
sorgfältig
im Durchschnitt berechnet wird, lediglich den Zeitraum, bevor ein
Rahmen fallengelassen oder wiederholt wird. Die Verwendung von leeren
Datenpaketen löst
das von den unterschiedlichen Zeitbasen auf Sende- und Empfangsvorrichtungen
hervorgerufene Problem nicht. Ein weiteres Problem mit Zeitstempeln
besteht darin, dass nicht alle im Handel erhältlichen Vorrichtungen die
Verwendung von Zeitstempeln unterstützen. Manche Vorrichtungen
senden keine Zeitstempel und manche Vorrichtungen versuchen nicht,
empfangene Zeitstempel zu verarbeiten. Da Rahmen unter Verwendung
dieser Techniken möglicherweise
fallengelassen oder wiederholt werden, können solche Transcoder nicht
dazu verwendet werden, in zuverlässiger
Weise ein synchrones Videosignal zur Wiedergabe auf einem Videokontrollschirm
oder zur Aufnahme auf Band zu erzeugen oder die Wiedergabe von Audio-
und Videomaterial mit einem externen synchronisierten Videogerät zu synchronisieren.
-
Ein
anderes Verfahren ist aus US-A-6418150 bekannt, das den Frequenzversatz
zwischen einer Empfangs- und einem Quellvorrichtung berechnet und
die Rate von Rahmenpaketen entsprechend anpasst.
-
Gegenwärtige Transcoderausführungen
ermöglichen
außerdem
nicht, dass ein Host sich durch den Transcoder mit einer anderen
Vorrichtung in einer Art und Weise verbinden kann, die dem Host
möglich
macht, direkt mit der anderen Vorrichtung zu kommunizieren; sie
ermöglichen
dem Transcoder jedoch, Daten in Paketen zu modifizieren, die an
die andere Vorrichtung gesendet wurden.
-
Es
wird ein Kommunikationsprotokoll bereitgestellt, die einer Vorrichtung,
die ein periodisches Bezugssignal empfängt, ermöglichen, den Fluss von zeitlichen
Daten zwischen Vorrichtungen über
einen Bus zu kontrollieren, um die Synchronisation der zeitlichen
Daten mit dem periodischen Bezugssignal aufrechtzuerhalten. Flusskontrollnachrichten
werden zwischen Vorrichtungen gesendet, die einer Vorrichtung, die
das periodische Bezugssignal empfängt, ermöglichen, zu kontrollieren,
wie und wann die Daten über
den Bus gesendet werden. Zum Beispiel kann ein Peripheriegerät, das ein
periodisches Bezugssignal empfängt,
Flusskontrollnachrichten an einen Hostrechner senden, um den Datenfluss
vom Hostrechner zum Peripheriegerät zu kontrollieren. Verschiedene
Typen von zeitlichen Daten, wie Audio- und Videodaten, können als separate Datenströme gesendet
werden. Unter Anwendung des IEEE-1394-Protokolls werden die Flusskontrollnachrichten
unter Verwendung eines asynchronen Protokolls gesendet, wohingegen
zeitliche Daten unter Verwendung eines isochronen Protokolls gesendet
werden.
-
Unkomprimierte
Video- und Audiodaten werden vom Hostrechner über einen seriellen Bus an
das Peripheriegerät übertragen,
wo das Peripheriegerät
Vorgänge
an den Daten durchführt,
wie Komprimieren der Videodaten oder Erzeugen eines analogen Videosignals.
Video- und Audiodaten können
als separate Ströme übertragen
werden. Durch Übertragen
unkomprimierter Videodaten muss der Hostrechner keine Ressourcen zum
Komprimieren der Videodaten verbrauchen, wodurch ermöglicht wird,
dass jene Ressourcen für
kreativere Vorgänge
an den Video- und Audiodaten verwendet werden können. Des Weiteren kann das
Peripheriegerät
durch Übertragen
unkomprimierter Videodaten Videodaten in vielen Ausgabeformaten
erzeugen, ohne zunächst
die Videodaten zu dekomprimieren. Das Peripheriegerät kann auch
Video- und Audiodaten
unter Verwendung eines Standardprotokolls über einen Standardbus ausgeben.
Zum Beispiel kann das Peripheriegerät aus den unkomprimierten Audio- und Videodaten DV
erzeugen und das DV unter Anwendung von IEC-61883 über einen
IEEE-1394-konformen Bus ausgeben.
-
Es
kann auch ein Peripheriegerät,
das die Datenübertragung
vom Hostrechner mit einem periodischen Bezugssignal synchronisiert,
verwendet werden, um die Datenübertragung
an eine andere Vorrichtung, wie einen Transcoder oder einen Camcorder
oder ein Deck, die an das Peripheriegerät angeschlossen ist, zu synchronisieren.
Zum Beispiel kann das Peripheriegerät die unkomprimierten Audio- und Videodaten kodieren,
die vom Hostrechner als ein Videosignal empfangen wurden. Das Peripheriegerät gibt dann
das Videosignal an die andere Vorrichtung aus. Die andere Vorrichtung
kann das periodische Bezugssignal bereitstellen. Zum Beispiel, wenn
die andere Vorrichtung eine Kamera ist, kann das Videoausgabemischsignal
von der Kamera als das periodische Bezugssignal verwendet werden.
Als Folge wird die Datenübertragung
vom Host an das Peripheriegerät
und dann an die Kamera zu der Kamera synchronisiert.
-
Ein
solches Peripheriegerät
ermöglicht
außerdem,
einen Digitalschnitt in Echtzeit auf Band durchzuführen. Insbesondere
kann der Hostrechner durch Übertragen
unkomprimierter Daten vom Hostrechner an das Peripheriegerät während der
Wiedergabe in Synchronisation mit einem periodischen Bezugssignal
Effekte in Echtzeit verarbeiten.
-
Das
Peripheriegerät
kann aus den unkomprimierten Daten eine DV-Ausgabe erzeugen. Diese DV-Ausgabe
kann über
einen IEEE-1394-konformen Bus an ein Aufnahmegerät, wie ein DV-Deck oder -Camcorder,
geliefert werden. Wenn dieses DV-Deck
oder dieser DV-Camcorder ein Videoausgabemischsignal aufweist, kann
dieses Ausgangssignal vom Deck oder Camcorder als das periodische
Bezugssignal verwendet werden. Das Peripheriegerät kann auch als eine Brücke zwischen
dem Hostrechner und der anderen Vorrichtung fungieren. Insbesondere
kann das Peripheriegerät
ein Protokoll über
den seriellen Bus zwischen dem Hostrechner und dem Peripheriegerät und ein
Protokoll über
einen anderen seriellen Bus zwischen dem Peripheriegerät und der
anderen Vorrichtung implementieren. Nach Empfang eines Pakets an
einem Anschluss ermittelt das Peripheriegerät, ob das Paket an eine Vorrichtung
gerichtet ist, die an den anderen Anschluss angeschlossen ist, oder
ob das Paket an das Peripheriegerät gerichtet ist oder ob das
Paket vom Peripheriegerät
zu verarbeiten ist, um ein oder mehrere neue Pakete zu erstellen,
die an die Vorrichtung auszugeben sind, die an den anderen Anschluss
angeschlossen ist. Zum Beispiel kann das Peripheriegerät komprimierte Videodaten
dekomprimieren, die vom Host empfangen wurden, und Datenpakete,
die unkomprimierte Videodaten enthalten, an die andere Vorrichtung
ausgeben. Aus der Perspektive des Hosts verhält sich das Peripheriegerät, als ob
es die andere Vorrichtung wäre.
Aus der Perspektive der anderen Vorrichtung scheinen die Datenpakete
von einer Hostvorrichtung zu sein.
-
1 ist
ein Blockdiagramm eines Systems, in dem ein Hostrechner an ein Peripheriegerät angeschlossen
ist.
-
2 ist
ein Blockdiagramm eines Systems, in dem ein Hostrechner an ein Peripheriegerät angeschlossen
ist, das mit einem anderen Videogerät synchronisiert ist.
-
3 ist
ein detaillierteres Blockdiagramm eines Betriebsmodus des Peripheriegeräts wie in 1.
-
4 ist
ein detaillierteres Blockdiagramm eines anderen Betriebsmodus des
Peripheriegeräts
wie in 1 und 2.
-
5 ist
ein detaillierteres Blockdiagramm eines anderen Betriebsmodus des Peripheriegeräts wie in 1 und 2.
-
6 ist
ein Blockdiagramm eines Betriebsmodus unter Verwendung von zwei
Peripheriegeräten,
die beide Daten von einem Hostrechner empfangen.
-
7 ist
ein Blockdiagramm eines Peripheriegeräts für den in 3 gezeigten
Betriebsmodus.
-
8 ist
ein Blockdiagramm eines Peripheriegeräts für den in 4 gezeigten
Betriebsmodus.
-
9 ist
ein Blockdiagramm eines Peripheriegeräts für den in 5 gezeigten
Betriebsmodus.
-
10A–10B sind detailliertere Blockdiagramme eines Peripheriegeräts, das
die in 7–9 dargestellten
Betriebsmodi einbezieht.
-
11 stellt
ein beispielhaftes Synchronisationspaketformat dar.
-
12 stellt
ein beispielhaftes Präambelpaketformat
dar.
-
13 stellt
ein beispielhaftes Stromdeskriptorformat dar.
-
14 ist
eine Tabelle von Stromkennungen.
-
15 stellt
ein beispielhaftes Datenpaketformat dar.
-
16 stellt
ein beispielhaftes Nullpaketformat dar.
-
1 stellt
ein System dar, in dem ein Hostrechner 100 durch einen
Bus 104, wie einen IEEE-1394-konformen Bus, an ein Peripheriegerät 102 angeschlossen
ist. Der Hostrechner enthält
in der Regel einen Speicher zum Speichern von Videodaten und Audiodaten
in Datendateien unter Verwendung eines Dateisystems des Betriebssystems
des Rechners. Auf dem Hostrechner ist ein Editiersystem bereitgestellt,
um das Editieren eines Programms unter Verwendung der Videodaten und
Audiodaten mit Effekten, die an den Videodaten vorzunehmen sind,
zu ermöglichen.
Ein solches Editiersystem stellt in der Regel ein Programm als eine
Sequenz von Clips dar, wobei ein Clip ein Verweis auf eine Datendatei,
die Zeitmedien enthält,
und einen Bereich in der Datendatei ist. Ein Wiedergabesystem ist
ebenfalls zum Wiedergeben des editierten Programms in Bewegtbildern
(Full Motion) bei voller Auflösung
vorgesehen. Das Wiedergabesystem ermöglicht einem Bearbeiter, das
Programm anzusehen, das editiert wurde. Wenn die Videodaten komprimiert
sind, dekomprimiert das Wiedergabesystem die Videodaten und führt etwaige
Effekte an den dekomprimierten Videodaten durch.
-
Der
Bus kann von einem beliebigen Bustyp sein, über den unter Verwendung von
Paketen Kommunikation durchgeführt
wird und der Daten für
zeitliche Daten, wie Videodaten und Audiodaten, mit einer Frequenz übermitteln
kann, die schneller als die Abtastfrequenz der zeitlichen Daten
ist, wie die Rahmenfrequenz der Videodaten. Der Hostrechner enthält eine
Busschnittstelle zum Senden von Paketen an die Vorrichtung und Empfangen
von Paketen von der Vorrichtung über
den Bus. Ein Pufferspeicher ist für gewöhnlich angeschlossen, um Daten
an die Busschnittstelle zur Übermittlung
als mehrere Pakete zu übertragen.
Dieser Pufferspeicher wird beispielsweise Daten von der Wiedergabeanwendung
zur Übertragung
an die Vorrichtung empfangen. Ein Treiber, eine Softwareform, die
als ein Controller fungiert, für
die Busschnittstelle befindet sich ebenfalls auf dem Hostrechner
und ermöglicht
dem Hostrechner, Kommunikationsprotokolle, wie das hierin beschriebene
Protokoll, über
den Bus zu implementieren.
-
Der
Hostrechner kann über
den Bus Daten vom Peripheriegerät
empfangen. Der Hostrechner kann über
den Bus Daten an das Peripheriegerät senden. Der Hostrechner und
das Peripheriegerät
können
mehrere Arten von Daten austauschen, darunter Videodaten, Audiodaten
und andere zeitliche Daten und anderer Inhalt. Videodaten können entweder
komprimiert oder unkomprimiert sein und können mit Audiodaten und anderen
verwandten zeitbasierten Medien kombiniert sein oder von diesen
getrennt sein. Audiodaten sind in der Regel unkomprimiert, können jedoch
komprimiert sein. Die Erfindung ist nicht auf ein bestimmtes Format
von Videodaten oder Audiodaten oder anderen zeitlichen Daten beschränkt.
-
Daten
werden über
den Bus 104 in Form von Paketen übertragen. Ein Paket ist eine Datenübermittlungseinheit,
die sowohl Daten als auch Routinginformationen, wie eine Adresse
eines Knotens auf dem Bus, enthält.
Ein Paket kann auch einen Typ des Pakets anzeigen, wenn das Kommunikationsprotokoll
zulässt, dass
verschiedene Typen von Paketen übermittelt
werden. Ein Paket kann auch Fehlerkorrekturcodes und andere Daten
enthalten. Die Form und der Inhalt jedes Pakettyps ist in der Regel
als Teil eines Kommunikationsprotokolls spezifiziert, das im Folgenden
detaillierter beschrieben wird.
-
Das
Peripheriegerät
kann mehrere Eingänge 106 aufweisen,
um Daten in einem beliebigen einer Reihe von Formaten von einer
Quelle zu empfangen, wie Video- und Audiodaten von einem Bandgerät. Das Peripheriegerät kann außerdem mehrere
Ausgänge 108 aufweisen,
um Daten in einem beliebigen einer Reihe von Formaten an einen Empfänger zu
senden, wie Video- und Audiodaten an einen Bildschirm und Lautsprecher
oder an ein Bandgerät.
Zum Beispiel kann das Peripheriegerät DV an eine DV-Vorrichtung,
wie einen DV-Camcorder oder ein DV-Bandgerät, senden oder kann DV von
einer DV-Vorrichtung erhalten. Beispiele anderer Video- und Audioeingabe-
und -ausgabeformate umfassen, sind jedoch nicht darauf beschränkt, unter anderem
analoge Formate, wie Mischsignal-Video, Komponentenvideo (wie YCrCb-
und YUV-Video) und S-Video, und digitale Formate, sowohl komprimiert
als auch unkomprimiert, sowohl Standard als auch proprietär, wie MPEG-2,
SMPTE-125M, SMPTE-260M, SMPTE-264M, SMPTE-265M, SMPTE-267M, SMPTE-274M
und SMPTE-279M. Das Peripheriegerät kann auch ein periodisches
Bezugssignal 110 zur Verwendung beim Steuern der Datenübertragung
vom Host intern erzeugen oder von einer externen Quelle empfangen.
Dieses periodische Bezugssignal weist eine Frequenz auf, die der
gewünschten
Frequenz der zeitlichen Daten entspricht, wie eine Videofeld- oder
-rahmenfrequenz, die vom Peripheriegerät ausgegeben wird. Das periodische
Bezugssignal kann von einem präzisen
Quarzuhrerzeugungsschaltkreis erzeugt werden. Ein solcher Schaltkreis kann
innerhalb des Peripheriegeräts
oder außerhalb
des Peripheriegeräts
liegen. Das periodische Bezugssignal kann auch durch Verwendung
eines Videodecodierers erzeugt werden, der ein empfangenes Videomischsignal
decodiert, um ein vertikales Synchronisationssignal (VSYNC), ein
horizontales Synchronisationssignal (HSYNC), einen Pixeltakt (wie
27 MHz für
NTSC/PAL-Video mit Standardauflösung)
und ein Burstphasensignal zu erzeugen. Ein solches Videomischsignal,
das für
diesen Zweck verwendet wird, wird für gewöhnlich ein Genlock-, RS170-,
Black-Burst- oder House-Sync-Signal genannt und kann aktives Video
enthalten oder auch nicht. Die vom Decodierer ausgegebenen Signale
können
als Eingaben an einen Videocodierer geliefert werden, um Ausgabevideo
zu erzeugen, das in Synchronisation mit dem empfangenen Videomischsignal
ist.
-
Jede
Feldgrenze oder Rahmengrenze oder andere ausgewiesene zeitliche
Grenze, die vom periodischen Bezugssignal abgeleitet werden kann,
kann zum Definieren eines Datenintervalls verwendet werden. Ein
Datenintervall ist ein Zeitraum innerhalb der zeitlichen Daten,
die dem periodischen Bezugssignal entsprechen, wie ein Videodatenrahmen
oder -feld, oder Audio- oder Metadaten, die dem Videodatenrahmen
oder -feld entsprechen. Das im Folgenden beschriebene Kommunikationsprotokoll
nutzt ein Datenintervall als eine Basis für die Datenübertragung vom Host an die
Vorrichtung, um die Daten mit dem periodischen Bezugssignal zu synchronisieren.
-
Das
Peripheriegerät
kann dazu verwendet werden, mehrere Ströme von Audio- und Videodaten
für den
Hostrechner aufzuzeichnen oder wiederzugeben. Zur Aufzeichnung empfängt das
Peripheriegerät
Daten von einem oder mehreren seiner Eingänge und überträgt die empfangenen Daten über den
Bus an den Hostrechner. Zum Beispiel kann das Peripheriegerät einen
DV-Strom empfangen, den es direkt an den Hostrechner überträgt. Das
Peripheriegerät
kann einen analogen Video- und Audiostrom empfangen, den es in einen DV-Strom
umwandelt, der an den Host übertragen
wird. Im Wiedergabemodus empfängt
das Peripheriegerät über den
Bus einen Strom von Video- und Audiodaten vom Hostrechner. Dieser
Strom kann in ein beliebiges einer Reihe von Formaten zur Ausgabe
an eine andere Vorrichtung umgewandelt werden. Zum Beispiel kann das
Peripheriegerät
den empfangenen Strom in ein analoges Video- und Audiosignal oder
in einen DV-Strom zur Übermittlung
an ein Aufnahmegerät
oder an einen Bildschirm und Lautsprecher umwandeln.
-
Unter
Bezugnahme auf 2 kann das Peripheriegerät 202 die
Datenübertragung über den
Bus 204, vom Hostrechner 200 an eine andere Vorrichtung,
die (mittels Eingängen 206 oder
Ausgängen 208)
an das Peripheriegerät 202 angeschlossen
ist, zu einem periodischen Bezugssignal 210 synchronisieren,
das von sowohl dem Peripheriegerät 202 als
auch der anderen Vorrichtung 212 empfangen wird. Das periodische
Bezugssignal kann von dem Peripheriegerät 202 oder der anderen
Vorrichtung 212 erzeugt werden oder kann von einer anderen
Quelle stammen.
-
Beispiele
anderer Vorrichtungen 212, die an das Peripheriegerät 202 angeschlossen
werden können, umfassen,
sind jedoch nicht darauf beschränkt,
einen Transcoder, ein Videodisplay, ein Bandgerät, eine Kamera oder eine Videoverarbeitungsausrüstung. Zum
Beispiel kann das Peripheriegerät
unkomprimierte Video- und Audiodaten vom Hostrechner empfangen.
Das Peripheriegerät
kann aus diesen Daten ein analoges Video- und Audiosignal erzeugen,
das mit dem periodischen Bezugssignal synchronisiert wird und das
an die andere Vorrichtung ausgegeben wird.
-
Die
verschiedenen Funktionen des Peripheriegeräts können auch in die andere Vorrichtung
integriert werden, um eine einzige Vorrichtung zu schaffen, die
zum Bereitstellen der kombinierten Funktionen arbeitet. In ähnlicher
Weise können
die verschiedenen Funktionen der anderen Vorrichtung in das Peripheriegerät integriert
werden, um eine einzige Vorrichtung zu schaffen, die zum Bereitstellen
der kombinierten Funktionen arbeitet. Folglich könnte ein Transcoder, ein Videodisplay,
ein Bandgerät,
eine Kamera oder eine andere Videoverarbeitungsausrüstung die
Funktionen des wie hierin beschriebenen Peripheriegeräts einschließen.
-
Zu
drei beispielhaften Betriebsmodi für ein solches Peripheriegerät zählen der
Modus mit unkomprimierter Wiedergabe, der Digitalschnittmodus und
der Aufzeichnungsmodus, wie in Verbindung mit den 3–5 beschrieben
werden wird.
-
Im
Modus mit unkomprimierter Wiedergabe, in 3 gezeigt,
leitet das Hostsystem 300 einen Strom von unkomprimiertem
Video und Audio und/oder Vorrichtungssteuerbefehle über den
Bus 304 zum Peripheriegerät 302. Zur Wiedergabe
während
der Editierung kann der unkomprimierte Strom ein Teilbild (wie ¼-Bild) oder
Vollbild sein, je nach einer benutzerdefinierten Einstellung. Für den im
Folgenden erörterten
Digitalschnittmodus ist der Vollbildmodus die Standardeinstellung.
Das Peripheriegerät
kann einen Resizer enthalten, um Teilbildvideo auf Vollbildvideo
zu skalieren. Das Peripheriegerät
kann unter Anwendung des unkomprimierten Stroms eine analoge Video-
und Audioausgabe 306 erzeugen. Ein Videofenster auf dem
Desktop des Hostrechners kann in Synchronisation mit den Ausgaben
des Peripheriegeräts
abspielen. Das Peripheriegerät kann
ein DV oder eine andere komprimierte Ausgabe 308 erzeugen,
indem es den unkomprimierten Strom unter Verwendung eines Codierers
auf dem Peripheriegerät
kodiert. Durch Bereitstellung ausreichender Pufferung kann die komprimierte
Ausgabe trotz Latenzzeiten, die vom Kodieren des unkomprimierten
Stroms auf dem Peripheriegerät
verursacht werden, in Synchronisation gehalten werden.
-
In
diesem Modus kann Editierung, Wiedergabe und Erstellung von Ausgabevideo
und – audio
mit Echtzeiteffekten bereitgestellt werden. Insbesondere wird, da
der Host den Video- und Audiostrom nach Anwendung eines Echtzeiteffekts
nicht komprimiert, die unkomprimierte Ausgabe in Echtzeit während der
Wiedergabe an das Peripheriegerät übertragen,
das wiederum den unkomprimierten Strom zur Ausgabe kodieren kann.
Ein solcher Vorgang ermöglicht
auch, dass ein Digitalschnitt in Echtzeit auf Band durchgeführt werden kann.
Insbesondere kann der Hostrechner durch Übertragen unkomprimierter Daten
vom Hostrechner an das Peripheriegerät während der Wiedergabe in Synchronisation
mit einem periodischen Bezugssignal Effekte in Echtzeit verarbeiten.
Das Peripheriegerät
kann aus den unkomprimierten Daten eine DV-Ausgabe erzeugen. Diese
DV-Ausgabe kann über
einen IEEE-1394-konformen Bus an ein Aufnahmegerät, wie ein DV-Deck oder -Camcorder,
geliefert werden. Wenn dieses DV-Deck oder dieser DV-Camcorder ein
Videoausgabemischsignal aufweist, kann dieses Ausgabesignal vom
Deck oder Camcorder als das periodische Bezugssignal verwendet werden.
-
Die
Videowiedergabe kann in einem oder mehreren Desktopfenstern auf
dem Hostrechner, Mischsignal- oder S-Video-Ausgaben 306 auf
dem Peripheriegerät
und einer DV-Ausgabe 308 über einen IEEE-1394-konformen
Bus auf dem Peripheriegerät
oder auf anderen Ausgaben des Peripheriegeräts erfolgen. Die Audiowiedergabe
kann durch eine oder mehrere der Analogausgaben, DV-Ausgaben oder
Digitalausgaben (nicht gezeigt) erfolgen.
-
In
einem anderen, in 4 gezeigten Modus wird ein Digitalschnitt
eines komprimierten Stroms, der durch den Hostrechner 400 und/oder
Vorrichtungssteuerbefehle aufbereitet wurde, über den Bus 404 an
das Peripheriegerät 402 geliefert.
In diesem Modus werden etwaige Effekte aufbereitet und die aufbereiteten
Bilder werden am Hostrechner komprimiert und vor der Übertragung
in den Datendateien gespeichert. Der komprimierte Strom wird vom
Hostrechner 400 aus seinen Datendateien gelesen und an
das Peripheriegerät 402 übermittelt.
Der komprimierte Strom kann unter Verwendung des im Folgenden beschriebenen
synchronisierten Protokolls an das Peripheriegerät übermittelt werden. Das synchronisierte
Protokoll wird zum Übertragen des
DV-Stroms zur Wiedergabe auf einer synchronisierten Vorrichtung,
wie einem Fernsehbildschirm, verwendet.
-
Die
Videowiedergabe kann in einem oder mehreren Desktopfenstern auf
dem Hostrechner, Mischsignal- oder S-Video-Ausgaben 406 auf
dem Peripheriegerät
und einer DV-Ausgabe 408 über den IEEE-1394-konformen
Bus auf dem Peripheriegerät
oder auf anderen Ausgaben des Peripheriegeräts erfolgen. Die Audiowiedergabe
kann durch eine oder mehrere der Analogausgaben, DV-Ausgaben oder
Digitalausgaben (nicht gezeigt) erfolgen. Die Analogausgaben werden
erstellt, indem man das Peripheriegerät den eingehenden komprimierten
Strom unter Verwendung eines Decodierers auf dem Peripheriegerät dekodieren lässt, dann
die dekodierten Daten unter Verwendung eines Videocodierers kodiert.
Um einen Digitalschnitt auf ein DV-Band durchzuführen, führt das Peripheriegerät Vorrichtungssteuervorgänge an der
DV-Vorrichtung (nicht
gezeigt) durch, die an die DV-Ausgabe 408 angeschlossen
ist, und gibt die DV-Daten direkt wie vom Host empfangen aus.
-
In
diesem Modus spielt die komprimierte Ausgabe vom Peripheriegerät in Synchronisation
mit dem Video im Desktopfenster auf dem Hostrechner ab. Durch Bereitstellung
ausreichender Pufferung im Host können die Latenzzeiten, die
aus dem Dekodieren des DV-Stroms und dem Kodieren der Analogausgaben
auf dem Peripheriegerät
entstehen, überwunden
werden, um die Analogausgaben mit dem Video im Desktopfenster zu synchronisieren.
-
Ein
dritter Betriebsmodus ist Aufzeichnung, in 5 gezeigt.
Die Aufzeichnung setzt eine von mehreren unterschiedlichen Eingabequellen
(506, 508, 510) des Peripheriegeräts 502 ein,
wie Mischsignal-Video-, S-Video-Video- und DV-Video- und – Audio-Eingaben.
DV-Vorrichtungssteuerung durch das Peripheriegerät 502 steht zur Verfügung, wenn
eine DV-Eingabevorrichtung verwendet wird.
-
Wenn
die Eingabevorrichtung DV ist, wird der DV-Strom durch das Peripheriegerät direkt über den
Bus 504 zum Host 500 geleitet. Der DV-Strom kann
unter Verwendung des im Folgenden beschriebenen synchronisierten
Protokolls an das Hostsystem übertragen
werden. Während
der Übertragung
von DV-Daten an den Hostrechner kann das Peripheriegerät den DV-Strom
dekodieren und die dekodierten Daten kodieren, um eine analoge Videoausgabe
und eine analoge Audioausgabe (nicht gezeigt) zu erzeugen.
-
Wenn
das Eingangssignal Mischsignal- oder S-Video oder ein anderes Format
ist, wird das Eingangssignal in ein digitales Format, wie DV, umgewandelt,
bevor es über
den IEEE-1394-konformen Bus an den Host übermittelt wird. In diesem
Modus können
die analogen Video- und Audiosignale auch durch die entsprechenden
analogen Video- und
Audioausgaben (nicht gezeigt) ausgegeben werden. Die Ausgabe von
Video im DV-Format über
die andere IEEE-1394-konforme Busausgabe 508 an eine externe
Vorrichtung kann zudem aktiv oder inaktiv sein.
-
In
all diesen Modi kann das Peripheriegerät als eine Brücke zwischen
dem Hostrechner und der anderen Vorrichtung fungieren. Anders gesagt,
das Peripheriegerät
implementiert ein Protokoll über
den ersten seriellen Bus zur Kommunikation zwischen dem Hostrechner
und dem Peripheriegerät.
Das Peripheriegerät implementiert
dasselbe Protokoll über
den zweiten seriellen Bus zur Kommunikation zwischen dem Peripheriegerät und der
anderen Vorrichtung. Das Peripheriegerät kommuniziert Informationen
von der anderen Vorrichtung zum Hostrechner, um dem Hostrechner
zu ermöglichen,
Pakete, die an die andere Vorrichtung gerichtet sind, unter Verwendung
des Protokolls über
den ersten seriellen Bus zu kommunizieren. Das Peripheriegerät kommuniziert
außerdem
Informationen vom Hostrechner zu der anderen Vorrichtung, um der
anderen Vorrichtung zu ermöglichen,
Pakete, die an den Hostrechner gerichtet sind, unter Verwendung
des Protokolls über den
zweiten seriellen Bus zu kommunizieren.
-
Im
Allgemeinen empfängt
das Peripheriegerät
Nachrichten von einem Host an einem Anschluss des Peripheriegeräts, übersetzt
die Nachricht und sendet dann eine Nachricht von einem anderen Anschluss
des Peripheriegeräts
an die andere Vorrichtung. Die Übersetzung
involviert zumindest das Übersetzen
einer beliebigen Knotenadresse in der Nachricht, so dass sie korrekt
durch den anderen Anschluss zur anderen Vorrichtung geleitet wird.
Die Übersetzung
kann auch eine andere, an den Daten im Paket durchzuführende Verarbeitung
einschließen,
wie Umwandlung von einem Datenformat in ein anderes.
-
Umgekehrt
empfängt
das Peripheriegerät
Nachrichten von der anderen Vorrichtung an einem Anschluss des Peripheriegeräts, übersetzt
die Nachricht und sendet dann eine Nachricht von einem anderen Anschluss
des Peripheriegeräts
an den Host. Wiederum involviert die Übersetzung zumindest das Übersetzen einer
beliebigen Knotenadresse in der Nachricht, so dass sie korrekt durch
den anderen Anschluss zum Host geleitet wird, und kann das Umwandeln
von Datenformaten oder eine andere Verarbeitung der Daten in der Nachricht
einschließen.
-
Um
eine solche Funktionalität
zu implementieren, wird von einem Mikroprozessor auf dem Peripheriegerät ein separater
Prozess zum Verwalten der Kommunikation an jedem Anschluss ausgeführt. Wenn
an einem Anschluss eine Nachricht empfangen wird, ruft der Prozess
für diesen
Anschluss einen Übersetzerprozess
auf, der die Nachricht übersetzt
und die übersetzte
Nachricht an den anderen Prozess für den anderen Anschluss sendet.
-
Ob
Pakete vom Host zu der anderen Vorrichtung oder von der anderen
Vorrichtung zum Host fließen, Pakete,
die von dem Host, dem Peripheriegerät oder der anderen Vorrichtung
empfangen werden, werden unter Verwendung eines Low-Level-Protokolls, wie dem
Sicherungsschichtprotokoll, lokal quittiert. Quittierungen auf der
Anwendungsebene werden allerdings durch das Peripheriegerät unter
Verwendung der oben beschriebenen Knotenübersetzung vom Host zur anderen
Vorrichtung und von der anderen Vorrichtung zum Host geleitet. Folglich
scheint das Peripheriegerät
aus der Perspektive der anderen Vorrichtung ein virtueller Host
zu sein und scheint aus der Perspektive des Hosts eine virtuelle
Vorrichtung zu sein.
-
Diese
Brückenfunktionalität wird nun
detaillierter für
vier Kommunikationsarten beschrieben werden: vom Host zum Peripheriegerät, vom Peripheriegerät zur anderen
Vorrichtung, von der anderen Vorrichtung zum Peripheriegerät und vom
Peripheriegerät
zum Host.
-
Wenn
ein Paket durch das Peripheriegerät vom Hostrechner an einem
Anschluss empfangen wird, quittiert dieser Anschluss den Empfang
des Pakets lokal unter Verwendung beispielsweise eines Sicherungsschichtprotokolls
oder eines anderen Low-Level-Protokolls. Das Paket wird verarbeitet,
um zu ermitteln, ob das Paket an das Peripheriegerät oder die
andere Vorrichtung gerichtet ist. Wenn das Paket an das Peripheriegerät gerichtet
ist, wird das Paket am Peripheriegerät verarbeitet. Wenn das Paket
an die andere Vorrichtung gerichtet ist, wird das Paket zunächst vom
Peripheriegerät
verarbeitet, um ein oder mehrere neue Pakete zu erstellen, die wiederum
an die andere Vorrichtung gesendet werden.
-
Wenn
ein Paket vom Peripheriegerät
durch einen Anschluss an die andere Vorrichtung gesendet wird, quittiert
die andere Vorrichtung den Empfang des Pakets lokal durch Verwendung
einer Sicherungsschichtprotokoll- oder einer anderen Low-Level-Protokoll-Nachricht.
-
Wenn
ein Paket durch das Peripheriegerät von der anderen Vorrichtung
durch einen Anschluss empfangen wird, quittiert dieser Anschluss
den Empfang des Pakets lokal, beispielsweise unter Verwendung eines Sicherungsschichtprotokolls
oder eines anderen Low-Level-Protokolls. Das Paket wird verarbeitet,
um zu ermitteln, ob das Paket an den Hostrechner oder das Peripheriegerät gerichtet
ist. Wenn das Paket an das Peripheriegerät gerichtet ist, wird das Paket
am Peripheriegerät
verarbeitet. Wenn das Paket an den Hostrechner gerichtet ist, wird
das Paket vom Peripheriegerät
verarbeitet, um ein oder mehrere neue Pakete zu erstellen, die wiederum
an den Hostrechner gesendet werden.
-
Wenn
ein Paket vom Peripheriegerät
durch einen Anschluss an den Host gesendet wird, quittiert der Host
den Empfang des Pakets lokal durch Verwendung einer Sicherungsschichtprotokoll-
oder einer anderen Low-Level-Protokoll-Nachricht.
-
Die
lokale Quittierung von Paketen unter Verwendung des Low-Level-Protokolls
unterscheidet sich von der Quittierung von Nachrichten auf der Anwendungsebene
von der anderen Vorrichtung oder vom Host. Wenn die andere Vorrichtung
auf eine Nachricht antworten soll, die durch das Peripheriegerät vom Host
empfangen wurde, wird diese Antwort unter Verwendung eines Protokolls
auf der Anwendungsebene, wie AV/C, vorgenommen und wird als eine
Nachricht von der anderen Vorrichtung abgewickelt, die durch das
Peripheriegerät
an den Host geleitet wird. In ähnlicher
Weise wird, wenn der Host auf eine Nachricht antworten soll, die
durch das Peripheriegerät
von der anderen Vorrichtung empfangen wurde, diese Antwort unter
Verwendung eines Protokolls auf der Anwendungsebene, wie AV/C, vorgenommen
und wird als eine Nachricht vom Host abgewickelt, die durch das
Peripheriegerät
an die andere Vorrichtung geleitet wird.
-
Es
können
auch zwei Peripheriegeräte
angeschlossen sein, um Daten vom selben Host zu empfangen, wie in 6 dargestellt.
Insbesondere empfangen sowohl ein erstes Peripheriegerät 600 als
auch ein zweites Peripheriegerät 610 ein
periodisches Bezugssignal 620. Das erste Peripheriegerät 600 kommuniziert über einen
Bus 640 mit einem Host 630. Das zweite Peripheriegerät 610 ist
ein anderer Knoten auf demselben Bus 640. Unter Verwendung
des im Folgenden beschriebenen Steuerungsprotokolls wählt der
Hostrechner eines der Peripheriegeräte aus weist es an, keine Flusskontrollnachrichten
zu senden. Der Hostrechner antwortet dann nur auf Flusskontrollnachrichten
vom anderen Peripheriegerät.
Auf diese Weise können
beide Peripheriegeräte
synchronisierte Ausgaben aus demselben Datenstrom, der vom Hostrechner
gesendet wurde, bereitstellen.
-
Es
wird nun beispielhafte Hardware, die jeden der oben beschriebenen
Betriebsmodi unterstützt,
in Verbindung mit den 7–10A–B beschrieben.
-
Im
Modus mit unkomprimierter Wiedergabe, in 7 gezeigt,
arbeitet das Peripheriegerät
als ein Bildspeicher und eine DV-Kompressionsvorrichtung. Unkomprimierte
Audio- und Videodaten werden von der Busschnittstelle, als ein IEEE-1394-Transceiver 706 gezeigt,
auf dem Host 700 über
den IEEE-1394-konformen Bus 704 an das Peripheriegerät 702 gesendet.
Die Busschnittstelle, als ein IEEE-1394-Transceiver 708 gezeigt, auf
dem Peripheriegerät 702 empfängt die
Daten und die Daten werden im Medien-Hub 710 gespeichert, der
einen Bildspeicher enthält.
Die Videodaten werden dann als ein ITU/CCIR-656-Videostrom von einem CCIR-656-Formatierer 712 umformatiert,
der die umformatierten Daten an sowohl den DV-Codierer 714 als auch an einen
Videocodierer 716 liefert. Ein I2S-Formatierer 718 formatiert
die Audiodaten in einen I2S-Audiostrom zum Transport an sowohl einen
Audiocodierer 720 und den DV-Codierer 714 um.
Die DV-Strom-Ausgabe vom DV-Codierer 714 kann
an einen IEEE-1394-Formatierer 722 geliefert werden, um
IEEE-1394-Pakete
zu produzieren, die von einem anderen IEEE-1394-Transceiver 724 über einen
anderen IEEE-1394-konformen Bus 726 ausgegeben werden können.
-
Um
ein Fallenlassen oder Hinzufügen
von Videorahmen in dem Video, das vom CCIR-656-Formatierer 712 geliefert
wurde, während
der Wiedergabe des Videos über
den IEEE-1394-konformen Bus 704 zu verhindern, kontrolliert
das Peripheriegerät
den Datenfluss vom Hostrechner 700 zum Peripheriegerät 702.
Diese Flusskontrolle ermöglicht
außerdem
dem Peripheriegerät,
unter Verwendung des Analogcodierers 716, der mit einem
internen oder externen periodischen Bezugssignal synchronisiert
ist, ein synchrones Videosignal zu erzeugen und auszugeben. Ein
Kommunikationsprotokoll zum Implementieren dieser Flusskontrolle
ist im Folgenden detaillierter beschrieben.
-
Im
Modus mit digitaler Aufzeichnung, in 8 gezeigt,
arbeitet das Peripheriegerät 802 sowohl
als ein Puffer als auch ein Decodierer. Digitale Video- und Audiodaten,
wie DV, werden von einer Vorrichtung (nicht gezeigt) empfangen und
an den Hostrechner 800 zur Verarbeitung und Speicherung
auf einer Speichervorrichtung, auf die vom Hostrechner zugegriffen
wird, wie einem Laufwerksystem, geleitet. Die empfangenen Daten, wenn
sie komprimiert sind, können
außerdem
dekomprimiert werden, um Ausgabe-Audio und -Video zur Überwachung
zu produzieren. Genauer werden in 8 Daten,
wie DV, durch eine IEEE-1394-Schnittstelle 806 empfangen,
gepuffert und von einer anderen IEEE-1394-Schnittstelle 808 über den
Bus 804 an die IEEE-1394-Schnittstelle 810 am Host 800 gesendet.
-
Die
empfangenen Daten können
auch vom IEEE-1394-Deformatierer 812 deformatiert werden
und in einen Decodierer 814, wie einen DV-Decodierer, eingegeben
werden, um dekomprimiert zu werden. Die dekomprimierten Daten können dann
zur Ausgabe an andere Vorrichtungen kodiert werden. Zum Beispiel
können
die dekomprimierten Daten in einen Analogvideocodierer 816 eingegeben
werden und die Audiodaten können
in einen Audiocodierer 818 eingegeben werden. Die Ausgaben
der Codierer können
auf einen Bildschirm und Lautsprecher zur Überwachung des Aufzeichnungsprozesses
angewendet werden. Da die Zeitsteuerung auf dem Analogvideocodierer 816 von
einer Ortszeitbasis abgeleitet wird und zu den eingehenden Daten
asynchron ist, kann der Analogcodierer 816 entweder einen
Videorahmen wiederholen oder einen Videorahmen fallenlassen, je
nachdem, ob der eingehende DV-Datenstrom langsamer oder schneller
als der Videocodierer läuft.
-
Im
Modus mit analoger Aufzeichnung, in 9 gezeigt,
wandelt das Peripheriegerät 902 eingegebenes
analoges Video und zugehöriges
Audio in ein digitales Format um und überträgt die digitalen Daten über den
Bus 904 an den Host 900. Zum Beispiel wandelt
ein Analogvideodecodierer 906 das eingegebene analoge Video
in einen digitalen ITU-656-Videodatenstrom um. Die digitalen Videodaten
werden an einen Codierer 908, wie einen DV-Codierer, zur
Kompression gesendet. Empfangenes Audio wird zur Umwandlung in ein
digitales I2S-Audioformat mit einem Audiocodierer/-decodierer 910 verbunden.
Die Audiodaten können
auch an einen Codierer 908 zur Kompression geliefert werden.
Der Audiocodierer/-decodierer 910 kann auch Audioausgaben
zur Überwachung
des Audios während
der Aufzeichnung bereitstellen. Ein Videocodierer 912 kann auch
eine Videoausgabe zur Überwachung
des Videos während
der Aufzeichnung bereitstellen. Kodierte Videodaten vom Codierer 908 werden
von einem IEEE-1394-Formatierer 914 formatiert, der sie
zur Übermittlung durch
die Busschnittstelle, als IEEE-1394-Transceiver 916 gezeigt,
vorbereitet. Der Host empfängt
die Daten über
den Bus 904 durch die Busschnittstelle, als IEEE-1394-Transceiver 918 gezeigt.
-
Ein
Blockdiagramm eines Peripheriegeräts, das diese Betriebsmodi
aufweist, ist in den 10A–10B gezeigt.
In den 10A–10B arbeitet
das Peripheriegerät 1000 in
zwei Grundmodi: Aufzeichnung und Wiedergabe. Im Aufzeichnungsmodus
können
digitale Video- und Audiodaten, wie DV, von einer IEEE-1394-konformen
Schnittstelle 1002 empfangen und an den Host über eine
IEEE-1394-Schnittstelle 1004 an eine entsprechende Schnittstelle 1051 auf
dem Host gesendet werden. Analoges Audio und Video können ebenfalls
empfangen und in ein digitales Format umgewandelt und dann über die
Schnittstelle 1004 an den Host gesendet werden. Im Wiedergabemodus
werden Video- und Audiodaten durch die Schnittstelle 1004 vom
Host empfangen und als analoges Video und Audio ausgegeben und/oder
als digitale Video- und Audiodaten durch die IEEE-1394-konforme
Schnittstelle 1002 ausgegeben. Die IEEE-1394-konforme Schnittstelle 1002 stellt
eine Schnittstelle durch den Anschluss 1045 zu externen
Vorrichtungen, wie Kameras und Decks, bereit, wohingegen die IEEE-1394-konforme Schnittstelle 1004 eine
Schnittstelle zum Hostrechner bereitstellt. Die Schnittstellen 1002 und 1004 können beispielsweise
unter Verwendung einer Bitübertragungsschicht-Vorrichtung
und einer Sicherungsschicht-Vorrichtung implementiert werden. Ein
Link-Layer-Controller (Sicherheitsschicht-Controller) TSB12LV32
von Texas Instruments und ein Cable-Transceiver/Arbiter (Kabel-Transceiver/Zuteiler)
TSB41 LV01 können
verwendet werden, um eine nominale Übertragungsgeschwindigkeit
von 400 Megabit pro Sekunde über
den IEEE-1394-Bus zu erzielen.
-
Linke
und rechte Audioeingänge
und -ausgänge 1040, 1041, 1042, 1043 zur
Audioverarbeitung stellen Eingaben an einen Audiocodierer/-decodierer 1006 bereit,
der beispielsweise unter Verwendung eines UDA1345TS von Philips,
der Frequenzen von 32, 44,1 und 48 kHz unterstützt, implementiert werden kann. Andere
Chips, die andere Frequenzen unterstützen, können verwendet werden. Um das
Audio während
der Aufzeichnung fest mit dem Video verbunden zu halten, wird der
Audiotakt vom Eingabevideodecodierer 1008 abgeleitet. Zur
Wiedergabe oder Ausgabe wird der Audiotakt vom Analogvideocodierer 1010 abgeleitet.
-
Ein
Kopfhörer-Audioausgang 1044 kann
durch einen Codierer 1012 bereitgestellt werden, der beispielsweise
unter Verwendung eines Digital-Audio-Wandlers (digital to audio
converter, DAC) UDA1320ATS von Philips, der Frequenzen von 32, 44,1
und 48 kHz unterstützt,
implementiert werden kann. Andere Chips, die andere Frequenzen unterstützen, können verwendet
werden. Ein separater DAC kann für
den Kopfhörer verwendet
werden, um eine Abstimmung der Kopfhörerlautstärke ohne Auswirkung auf die
Hauptaudioausgaben zu ermöglichen.
-
Das
Peripheriegerät 1000 kann
durch die Eingänge 1046 und 1047,
wie Mischsignal- und
S-Video-Eingänge,
analoges Video empfangen. Diese Eingaben werden von einem Decodierer 1008 empfangen,
der das Eingangssignal in digitale Videodaten umwandelt. Der Decodierer 1008 kann
beispielsweise durch einen Videodecodierer SAA7114H von Philips,
der analoge NTSC-, NTSC-j- und PAL-Videoformate unterstützt, implementiert
werden. Andere Decodierer, die dasselbe oder andere Formate unterstützen, können verwendet
werden. Wenn er an entweder eine Mischsignal- oder eine S-Video-Quelle
angeschlossen wird, wandelt dieser Decodierer das eingehende analoge
Signal in einen digitalen YUV-4:2:2-Videodatenstrom nach Standard
ITU 656 um. Dieser Decodierer stellt auch Unterstützung für Helligkeitsoffsetkontrolle,
Helligkeitskontrastkontrolle, Farbtonsättigungskontrolle und Farbwinkelkontrolle
bereit.
-
Das
Peripheriegerät 1000 kann
auch durch die Ausgänge 1048 und 1049,
wie Mischsignal- und S-Video-Ausgänge, die von einem Codierer 1010 bereitgestellt
werden, analoges Video ausgeben. Der Codierer 1010 kann
beispielsweise durch einen Codierer ADV7176 von Analog Devices implementiert
werden. Der Codierer 1010 nimmt einen digitalen YUV-4:2:2-Videodatenstrom
und Echtzeit-Kontrollstrominformationen
vom Genlock-Schaltkreis 1018 an, die durch einen Medien-Hub 1028 gepuffert
wurden, um synchronisierte analoge Mischsignal- und S-Video-Ausgaben zu erzeugen.
Die ADV7176-Vorrichtung kodiert analoges Video und stellt mehrere
Funktionen zur Verarbeitung des Ausgabevideos bereit, wie Kontrolle
der Helligkeitsfilter (Tiefpass-/Notch-/erweiterter Filter), Zwischenträgerfrequenz-
und – phasenkontrolle
und Helligkeitsverzögerungskontrolle.
-
Das
Peripheriegerät 1000 kann
auch eine Kompressions-/Dekompressionsvorrichtung (Codec) 1014, wie
einen DV-Codec, enthalten. Dieser Codec kann beispielsweise unter
Verwendung eines Codec NW701 DV25 von Divio sowohl zum Dekomprimieren
als auch zum Komprimieren eines DV-Datenstroms implementiert werden.
Bei der Kompression empfängt
der Codec 1014 einen digitalen ITU-656-YUV-4:2:2-Videostrom und
einen I2S-Audiostrom und komprimiert diese, um einen komprimierten
DV-Datenstrom zu
produzieren. Bei der Dekompression empfängt der Codec 1014 einen
komprimierten DV-Datenstrom und produziert sowohl einen digitalen
ITU-656-YUV-4:2:2-Videostrom
als auch einen I2S-Audiostrom. Der NW701-Codec stellt außerdem Verarbeitung
von NTSC (4:1:1), PAL (4:2:0) und PAL (4:1:1), Audiounterstützung für 48, 44,1
und 32 kHz (12 und 16 Bit) und fakultative Modi mit niedriger Übertragungsgeschwindigkeit,
darunter 3,0, 2,4, 1,8, 1,5 und 1,0 MByte/s, bereit. Der Codec 1014 verwendet
einen Speicher 1016 zum vorübergehenden Speichern von Daten
während
der Verarbeitung. Ein solcher Speicher 1016 kann beispielsweise
unter Verwendung eines 256kx32-DRAM implementiert werden.
-
Das
Peripheriegerät 1000 kann
auch ein periodisches Bezugssignal (Genlock) durch einen Eingang 1050 empfangen.
Dieses Signal wird von einer Video-Genlock-Vorrichtung 1018 empfangen,
die beispielsweise unter Verwendung eines Decodierers SAA7113 von
Philips implementiert werden kann. Dieser Decodierer unterstützt analoge
NTSC-, NTSC-j- und PAL-Videoformate. Wenn er an eine Mischsignal-Genlock-Quelle angeschlossen
wird, extrahiert er die Informationen zur vertikalen Synchronisation,
horizontalen Synchronisation und Farbburstphase und liefert diese
Informationen an den Medien-Hub 1028, der dazu verwendet
werden kann, die Ausgabezeitsteuerung des ADV7176-Videocodierers 1010 fest
mit der Genlock-Quelle zu verbinden.
-
Kontrollen
können
auf dem Peripheriegerät
vorgesehen werden, um einer Person zu ermöglichen, die verschiedenen
Kontrollen der Eingabedecodierer und Ausgabecodierer abzustimmen,
insbesondere Pegel der analogen Videosignale abzustimmen, zur Audio-Stummschaltung
und zum Abstimmen der Verstärkungspegel der
Audiosignale.
-
Ein
Bildspeicher-Controller, Resizer und Datenrouter, hierin ein „Medien-Hub" 1028 genannt,
und ein zugehöriger
Pufferspeicher 1030 stellen vier grundlegende Funktionen
auf dem Peripheriegerät 1000 bereit. Erstens
puffern sie sowohl unkomprimierte als auch komprimierte Datenströme zwischen
den Eingängen
und den Ausgängen.
Zweitens stellen sie eine Umschalt- oder Multiplexfunktion bereit,
die Daten zwischen den Eingängen,
Ausgängen,
Codierern und Decodierern routet. Drittens deformatieren sie eingehende IEEE-1394-konforme
Datenströme
und ITU-656-konforme
Videoströme.
Viertens formatieren sie abgehende IEEE-1394-konforme Datenströme und ITU-656-konforme
Videoströme.
Der Medien-Hub 1028 kann beispielsweise unter Verwendung
einer frei programmierbaren logischen Anordnung (field programmable
gate array, FPGA) mit einem lokalen Speicher, wie einem SDRAM, als
seinem zugehörigen
Pufferspeicher 1030 implementiert werden.
-
Die
Funktionen des Medien-Hubs 1028 werden in Verbindung mit
einem Mikrocontrolleruntersystem 1020 durchgeführt. Die
Hauptfunktion des Mikrocontrolleruntersystems besteht darin, eine
Abstraktionsschicht für
Softwarebefehle, die über
die IEEE-1394-konforme Schnittstelle 1004 des Hosts empfangen
werden, und zum Steuern der IEEE-1394-konformen Schnittstelle 1002 bereitzustellen.
Das Mikrocontrolleruntersystem stellt außerdem Unterstützung zum
Einrichten und Steuern der Video- und Audiocodierer und -decodierer 1006, 1008, 1010, 1012 und 1018 bereit.
Das Mikrocontrolleruntersystem 1020 enthält einen
Mikroprozessor 1022, der beispielsweise unter Verwendung
eines Mikroprozessors MPC5307 von Motorola implementiert werden
kann. Der Mikroprozessor 1022 arbeitet gemäß Anweisungen,
die im Flash-Speicher 1024 und statischen Direktzugriffsspeicher 1026 gespeichert
sind. Insbesondere kann ein eigentliches Betriebssystem mit einem Echtzeit-Kernel
für den
Mikrocontroller bereitgestellt werden, wie das NUCLEUS-Betriebssystem
von Accelerated Technologies, Inc., der Geschäftsbereich für Mikroprozessor-Einbettung
von Mentor Graphics, der in Mobile, Alabama, USA, angesiedelt ist.
-
Nun
wird der Betrieb des Mikrocontrollers detaillierter beschrieben.
Der Mikrocontroller empfängt durch
ein im Folgenden detaillierter beschriebenes Befehlsprotokoll Befehle
vom Host. Diese Befehle ermöglichen
dem Host, den Betriebsmodus des Peripheriegeräts einzustellen. Diese Modi
beinhalten Einstellungen für
das erwartete Audio- und Videoformat zur Eingabe und Ausgabe. Zu
beispielhaften Formatmoduseinstellungen zählen PAL und NTSC für Video
und 48 kHz, 44,1 kHz oder eine andere Frequenz für Audio. Für diese Modi kann der Host
dem Mikrocontroller ein Format nennen. Der Mikrocontroller wiederum
stellt verschiedene Register der Eingabe- und Ausgabevorrichtungen
zum Handhaben des gewünschten
Formats ein.
-
Andere
Modi zeigen an, ob der Host Daten vom Peripheriegerät empfängt oder
diesem bereitstellt. Einige beispielhafte Modi umfassen, sind jedoch
nicht darauf beschränkt:
- – DV-Eingabe
an Peripheriegerät
und DV-Ausgabe an Host
- – DV-Eingabe
an Peripheriegerät
und unkomprimierte Ausgabe an Host
- – Mischsignal-Eingabe
an Peripheriegerät
und DV-Ausgabe an Host
- – Mischsignal-Eingabe
an Peripheriegerät
und unkomprimierte Ausgabe an Host
- – Unkomprimierte
Eingabe vom Host und Mischsignal-Ausgabe
- – Unkomprimierte
Eingabe vom Host und DV-Ausgabe
- – DV-Eingabe
vom Host und Mischsignal-Ausgabe
- – DV-Eingabe
vom Host und DV-Ausgabe
-
In
einem Modus, in dem DV in das Peripheriegerät eingegeben und DV an den
Hostrechner ausgegeben wird, werden Pakete durch die Schnittstelle 1002 empfangen
und vom Medien-Hub 1028 im Speicher 1030 gespeichert.
Wenn ein Paket im Speicher 1030 verfügbar wird, benachrichtigt der
Medien-Hub 1028 die Schnittstelle 1004. Die Schnittstelle 1004 überträgt dann
das Paket an den Host. In diesem Modus fungiert das Gerät als eine
Brücke.
-
In
einem Modus, in dem DV in das Peripheriegerät eingegeben und unkomprimierte
Daten an den Hostrechner ausgegeben werden, werden Pakete durch
die Schnittstelle 1002 empfangen und vom Medien-Hub 1028 im
Speicher 1030 gespeichert. Es wird zugelassen, dass sich
Pakete im Speicher 1030 ansammeln, bis ein Bilddatenrahmen
empfangen wird. Der Medien-Hub 1028 weist dann den DV-Codec 1014 an, den
Datenrahmen aus dem Speicher 1030 in seinen Speicher 1016 zu
lesen. Der DV-Codec
erzeugt dann einen unkomprimierten Rahmen. Der unkomprimierte Rahmen
wird in einem anderen Teil des Speichers 1030 platziert.
Wenn ein unkomprimierter Rahmen im Speicher 1030 verfügbar wird,
benachrichtigt der Medien-Hub 1028 die Schnittstelle 1004.
Die Schnittstelle 1004 überträgt dann
das Bild als mehrere Pakete an den Host. In diesem Modus fungiert
das Gerät
als eine Brücke.
-
In
einem Modus, in dem eine Mischsignal-Eingabe vom Peripheriegerät empfangen
und DV an den Hostrechner ausgegeben wird, produziert der Decodierer 1008 digitale
Videoinformationen, die vom Medien-Hub 1028 im Speicher 1030 gespeichert
werden. Wenn ein Bilddatenrahmen empfangen wurde, weist der Medien-Hub 1028 dann
den DV-Codierer 1014 an, den Datenrahmen aus dem Speicher 1030 in
seinen Speicher 1016 zu lesen. Der DV-Codierer erzeugt
dann DV und platziert die Daten in einem anderen Teil des Speichers 1030.
Der Medien-Hub 1028 benachrichtigt die Schnittstelle 1004,
dass Daten verfügbar
sind. Die Schnittstelle 1004 überträgt dann das DV-Bild als mehrere
Pakete an den Host.
-
In
einem Modus, in dem eine Mischsignal-Eingabe vom Peripheriegerät empfangen
und unkomprimierte Daten an den Hostrechner ausgegeben werden, produziert
der Decodierer 1008 digitale Videoinformationen, die vom
Medien-Hub 1028 im Speicher 1030 gespeichert werden.
Wenn Bilddaten empfangen werden, weist der Medien-Hub 1028 die
Schnittstelle 1004 an, dass Daten zur Übertragung verfügbar sind.
Die Schnittstelle 1004 überträgt dann
Pakete von unkomprimierten Daten an den Host.
-
In
einem Modus, in dem das Peripheriegerät vom Host unkomprimierte Daten
empfängt
und ein analoges Videomischsignal ausgibt, leitet der Medien-Hub 1028 Pakete,
die durch die Schnittstelle 1004 empfangen wurden, derart,
dass sie im Speicher 1030 gespeichert werden. Wenn Daten
im Speicher 1030 verfügbar werden,
leitet der Medien-Hub 1028 Daten an den Codierer 1010 zur
Ausgabe.
-
In
einem Modus, in dem das Peripheriegerät vom Host unkomprimierte Daten
empfängt
und DV an eine andere Vorrichtung ausgibt, leitet der Medien-Hub 1028 Pakete,
die durch die Schnittstelle 1004 empfangen wurden, derart,
dass sie im Speicher 1030 gespeichert werden. Wenn ein
Rahmen von unkomprimierten Daten im Speicher 1030 verfügbar wird,
benachrichtigt der Medien-Hub 1028 den DV-Codec 1014,
der die Daten in seinen Speicher 1016 liest. Der DV-Codec
erzeugt dann DV, das im Speicher 1030 gespeichert wird.
Der Medien-Hub 1028 benachrichtigt dann die Schnittstelle 1002,
dass DV-Daten verfügbar
sind. Die Schnittstelle 1002 liest die Daten und überträgt sie als
Pakete durch den Ausgang 1045. In diesem Modus fungiert
das Gerät
als eine Brücke.
-
In
einem Modus, in dem das Peripheriegerät vom Host eine DV-Eingabe
empfängt
und ein analoges Videoausgabemischsignal bereitstellt, empfängt die
Schnittstelle 1004 Pakete von DV-Daten, die im Speicher 1030 gespeichert
werden. Wenn ein Datenrahmen verfügbar wird, benachrichtigt der
Medien-Hub 1028 den DV-Codec 1014, der dann die
Daten in seinen Speicher 1016 liest. Der DV-Codec produziert
anschließend
unkomprimierte Videodaten, die im Speicher 1030 gespeichert
werden. Der Medien-Hub 1028 liefert dann die unkomprimierten
Videodaten an den Analogcodierer 1010 zur Ausgabe.
-
In
einem Modus, in dem das Peripheriegerät vom Host eine DV-Eingabe
empfängt
und DV an eine andere Vorrichtung ausgibt, empfängt die Schnittstelle 1004 Pakete
von DV-Daten, die vom Medien-Hub 1028 im Speicher 1030 gespeichert
werden. Der Medien-Hub 1028 benachrichtigt die Schnittstelle 1002,
wenn Pakete zur Ausgabe verfügbar
sind. Die Schnittstelle 1002 liest dann die Pakete aus
dem Speicher 1030. In diesem Modus fungiert das Gerät als eine
Brücke.
-
Während jedem
der oben beschriebenen Modi kann eine entsprechende Audioeingabe
und -ausgabe bereitgestellt werden. Außerdem kann vom Peripheriegerät eine Mischsignal-
oder S-Video-Ausgabe bereitgestellt werden, um eine Überwachung
mit einem externen Bildschirm zu ermöglichen. Jede Vorrichtung 1002, 1014 und 1004 kann
eine DMA-Maschine (DMA = direct memory access, direkter Speicherzugriff)
zum Zugreifen auf den Speicher 1030 aufweisen.
-
In
einigen Modi können
die unkomprimierten Videodaten in 1/4-Bildgröße empfangen oder ausgegeben
werden. In diesen Modi führt
der Medien-Hub 1028 auch eine Skalierfunktion durch.
-
In
einigen Modi können
mehrere Ausgaben vom Peripheriegerät bereitgestellt werden. Zum
Beispiel kann das Peripheriegerät
unter Verwendung einer unkomprimierten Eingabe vom Host DV, Mischsignal-
und S-Video ausgeben. Anstelle von DV kann das Peripheriegerät andere
digitale Videoformate eingeben oder ausgeben, ob komprimiert oder
unkomprimiert. Anstelle von Mischsignal-Video kann das Peripheriegerät andere
analoge Videoformate eingeben oder ausgeben. Es können auch
mehrere Ausgaben vom Peripheriegerät bereitgestellt werden, wobei
Vorgänge
aus den oben beschriebenen Modi parallel durchgeführt werden würden.
-
Das
Peripheriegerät
kann auch einen Busverbinder enthalten, der an einen Datenpfad zum
Medien-Hub 1028 angeschlossen ist, um zu ermöglichen,
dass andere Vorrichtungen an den Medien-Hub zum Übertragen von Audio- und Videodaten
durch das Peripheriegerät
angeschlossen werden können.
Dieser Busverbinder könnte
dazu verwendet werden, anderen Verarbeitungsvorrichtungen zu ermöglichen,
sowohl Daten an das Peripheriegerät zu liefern als auch von diesem
zu empfangen. Zum Beispiel könnte
eine solche Vorrichtung ein hoch auflösendes Videosignal empfangen
und es in einen komprimierten Datenstrom umwandeln, der dann an
das Peripheriegerät
zur Eingabe in den Hostrechner übertragen
wird.
-
Nun
wird ein Kommunikationsprotokoll zum Steuern der Kommunikation zwischen
dem Hostrechner und dem Peripheriegerät beschrieben. Dieses Protokoll
ist in zwei Teile unterteilt, ein Datentransportprotokoll und ein
Steuerungsprotokoll. Das Datentransportprotokoll definiert, wie
zeitliche Daten, wie Video, Audio und zugehörige Metadaten, vom Hostsystem
an das Peripheriegerät
oder vom Peripheriegerät
an das Hostsystem übertragen
werden. Das Datentransportprotokoll enthält sowohl Datenformat- als
auch Synchronisationsrichtlinien. Das Steuerungsprotokoll definiert,
wie das Hostsystem die Zustände,
Modi und Betriebsparameter des Peripheriegeräts abfragt und steuert. Diese
Protokolle werden im Folgenden detaillierter beschrieben.
-
Das
Kommunikationsprotokoll ist auf Teilen des Standards IEEE-1394 für serielle
digitale Hochgeschwindigkeitsbusse aufgebaut und entspricht den
folgenden Dokumenten zu Standards: Spezifikation IEEE-1394-1995,
Spezifikation IEEE-1394-A. Das Kommunikationsprotokoll ist derart
entworfen, dass es mit Hardware-Bus-Controllern, die mit dem Standard IEEE-1394
konform ist, arbeitet. Für
bestimmte Videodatenformate (z. B.: unkomprimiert, Vollbild, 2-Field,
4:2:2) unterstützen
der Host und das Peripheriegerät
jedoch eine Übertragungsgeschwindigkeit
von 400 MB.
-
Das
zum Steuern von externen Vorrichtungen (wie DV-Camcorder und Videorecorder)
verwendete Protokoll ist als AV/C oder Audio/Video-Control (Audio/Video-Kontrolle)
bekannt. Die Spezifikation und der Befehlssatz sind in den folgenden
Dokumenten definiert: AV/C Digital Interface Command Set, General
Specification, Version 3.0, und AV/C Tape Recorder/Player Subunit
Specification, Version 2.1. Nun wird ein beispielhaftes Datentransportprotokoll
detaillierter beschrieben. In diesem Beispiel wird das Datentransportprotokoll dazu
verwendet, Ströme
von Video und Audio über
einen IEEE-1394-konformen Bus zwischen einem Hostsystem und einem
Peripheriegerät
zu übermitteln.
Dieses Protokoll ist ausreichend flexibel, um die Erweiterung zur Übermittlung
von Metadaten ebenso zu ermöglichen.
-
In
der folgenden Beschreibung des Protokolls wird der Hostrechner der
Host genannt und das Peripheriegerät wird das Gerät genannt.
Je nach dem im Gebrauch befindlichen Modus kann der Host übermitteln (für den Digitalschnittmodus)
oder empfangen (für
den Aufzeichnungsmodus). Die Übermittlungsvorrichtung wird
der Sprecher genannt und die Empfangsvorrichtung wird der Zuhörer genannt.
Der Ausdruck Host sollte so verstanden werden, dass er auf eine
beliebige Einrichtung verweist, die Daten senden oder empfangen kann.
Der Ausdruck Gerät
sollte so verstanden werden, dass er auf ein beliebiges Gerät verweist,
das Daten senden oder empfangen kann und das außerdem ein periodisches Bezugssignal
verarbeitet.
-
Die
Datenübertragung
wird in Intervallen, Datenintervalle genannt, durchgeführt, die
einer Rate des periodischen Bezugssignals entsprechen, mit dem zeitliche
Daten zu synchronisieren sind. Zum Beispiel entspricht das Datenintervall,
wenn das periodische Bezugssignal Video entspricht, einem Bild,
in der Regel einem Rahmen, von Videodaten. Beispielhafte Rahmenintervalle
umfassen, sind jedoch nicht darauf beschränkt, 29,97 FPS (für NTSC-Systeme
(525-Zeilen-Systeme)) und 25 FPS (für PAL-Systeme (625-Zeilen-Systeme)).
-
Daten
werden in Form einer Reihe von gleichzeitigen Strömen übermittelt,
wobei jeder durch eine einzigartige Stromkennung identifiziert ist,
die vom Protokoll definiert wird. Während der Übermittlung können Ströme bei einem
beliebigen Sample, das einem Datenintervall entspricht, wie einer
Rahmengrenze in den Videodaten, gestartet oder gestoppt werden.
Die Datenströme
werden eigentlich auf Basis des Datenintervalls in Segmente unterteilt.
Aufgrund der Beschaffenheit des IEEE-1394-Protokolls wird jeder
Datenstrom weiter in eine Reihe von einem oder mehreren Paketen
zur Übermittlung
während
eines gegebenen Datenintervalls aufgeteilt.
-
Für jeden
Datenstrom kann der Sprecher wählen,
eine beliebige Kombination von Strömen zu übermitteln, die die zuhörende Vorrichtung
aufnimmt. Zum Beispiel angenommen, dass die zuhörende Vorrichtung zwei Videofelder
und zwei Audiokanäle
annehmen kann, könnte
der Sprecher wählen,
nur Audio oder nur Video zu senden oder überhaupt nichts. Der Zuhörer unternimmt
eine Standardaktion, wenn ein Strom fehlt. Zum Beispiel, wenn ein
oder mehrere Audioströme
fehlen, was passieren kann, wenn der Audiokanal stumm geschaltet
ist, füllt
der Zuhörer
die Stille auf diesen Kanälen.
Wenn die Videodaten weggelassen werden, was bei Wiedergabe mit abweichender
Geschwindigkeit passieren kann, könnte der Zuhörer den
letzten Rahmen, den er empfing, wiederholen.
-
Eine
Datenübermittlung
umfasst mehrere Typen von Paketen. Ein „Synchronisationspaket" wird vom Gerät zum Host
gesendet, das anzeigt, dass ein neues Datenintervall begonnen hat.
Der Sprecher kann dann Daten senden. In einer Ausführungsform
wird ein „Präambelpaket" vom Sprecher gesendet,
um dem Zuhörer anzuzeigen,
welche Ströme
während
des Datenintervalls übermittelt
werden, in welcher Reihenfolge sie gesendet werden und wie viele
Pakete zum Transportieren jedes Stroms verwendet werden. Dann werden
auf Basis der in der Präambel
gegebenen Informationen null oder mehr „Datenpakete" zum Sprecher gesendet. Der
Sprecher wartet anschließend
auf das nächste
Datenintervall, um mehr Daten zu senden. Zum Beispiel kann der Sprecher
null oder mehr „Nullpakete" senden, um Buszyklen
auf einer IEEE-1394-Schnittstelle zu füllen, bis das nächste Datenintervall
beginnt. Diese Sequenz von Paketen wird für jedes Datenintervall wiederholt.
-
Präambel-,
Daten-, Synchronisations- und Nullpakete können die Streaming-Paketmodi des IEEE-1394-Protokolls
anwenden. Die IEEE-1394-Spezifikation lässt zwei Typen von Streaming-Paketen
zu: isochron und asynchron. Für
beide Typen ist das Paketformat dasselbe, wobei derselbe Transaktionscode (tcode
= 0 × A)
eingesetzt wird. Asynchrone Stromübermittlungen sind isochronen Übermittlungen ähnlich,
es gibt jedoch die folgenden Unterschiede. Asynchrone Stream-Pakete
werden während
der asynchronen Buszeit übermittelt,
wohingegen isochrone Stream-Pakete während des isochronen Busintervalls übermittelt
werden. Asynchrone Stream-Pakete sind auf eine Höchstnutzlast von 2048 Byte
beschränkt,
wohingegen isochrone Stream-Pakete bis zu 4096 Byte enthalten können.
-
Das
Synchronisationspaket wird vom Peripheriegerät gesendet, um anzuzeigen,
dass ein Datenintervall begonnen hat. Das Peripheriegerät erzeugt
das Synchronisationspaket als Antwort auf das periodische Bezugssignal.
Genauer gesagt wird ein Synchronisationspaket zum Beginn jedes Datenintervalls,
das dem periodischen Bezugssignal entspricht, gesendet. Der Beginn
eines Datenintervalls kann beispielsweise mittels Überwachen
des periodischen Bezugssignals erfasst werden. Ein Interrupt- oder
anderes Signal kann an den Mikrocontroller des Geräts abgegeben
werden, wenn der Beginn eines Datenintervalls erfasst wird.
-
Ein
beispielhaftes Format eines Synchronisationspakets 1100,
als ein asynchrones Paket, ist in 11 gezeigt
und weist ein Format auf, das einem „Write Request"-Paket entspricht. Die schattierten Felder zeigen
jene an, die durch den Standard IEEE-1394 definiert sind. Das „destination_ID"-Feld 1102 enthält eine 16-Bit-Adresse
des Knotens, der das Paket empfangen soll. Dieses Feld enthält eine „destination_bus_ID" (obere 10 Bit) und
eine „destination_node_ID" (untere 6 Bit).
Um das Synchronisationspaket an alle Knoten auf dem lokalen Bus
rundzusenden, ist die „destination_bus_ID" auf 3FFh und die „destination_node_ID" auf 3Fh gesetzt.
Das „tl"-Feld 1104 ist die Transaktionsmarkierung,
bei dem es sich um ein Feld handelt, das vom Host gesetzt wird.
Das „rt"-Feld 1106 ist
ein Wiederholungscode, der spezifiziert, ob das Paket ein erster
Versuch (00b) oder eine aufeinander folgende Wiederholung desselben
Befehls (01b bis 11b) ist. Das „tcode"-Feld 1108 spezifiziert den
1394-Transaktionscode
für das
Paket und ist auf „1h" gesetzt, was anzeigt,
dass dieses Paket ein „Write
Request"-Paket ist.
Das „pri"-Feld 1110 stellt
einen Prioritätscode
im Standard IEEE-1394 dar, wird aber nicht verwendet. Das „source_ID"-Feld 1112 ist
die Adresse des Knotens, der das Paket sendet. Das „destination_offset"-Feld 1114 spezifiziert
den Adressort von 48 Bit auf dem Ziel, auf das zugegriffen wird.
Ein spezifisches Register kann in jedem möglichen Zielort zum Empfangen
von Synchronisationspaketen vorgesehen werden. Dieses Feld 1114 soll
die Adresse dieses Registers enthalten. Beim „device_status"-Feld 1116 handelt
es sich um die Daten, die vom Paket gesendet werden, und es enthält Informationen
bezüglich
des Empfangs des vorherigen Rahmens und des allgemeinen Status des
Geräts.
Ein Feld, das Fehlererfassung und -korrektur ermöglicht („header_CRC" 1118),
kann ebenfalls einbezogen werden.
-
Das
Präambelpaket
wird vom Sprecher zum Beginn jedes Datenintervalls als ein einziges
Paket übermittelt.
Es kann als ein isochrones Paket übermittelt werden. Dieses Paket
spezifiziert, welche Ströme
während des
Datenintervalls übermittelt
werden und wie viele Pakete für
jeden Strom zu erwarten sind. Der Sprecher übermittelt ein Präambelpaket
für ein
Datenintervall, selbst wenn kein Strom zu senden ist. Ein beispielhaftes Format
eines Präambelpakets 1200 ist
in 12 gezeigt. Die schattierten Felder zeigen jene
an, die durch den Standard IEEE-1394 definiert sind. Das „data_length"-Feld 1202 enthält die Länge in Byte
des Nutzlastabschnitts des isochronen Pakets. Das „Tag"-Feld 1204 enthält den Wert
00b, der anzeigt, dass die Daten unformatiert sind. Das „Kanal"-Feld 1206 enthält einen
Wert, der den Kanal anzeigt, der dem Sprecher und dem Zuhörer zur Übermittlung
dieses Pakets zugewiesen ist. Das „tcode"-Feld 1208 enthält den Wert 1010b,
der anzeigt, dass dieses Paket ein Streaming-Paket ist. Das „sy"-Feld 1210 enthält den Wert
0001b, um anzuzeigen, dass dieses Paket ein Präambelpaket ist. Das „Transferrate"-Feld 1212 zeigt
die Geschwindigkeit an, mit der die Stromdaten im Vergleich zu deren
Echtzeitgeschwindigkeit ankommen, und wird durch ein Byte dargestellt.
Anders gesagt, es spezifiziert, wie viele Rahmen während der
Rahmenzeit übermittelt
werden. Beispielhafte Transferraten sind 1-fache, 2-fache und 4-fache
Echtzeit. Das „Stromanzahl"-Feld 1214 ist
eine vorzeichenlose ganze Zahl, die anzeigt, wie viele Ströme pro Rahmen
während
des aktuellen Datenintervalls übermittelt
werden. Dieser Wert wird durch ein Byte dargestellt. Eine Reihe
von Stromdeskriptoren 1216 folgt, wobei dieses Quadlet
dem Zählwert
entspricht, der vom Produkt des Transferratenfelds und des Stromanzahlfelds
spezifiziert wird. Die Liste der Stromdeskriptoren spezifiziert,
welche Ströme
während
dieses Datenintervalls übermittelt
werden, in welcher Reihenfolge sie übermittelt werden und wie viele
Pakete für
jeden Strom verwendet werden. Das Präambelpaket kann auch Felder
enthalten, die Fehlererfassung und -korrektur ermöglichen
(„header_CRC" 1218 und „data_CRC" 1220).
-
Ein
beispielhaftes Format eines Stromdeskriptors 1300 ist in 13 gezeigt.
Das „Strom-ID"-Feld 1302 identifiziert
den Stromtyp, beispielsweise unter Verwendung einer vorzeichenlosen
ganzen Zahl von 8 Bit. Das „Paketanzahl"-Feld 1304 spezifiziert,
wie viele Pakete zum Übermitteln
des Stroms verwendet werden, beispielsweise unter Verwendung einer
vorzeichenlosen ganzen Zahl von 12 Bit. Bits in Feldern, die in der
Präambel
und den Stromdeskriptoren als „stromspezifische
Daten" gekennzeichnet
sind, werden für
die Videofelder, Videorahmen, System- und Nebenströme auf Null
gesetzt. Für
jeden Audiostrom ist dieser Wert eine vorzeichenlose ganze Zahl
von 12 Bit, die die Anzahl von Audiosamples im Datenintervall darstellt.
Die Gesamtzahl von Datenpaketen, die auf die Präambel folgen wird, ist die
Summe aller „Paketanzahl"-Felder in der Stromdeskriptorliste.
-
Beispielhafte
Werte für
Stromkennungen für
das „Strom-ID"-Feld sind in der
Tabelle 1400 von 14 dargestellt.
Die Stromkennungen in diesem Beispiel zeigen nicht das Format der
Daten selbst (z. B.: unkomprimiert oder DV oder JFIF) an. Stattdessen
wird das Format der Daten unter Verwendung des Steuerungsprotokolls
festgestellt, bevor die Übermittlung
beginnt. In dieser Tabelle stellt jede Zeile eine Stromkennung dar. Die
Spalte „Wert" 1402 stellt
den Wert dar, der in einem Stromdeskriptorpaket als eine „Strom-ID" verwendet wird.
Die Spalten „Name" 1404 und „Beschreibung" 1406 dienen
zum weiteren Beschreiben der Stromkennung und können zum Verweisen auf die
Stromkennung verwendet werden. Die folgende Tabelle stellt beispielhafte Definitionen
für Präambeln für verschiedene
Videodatentypen dar, insbesondere DV25, DV50, IMX und unkomprimierte
Daten, einschließlich
einer Liste von Deskriptoren für
jeden Typ.
-
-
-
-
Datenpakete
befördern
eigentliches Audio, eigentliches Video und eigentliche Metadaten.
Ein beispielhaftes Format eines Datenpaketes 1500 ist in 15 gezeigt.
Dieses Format entspricht entweder einem asynchronen Paket oder einem
isochronen Paket. Das Datenpaketformat ist ein einfaches IEEE-1394-Streaming-Paket.
Ein Datenrahmen für
einen einzigen Strom wird in eine Reihe von Paketen mit diesem Format
aufgeteilt. Die schattierten Felder zeigen jene an, die durch den
Standard IEEE-1394 definiert sind. Das „data_length"-Feld 1502 enthält die Länge in Byte
des Nutzlastabschnitts 1512 des Pakets. Das „Tag"-Feld 1504 enthält den Wert
00b, der anzeigt, dass die Daten unformatiert sind. Das „Kanal"-Feld 1506 enthält einen Wert,
der den Kanal anzeigt, der dem Sprecher und dem Zuhörer zur Übermittlung
dieses Pakets zugewiesen ist. Das „tcode"-Feld 1508 enthält den Wert
1010b, der anzeigt, dass dieses Paket ein Streaming-Paket ist. Das „sy"-Feld 1510 enthält den Wert
0000b, um anzuzeigen, dass dieses Paket ein Datenpaket ist. Das
Datenpaket kann auch Felder enthalten, die Fehlererfassung und -korrektur
ermöglichen
(„header_CRC" 1514 und „data_CRC" 1516).
-
Die
Nutzlast 1512 eines Datenpakets enthält 1 bis 1024 Datenquadlets
(was 4 Byte Daten bedeutet) für
ein isochrones Paket. Es liegen 1 bis 512 Datenquadlets für ein asynchrones
Paket vor. Im Allgemeinen formatiert ein Sprecher die Daten für ein Datenintervall
in N Pakete von Daten mit derselben festen Größe, um der Nutzlast des Datenpakets
zu entsprechen. Diese Größe kann
die maximale Größe sein,
die vom Übermittlungsmodus
zugelassen wird, der zum effizienten Verwenden der Bandbreite eingesetzt
wird. Zum Beispiel kann dieser Höchstwert
im Standard IEEE-1394a entweder 2048 oder 4096 Byte sein. Wenn die
Länge der Daten
nicht gleichmäßig durch
diese Menge teilbar ist, ist es zulässig, ein kurzes Paket am Ende
eines Stroms zu erzeugen.
-
Man
geht beispielsweise davon aus, dass ein unkomprimiertes Vollbild
(Vollrahmen) von Videodaten im NTSC-4:2:2-YUV-Format unter Verwendung
des isochronen Modus von IEEE-1394 übermittelt wird. Der Rahmen
wird als zwei Felder übermittelt,
es liegen (240 Zeilen·720
Pixel·2
Byte pro Pixel =) 345.600 Byte pro Feld vor. Um ein einziges Feld
in 4096-Byte-Paketen zu senden, wird die verwendete Anzahl von Paketen
folgendermaßen
errechnet: 345.600 Byte pro Feld/4096 Byte pro Paket = 84 Pakete
mit einem Rest von 1536 Byte, was anzeigt, dass 84 4096-Byte-Pakete
und ein 1536-Byte-Paket übermittelt
werden.
-
Es
ist auch zulässig,
dass ein Sprecher ein kurzes Paket zum Beginn eines Stroms übermittelt,
wenn es Speicherseitenausrichtungseinschränkungen gibt. Zum Beispiel,
wenn der Sprecher die Pakete für
einen Strom aus einem Hostpufferspeichererzeugen würde, der
nicht auf eine 4096-Byte-Grenze ausgerichtet ist, würde jedes
Paket im Strom eine Seitengrenze überschreiten, was in einer
schlechten Direktspeicherzugriffsleistung resultieren würde. Um
diesem abzuhelfen, kann der Sprecher ein kurzes Paket zum Beginn
erzeugen, um sicherzustellen, dass die verbleibenden Pakete aus
Pufferspeichern erzeugt werden, die auf 4096-Byte-Grenzen ausgerichtet
sind. Zum Beispiel, wenn sich der Speicherpuffer für ein zu übermittelndes Feld
an der Adresse 119403A4H befindet, befindet sich die nächste 4096-Byte-Grenze
an der Adresse 11941000H. Das heißt, dass 119403A4H – 11941000H
= C5CH oder 3164 (dezimale) Byte bis zur nächsten Seitengrenze vorliegen.
Somit würde
das erste Paket 3164 Byte sein, die aus der Adresse 119403A4H erzeugt wurden,
das zweite Paket würde
4096 Byte sein, die aus der Adresse 11941000H erzeugt wurden, das
dritte Paket würde
4096 Byte sein, die aus der Adresse 11942000H erzeugt wurden, usw.
-
Der
Host kann Nullpakete für
einen beliebigen ungenutzten isochronen Zyklus übermitteln. Während der
Datenübermittlung
können
ein oder mehrere Nullpakete in den Datenintervallen zwischen der Übermittlung von
Daten für
jedes Datenintervall gesendet werden. Ein beispielhaftes Format
für ein
Nullpaket 1600 ist in 16 gezeigt.
Dieses Format entspricht entweder einem asynchronen Paket oder einem
isochronen Paket. Die schattierten Felder zeigen jene an, die durch
den Standard IEEE-1394 definiert sind. Das „data_length"-Feld 1602 kann
einen beliebigen Wert enthalten, einschließlich des Wertes 0. Wenn der „data_length"-Wert Null ist, werden
der Nutzlastteil 1614 und die Fehlerkorrekturdaten 1616 aus
dem Paket weggelassen. Wenn die Datenlänge nicht Null ist, befinden
sich Dummy-Daten in der Nutzlast 1614, die auf den Header
mit einer Reihe von Quadlets folgt, die dem im Feld 1602 spezi fizierten
Wert entspricht. Das „Tag"-Feld 1604 enthält den Wert
00b, der anzeigt, dass die Daten unformatiert sind. Das „Kanal"-Feld 1606 enthält einen
Wert, der den Kanal anzeigt, der dem Sprecher und dem Zuhörer zur Übermittlung
dieses Pakets zugewiesen ist. Das „tcode"-Feld 1608 enthält den Wert
1010b, der anzeigt, dass dieses Paket ein Streaming-Paket ist. Das „sy"-Feld 1610 enthält den Wert
0001b. Ein fakultativer Nutzlastteil 1614 dieses Pakets, falls
vorhanden, wird vom Zuhörer
ignoriert. Felder, die Fehlererfassung und -korrektur ermöglichen („header_CRC" 1612 und „data_CRC" 1616),
können
bereitgestellt werden.
-
Nun
werden die Ablaufsteuerung und Zeitsteuerung von Paketübermittlungen
für Hostan-Gerät- und Gerät-an-Host-Übertragungen
unter Verwendung dieses Protokolls beschrieben.
-
Wie
oben angemerkt, um Daten von einem Host an ein Gerät zu übermitteln,
stellen ein Host und ein Gerät
zunächst
Parameter der Kommunikation unter Verwendung des im Folgenden beschriebenen
Steuerungsprotokolls ein. Der Host wartet dann, beispielsweise mittels
Senden von Nullpaketen, bis ein Datenintervall beginnt. Diese Nullpakete
werden vom Gerät
ignoriert. Zum Beginn des nächsten
Datenintervalls wird ein Synchronisationspaket vom Gerät an den
Host gesendet, das anzeigt, dass ein neues Datenintervall begonnen
hat. Nach Empfangen des Synchronisationspakets kann der Host Daten
senden. In einer Ausführungsform
wird ein Präambelpaket
vom Host gesendet, um dem Gerät
anzuzeigen, welche Ströme
während
des Datenintervalls übermittelt
werden, in welcher Reihenfolge sie gesendet werden und wie viele
Pakete zum Transportieren jedes Stroms verwendet werden. Das Gerät verarbeitet
das Präambelpaket,
um passende Parameter des Geräts
einzustellen. Dann werden vom Host Datenpakete gesendet. Diese Datenpakete
werden anschließend
vom Gerät
empfangen und verarbeitet. Nachdem die Daten für das Datenintervall gesendet
wurden, wartet der Host auf das nächste Datenintervall. Zum Beispiel
kann der Host Nullpakete senden, um Buszyklen zu füllen, bis
das nächste
Datenintervall beginnt. Diese Sequenz von Paketen wird für jedes
Datenintervall wiederholt.
-
Wie
oben angemerkt, um Daten von einem Gerät an einen Host zu übermitteln,
stellen ein Host und ein Gerät
zunächst
Parameter der Kommunikation unter Verwendung des im Folgenden beschriebenen
Steuerungsprotokolls ein. Der Host wartet dann, beispielsweise mittels
Senden von Nullpaketen, bis ein Datenintervall beginnt. Diese Nullpakete
werden vom Gerät
ignoriert. Zum Beginn des nächsten
Datenintervalls wird ein Synchronisationspaket vom Gerät an den
Host gesendet, das anzeigt, dass ein neues Datenintervall begonnen
hat. Nach Senden des Synchronisationspakets kann das Gerät Daten
senden. In einer Ausführungsform
wird ein Präambelpaket
vom Gerät
gesendet, um dem Host anzuzeigen, welche Ströme während des Datenintervalls übermittelt
werden, in welcher Reihenfolge sie gesendet werden und wie viele
Pakete zum Transportieren jedes Stroms verwendet werden. Der Host
verarbeitet das Präambelpaket,
um passende Parameter einzustellen. Dann werden vom Gerät Datenpakete
gesendet. Diese Datenpakete werden anschließend vom Host empfangen und
verarbeitet. Nachdem die Daten für
das Datenintervall gesendet wurden, wartet das Gerät auf das
nächste
Datenintervall. Zum Beispiel kann das Gerät Nullpakete senden, um Buszyklen
zu füllen, bis
das nächste
Datenintervall beginnt. Diese Sequenz von Paketen wird für jedes
Datenintervall wiederholt.
-
Neben
dem Datentransportprotokoll wird ein Steuerungsprotokoll bereitgestellt.
Zwei Arten von Steuerinformationen werden vom Steuerungsprotokoll
befördert:
Befehle, die die Modi und Parameter der Peripheriegeräthardware
steuern (hierin „BOB-Steuerung" (BOB = break-out
box, Umleitungsvorrichtung) genannt), und Befehle, die den Betrieb
eines DV-Camcorders oder Videorecorders steuern, der an den IEEE-1394-konformen
Anschluss des Peripheriegeräts
angeschlossen ist (Vorrichtungssteuerung genannt).
-
BOB-Steuerbefehle
können
asynchrone Pakete im IEEE-1394-Protokoll verwenden. Vorrichtungssteuerbefehle
können
den AV/C-Befehlssatz, einen Industriestandard zum Steuern von Camcordern
und Videorecordern, verwenden. AV/C-Befehle, die für die externe
Vorrichtung bestimmt sind, werden direkt von der Peripheriegeräthardware
an jene Vorrichtung weitergeleitet und Antworten werden in einer ähnlichen
Art und Weise an den Host zurückgesendet.
Die AV/C-Befehle sind in mehreren Dokumenten definiert, zu denen
folgende zählen:
AV/C Digital Interface Command Set General Specification (Version
3.0) und AV/C Tape Recorder/Player Subunit Specification. Somit
entspricht das Kommunikationsprotokoll für Vorrichtungssteuerbefehle den
bestehenden AV/C-Spezifikationen IEC 61883-1 und IEEE-1394 der Trade
Association. Das Peripheriegerät
leitet Befehle und Antworten zwischen dem Host und der externen
Vorrichtung weiter, als ob der Host direkt mit der externen Vorrichtung
interagieren würde.
-
Die
BOB-Steuerung setzt einen Befehlssatz ein, der Befehlssequenzen
enthält,
die über
den IEEE-1394-konformen Bus zwischen dem Host und dem Peripheriegerät übermittelt
werden. Jede Befehlssequenz enthält
einen Befehlsrahmen, der vom Host an das Peripheriegerät übermittelt
wird, und einen entsprechenden Antwortrahmen, der vom Peripheriegerät an den
Host übermittelt
wird. Befehlsrahmen enthalten einen Befehlscode und fakultative
Parameter. Antwortrahmen enthalten einen Erfolgscode und fakultative
Datenwerte, die vom Befehl angefordert wurden.
-
Unter
Anwendung des IEEE-1394-Protokolls wird ein Paket im „Write
Data Block Request"-Format
mit einem „tcode" von „1h" verwendet. Der Zielortabstand,
der von einem Paket spezifiziert wird, bezeichnet die Register,
die zum Empfangen von Befehlen und Antworten in diesem Protokoll
spezifiziert sind. Die Nutzlast eines solchen Protokolls umfasst
bis zu 1024 Byte. Die ersten zwei Byte der Nutzlast enthalten einen
Festwert, der zeigt, dass das Paket einen BOB-Steuerbefehl oder
eine Antwort enthält.
Die nächsten
zwei Byte zeigen die Paketlänge
an. Zwei weitere Byte liefern die Informationen, wie Parameter für einen
Befehl, den Status eines Befehls oder andere Informationen. Ein
weiteres Byte ist reserviert. Das letzte Byte der Nutzlast befördert Nutzlaststatusinformationen
und bestimmt, ob das Paket Teil eines Befehls oder einer Antwort
ist und ob es Teil eines Befehls eines einzigen oder mehrerer Pakete
ist.
-
Die
BOB-Steuerung ermöglicht
dem Host, die Modi, Status und Parameter des Peripheriegeräts zu steuern.
Die verschiedenen Befehle hängen
von der Implementierung des Geräts,
dessen Modi und verfügbaren
Registern für
Statusinformationen und Steuereinstellungen ab. Um den Betrieb mehrerer
Geräte,
die an denselben Bus angeschlossen und mit demselben periodischen
Bezugssignal verbunden sind, zu vereinfachen, sollte das BOB-Steuerprotokoll
ermöglichen,
dass ein Befehl das Peripheriegerät anweist, keine Flusskontrollnachrichten
als Antwort auf Rahmengrenzen, die durch das periodische Bezugssignal
definiert sind, zu senden.
-
Das
Vorstehende beschreibt ein beispielhaftes Gerät und Kommunikationsprotokoll
für die
Kommunikation zwischen dem Gerät
und einem Host über
einen seriellen Bus, der eine Steuerung des Flusses von Daten, die
zwischen dem Host und dem Gerät übertragen
werden, ermöglicht,
so dass eine Synchronisation zu einem periodischen Bezugssignal
erzielt werden kann. Das Protokoll involviert das Übertragen
von Flusskontrollnachrichten zwischen dem Peripheriegerät und dem
Hostrechner, was dem Peripheriegerät ermöglicht, zu steuern, wie der
Hostrechner die unkomprimierten Audio- und Videodaten sendet. Die
Audio- und Videodaten können
als separate Ströme
gesendet werden. Unter Verwendung des IEEE-1394-Protokolls werden
die Flusskontrollnachrichten unter Verwendung eines asynchronen
Protokolls gesendet werden, wohingegen unkomprimierte Video- und
Audiodaten unter Verwendung eines isochronen Protokolls gesendet
werden.
-
Des
Weiteren werden separate Ströme
von unkomprimierten Video- und Audiodaten vom Hostrechner über einen
seriellen Bus an das Peripheriegerät übertragen, wobei das Peripheriegerät Vorgänge an den
Daten durchführt,
wie Kodieren der Daten in ein Standardformat, wie DV und MPEG, oder
Erzeugen eines analogen Videosignals. Ein Dekodieren von Daten im
Standardformat ist nicht erforderlich, um ein solches analoges Videosignal
zu erzeugen, was in weniger Verarbeitungsaufwand resultiert. Des
Weiteren werden die Ressourcen auf dem Hostrechner, wenn der Hostrechner
dazu verwendet wird, digitale Video- und Audiodaten zur Editierung
von audiovisuellen Programmen zu verarbeiten, nicht zum Kodieren
von Videodaten eingesetzt. Folglich können die Ressourcen des Hostrechners
für kreativere
Vorgänge
an den Video- und Audiodaten verwendet werden. Das Peripheriegerät kann auch
Daten im Standardformat unter Verwendung eines Standardprotokolls über einen
Standardbus ausgeben. Zum Beispiel kann das Peripheriegerät aus den
unkomprimierten Audio- und
Videodaten Daten im DV-Format erzeugen und die Daten im DV-Format
unter Verwendung eines Standard-DV-Transportprotokolls über einen
IEEE-1394-konformen Bus ausgeben.
-
Das
Peripheriegerät
kann auch dazu verwendet werden, eine Ausgabe einer anderen Vorrichtung,
wie eines Transcoders, der mittels eines seriellen Busses, wie einem
IEEE-1394-konformen Bus, an das Peripheriegerät angeschlossen ist, zu einem
periodischen Bezugssignal, das vom Peripheriegerät empfangen wurde, zu synchronisieren.
Zum Beispiel kann das Peripheriegerät eine DV-Kodierung der unkomprimierten
Audio- und Videodaten, die vom Hostrechner empfangen wurden, durchführen. Das
Peripheriegerät überträgt dann diese
Daten im DV-Format unter Verwendung eines Standardprotokolls über den
seriellen Bus an die andere Vorrichtung. Der Vorgang dieses anderen
Transcoders kann mit einem vom Peripheriegerät gelieferten periodischen
Bezugssignal „genlocked" werden.
-
Der
Host kann darauf konfiguriert werden, während der Übertragung eines Audio-/Videostroms an das Peripheriegerät einen
Audiostrom vom Peripheriegerät
zu empfangen. Ein solcher Audiostrom wären durch das Peripheriegerät empfangene
Daten, die zum Implementieren von Nachvertonung (Dubbing) oder „Audio-Punch-In" verwendet werden
können.
In dieser Ausführungsform
wird der Audio-/Videostrom vom Host als ein Strom von isochronen
Paketen an das Peripheriegerät
gesendet. Die Audiodaten zur Nachvertonung oder zum „Punch-In" werden vom Peripheriegerät als ein
Strom von asynchronen Paketen an den Host gesendet. Das Peripheriegerät kann den
Audiostrom mit dem Audio in dem empfangenen Audio-/Videostrom zur
Wiedergabe durch eine andere Vorrichtung oder Ausgabe an eine andere
Vorrichtung mischen.
-
Zum
Beispiel, unter Bezugnahme auf 10A und 10B, empfängt
der Audiocodec 1006 Eingabeaudio (bei 1040, 1041)
und produziert digitale Audiodaten zur Speicherung im Medien-Hub 1028.
Unterdessen empfängt
die IEEE-1394-Schnittstelle 1004 den Audio-/Videodatenstrom
und liefert ihn an den Medien-Hub 1028. Nach Empfang eines
Datenrahmens mischt der Medien-Hub 1028 die empfangenen
Audiodaten vom Codec 1006 und von der Schnittstelle 1004 und
gibt die gemischten Daten an den Codec 1006 und den Kopfhörer-DAC 1012 aus,
um Audio-Ausgaben zu erzeugen. Der Mikroprozessor 1022 wird
angewiesen, Audiodaten periodisch vom Medien-Hub 1028 abzurufen,
um die Daten als mehrere asynchrone Pakete über die Schnittstelle 1051 an
den Host zu senden.
-
Es
sollte auch verstanden werden, dass der Hostrechner und das Peripheriegerät, wie hierin
beschrieben, eine beliebige Art von Quelle und Empfänger sein
können,
die über
einen Bus verbunden sind, um zeitliche Daten in Synchronisation
mit einem periodischen Bezugssignal zu kommunizieren.
-
Es
sollte auch verstanden werden, dass der Hostrechner Computerprogrammanweisungen
auf einem computerlesbaren Medium speichern kann, das, wenn es vom
Hostrechner ausgeführt
wird, bewirken kann, dass der Hostrechner Daten vom Hostrechner
an das Peripheriegerät überträgt, oder
bewirken kann, dass der Hostrechner Daten vom Peripheriegerät empfängt. In ähnlicher
Weise können
Computerprogrammanweisungen auf den Controller 1020 (10A–10B) auf dem Gerät zugreifen, um zu bewirken,
dass das Gerät eine
Vielfalt an Vorgängen
durchführt.
-
Nachdem
nun eine beispielhafte Ausführungsform
beschrieben wurde, sollte Fachmännern
offensichtlich sein, dass das Vorstehende lediglich veranschaulichend
und nicht einschränkend
ist und nur als Beispiel dargestellt wurde. Zahlreiche Modifikationen
und andere Ausführungsformen
liegen im Bereich eines Durchschnittsfachmanns und werden als in
den Schutzumfang der Erfindung fallend betrachtet.
-
Ausführungsformen
werden mittels der folgenden nummerierten Klauseln weiter beschrieben
und veranschaulicht:
- 1. Verfahren zum Übertragen
von Daten von einer ersten Vorrichtung an eine zweite Vorrichtung über einen Bus,
das von der zweiten Vorrichtung für jedes Datenintervall durchgeführt wird,
das von einem periodischen Bezugssignal definiert wird, das von
der zweiten Vorrichtung verarbeitet wird, und wobei das Verfahren
Folgendes umfasst:
Senden eines Synchronisationspakets über den
Bus an die erste Vorrichtung für
das Datenintervall als Antwort auf das periodische Bezugssignal;
Empfangen
von mehreren Paketen über
den Bus von der ersten Vorrichtung, nachdem das Synchronisationspaket
von der ersten Vorrichtung empfangen wurde, wobei die Pakete Daten
für das
Datenintervall enthalten;
Wiederholen der Schritte des Sendens
und Empfangens für
jedes Datenintervall, das von dem periodischen Bezugssignal definiert
wird.
- 2. Verfahren nach Klausel 1, wobei die mehreren Pakete Folgendes
umfassen:
ein Präambelpaket,
das eine Anzahl zu sendender Datenpakete anzeigt; und
ein oder
mehrere Datenpakete.
- 3. Verfahren nach Klausel 2, wobei die Daten mehrere Datenströme umfassen
und wobei das Präambelpaket
während
des Intervalls zu übermittelnde
Ströme,
eine Reihenfolge der Übermittlung
der Datenströme und
eine Anzahl von Paketen, die für
jeden Strom verwendet werden, anzeigt.
- 4. Verfahren nach Klausel 2, wobei die mehreren Pakete weiterhin
null oder mehr Nullpakete nach dem einen oder den mehreren Datenpaketen
für einen
Rest des Datenintervalls umfassen.
- 5. Verfahren nach Klausel 2, wobei Datenpakete Videodatenpakete
umfasst.
- 6. Verfahren nach Klausel 2, wobei Datenpakete Audiodatenpakete
umfasst.
- 7. Verfahren nach Klausel 2, wobei Datenpakete Video- und Audiodatenpakete
umfasst.
- 8. Verfahren nach Klausel 1, wobei die mehreren Pakete null
oder mehr Nullpakete nach dem einen oder den mehreren Datenpaketen
für einen
Rest des Datenintervalls umfassen.
- 9. Verfahren nach Klausel 1, wobei das Datenintervall einem
Videodatenrahmen entspricht.
- 10. Verfahren nach Klausel 1, wobei das Datenintervall einem
Videodatenfeld entspricht.
- 11. Verfahren nach Klausel 1, wobei der Bus ein serieller Bus
ist.
- 12. Verfahren nach Klausel 11, wobei der serielle Bus ein IEEE-1394-konformer
Bus ist.
- 13. Verfahren nach Klausel 12, wobei das Synchronisationspaket
ein asynchrones Paket ist.
- 14. Verfahren nach Klausel 12, wobei die mehreren Pakete isochrone
Pakete sind.
- 15. Verfahren nach Klausel 1, wobei das periodische Bezugssignal
von der zweiten Vorrichtung empfangen wird.
- 16. Verfahren nach Klausel 1, wobei das periodische Bezugssignal
von der zweiten Vorrichtung erzeugt wird.
- 17. Verfahren nach Klausel 1, das weiterhin Folgendes umfasst:
Empfangen
eines Befehls, die Übertragung
der Daten zu starten, von der ersten Vorrichtung und
Empfangen
von null oder mehr Nullpaketen von der ersten Vorrichtung über den
Bus, bis von der zweiten Vorrichtung ein erstes Synchronisationspaket
für ein
erstes Datenintervall gesendet wird.
- 18. Verfahren nach Klausel 1, das weiterhin Folgendes umfasst:
Empfangen
der Daten in einem Pufferspeicher an der zweiten Vorrichtung und
Ausgeben
der Daten von der zweiten Vorrichtung in Synchronisation mit dem
periodischen Bezugssignal.
- 19. Verfahren nach Klausel 18, wobei das Ausgeben der Daten
das Kodieren und Ausgeben eines analogen Videosignals umfasst.
- 20. Verfahren nach Klausel 18, wobei das Ausgeben das Erzeugen
von Videodaten im DV-Format umfasst.
- 21. Verfahren zum Übertragen
von Daten von einer ersten Vorrichtung an eine zweite Vorrichtung über einen
Bus, das von der zweiten Vorrichtung für jedes Datenintervall durchgeführt wird,
das von einem periodischen Bezugssignal definiert wird, das von
der zweiten Vorrichtung verarbeitet wird, und wobei das Verfahren
Folgendes umfasst:
Senden eines Synchronisationspakets über den
Bus an die erste Vorrichtung für
das Datenintervall als Antwort auf das periodische Bezugssignal;
Empfangen
von mehreren Paketen über
den Bus von der ersten Vorrichtung, nachdem das Synchronisationspaket
von der ersten Vorrichtung empfangen wurde, wobei die Pakete Daten
für das
Datenintervall enthalten;
nachdem die mehreren Pakete empfangen
wurden, Warten auf ein folgendes Datenintervall, das von dem periodischen
Bezugssignal definiert wird.
- 22. Vorrichtung zur Verbindung mit einer Datenquelle über einen
Bus, die Folgendes umfasst:
Mittel zum Kommunizieren eines
Synchronisationspakets über
den Bus an die Datenquelle für
jedes Datenintervall als Antwort auf das periodische Bezugssignal;
Mittel
zum Annehmen von mehreren Paketen über den Bus von der Datenquelle,
nachdem das Synchronisationspaket von der Datenquelle empfangen
wurde, wobei die Pakete Daten für
das Datenintervall enthalten; und
Mittel zum wiederholten Betreiben
der Mittel zum Kommunizieren und der Mittel zum Annehmen für jedes Datenintervall,
das von dem periodischen Bezugssignal definiert wird.
- 23. Vorrichtung zur Verbindung mit einer Datenquelle über einen
Bus, die Folgendes umfasst:
eine Busschnittstelle zum Senden
von Paketen an die Datenquelle und Empfangen von Paketen von der Datenquelle über den
Bus;
einen Controller mit einem Eingang zum Empfangen eines
Signals, das mit einem periodischen Bezugssignal in Beziehung steht,
das mehrere Datenintervalle definiert, und mit einem Ausgang zum
Liefern einer Anweisung an die Busschnittstelle, für jedes
Datenintervall als Antwort auf das periodische Bezugssignal ein
Synchronisationspaket über
den Bus an die Datenquelle zu senden; und
einen Pufferspeicher,
der angeschlossen ist, um Daten für das Datenintervall von mehreren
Paketen zu empfangen, die mittels der Busschnittstelle über den
Bus von der Datenquelle empfangen wurden, nachdem das Synchronisationspaket
von der Datenquelle empfangen wurde.
- 24. Verfahren zum Übertragen
von Daten von einer ersten Vorrichtung an eine zweite Vorrichtung über einen
Bus, wobei das Verfahren für
jedes Datenintervall, das von einem periodischen Bezugssignal definiert wird,
das von der ersten Vorrichtung verarbeitet wird, Folgendes umfasst:
Senden
eines Synchronisationspakets durch die erste Vorrichtung über den
Bus an die zweite Vorrichtung für
das Datenintervall;
Senden mehrerer Pakete durch die erste
Vorrichtung über
den Bus an die zweite Vorrichtung, nachdem das Synchronisationspaket
gesendet wurde, wobei die Pakete Daten für das Datenintervall enthalten;
und
Warten auf das nächste
Datenintervall gemäß dem periodischen
Bezugssignal durch die erste Vorrichtung.
- 25. Verfahren nach Klausel 24, wobei die mehreren Pakete Folgendes
umfassen:
ein Präambelpaket,
das eine Anzahl zu sendender Datenpakete anzeigt; und
ein oder
mehrere Datenpakete.
- 26. Verfahren nach Klausel 25, wobei die Daten mehrere Datenströme umfassen
und wobei das Präambelpaket
während
des Intervalls zu übermittelnde
Ströme,
eine Reihenfolge der Übermittlung
der Datenströme und
eine Anzahl von Paketen, die für
jeden Strom verwendet werden, anzeigt.
- 27. Verfahren nach Klausel 25, wobei das Warten das Senden von
null oder mehr Nullpaketen über
den Bus an die zweite Vorrichtung für einen Rest des Datenintervalls
umfasst.
- 28. Verfahren nach Klausel 25, wobei Datenpakete Videodatenpakete
umfasst.
- 29. Verfahren nach Klausel 25, wobei Datenpakete Audiodatenpakete
umfasst.
- 30. Verfahren nach Klausel 25, wobei Datenpakete Video- und
Audiodatenpakete umfasst.
- 31. Verfahren nach Klausel 24, wobei das Warten das Senden von
null oder mehr Nullpaketen über
den Bus an die zweite Vorrichtung für einen Rest des Datenintervalls
umfasst.
- 32. Verfahren nach Klausel 24, wobei das Datenintervall einem
Videodatenrahmen entspricht.
- 33. Verfahren nach Klausel 24, wobei das Datenintervall einem
Videodatenfeld entspricht.
- 34. Verfahren nach Klausel 24, wobei der Bus ein serieller Bus
ist.
- 35. Verfahren nach Klausel 34, wobei der serielle Bus ein IEEE-1394-konformer
Bus ist.
- 36. Verfahren nach Klausel 35, wobei das Synchronisationspaket
ein asynchrones Paket ist.
- 37. Verfahren nach Klausel 35, wobei die mehreren Pakete isochrone
Pakete sind.
- 38. Verfahren nach Klausel 24, wobei das periodische Bezugssignal
von der ersten Vorrichtung empfangen wird.
- 39. Verfahren nach Klausel 24, wobei das periodische Bezugssignal
von der ersten Vorrichtung erzeugt wird.
- 40. Verfahren nach Klausel 24, das weiterhin Folgendes umfasst:
Empfangen
eines Befehls, die Übertragung
der Daten zu starten, von der zweiten Vorrichtung und
Senden
von null oder mehr Nullpaketen über
den Bus an die zweite Vorrichtung, bis ein erstes Synchronisationspaket
für ein
erstes Datenintervall gesendet wird.
- 41. Verfahren nach Klausel 24, das weiterhin Folgendes umfasst:
Empfangen
der Daten in Synchronisation mit dem periodischen Bezugssignal durch
die erste Vorrichtung in einem Pufferspeicher und Übertragen
der Daten durch die erste Vorrichtung vom Pufferspeicher über den Bus
an die zweite Vorrichtung.
- 42. Verfahren nach Klausel 41, wobei das Empfangen der Daten
das Empfangen und Dekodieren eines analogen Videosignals umfasst.
- 43. Verfahren nach Klausel 41, wobei das Empfangen das Empfangen
von Videodaten im DV-Format umfasst.
- 44. Vorrichtung zur Verbindung mit einem Datenempfänger über einen
Bus, die Folgendes umfasst:
Mittel zum Empfangen eines periodischen
Bezugssignals, das mehrere Datenintervalle definiert;
Mittel
zum Kommunizieren eines Synchronisationspakets über den Bus an den Datenempfänger für jedes Datenintervall
als Antwort auf das periodische Bezugssignal;
Mittel zum Übertragen
von mehreren Paketen über
den Bus an den Datenempfänger,
nachdem das Synchronisationspaket von dem Datenempfänger empfangen
wurde, wobei die Pakete Daten für
das Datenintervall enthalten; und
Mittel zum wiederholten Betreiben
der Mittel zum Kommunizieren und der Mittel zum Übertragen für jedes Datenintervall, das
von dem periodischen Bezugssignal definiert wird.
- 45. Vorrichtung zur Verbindung mit einem Datenempfänger über einen
Bus, die Folgendes umfasst:
eine Busschnittstelle zum Senden
von Paketen über
den Bus, der an den Datenempfänger
angeschlossen ist;
einen Pufferspeicher, der einen Eingang
zum Empfangen von Daten aufweist und der angeschlossen ist, um der
Busschnittstelle Daten zur Übertragung
als mehrere Pakete über
den Bus an den Datenempfänger zu
liefern; und
einen Controller mit einem Eingang zum Empfangen
eines Signals, das mit einem periodischen Bezugssignal in Beziehung
steht, das mehrere Datenintervalle definiert, und mit einem Ausgang
zum Liefern einer Anzeige an die Busschnittstelle, für jedes
Datenintervall als Antwort auf das periodische Bezugssignal ein Synchronisationspaket über den
Bus an den Datenempfänger
zu senden.
- 46. System zur Verbindung mit einem Hostrechner über einen
Bus, das Folgendes umfasst:
ein Peripheriegerät, das Folgendes
umfasst:
Mittel zum Empfangen eines periodischen Bezugssignals,
das mehrere Datenintervalle definiert;
Mittel zum Empfangen
von Videodaten für
die mehreren Datenintervalle;
Mittel zum Kommunizieren eines
Synchronisationspakets über
den Bus an den Hostrechner für
jedes Datenintervall als Antwort auf das periodische Bezugssignal;
Mittel
zum Übertragen
von mehreren Paketen über
den Bus an den Hostrechner, nachdem das Synchronisationspaket von
dem Hostrechner empfangen wurde, wobei die Pakete Daten für das Datenintervall
enthalten; und
Mittel zum wiederholten Betreiben der Mittel
zum Kommunizieren und der Mittel zum Übertragen für jedes Datenintervall, das
von dem periodischen Bezugssignal definiert wird; und
ein Videogerät, das Folgendes
umfasst:
einen Eingang zum Empfangen und Synchronisieren mit
dem periodischen Empfangssignal und
Mittel zum Liefern der
Videodaten an das Peripheriegerät
in Synchronisation mit dem periodischen Bezugssignal.
- 47. System zur Verbindung mit einem Hostrechner über einen
Bus, das Folgendes umfasst:
ein Peripheriegerät, das Folgendes
umfasst:
Mittel zum Empfangen eines periodischen Bezugssignals,
das mehrere Datenintervalle definiert;
Mittel zum Kommunizieren
eines Synchronisationspakets über
den Bus an den Hostrechner für
jedes Datenintervall als Antwort auf das periodische Bezugssignal;
Mittel
zum Annehmen von mehreren Paketen über den Bus von dem Hostrechner,
nachdem das Synchronisationspaket von dem Hostrechner empfangen
wurde, wobei die Pakete Videodaten für das Datenintervall enthalten;
und
Mittel zum wiederholten Betreiben der Mittel zum Kommunizieren
und der Mittel zum Übertragen
für jedes Datenintervall,
das von dem periodischen Bezugssignal definiert wird; und
Mittel
zum Liefern von Videodaten für
die mehreren Datenintervalle und
ein Videogerät, das Folgendes
umfasst:
einen Eingang zum Empfangen und Synchronisieren mit
dem periodischen Empfangssignal und
Mittel zum Empfangen der
Videodaten, die vom Peripheriegerät in Synchronisation mit dem
periodischen Bezugssignal geliefert wurden.
- 48. Verfahren zum Übertragen
von Daten von einer ersten Vorrichtung an eine zweite Vorrichtung über einen
Bus, das von der ersten Vorrichtung für jedes Datenintervall durchgeführt wird,
das von einem periodischen Bezugssignal definiert wird, das von
der zweiten Vorrichtung verarbeitet wird, und wobei das Verfahren
Folgendes umfasst:
Empfangen eines Synchronisationspakets über den
Bus von der zweiten Vorrichtung für das Datenintervall;
nachdem
das Synchronisationspaket empfangen wurde, Senden von mehreren Paketen über den
Bus an die zweite Vorrichtung, wobei die Pakete Daten für das Datenintervall
enthalten;
nachdem die mehreren Pakete für das Datenintervall gesendet
wurden, Warten, bis ein Synchronisationspaket über den Bus von der zweiten
Vorrichtung für
ein folgendes Datenintervall empfangen wird.
- 49. Verfahren nach Klausel 48, wobei die mehreren Pakete Folgendes
umfassen:
ein Präambelpaket,
das eine Anzahl zu sendender Datenpakete anzeigt; und
ein oder
mehrere Datenpakete.
- 50. Verfahren nach Klausel 49, wobei die Daten mehrere Datenströme umfassen
und wobei das Präambelpaket
während
des Intervalls zu übermittelnde
Ströme,
eine Reihenfolge der Übermittlung
der Datenströme und
eine Anzahl von Paketen, die für
jeden Strom verwendet werden, anzeigt.
- 51. Verfahren nach Klausel 49, wobei das Warten das Senden von
null oder mehr Nullpaketen über
den Bus an die zweite Vorrichtung für einen Rest des Datenintervalls
umfasst.
- 52. Verfahren nach Klausel 49, wobei Datenpakete Videodatenpakete
umfasst.
- 53. Verfahren nach Klausel 49, wobei Datenpakete Audiodatenpakete
umfasst.
- 54. Verfahren nach Klausel 49, wobei Datenpakete Video- und
Audiodatenpakete umfasst.
- 55. Verfahren nach Klausel 48, wobei das Warten das Senden von
null oder mehr Nullpaketen über
den Bus an die zweite Vorrichtung für einen Rest des Datenintervalls
umfasst.
- 56. Verfahren nach Klausel 48, wobei das Datenintervall einem
Videodatenrahmen entspricht.
- 57. Verfahren nach Klausel 48, wobei das Datenintervall einem
Videodatenfeld entspricht.
- 58. Verfahren nach Klausel 48, wobei der Bus ein serieller Bus
ist.
- 59. Verfahren nach Klausel 58, wobei der serielle Bus ein IEEE-1394-konformer
Bus ist.
- 60. Verfahren nach Klausel 59, wobei das Synchronisationspaket
ein asynchrones Paket ist.
- 61. Verfahren nach Klausel 59, wobei die mehreren Pakete isochrone
Pakete sind.
- 62. Verfahren nach Klausel 48, das weiterhin Folgendes umfasst:
Senden
eines Befehls, die Übertragung
der Daten zu starten, an die zweite Vorrichtung und
Senden
von null oder mehr Nullpaketen über
den Bus an die zweite Vorrichtung, bis ein erstes Synchronisationspaket
für ein
erstes Datenintervall empfangen wird.
- 63. Einrichtung zum Übertragen
von Daten an eine Vorrichtung über
einen Bus, die Folgendes umfasst:
Mittel zum Empfangen eines
Synchronisationspakets über
den Bus von der Vorrichtung für
jedes Datenintervall, das von einem periodischen Bezugssignal definiert
wird, das von der Vorrichtung verarbeitet wird;
Mittel, die
nach dem Empfangen des Synchronisationspakets funktionsfähig sind,
zum Senden von mehreren Paketen über
den Bus an die Vorrichtung, wobei die Pakete Daten für das Datenintervall
enthalten; und
Mittel, die nach dem Senden der mehreren Pakete
für das
Datenintervall funktionsfähig
sind, zum Warten, bis ein Synchronisationspaket über den Bus von der Vorrichtung
für ein
folgendes Datenintervall empfangen wird.
- 64. Einrichtung zum Übertragen
von Daten an eine Vorrichtung über
einen Bus, die Folgendes umfasst:
eine Busschnittstelle zum
Senden von Paketen an die Vorrichtung und Empfangen von Paketen
von der Vorrichtung über
den Bus;
einen Pufferspeicher, der angeschlossen ist, um Daten
an die Busschnittstelle zur Übertragung
als mehrere Pakete zu übertragen;
und
einen Controller, der Folgendes umfasst:
Mittel zum
Verarbeiten von Synchronisationspaketen, die durch die Busschnittstelle
von der Vorrichtung für jedes
Datenintervall empfangen wurde, das von einem periodischen Bezugssignal
definiert wird;
Mittel, die nach dem Empfangen des Synchronisationspakets
funktionsfähig
sind, zum Bewirken, dass mehrere Pakete von der Busschnittstelle über den
Bus zwischen der Einrichtung und der Vorrichtung übertragen
werden, wobei die Pakete Daten für
das Datenintervall enthalten; und
Mittel, die nach dem Übertragen
der mehreren Pakete für
das Datenintervall funktionsfähig
sind, zum Warten, bis ein Synchronisationspaket über den Bus von der Vorrichtung
für ein
folgendes Datenintervall empfangen wird.
- 65. Computerprogrammprodukt, das Folgendes umfasst:
ein
computerlesbares Medium;
auf dem computerlesbaren Medium gespeicherte
Computerprogrammanweisungen, die, wenn sie von einem Hostrechner
ausgeführt
werden, bewirken, dass der Hostrechner ein Verfahren zum Übertragen
von Daten von dem Hostrechner an ein Peripheriegerät über einen
Bus durchführt,
das von dem Hostrechner für
jedes Datenintervall durchgeführt
wird, das von einem periodischen Bezugssignal definiert wird, und
Folgendes umfasst:
Empfangen eines Synchronisationspakets über den
Bus von dem Peripheriegerät
für das
Datenintervall;
nachdem das Synchronisationspaket empfangen
wurde, Senden von mehreren Paketen über den Bus an das Peripheriegerät, wobei
die Pakete Daten für
das Datenintervall enthalten; und
nachdem die mehreren Pakete
für das
Datenintervall gesendet wurden, Warten, bis ein Synchronisationspaket über den
Bus von dem Peripheriegerät
für ein
folgendes Datenintervall empfangen wird.
- 66. Verfahren zum Übertragen
von Daten von einer ersten Vorrichtung an eine zweite Vorrichtung über einen
Bus, das von der zweiten Vorrichtung für jedes Datenintervall durchgeführt wird,
das von einem periodischen Bezugssignal definiert wird, das von
der ersten Vorrichtung verarbeitet wird, wobei das Verfahren Folgendes
umfasst:
Empfangen eines Synchronisationspakets über den
Bus von der ersten Vorrichtung für
das Datenintervall;
Empfangen von mehreren Paketen über den
Bus von der ersten Vorrichtung, nachdem das Synchronisationspaket
empfangen wurde, wobei die Pakete Daten für das Datenintervall enthalten;
und
nachdem die mehreren Pakete empfangen wurden, Warten, bis
ein Synchronisationspaket über
den Bus von der ersten Vorrichtung für ein folgendes Datenintervall
empfangen wird.
- 67. Computerprogrammprodukt, das Folgendes umfasst:
ein
computerlesbares Medium;
auf dem computerlesbaren Medium gespeicherte
Computerprogrammanweisungen, die, wenn sie von einem Hostrechner
ausgeführt
werden, bewirken, dass der Hostrechner ein Verfahren zum Übertragen
von Daten von einem Peripheriegerät an den Hostrechner über einen
Bus durchführt,
wobei das Verfahren für jedes
Datenintervall, das von einem periodischen Bezugssignal definiert
wird, das von dem Peripheriegerät verarbeitet
wird, Folgendes umfasst:
Empfangen eines Synchronisationspakets über den
Bus von dem Peripheriegerät
für das
Datenintervall;
Empfangen von mehreren Paketen über den
Bus von dem Peripheriegerät,
nachdem das Synchronisationspaket empfangen wurde, wobei die Pakete
Daten für
das Datenintervall enthalten; und
nachdem die mehreren Pakete
empfangen wurden, Warten, bis ein Synchronisationspaket über den
Bus von dem Peripheriegerät
für ein
folgendes Datenintervall empfangen wird.
- 68. Verfahren zum Übertragen
von Daten von einem Hostrechner an ein Peripheriegerät über einen
Bus, das Folgendes umfasst:
Senden eines Synchronisationspakets
durch das Peripheriegerät über den
Bus an den Hostrechner für
jedes Datenintervall gemäß einem
periodischen Bezugssignal;
Senden mehrerer Pakete durch den
Hostrechner über
den Bus an das Peripheriegerät
nach Empfang des Synchronisationspakets, wobei die Pakete Daten
für das
Datenintervall enthalten; und
nachdem die mehreren Pakete für das Datenintervall
gesendet wurden, Warten durch den Hostcomputer, bis ein Synchronisationspaket
für ein
folgendes Datenintervall empfangen wird.
- 69. Verfahren nach Klausel 68, wobei die mehreren Pakete Folgendes
umfassen:
ein Präambelpaket,
das eine Anzahl zu sendender Datenpakete anzeigt; und
ein oder
mehrere Datenpakete.
- 70. Verfahren nach Klausel 69, wobei die Daten mehrere Datenströme umfassen
und wobei das Präambelpaket
während
des Intervalls zu übermittelnde
Ströme,
eine Reihenfolge der Übermittlung
der Datenströme und
eine Anzahl von Paketen, die für
jeden Strom verwendet werden, anzeigt.
- 71. Verfahren nach Klausel 69, wobei das Warten das Senden von
null oder mehr Nullpaketen nach dem einen oder den mehreren Datenpaketen
für einen
Rest des Datenintervalls umfasst.
- 72. Verfahren nach Klausel 69, wobei Datenpakete Videodatenpakete
umfasst.
- 73. Verfahren nach Klausel 69, wobei Datenpakete Audiodatenpakete
umfasst.
- 74. Verfahren nach Klausel 69, wobei Datenpakete Video- und
Audiodatenpakete umfasst.
- 75. Verfahren nach Klausel 68, wobei das Warten das Senden von
null oder mehr Nullpaketen nach dem einen oder den mehreren Datenpaketen
für einen
Rest des Datenintervalls umfasst.
- 76. Verfahren nach Klausel 68, wobei das Datenintervall einem
Videodatenrahmen entspricht.
- 77. Verfahren nach Klausel 68, wobei das Datenintervall einem
Videodatenfeld entspricht.
- 78. Verfahren nach Klausel 68, wobei der Bus ein serieller Bus
ist.
- 79. Verfahren nach Klausel 78, wobei der serielle Bus ein IEEE-1394-konformer
Bus ist.
- 80. Verfahren nach Klausel 79, wobei das Synchronisationspaket
ein asynchrones Paket ist.
- 81. Verfahren nach Klausel 79, wobei die mehreren Pakete isochrone
Pakete sind.
- 82. Verfahren nach Klausel 68, wobei das periodische Bezugssignal
von dem Peripheriegerät
empfangen wird.
- 83. Verfahren nach Klausel 68, wobei das periodische Bezugssignal
von dem Peripheriegerät
erzeugt wird.
- 84. Verfahren nach Klausel 68, das weiterhin Folgendes umfasst:
Senden
eines Befehls, die Übertragung
der Daten zu starten, durch den Hostrechner und
Senden von
null oder mehr Nullpaketen über
den Bus durch den Hostrechner, bis ein erstes Synchronisationspaket
für ein
erstes Datenintervall von dem Peripheriegerät gesendet wird.
- 85. Verfahren nach Klausel 68, das weiterhin Folgendes umfasst:
Empfangen
der Daten durch das Peripheriegerät in einem Pufferspeicher und
Ausgeben
der Daten in Synchronisation mit dem periodischen Bezugssignal durch
das Peripheriegerät.
- 86. Verfahren nach Klausel 85, wobei das Ausgeben der Daten
das Kodieren und Ausgeben eines analogen Videosignals umfasst.
- 87. Verfahren nach Klausel 85, wobei das Ausgeben das Erzeugen
von Videodaten im DV-Format umfasst.
- 88. System, das Folgendes umfasst:
einen Hostrechner;
ein
Peripheriegerät,
das über
einen Bus an den Hostrechner angeschlossen ist;
wobei das Peripheriegerät Mittel
zum Senden eines Synchronisationspakets über den Bus an den Hostrechner
für jedes
Datenintervall gemäß einem
periodischen Bezugssignal umfasst;
wobei der Hostrechner Mittel
zum Senden von mehreren Paketen über
den Bus an das Peripheriegerät nach
Empfang des Synchronisationspakets, wobei die Pakete Daten für das Datenintervall
enthalten, und Mittel, die nach dem Senden der mehreren Pakete für das Datenintervall
funktionsfähig
sind, zum Warten, bis ein Synchronisationspaket für ein folgendes
Datenintervall empfangen wird, umfasst.
- 89. System, das Folgendes umfasst:
einen Hostrechner, der
Folgendes umfasst:
Speicher zum Speichern von komprimierten
Videodaten und zugehörigen
Audiodaten;
ein Editiersystem zum Editieren eines Programms
unter Verwendung der Videodaten und der Audiodaten und Effekten,
die an den Videodaten vorzunehmen sind;
ein Wiedergabesystem
zum Wiedergeben des editierten Programms in Bewegtbildern (Full
Motion) und bei voller Auflösung,
das Mittel zum Dekomprimieren der komprimierten Videodaten und Mittel
zum Verarbeiten der Effekte an den dekomprimierten Videodaten während der
Wiedergabe enthält;
ein
Peripheriegerät,
das über
einen Bus an den Hostrechner angeschlossen ist, wobei das Peripheriegerät Folgendes
umfasst:
Mittel zum Kontrollieren des Flusses von dekomprimierten
Video- und Audiodaten über
den Bus vom Hostrechner, um den Fluss mit dem periodischen Bezugssignal
zu synchronisieren;
wobei der Hostrechner Folgendes umfasst:
Mittel
zum Senden des verarbeiteten dekomprimierten Videos mit Effekten
und der Audiodaten vom Wiedergabesystem während der Wiedergabe über den
Bus an das Peripheriegerät
als Antwort auf die Flusskontrolle durch das Peripheriegerät;
wobei
das Peripheriegerät
weiterhin Folgendes umfasst:
Mittel zum Komprimieren der dekomprimierten
Video- und Audiodaten, um während
der Wiedergabe einen komprimierten Datenstrom zu erstellen; und
Mittel
zum Ausgeben des komprimierten Datenstroms an ein Aufnahmegerät, synchronisiert
mit dem periodischen Bezugssignal während der Wiedergabe.
- 90. Peripheriegerät
zum Bereitstellen einer Brücke
zwischen einem Hostrechner und einer anderen Vorrichtung, wobei
das Peripheriegerät
mit einem ersten seriellen Bus an den Hostrechner angeschlossen
ist und mit einem zweiten seriellen Bus an die andere Vorrichtung
angeschlossen ist, wobei das Peripheriegerät Folgendes umfasst:
Mittel
zum Implementieren eines Protokolls über den ersten seriellen Bus
zur Kommunikation zwischen dem Hostrechner und dem Peripheriegerät;
Mittel
zum Implementieren des Protokolls über den zweiten seriellen Bus
zur Kommunikation zwischen dem Peripheriegerät und der anderen Vorrichtung;
Mittel
zum Kommunizieren von Informationen von der anderen Vorrichtung
zum Hostrechner, um dem Hostrechner zu ermöglichen, Pakete, die an die
andere Vorrichtung gerichtet sind, unter Verwendung des Protokolls über den
ersten seriellen Bus zu kommunizieren;
Mittel zum Kommunizieren
von Informationen vom Hostrechner zu der anderen Vorrichtung, um
der anderen Vorrichtung zu ermöglichen,
Pakete, die an den Hostrechner gerichtet sind, unter Verwendung
des Protokolls über
den zweiten seriellen Bus zu kommunizieren;
Mittel zum Verarbeiten
von Paketen, die über
den ersten seriellen Bus empfangen wurden, wobei die Mittel Folgendes
enthalten:
Mittel zum Ermitteln, ob das Paket an die andere
Vorrichtung gerichtet ist, und zum Übertragen des Pakets an die
andere Vorrichtung;
Mittel zum Ermitteln, ob das Paket an das
Peripheriegerät
gerichtet ist, und zum Verarbeiten des Pakets am Peripheriegerät und
Mittel
zum Ermitteln, ob das Paket vom Peripheriegerät zu verarbeiten ist, jedoch
an die andere Vorrichtung gerichtet ist, und zum Verarbeiten des
Pakets, um ein oder mehrere neue Pakete zu erstellen, und zum Übertragen
des einen oder der mehreren neuen Pakete an die andere Vorrichtung
und
Mittel zum Verarbeiten von Paketen, die über den
zweiten seriellen Bus empfangen wurden, wobei die Mittel Folgendes
enthalten:
Mittel zum Ermitteln, ob das Paket an den Hostrechner
gerichtet ist, und zum Übertragen
des Pakets an den Hostrechner;
Mittel zum Ermitteln, ob das
Paket an das Peripheriegerät
gerichtet ist, und zum Verarbeiten des Pakets am Peripheriegerät und
Mittel
zum Ermitteln, ob das Paket vom Peripheriegerät zu verarbeiten ist, jedoch
an den Hostrechner gerichtet ist, und zum Verarbeiten des Pakets,
um ein oder mehrere neue Pakete zu erstellen, und zum Übertragen
des einen oder der mehreren neuen Pakete an den Hostrechner.