DE60307200T2 - Kommunikationsprotokoll für die Übertragungssteuerung von zeitlichen Daten über einen Bus zwischen Geräten in Synchronisation mit einem periodischen Referenzsignal - Google Patents

Kommunikationsprotokoll für die Übertragungssteuerung von zeitlichen Daten über einen Bus zwischen Geräten in Synchronisation mit einem periodischen Referenzsignal Download PDF

Info

Publication number
DE60307200T2
DE60307200T2 DE60307200T DE60307200T DE60307200T2 DE 60307200 T2 DE60307200 T2 DE 60307200T2 DE 60307200 T DE60307200 T DE 60307200T DE 60307200 T DE60307200 T DE 60307200T DE 60307200 T2 DE60307200 T2 DE 60307200T2
Authority
DE
Germany
Prior art keywords
data
bus
packets
video
peripheral device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60307200T
Other languages
English (en)
Other versions
DE60307200D1 (de
Inventor
Ron Lexington Wallace
Harry Westford Der
Martin Westford Corbett
Terrence Tewksbury Fetters
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avid Technology Inc
Original Assignee
Avid Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avid Technology Inc filed Critical Avid Technology Inc
Publication of DE60307200D1 publication Critical patent/DE60307200D1/de
Application granted granted Critical
Publication of DE60307200T2 publication Critical patent/DE60307200T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4112Peripherals receiving signals from specially adapted client devices having fewer capabilities than the client, e.g. thin client having less processing power or no tuning capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43632Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0652Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP]
    • H04J3/0655Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP] using timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

  • 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.
  • 10A10B sind detailliertere Blockdiagramme eines Peripheriegeräts, das die in 79 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 35 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 710A–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 10A10B gezeigt. In den 10A10B 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.
  • Figure 00300001
  • Figure 00310001
  • Figure 00320001
  • 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 (10A10B) 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.

Claims (21)

  1. Verfahren zum Übertragen von zeitlichen Daten von einer ersten Vorrichtung (100) an eine zweite Vorrichtung (102) über einen Bus, das von der zweiten Vorrichtung für jedes Datenintervall durchgeführt wird, das von einem periodischen Bezugssignal (110) 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 Anspruch 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 Anspruch 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 einem der vorhergehenden Ansprüche, wobei die mehreren Pakete weiterhin null oder mehr Nullpakete nach dem einen oder den mehreren Datenpaketen für einen Rest des Datenintervalls umfasst.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei Datenpakete Videodatenpakete umfassen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei Datenpakete Audiodatenpakete umfassen.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei Datenpakete Video- und Audiodatenpakete umfassen.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Datenintervall einem Videodatenrahmen entspricht.
  9. Verfahren nach einem der Ansprüche 1 bis 7, wobei das Datenintervall einem Videodatenfeld entspricht.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Bus ein serieller Bus ist.
  11. Verfahren nach Anspruch 10, wobei der serielle Bus ein IEEE-1394-konformer Bus ist.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Synchronisationspaket ein asynchrones Paket ist.
  13. Verfahren nach einem der vorhergehenden Ansprüche, wobei die mehreren Pakete isochrone Pakete sind.
  14. Verfahren nach einem der vorhergehenden Ansprüche, wobei das periodische Bezugssignal von der zweiten Vorrichtung empfangen wird.
  15. Verfahren nach einem der Ansprüche 1 bis 13, wobei das periodische Signal von der zweiten Vorrichtung erzeugt wird.
  16. Verfahren nach einem der vorhergehenden Ansprüche, 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.
  17. Verfahren einem der vorhergehenden Ansprüche, 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.
  18. Verfahren nach Anspruch 17, wobei das Ausgeben der Daten das Kodieren und Ausgeben eines analogen Videosignals umfasst.
  19. Verfahren nach Anspruch 17, wobei das Ausgeben das Erzeugen von Videodaten im DV-Format umfasst.
  20. Vorrichtung (102) zur Verbindung mit einer Quelle von zeitlichen Daten über einen Bus, die Folgendes umfasst: eine Busschnittstelle (104) zum Senden von Paketen an die Datenquelle (100) und Empfangen von Paketen von der Datenquelle über den Bus; einen Controller mit einem Eingang zum Empfangen eines Signals, das mit einem periodischen Bezugssignal (110) 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.
  21. System zum Übertragen von zeitlichen Daten, das Folgendes umfasst: einen Hostrechner (100); ein Peripheriegerät (102), das über einen Bus (104) 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 (110) 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.
DE60307200T 2002-11-01 2003-10-29 Kommunikationsprotokoll für die Übertragungssteuerung von zeitlichen Daten über einen Bus zwischen Geräten in Synchronisation mit einem periodischen Referenzsignal Expired - Lifetime DE60307200T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US286215 1988-12-19
US10/286,215 US7949777B2 (en) 2002-11-01 2002-11-01 Communication protocol for controlling transfer of temporal data over a bus between devices in synchronization with a periodic reference signal

Publications (2)

Publication Number Publication Date
DE60307200D1 DE60307200D1 (de) 2006-09-14
DE60307200T2 true DE60307200T2 (de) 2007-10-18

Family

ID=32093578

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60307200T Expired - Lifetime DE60307200T2 (de) 2002-11-01 2003-10-29 Kommunikationsprotokoll für die Übertragungssteuerung von zeitlichen Daten über einen Bus zwischen Geräten in Synchronisation mit einem periodischen Referenzsignal

Country Status (5)

Country Link
US (2) US7949777B2 (de)
EP (1) EP1416687B1 (de)
JP (2) JP2004159326A (de)
CA (1) CA2446513C (de)
DE (1) DE60307200T2 (de)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US7949777B2 (en) * 2002-11-01 2011-05-24 Avid Technology, Inc. Communication protocol for controlling transfer of temporal data over a bus between devices in synchronization with a periodic reference signal
KR100556357B1 (ko) * 2002-12-04 2006-03-03 엘지전자 주식회사 디지털 비디오 포맷을 지원하는 엠펙 비디오 디코딩 시스템
US20060146853A1 (en) * 2004-12-30 2006-07-06 Nokia Corporation System and method for sending related data over a digital broadcast system
US8707373B2 (en) * 2003-05-14 2014-04-22 The Directv Group, Inc. Method and system for providing digital video distribution
TWI374635B (en) 2003-06-02 2012-10-11 Qualcomm Inc Generating and implementing a signal protocol and interface for higher data rates
US20040255338A1 (en) * 2003-06-13 2004-12-16 Apple Computer, Inc. Interface for sending synchronized audio and video data
US7415017B2 (en) * 2003-07-18 2008-08-19 Leahy T Liam Security through manipulation of virtual topography
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US10613817B2 (en) 2003-07-28 2020-04-07 Sonos, Inc. Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
JP4035824B2 (ja) * 2003-07-30 2008-01-23 ソニー株式会社 編集装置
US8705571B2 (en) * 2003-08-13 2014-04-22 Qualcomm Incorporated Signal interface for higher data rates
RU2369033C2 (ru) 2003-09-10 2009-09-27 Квэлкомм Инкорпорейтед Интерфейс высокоскоростной передачи данных
CN102801595A (zh) 2003-10-15 2012-11-28 高通股份有限公司 高数据速率接口
AU2004307162A1 (en) 2003-10-29 2005-05-12 Qualcomm Incorporated High data rate interface
RU2341906C2 (ru) 2003-11-12 2008-12-20 Квэлкомм Инкорпорейтед Интерфейс высокоскоростной передачи данных с улучшенным управлением соединением
US20050104873A1 (en) * 2003-11-14 2005-05-19 Mallinath Hatti Last frame repeat
JP2007512785A (ja) 2003-11-25 2007-05-17 クゥアルコム・インコーポレイテッド 改良されたリンク同期を備えた高速データレートインタフェース
CA2548412C (en) 2003-12-08 2011-04-19 Qualcomm Incorporated High data rate interface with improved link synchronization
BRPI0508582A (pt) * 2004-03-10 2007-08-14 Qualcomm Inc equipamento e método de interface de alta taxa de dados
TWI384811B (zh) 2004-03-17 2013-02-01 Qualcomm Inc 高資料率介面裝置及方法
US8645566B2 (en) 2004-03-24 2014-02-04 Qualcomm Incorporated High data rate interface apparatus and method
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
US8024055B1 (en) 2004-05-15 2011-09-20 Sonos, Inc. Method and system for controlling amplifiers
EP1978694B1 (de) 2004-06-04 2011-05-25 QUALCOMM Incorporated Schnittstellenvorrichtung und -verfahren für hohe Datenraten
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US7792152B1 (en) 2004-06-08 2010-09-07 Owlink Technology, Inc. Scheme for transmitting video and audio data of variable formats over a serial link of a fixed data rate
US7613615B1 (en) * 2004-06-17 2009-11-03 Magnum Semiconductor, Inc. Circuits, systems, and methods for real-time de-shuffling of shuffled audio data
US8692838B2 (en) 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8667363B2 (en) * 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
US20060132577A1 (en) * 2004-12-04 2006-06-22 Hon Hai Precision Industry Co., Ltd. Circuit topology for high-speed printed circuit board
US7515585B2 (en) * 2005-01-21 2009-04-07 Ixia Data communication optimization
US20060227775A1 (en) * 2005-04-12 2006-10-12 Arul Thangaraj System, method, and apparatus for embedding personal video recorder functions in transport packets
US7631097B2 (en) * 2005-07-21 2009-12-08 National Instruments Corporation Method and apparatus for optimizing the responsiveness and throughput of a system performing packetized data transfers using a transfer count mark
KR20070048025A (ko) * 2005-11-03 2007-05-08 삼성전자주식회사 멀티미디어 데이터를 출력하는 장치 및 방법
US8730069B2 (en) 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US8692839B2 (en) 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US20070286107A1 (en) * 2006-06-12 2007-12-13 Harkirat Singh System and method for wireless communication of uncompressed video having multiple destination aggregation (MDA)
EP2033375B1 (de) * 2006-06-14 2013-03-20 Continental Teves AG & Co. oHG Verfahren zum übertragen von messdaten und sensoreinrichtung
US8332518B2 (en) 2006-08-14 2012-12-11 Intersil Americas Inc. Bidirectional communication protocol between a serializer and a deserializer
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US20080155230A1 (en) * 2006-12-21 2008-06-26 General Instrument Corporation Method and System for Providing Simultaneous Transcoding of Multi-Media Data
US8451860B2 (en) * 2007-02-08 2013-05-28 The Boeing Company Low-weight hybrid deterministic highspeed data bus
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
JP5088281B2 (ja) * 2008-09-19 2012-12-05 沖電気工業株式会社 パケット同期切替方法及びゲートウェイ装置
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
EP2341445B1 (de) * 2009-12-30 2017-09-06 Intel Deutschland GmbH Verfahren zur Hochgeschwindigkeits-Datenübertragung
US9104252B2 (en) * 2010-02-12 2015-08-11 Microsoft Technology Licensing, Llc Assignment of control of peripherals of a computing device
TWI480731B (zh) * 2010-06-30 2015-04-11 Insyde Software Corp 轉接裝置及經由該轉接裝置之除錯方法
US8848054B2 (en) * 2010-07-29 2014-09-30 Crestron Electronics Inc. Presentation capture with automatically configurable output
US8832345B2 (en) * 2010-08-24 2014-09-09 Belkin International, Inc. System for communicating between two electrical devices and method therefore
US10356453B2 (en) 2011-01-19 2019-07-16 Samsung Electronics Co., Ltd. Apparatus and method for configuring a control message in a broadcast system
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US8938312B2 (en) 2011-04-18 2015-01-20 Sonos, Inc. Smart line-in processing
US9042556B2 (en) 2011-07-19 2015-05-26 Sonos, Inc Shaping sound responsive to speaker orientation
ES2741929T3 (es) * 2011-10-13 2020-02-12 Samsung Electronics Co Ltd Aparato y procedimiento de configuración de un mensaje de control en un sistema de difusión
US20130110900A1 (en) * 2011-10-28 2013-05-02 Comcast Cable Communications, Llc System and method for controlling and consuming content
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
EP2829104A4 (de) * 2012-03-19 2016-04-27 Ericsson Telefon Ab L M System und verfahren für nulldatenpaketdurchsatz
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9049470B2 (en) 2012-07-31 2015-06-02 Google Technology Holdings LLC Display aware transcoder source selection system
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
US20140365687A1 (en) * 2013-06-05 2014-12-11 Kabushiki Kaisha Toshiba Display Apparatus and USB Host
US9244516B2 (en) 2013-09-30 2016-01-26 Sonos, Inc. Media playback system using standby mode in a mesh network
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US10679673B2 (en) * 2015-01-28 2020-06-09 Roku, Inc. Synchronization in audio playback network independent of system clock
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US10303422B1 (en) 2016-01-05 2019-05-28 Sonos, Inc. Multiple-device setup
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
US20210195282A1 (en) * 2017-11-09 2021-06-24 Luxi Electronics Corp. XDI Systems, Devices, Connectors and Methods
US10896106B2 (en) 2018-05-10 2021-01-19 Teradyne, Inc. Bus synchronization system that aggregates status
US11258982B2 (en) 2019-08-16 2022-02-22 Logitech Europe S.A. Video conference system
US11088861B2 (en) 2019-08-16 2021-08-10 Logitech Europe S.A. Video conference system
US11095467B2 (en) 2019-08-16 2021-08-17 Logitech Europe S.A. Video conference system
US11038704B2 (en) * 2019-08-16 2021-06-15 Logitech Europe S.A. Video conference system
CN112363479B (zh) * 2020-12-09 2022-04-08 南昌航空大学 一种现场设备间的数字通信传输方法及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241382A (en) * 1992-04-25 1993-08-31 General Instrument Corporation Digital HDTV data packet format and receiver therefor
EP1193940A3 (de) 1994-03-21 2004-09-01 Avid Technology, Inc. Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung
KR0178766B1 (ko) * 1996-09-02 1999-05-15 삼성전자주식회사 압축되지 않은 디지탈데이타의 전송기능을 갖는 디지탈 인터페이스 장치
JPH10254811A (ja) * 1997-03-12 1998-09-25 Sony Corp 電子機器制御装置および方法
DE69729068T2 (de) 1997-04-15 2004-09-16 Samsung Electronics Co., Ltd., Suwon Vorrichtung und Verfahren zum Übertragen von digitalen Audio- und Videodaten
US6233253B1 (en) 1997-05-23 2001-05-15 Thomson Licensing S.A. System for digital data format conversion and bit stream generation
US6105083A (en) * 1997-06-20 2000-08-15 Avid Technology, Inc. Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements
US6418150B1 (en) 1998-02-20 2002-07-09 Apple Computer, Inc. Method and apparatus for calibrating an IEEE-1394 cycle master
US6055587A (en) * 1998-03-27 2000-04-25 Adaptec, Inc, Integrated circuit SCSI I/O cell having signal assertion edge triggered timed glitch filter that defines a strobe masking period to protect the contents of data latches
US6141691A (en) * 1998-04-03 2000-10-31 Avid Technology, Inc. Apparatus and method for controlling transfer of data between and processing of data by interconnected data processing elements
US20030133448A1 (en) 1998-04-03 2003-07-17 Craig R. Frink Packet protocol for encoding and decoding video data and data flow signals and devices for implementing the packet protocol
US6134607A (en) 1998-04-03 2000-10-17 Avid Technology, Inc. Method and apparatus for controlling data flow between devices connected by a memory
US6229576B1 (en) 1998-04-03 2001-05-08 Avid Technology, Inc. Editing system with router for connection to HDTV circuitry
JP3964543B2 (ja) 1998-06-01 2007-08-22 エルベックスビデオ株式会社 光ファイバの接続方法及び送信装置または受信装置並びに光ファイバシステム
DE19914838A1 (de) 1999-04-01 2000-10-05 Thomson Brandt Gmbh Verfahren zum Zusammenstellen von Buspaketen für die Isochrondatenübertragung über einen Datenbus sowie Vorrichtung zur Durchführung des Verfahrens
JP3424620B2 (ja) * 1999-09-24 2003-07-07 日本電気株式会社 アイソクロナスパケット転送方法,該転送用制御プログラムの記録媒体,ブリッジ及びパケット転送制御lsi
US6754185B1 (en) 1999-09-27 2004-06-22 Koninklijke Philips Electronics N.V. Multi link layer to single physical layer interface in a node of a data communication system
WO2001026292A2 (en) 1999-10-05 2001-04-12 Koninklijke Philips Electronics N.V. A distributed wireless medium access control protocol with support for isochronous services
US6816510B1 (en) 2000-02-09 2004-11-09 Koninklijke Philips Electronics N.V. Method for clock synchronization between nodes in a packet network
JP2001230821A (ja) * 2000-02-16 2001-08-24 Sony Corp データ中継装置および方法、並びに提供媒体
JP2001230750A (ja) 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd ストリーム送信装置とその受信装置、及び基本周波数同期方法
US6522649B1 (en) 2000-04-07 2003-02-18 Omneon Video Networks Method of distributing video reference signals as isochronous network packets
US6665450B1 (en) 2000-09-08 2003-12-16 Avid Technology, Inc. Interpolation of a sequence of images using motion analysis
US6704579B2 (en) * 2001-02-15 2004-03-09 Ensemble Communications System and method of automatically calibrating the gain for a distributed wireless communication system
US7046670B2 (en) 2001-03-30 2006-05-16 Sony Corporation Method and system for synchronizing isochronous data on transmit over the IEEE 1394 bus from content unaware devices
US7545957B2 (en) 2001-04-20 2009-06-09 Avid Technology, Inc. Analyzing motion of characteristics in images
US7161978B2 (en) * 2001-08-29 2007-01-09 Texas Instruments Incorporated Transmit and receive window synchronization
DE60135505D1 (de) * 2001-10-02 2008-10-02 Hitachi Ltd Vorrichtung zum transfer serieller daten
US7103006B2 (en) * 2002-05-01 2006-09-05 International Business Machines Corporation Method, system, and article of manufacture for data transmission
US7949777B2 (en) * 2002-11-01 2011-05-24 Avid Technology, Inc. Communication protocol for controlling transfer of temporal data over a bus between devices in synchronization with a periodic reference signal

Also Published As

Publication number Publication date
US8656045B2 (en) 2014-02-18
CA2446513C (en) 2010-08-31
DE60307200D1 (de) 2006-09-14
JP2006314146A (ja) 2006-11-16
US20110213905A1 (en) 2011-09-01
CA2446513A1 (en) 2004-05-01
JP4398445B2 (ja) 2010-01-13
US7949777B2 (en) 2011-05-24
JP2004159326A (ja) 2004-06-03
EP1416687B1 (de) 2006-08-02
EP1416687A1 (de) 2004-05-06
US20040086000A1 (en) 2004-05-06

Similar Documents

Publication Publication Date Title
DE60307200T2 (de) Kommunikationsprotokoll für die Übertragungssteuerung von zeitlichen Daten über einen Bus zwischen Geräten in Synchronisation mit einem periodischen Referenzsignal
DE60310017T2 (de) Verfahren und Vorrichtung zur Dezentralisierung von Audio/Visuellen Komponenten
DE19512811B4 (de) Telekonferenzkonsole
DE69530991T2 (de) Peripheres videokonferenzsystem
EP1088448B1 (de) Verfahren und gerät zur aufteilung, skalierung und anzeige von video und/oder graphiken auf mehreren anzeigevorrichtungen
CN109327728A (zh) 一种一对多同屏方法、装置和系统、同屏设备及存储介质
JP7171929B2 (ja) オーディオストリーム及びビデオストリーム同期切替方法及び装置
DE69636099T2 (de) Vorrichtung und Verfahren zur Umwandlung von Datentransferraten für digitale Audio- und Videodaten
US8125571B2 (en) Video data processing module furnished with a configurable video processing unit with a single input bus
DE69909608T2 (de) Paketprotokoll zur kodierung und dekodierung von videodaten und datenflusssignalen
EP1188318A1 (de) Verfahren und system zur erzeugung einer verbesserten digitalen videodatei
US20050053131A1 (en) Video encoding using parallel processors
CH704037B1 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum synchronisierten sowie sequenziellen Übertragen von Audio- und Videodaten.
DE19844635A1 (de) Video-Aufzeichnungsvorrichtung mit der Fähigkeit, gleichzeitig aufzuzeichnen und wiederzugeben, dargestellte Bilder unmittelbar aufzuzeichnen und Bilder fliegend festzuhalten und zu speichern, um sie nachfolgend zu editieren und aufzuzeichnen
DE69636593T2 (de) Vorrichtung zur aufnahme/wiedergabe von fernseh-/tondaten
DE102005052207A1 (de) Verfahren zum Übertragen von einem Datenstrom von einer Datenquelle zu einer Datensenke sowie Datensenkengerät, Datenquellgerät und Gerät zur Durchführung des Verfahrens
WO2020170659A1 (ja) 編集システム
JP2002320205A (ja) 映像信号のマルチフォーマットシステム、及びそのプログラム
DE19927711B4 (de) Vorrichtung zum Übertragen von Information über ein Netz
DE19964394B4 (de) Vorrichtung zum Übertragen von Information über ein Netz
An et al. Synchronous playback technology of airborne network video based on RTP
EP4236308A1 (de) Verteiltes monitoring-system für filmaufnahmen
JP2003324698A (ja) 配信装置および方法
CN116866287A (zh) 音视频信号交换处理方法、接口板及交换设备
Schell et al. A PC based 1394/DV nonlinear video editing system

Legal Events

Date Code Title Description
8364 No opposition during term of opposition