-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft
paketgestützte
Protokolle zum Übertragen
von Daten über Verbindungsleitungen.
Die vorliegende Erfindung betrifft insbesondere Paketprotokolle
zum Codieren und Decodieren von Videodaten und Datenfluss-Steuersignalen.
-
HINTERGRUND
-
Analoge Film-Videosignale, wie etwa
jene, die in gewöhnlichen
Fernsehgeräten,
Videoband-Recordern und weiteren analogen Videosystemen verwendet
werden, sind zeitlich kontinuierliche und synchrone Signale, die
in einem Videosystem für
die Synchronisation verschiedene Elemente erfordern, damit sie verwendet
werden können.
Mit anderen Worten, analoge Film-Videosignale besitzen eine vorgegebene
und feststehende Rate, auf die alle Elemente in dem Videosystem
synchronisiert sind. Jedes Element im Videosystem ist unter der
Annahme konstruiert, dass eine konstante Rate für die Eingabe und Ausgabe von
Film-Videoinformationen
vorhanden ist.
-
In letzter Zeit war es möglich, digitale Film-Videosignale
in Dateien in einem Computer zu speichern. Es gibt mehrere Verfahren,
derartige Film-Videodaten wiederzugeben. Ein Verfahren wird als "Pushing" oder "Streaming" der Film-Videodaten bezeichnet.
Streaming basiert auf der Annahme, dass ein System eine mittlere
Datenströmungsrate schaffen
kann, die gleich der ultimativen Datenströmungsrate ist, die erforderlich
ist, um eine zeitlich kontinuierliche Ausgabe von analogen Film-Videosignalen
an einen Betrachter sicherzustellen. Eine ausreichende Pufferung
wird verwendet, um erwartete Latenzzeiten bei der Datenübertragung
zwischen Elementen auszugleichen. In einigen Fällen kann es erforderlich sein,
dass sowohl die zeitliche als auch die räumliche Auflösung der
Film-Videoinformationen verringert wird. Derartige Systeme sind
typischerweise unter der Annahme konstruiert, dass die Übertragung
von Audio- und Videodaten von einer Quelle über verschiedene Verarbeitungselemente
zu ihrem Endziel weder verzögert
noch angehalten werden kann.
-
Wenn ein digitaler Universal-Computer
verwendet wird, um Film-Videoinformatio nen zu verarbeiten, kann
eine konstante Datenflussrate im Allgemeinen nicht aufrechterhalten
werden. Es können Schwankungen
der Datenflussrate infolge von verschiedenen Latenzzeiten im Computersystem
vorhanden sein, z. B. infolge der Latenzzeit beim Platten- oder
Speicherlesen, Unterbrechungen von anderen Verarbeitungselementen
im Computer usw. Außerdem
ist in einigen Systemen, etwa in Schneidsystemen, die Fähigkeit
erwünscht,
die Wiedergabe anzuhalten und neu zu starten. Um derartige Probleme
zu bewältigen
besteht ein verwendetes Verfahren darin, eine ausreichende Pufferung
in Kombination mit einer Fähigkeit
zum Anhalten der Datenübertragung
zu schaffen, derart, wie im US-Patent
Nr. 5.045.940 (Peters u. a.) gezeigt ist. Diese Prinzipien werden
in einem Computernetz verwendet, wie in der veröffentlichten europäischen Patentanmeldung
Nr. 0 674 414 A2 beschrieben ist. Eine Erweiterung dieser Kombination
auf die Verarbeitung von Spezialeffekten ist in den PCT-Publikationen
WO 94/24815 und WO 95/26100 offenbart. Bei diesem System gibt eine
Daten-Dekompressionseinrichtung
Daten an einen ersten Puffer aus, von dem sie an einen zweiten Puffer übertragen
werden, der einem Spezialeffekt-Prozessor zugeordnet ist. Der erste
Puffer gibt an, ob gültige
Daten zur Verfügung
stehen. Außerdem
zeigt der Spezialeffekt-Prozessor einem der Dekompressionseinrichtung
zugeordneten Controller anhand des Speichers im zweiten Puffer an,
ob er Daten empfangen kann.
-
Ein Nachteil dieser Systeme besteht
darin, dass sie einen bedeutenden Pufferumfang verwenden, um Verzögerungen
bei der Datenübertragung zwischen
Elementen aufzunehmen. Sie sind außerdem im Allgemeinen so konstruiert,
dass sie ein einziges vorgegebenes Format der Medien verwenden. Die
Steuerung des Datenflusses zwischen untereinander verbundenen Vorrichtungen
ist außerdem
in der US-Patentanmeldung Serien-Nr.08/879.981 beschrieben, die
der am 30.12.1998 veröffentlichten Anmeldung
WO-A-98/59494 entspricht. Eine Verbindungsleitung kann möglicherweise
keinen ausreichenden Durchsatz oder keine ausreichende Anschlussmöglichkeiten
besitzen, um einen Datenfluss von Steuerinformationen parallel mit
Daten zu gewährleisten.
Ein Protokoll zum Steuern des Datenflusses ist im Allgemeinen von
dem Transportmedium der Verbindungsleitung abhängig.
-
ZUSAMMENFASSUNG
-
Ein paketgestütztes Protokoll enthält Datenfluss-Steuersignale
für die
effektive Übertragung
von Daten auf verschiedenen Verbindungsleitungen, die schnelle parallele
und serielle Verbindungsleitungen enthalten. Das Paketprotokoll
ermöglicht
außerdem das
Leiten von Daten in großen
Systemen oder über Standard-Video- und Rechennetze.
Das Paketprotokoll ist datenunabhängig und ermöglicht die
gleichzeitige Nutzung von verschiedenen Typen von Videodaten bei
einem gemeinsamen Verbindungsleitungs- und Systemaufbau. Das Paketprotokoll
bietet außerdem
ein flexibles Verfahren zum Leiten von Daten zwischen Vorrichtungen.
Es können
außerdem unter
Verwendung dieses Protokolls Befehlsdaten zwischen Vorrichtungen
ausgetauscht werden. Unter Verwendung dieses Paketprotokolls kann
außerdem jede
Speicher- oder Datenverarbeitungsvorrichtung als eine Vermittlungseinrichtung
arbeiten und kann über
ihre Eingabe- und Ausgabe-Verbindungsleitungen
die Datenfluss-Steuerung realisieren. Die flussgesteuerte Datenübertragung
kann unter Verwendung dieses Protokolls in einer Weise implementiert werden,
die vom Transportmedium der Verbindungsleitung unabhängig ist.
-
Gemäß der Erfindung werden ein
Videoverarbeitungssystem, Videoverarbeitungsvorrichtungen und ein
Sende-Empfangs-Gerät
geschaffen, wie in den Ansprüchen
dargestellt ist.
-
Es sollte klar sein, dass weitere
Aspekte der Erfindung Systeme aus Vorrichtungen enthalten, die untereinander
durch Vorrichtungen verbunden sind, die das Paketprotokoll unterstützen, wie
etwa Sende-Empfangs-Geräte,
Paketvermittlungseinrichtungen und Router. Weitere Aspekte der Erfindung
enthalten Verfahren zum Verarbeiten von Videodaten unter Verwendung
dieses Paketprotokolls und die Prozesse, die durch Videovorrichtungen
und Sende-Empfangs-Geräte
in den anderen Aspekten der Erfindung ausgeführt werden.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
In der Zeichnung ist:
-
1 eine
Darstellung des allgemeinen Aufbaus eines Pakets in einem Paketprotokoll;
-
2 eine
Darstellung, die den Aufbau eines Kopfabschnitts eines Pakets veranschaulicht;
-
3 eine
Darstellung, die den Aufbau eines Paket-Deskriptors veranschaulicht;
-
4 eine
Darstellung, die den Aufbau eines Adressen-Zusatz-Kopfabschnitts
veranschaulicht;
-
5 eine
Darstellung eines Muster-Datenpakets;
-
6 eine
Darstellung eines Muster-Anforderungspakets;
-
7 eine
Darstellung eines Muster-Befehlspakets;
-
8 eine
Darstellung eines Muster-Unterbrechungspakets;
-
9 ein
Taktdiagramm, das die Übertragung
eines Pakets über
eine parallele Verbindungsleitung veranschaulicht;
-
10A-C sind
Blockschaltpläne
eines Sende-Empfangs-Geräts,
das mit zwischen Vorrichtungen geschaltet ist und in Übereinstimmung
mit diesem Protokoll Eingaben und Ausgaben liefert;
-
11 ein
Blockschaltplan einer Mehrsystem-Verbindungstopologie, bei der das
Paketprotokoll verwendet werden kann, um Videoinformationen zwischen
den Systemen zu leiten; und
-
12 ein
Blockschaltplan, der Systeme veranschaulicht, die untereinander
durch Video-Verbindungsleitungen verbunden sind, um unter Verwendung
des Paketprotokolls zu kommunizieren.
-
GENAUE BESCHREIBUNG
-
Ein Paketprotokoll bettet Daten und
Flusssteuerungsinformationen in Pakete ein, damit derartige Informationen über eine
Vielzahl von Verbindungsleitungen zwischen Verarbeitungsvorrichtungen übertragen
werden können.
Ein Paketprotokoll ermöglicht
außerdem
das dynamische Leiten von Informationen durch das Einbetten von
Zieladressen in ein Paket. Weitere Befehlsdaten, wie etwa Speicheradressen
für eine
Vorrichtung oder weitere Datenverarbeitungsparameter, können außerdem in
ein Paket eingebettet sein. Ein Paket ermöglicht außerdem, dass Daten mit unterschiedlichen
Wortlängen
in ein Format gepackt werden können,
das der Datenbreite eines Transportmediums entspricht.
-
Unter Bezugnahme auf 1 wird nun ein allgemeiner Paketaufbau
beschrieben. Ein Paket 30 besitzt einen Kopfabschnitt 32,
einen Datenabschnitt 34 und einen Endabschnitt 36.
Die Breite und die Bits des Kopfabschnitts, der Daten und des Endabschnitts
können
jede Wortlänge
aufweisen, obwohl eine byteorientierte Wortlänge die Verarbeitung sowohl
durch Video- als auch durch Rechenvorrichtungen vereinfacht. Der
Kopfabschnitt gibt einen Typ des Pakets und sein Ziel an. Der Datenabschnitt
befördert
Daten, die Befehlsdaten, Nachrichten, Videodaten, Audiodaten und
weitere Datentypen enthalten können.
Der Endabschnitt gibt das Ende des Pakets an und kann eine Prüfsumme und
möglicherweise weitere
Steuerinformationen enthalten. Da die Verwendung des Endabschnitts
vom Typ des Pakets abhängt,
werden die Paket-Endabschnitte in Verbindung mit den Typen der Pakete
beschrieben.
-
2 veranschaulicht
die Daten genauer, die in einer Ausführungsform in einem Kopfabschnitt enthalten
sein können.
Der Kopfabschnitt 32 enthält ein Typenfeld 40,
das den Typ des Pakets beschreibt. In einem System können mehrere
Typen von Paketen vorhanden sein, wie etwa ein Befehlspaket, ein Anforderungspaket,
ein Datenpaket und Unterbrechungspakete. Verschiedene Pakettypen
werden später
genauer beschrieben.
-
Der Kopfabschnitt 32 kann
außerdem
ein Größenfeld 42 aufweisen,
das die Größe des Kopfabschnitts
des Pakets angibt. Das Feld wird verwendet, wenn der Kopfabschnitt
eine veränderliche
Größe besitzt.
Die Felder 44 werden verwendet, um Leitinformationen zum Übertragen
des Pakets durch ein hierarchisches Leitnetz anzugeben. In einigen
Ausführungsformen
können
diese Daten lediglich eine Zieladresse sein. In einer Ausführungsform,
die in 2 gezeigt ist,
enthalten die Leitinformationen ein Zielkennungsfeld 46,
das die Anzahl von Ebenen in einer Verbindungsadressen-Hierarchie
angibt, durch die das Paket gelenkt wird. Das Feld bezieht sich
auf die Anzahl von Zielfeldern 48, die gültige Zieladressen
enthalten. Das Zielfeld 48 gibt ein Ziel an, indem es einen
Ausgangsanschluss an einer Vermittlungseinrichtung angibt, der die
Daten zum Ziel lenkt. Ein Stromidentiflzierer-Feld 50 (SID-Feld)
gibt einen Datenstrom an, der einer Untervorrichtung am Ziel entsprechen
kann.
-
Es wird nun ein Beispiel gegeben,
wie das Zielkennungsfeld und Zielfelder verwendet werden können. Bei
einem Paket, das durch eine Vermittlungsvorrichtung empfangen wurde,
wird das Zielkennungsfeld gelesen. Wenn das Zielkennungsfeld null
ist, sind die Daten an ihrem Ziel und das Stromidentifizierer-Feld
wird verwendet, um eine Untervorrichtungsadresse anzugeben. Wenn
das Zielkennungsfeld nicht null ist, liest die Vorrichtung das erste Zielfeld 48,
um den Ausgangsanschluss zu identifizieren, an den das Paket geleitet
wird. Die Werte von den Zielfeldern werden zum benachbarten Zielfeld verschoben.
Im Einzelnen werden die Inhalte von dem zweiten Zielfeld zum ersten
Zielfeld verschoben. Die Inhalte vom dritten Zielfeld werden zum
zweiten Zielfeld verschoben usw. Die nächste Vermittlungseinrichtung
liest dann das Zielkennungsfeld und bei Bedarf das erste Zielfeld,
um den Ausgangsanschluss zu bestimmen, an den das Paket geleitet wird.
Schließlich
werden die Zielfelder verschoben und das Zielkennungsfeld wird auf
null verringert, wobei das SID-Feld an diesem Punkt das Endziel
der Daten angibt.
-
Der Kopfabschnitt 32 kann
außerdem
durch einen hier als Zusatz-Kopfabschnitt bezeichneten Abschnitt
zusätzliche
Informationen enthalten. Der Zusatz-Kopfabschnitt ist als Teil des
Kopfabschnitts enthalten und wird durch das Kopfabschnitt-Größenfeld 42 identifiziert.
Der Zusatz-Kopfabschnitt kann außerdem ein Typenfeld enthalten,
das den Typ des Zusatz-Kopfabschnitts angibt. Die Typen der Zusatz-Kopfabschnitte,
die verwendet werden können, enthalten
einen Paket-Deskriptor,
eine höherwertige Adresse,
eine niederwertige Adresse und eine Leseanforderungslänge, sind
jedoch nicht auf diese beschränkt.
Die Bedeutung dieser Typen wird nun genauer beschrieben.
-
Ein Zusatz-Kopfabschnitt des Typs
Paket-Deskriptor ist in 3 gezeigt.
Er enthält
ein Typfeld 60, das den Kopfabschnitt als Paket-Deskriptor identifiziert,
und ein Datengrößenfeld 62 gibt
die Basisgröße oder
Wortlänge
des Datentransportmediums an. Die Basisgröße kann z. B. 8, 10 oder 12
Bits betragen. Ein Komponentengrößenfeld 64 gibt
die Anzahl von Bits pro Komponente oder die Wortlänge der
Komponentendaten an. Eine Komponente ist ein Abschnitt der Daten,
die übertragen
werden, wie etwa eine Luminanz-Komponente eines Bildelements von
Videodaten. Wenn die Wortlänge
der Komponente sich von der Wortlänge des Transportmediums unterscheidet,
werden die Daten in dem Paket in Teilkomponenten und ganzzahlige
Komponenten gepackt, um die Ausnutzung der Band breite und der Datenspeicherung
zu verbessern. Ein Datenlängenfeld 66 beschreibt
die Länge
der gültigen
Daten in Vielfachen der Datengröße.
-
Ein Statusfeld 65 wird außerdem bereitgestellt.
Das Statusfeld 65 befördert
Informationen über den
Zustand des Videostroms. Die Statusinformationen können eine
Angabe enthalten, dass das Paket mit der letzten Komponente der
Daten endet. Mit anderen Worten, das Statusfeld enthält ein Grenzsignal.
Das Statusfeld kann außerdem
angeben, ob das Paket Daten des letzten Datensegments in einer angeforderten
Folge enthält.
Der Wert in diesem Feld kann z. B. das letzte Bild einer angeforderten
Videofolge angeben. Dieses Signal wird eingeschaltet, wenn ein Bildfortschrittszähler (der
in der US-Patenanmeldung Serien-Nr.08/879.981 beschrieben ist) abgelaufen
ist. Die Verwendung des Bildfortschrittszählers in einem paketgestützten System
wird später genauer
beschrieben. Das Grenzsignal wird für ein einzelnes Paket eingeschaltet,
wenn das Signal des letzten Bilds für mehrere Pakete eingeschaltet
wird.
-
Ein Beispiel eines Zusatz-Kopfabschnitts, der
Adressen enthält,
wird nun in Verbindung mit 4 beschrieben.
Als Beispiel liefert der Zusatz-Kopfabschnitt der niederwertigen
Adresse 28 Bits der Adressinformationen, die durch das
Bezugszeichen 70 angegeben sind. Wenn ein größerer Adressraum
verwendet wird, kann der Zusatz-Kopfabschnitt der höherwertigen
Adresse verwendet werden, der durch das Bezugszeichen 72 angegeben
ist. Durch Kombinieren der höherwertigen
und der niederwertigen Adressen kann z. B. durch Verwendung von
56 Bits eine größere Speichergröße adressiert werden.
Der niederwertige Zusatz-Kopfabschnitt besitzt ein Typfeld 74;
der Zusatz-Kopfabschnitt der höherwertigen
Adresse besitzt außerdem
ein Typfeld 76.
-
Der Zusatz-Kopfabschnitt der Leseanforderungslänge besitzt
einen Aufbau, der dem des Zusatz-Kopfabschnitts der niederwertigen
Adresse ähnlich
ist, und besitzt ein eindeutiges Typfeld. Dieser Zusatz-Kopfabschnitt
wird bei einem Leseanforderungspaket verwendet, das später genauer
beschrieben wird. Dieser Zusatz-Kopfabschnitt gibt dem Empfänger des
Pakets an, wie viele Datenbytes durch eine andere Vorrichtung, d.
h. den Absender des Anforderungspakets angefordert werden.
-
Nach der Beschreibung des Paket-Kopfabschnitts
wird nun der Paketkörper
beschrieben. Der Paketdatenabschnitt wird im Allgemeinen für Befehlspakete
und Datenpakete verwendet. Diese Arten von Paketen werden später genauer
beschrieben. Die Paketdaten 34 (1) können
jede Länge besitzen,
sie können
jedoch in einem System durch Hardware-Einschränkungen begrenzt sein. Der
Datenabschnitt wird im Allgemeinen an Bytegrenzen beibehalten und
Daten können
aufgefüllt
sein, damit diese Einschränkung
der Ausrichtung erfüllt
wird. Eine derartige Ausrichtung verringert die Komplexität in Datenleitvorrichtungen.
-
Es werden nun verschiedene Typen
von Paketen genauer beschrieben.
-
Ein Muster-Datenpaket ist in 5 gezeigt. Dieses Datenpaket
enthält
einen Kopfabschnitt 80 mit einen Kopfabschnitt 82 und
einem Zusatz-Kopfabschnitt 84. Daten sind durch das Bezugszeichen 86 angegeben.
Ein Paket-Endabschnitt ist durch das Bezugszeichen 88 angegeben.
Es sollte klar sein, dass dieses Muster-Paket einen kurzen Datenabschnitt 86 aufweist,
da es ein Anschauungsbeispiel ist. In echten Systemen sind Pakete
im Allgemeinen viel größer. Der
Endabschnitt 88 enthält
ein Reservefeld 90 und ein Prüfsummenfeld 92. Der
Prüfsummenwert 92 im
Endabschnitt 88 wird durch Addieren von Bytes des Kopfabschnitts,
der Zusatz-Kopfabschnitte der Daten und des Reservefelds des Endabschnitts
berechnet.
-
Das Datenfeld 86 enthält gepackte
Daten mit ganzzahligen Abschnitten 90 und Teilabschnitten 92. Zwei
Bytes sind zum Auffüllen
vorgesehen, wie durch das Bezugszeichen 94 angegeben ist.
Die Daten in dem Paket können
unvollständige
Daten enthalten, wenn unter den Paketen eine Reihenfolge eingehalten
wird. Bei diesen Paketformaten können
die Daten SMPTE-konform oder nicht SMPTEkonform sein. Bei SMPTE-konformen
Daten können
die Daten nicht 0 × 00
oder 0 × ff
sein. Demzufolge besitzen 8 Bit-Daten auf einer 10 Bit-Verbindungsleitung
die Bits "01" vor den Kopfabschnitt-
und Endabschnitt-Daten und die Bits "00" nach
den Komponenten- und Alpha-Daten. Nicht SMPTE-konformen Daten in
einem Datenabschnitt eines Pakets ist "01" vorangestellt.
-
Der Fluss von Datenpaketen von einem
Absender zu einem Empfänger
wird in der Weise gesteuert, die dem Flusssteuerungsmechanismus ähnlich ist,
der in der US-Patentanmeldung Serien-Nr. 08/879.981 enthalten ist.
Mit anderen Worten, eine sendende Vorrichtung sendet Daten in Antwort
auf eine Datenanforderung vom Empfänger. Beim Paketprotokoll wird
ein Anforderungspaket verwendet, um die Datenanforderung vom Empfänger zu
befördern. Das
Anforderungspaket ist eine Anforderung von mehreren Paketen, die
an einer festgelegten Adresse beginnen können. Das Anforderungspaket
kann außerdem
Daten zur Verwendung bei der Steuerung der Rate, bei der die Pakete
gesendet werden, enthalten. Ein Muster-Anforderungspaket ist in 6 gezeigt.
-
In 6 enthält das Anforderungspaket
einen Kopfabschnitt 100, der oben beschrieben wurde. Der
Zusatz-Kopfabschnitt 102 der Leseanforderungslänge identifiziert
die Anzahl der Bytes, die angefordert werden. Wenn eine Vorrichtung
einen Speicher enthält,
können
Adressen-Zusatzfelder 104 und 106 verwendet werden,
um Daten von einer bekannten Adresse in der Vorrichtung anzufordern.
Ein Endabschnitt 108 eines Anforderungspakets enthält ein Paket-Ratenfeld 110 und
ein Paket-Prüfsummenfeld 112.
Das Prüfsummenfeld 112 ist
eine Summe aller Komponenten des Pakets. Bei Systemen, in denen Daten
bei veränderlichen
Raten zwischen Absendern und Empfängern übertragen werden, z. B. Datenfluss-Systemen, besteht
eine Möglichkeit
der Auslastung der Verbindungsleitung durch eine einzelne Vorrichtung.
Um dieses Problem zu bewältigen,
wird das Paket-Ratenfeld 110 verwendet,
um die Rate der Daten zu steuern, die zwischen den Vorrichtungen,
die eine Verbindungsleitung gemeinsam verwenden, fließen, um
deren Verwendung der Verbindungsleitung festzulegen. Ein Absender
auf der gemeinsam verwendeten Verbindungsleitung empfängt ein
Anforderungspaket von einem Empfänger,
das eine Paketrate für
diesen Absender festlegt. Ein Absender besitzt einen Zähler, der
anfangs mit der Paketrate geladen wird. Dieser Zähler wird auf die Komponentenrate des
Systems verringert, wie etwa auf 27 MHz für ein standardmäßig definiertes
fernsehgestütztes
System. Wenn der Zähler
einen Endstand erreicht, wird ein Datenpaket durch den Absender
gesendet. Der Zähler
wird auf den letzten Wert der Paketrate erneut initialisiert, wenn
kein neues Anforderungspaket mit einem neuen Wert der Paketrate
empfangen wurde. Als Beispiel kann in einem System, das Pakete mit 128 Komponenten
bei einer Datenrate von 27 MHz verwendet, das Paketratenfeld auf
einen Wert von 128 gesetzt werden. Die Kombination aus
Anforderungspaket und Datenpaket ermöglicht, dass der Datenfluss
zwischen Vorrichtungen gesteuert werden kann. Bei einem paketgestützten Flusssteuerungsmechanismus
löst das
Anforderungspaket die Übertragung
von Daten von einem Absender aus, diese Anforderung ist jedoch im
Allgemeinen widerrufbar. Im Unterschied dazu kann bei einer Verbindungsleitung
mit Flusssteuerung auf Hardwareebene das Abschalten eines Anforderungssignals
die Fähigkeit
eines Absenders zur Datenübertragung
beenden, bevor Daten übertragen
wurden.
-
Ein weiterer Typ des Pakets ist ein
Befehlspaket, das in 7 gezeigt
ist. Das Befehlspaket kann verwendet werden, um Befehlsdaten über das System
zu übertragen,
jedoch anders als Daten, die verarbeiten werden müssen. Der
Inhalt eines Befehlspakets kann für alle Vorrichtungen, mit Ausnahme
der empfangenden Vorrichtung, transparent oder irrelevant sein.
Ein Befehlspaket 120 besitzt einen Kopfabschnitt 122,
einen Zusatz-Kopfabschnitt 124, Befehlsdaten 126 und
einen Endabschnitt 128. Die Kopfabschnitte sind in dem
oben in Verbindung mit 2 beschriebenen
Format. Ein Zusatz-Kopfabschnitt 124 der Art Paket-Deskriptor wird verwendet, um
die Anzahl der Bytes der Befehlsdaten in dem Datenabschnitt 126 anzugeben.
Der Paket-Endabschnitt 128 enthält ein Prüfsummenfeld 130. Das Prüfsummenfeld
kann sich in der gleichen Position befinden und kann in den verschiedenen
Typen von Paketen dieselbe Wortlänge
besitzen, um die Verarbeitung der Pakettypen durch verschiedene
Vorrichtungen zu vereinfachen. Die Wortlänge des Prüfsummenwerts ist durch die
Wortlängen
des Transportmediums definiert.
-
Ein weiterer Pakettyp ist ein Unterbrechungspaket.
Unterbrechungstypen enthalten adressierte Unterbrechungen und Sendeunterbrechungen. Es
werden nun Unterbrechungspakete in Verbindung mit 8 beschrieben. Ein adressiertes Unterbrechungspaket
wird verwendet, um eine Unterbrechung an eine bestimmte Vorrichtung
zu richten. Sendeunterbrechungspakete sind systemdefinierte globale
Unterbrechungen, die an alle Vorrichtungen in einem System gesendet
werden. Der Typ des Unterbrechungspakets ist durch das Typfeld 40 und
seinen Kopfabschnitt 140 festgelegt. Das Unterbrechungspaket
enthält
außerdem
einen Endabschnitt 142 und keinen Datenabschnitt. Der Kopfabschnitt leitet
die Unterbrechung zum Ziel in der gleichen Weise wie bei anderen
Typen von Paketen. Der Endabschnitt besitzt ein Unterbrechungsfeld 144,
das eine Unterbrechungszahl festlegt. Ein Rückkehrweg zur Quelle des Unterbrechungspakets
wird außerdem
durch ein Quellenkennungsfeld 146, den Unterbrechungsidentifizierer 148 und
Quellenfelder 150 bereitgestellt. Die Verwendung der Felder 146, 148 und 150 ist
gleich der Verwendung der Felder 46, 48 und 50 eines
Paket-Kopfabschnitts (siehe 2). Ein
weiterer Unterschied zwischen adressierten Unterbrechungspaketen
und Sendeunterbrechungspaketen ist die Bedeutung des Unterbrechungswerts 144.
Eine adressierte Unterbrechung besitzt eine Signifikanz für den Absender
und den Empfänger
der Unterbrechung. Die Vorrichtung, die die Unterbrechung empfängt, identifiziert
des Typ der Vorrichtung an der Rück sprungsadresse
und interpretiert die Unterbrechung dementsprechend. Adressierte
Unterbrechungen werden im Allgemeinen an Vorrichtungen gesendet,
die Verarbeitungselemente enthalten, die sie interpretieren können. Im
Unterschied dazu kann jede Leitvorrichtung im System eine Sende-Unterbrechung
erkennen und an alle angeschlossenen Vorrichtungen übertragen.
Die Zieladresse im Kopfabschnitt ist die Adresse der Vorrichtung,
die den Hostrechner unterbrechen soll. Ein Quellenrücksprungweg
ist in Bezug auf die Vorrichtung, die als Ziel adressiert ist, definiert.
Beispielhafte Unterbrechungen des Sendetyps enthalten ein Unterbrechungsfreigabesignal,
Halt-, Systemrücksetz-,
Paketprüfsummen-
und Formatfehler-, Paritätsfehler- und
Neusynchronisationsbefehle. Weitere Unterbrechungen können außerdem definiert
sein.
-
Das oben definierte Paketprotokoll
und Variationen davon können über verschiedene
Arten von Verbindungsleitungen übertragen
werden, die komponentengestützte
Flusssteuerungs-Verbindungsleitungen, zeitmultiplexierte komponentengestützte Verbindungsleitungen
und verschiedene Computer-Verbindungsleitungen enthalten, die Verbindungsleitungen
für periphere
Komponenten (PCI), fortschrittliche Graphikanschlüsse (AGP),
Faserkanäle,
FireWire-Verbindungsleitungen nach IEEE-1394 sowie serielle Schnittstellen
gemäß SMPTE-259M,
SMPTE-291M und SMPTE-292M einschließen. Für jede dieser Arten der Schnittstellen kann
ein Sende-Empfangs-Gerät
vorgesehen sein. Ein Sende-Empfangs-Gerät
empfängt
Daten von einem Verarbeitungselement und erzeugt ein Paket in Übereinstimmung
mit dem Paketprotokoll. In der umgekehrten Richtung werden die Paketprotokoll-Informationen
erfasst und entfernt und die Daten werden an die Verarbeitungsvorrichtung
geliefert. Die Funktionen von verschiedenen Arten der Sende-Empfangs-Geräte für die Verarbeitung
von Paketen in diesem Protokoll werden nun beschrieben.
-
In 9 werden
die Signale einer komponentengestützten parallelen Verbindungsleitung
beschrieben. Diese Verbindungsleitung enthält einen Referenztakt 160,
Daten 162, ein optionales Signal 164 "Daten gültig", ein Signal 166 "Befehl gültig", ein Anforderungssignal 168 und
ein Grenzsignal 170. Die Bedeutung und die Verwendung dieser
Signale sind in der US-Patentanmeldung Nr. 08/879.981 genauer beschrieben.
-
Unter Verwendung dieser Verbindungsleitung
codiert ein Sende-Empfangs-Gerät
ein Paket unter Verwendung des Signals 164 "Daten gültig" und des Signals 166 "Befehl gültig". Diese beiden Signale
können
in Kombination vier Zustände
bezeichnen, die den Wartezustand der Verbindungsleitung und das
Vorhandensein des Kopfabschnitts, der Daten und des Endabschnitts
angeben. In dieser Ausführungsform
könnte
die Niederpegel-Verbindungsleitung ihre eigene Flusssteuerung besitzen,
die durch das Anforderungssignal geschaffen wird, der Datenfluss
zwischen Empfänger
und Sender könnte jedoch
außerdem
durch die Anforderungspakete und die Datenpakete gesteuert werden,
die zwischen ihnen ausgetauscht werden. Für diesen Zweck wären Duplex-Verbindungsleitungen
vorgesehen. In dem in 9 gezeigten
Beispiel stellen "Daten
0" und "Daten 1" einen Kopfabschnitt
dar, "Daten 2" sind Paketdaten. "Daten 3" sind der Paket-Endabschnitt. Die restlichen
Taktzyklen würden
ungültige
Daten auf dem Datenbus angeben.
-
Bei der Art der Codierung eines Pakets,
die in 9 gezeigt ist,
können
Pakete in einfacher Weise über
eine Signal-Verbindungsleitung zeitmultiplexiert werden. Die Zeitmultiplexierung
kann paketweise ausgeführt
werden, d. h. indem für
jedes Paket ein Kanal vorhanden ist.
-
Bei jeder Verbindungsleitung kann
von der Verbindungsleitung ein Grenzsignal weggelassen werden, da
das Paket eine Anzeige der Grenze der Daten enthält. Außerdem können an Stelle eines verschachtelten
Formats nacheinander zwei Pakete über die Verbindungsleitung
gesendet werden.
-
Um die Echtzeit-Funktionsweise eines
Systems, das Pakete verwendet, sicherzustellen, sollte die Schnittstelle
bei einer Rate getaktet werden, die schneller als die Bandbreite
einer Schnittstelle ist.
-
Paketdaten können außerdem an Stelle von flussgesteuerten
Verbindungsleitungen über
Standard-Computer- und Video-Verbindungsleitungen übertragen
werden, wie oben erwähnt
wurde. Bei paketgestützten
Verbindungsleitungen, wie etwa FireWire nach IEEE-1394, Faserkanal
oder Netze mit asynchronem Übertragungsmodus,
sind die Pakete in diesem Paketprotokoll einfach Daten in Paketen des
verwendeten Netzprotokolls. Bei weiteren Computerverbindungsleitungen,
wie etwa ein Bus der Verbindungsleitung peripherer Komponenten (PCI), ein
Bus des fortschrittlichen Graphikanschlusses (AGP) oder ein anderer
Bus, sowie lokale Netze, die nicht paketgestützt sind, können die Pakete direkt durch
die Verarbeitungselemente verarbeitet werden, die die Pakete senden
und empfangen. Eine Verarbeitungsvorrichtung, die einer derartige
Schnittstelle zugeordnet ist, liefert einen neuen Kopfabschnitt,
der die Leitinformationen enthält,
um einen verarbeiteten Videostrom zu seinem richtigen Ziel zu senden.
-
10A veranschaulicht
ein Paket-Sende-Empfangs-Gerät 300,
das so geschaltet ist, dass es Daten von einer oder von mehreren
Vorrichtungen 302 empfängt.
Die Verbindung mit dem Bezugszeichen 304 kann eine direkte
Datenverbindung sein, über
die der Datenfluss durch ein Protokoll gesteuert wird. Das Sende-Empfangs-Gerät 300 ist
außerdem über einen ähnlichen
Anschluss 308 mit einer oder mit mehreren Vorrichtungen 306 verbunden.
Das Sende-Empfangs-Gerät 300 sendet
Daten an die Vorrichtungen 306. Die Anschlüsse 304 und 308 sind durch
einen dynamisch konfigurierten Schalter 310 verbunden,
der unter Verfahren der obenbeschriebenen Verfahren konfiguriert
werden kann. Der Schalter 310 kann die Vorrichtungen 302 entweder
mit den Vorrichtungen 306 oder mit dem Sende-Empfangs-Gerät 300 verbinden.
Für jeden
Anschluss des Sende-Empfangs-Geräts 300,
der Daten von einer Vorrichtung 302 empfangen kann, besitzt
das Sende-Empfangs-Gerät 300 einen
Sendepuffer 312, der als ein FIFO-Puffer konfiguriert sein
kann. Wenn der FIFO-Puffer 312 voll ist, wird ein Signal
durch die Anforderungslogik 314 erzeugt, die ein Anforderungssignal
an die Vorrichtung 302 ausgibt. Das Sende-Empfangs-Gerät 300 kann
gleichfalls Daten an die Vorrichtung 306 senden, indem
Daten von einem Empfangspuffer 316 gesendet werden, der
als ein FIFO-Puffer implementiert sein kann. Ein Anforderungssignal
von der Vorrichtung 306 wird durch die Anforderungslogik 314 verarbeitet,
um einen Lesebefehl an den Empfangspuffer 316 auszugeben.
Weitere ähnliche
Sendepuffer und Empfangspuffer (die nicht gezeigt sind), die weiteren ähnlichen
Vorrichtungen entsprechen, sind durch Schalter 320 bzw. 322 verbunden.
-
Der Datenfluss zwischen Vorrichtungen 306 und 302 und
dem Sende-Empfangs-Gerät 300 wird durch
den Zustand der FIFO-Puffer 312 und 316 geregelt.
Das Sende-Empfangs-Gerät 300 versucht,
einen konstanten Datenfluss zwischen den FIFO-Puffern 312 und 316 und
den Vorrichtungen 302 und 306 aufrechtzuerhalten,
indem an weitere Vorrichtungen Anforderungspakete ausgegeben werden
oder indem Daten in Antwort auf Anforderungen von anderen Vorrichtungen
gesendet werden, wenn Daten zur Verfügung stehen.
-
Um Daten von der Vorrichtung 302 über das Sende-Empfangs-Gerät 300 zu
senden, wenn Daten im Puffer 312 verfügbar sind, wird ein Paketbereitsignal
an die Paketsendelogik 324 gesendet. Die Paketsendelogik 324 liefert
ein Datenbereitsignal 326 an die Schalterwähleinrichtung 328.
Wenn eine Berechtigung für
die Übertragung
von Daten für
diesen Kanal besteht, stellt die Schalterwähleinrichtung 328 den
Zustand des Schalters 320 ein und sendet ein Sendedatensignal 330 an
die Paketsendelogik 324. Die Paketsendelogik 324 weist
wiederum den FIFO-Puffer 312 an, Daten zu lesen, die an
eine Paketpackeinrichtung 332 übertragen werden. Die Paketpackeinrichtung 332 bildet
die Daten zu einem Paket und liefert es an einen Puffer 334,
der das Paket ausgibt. Der Paketpuffer 334 kann ein Doppelpuffer sein,
um die Paketübertragung
mit der Paketbildung zu überlappen.
Jeder Anschluss, z. B. 304 und 308, besitzt einen
eindeutigen Stromidentifizierer (SID), der ihm zugeordnet ist. Daten
und Datenanforderungen werden an die Anschlüsse gerichtet, die durch den
SID identifiziert sind. Der SID kann außerdem verwendet werden, um
einen Paketkontext zu identifizieren, der für jeden Strom bereitgestellt
wird und durch das Bezugszeichen 336 angegeben ist. Der Paketkontext 336 wird
beim Aufbau der Paketkopfabschnitte, die die Zieladressierung, den
Stromidentifizierer usw. enthalten, verwendet.
-
Die Übertragung von Daten von einer
Vorrichtung 302 wird in Antwort auf ein Anforderungspaket,
das durch das Sende-Empfangs-Gerät 300 empfangen
wird, ausgeführt.
Das Paket wird in einem Puffer 338 empfangen, der ebenfalls
als ein Doppelpuffer implementiert sein kann. Der Stromidentifizierer
in einem Paket wird durch die Stromauswahlschaltung 340 verwendet,
um unter Verwendung des Schalters 322 eine Vorrichtung 306 auszuwählen. Die
Paketentpackeinrichtung 342 wandelt den Kopfabschnitt und
die Datenabschnitte des Pakets in ein Anforderungssignal 344 bzw.
Daten 346 um. Das Anforderungssignal 344 wird
an die Schalterwähleinrichtung 328 geliefert,
um ein Sendedatensignal 330 an den angegebenen Kanal zu
erzeugen. Wenn Daten empfangen werden, erzeugt die Paketanforderungslogik 348 eine
Paketanforderung 350, wenn der FIFO-Puffer 316 nicht
voll ist. Das Paketanforderungssignal 350 fordert die Schalterwähleinrichtung 328 auf,
eine Sendepaketanforderung 352 an die Paketpackeinrichtung 332 auszugeben.
Das Sende-Empfangs-Gerät 300 kann
außerdem
verwendet werden, um Befehlspakete in Antwort auf Befehlsdaten zu
erzeugen.
-
Die Rate, bei der Daten durch das
Sende-Empfangs-Gerät 300 gesendet
werden, kann außerdem
in Antwort auf einen Paketraten-Steuerwert, der in einer Anforderung
für Daten
identifiziert wird, gesteuert werden. Der Paketraten-Steuerwert
kann durch das Anforderungssignal 344 an die Schalterwähleinrichtung 328 ge liefert
werden. Die Schalterwähleinrichtung 328 enthält, wie
oben beschrieben wurde, einen Zähler,
der die Rate steuert, bei der Pakete durch die Paketpackeinrichtung 332 ausgegeben
werden.
-
10B veranschaulicht
eine beispielhafte Verbindungsleitung der Vorrichtungen unter Verwendung
von Sende-Empfangs-Geräten,
wie etwa das Sende-Empfangs-Gerät 300 von 10A. In diesem Beispiel
ist das System 400 mit dem System 402 durch eine
Paketprotokoll-Verbindungsleitung 404 verbunden. Die Sende-Empfangs-Geräte 406 und 408 schaffen
eine Verbindung zur Verbindungsleitung 404 und sind in
der in 10A gezeigten
Weise implementiert. Das System 402 enthält Vorrichtungen 410, 412, 414 und 416,
die in derselben Weise mit dem Sende-Empfangs-Gerät 408 verbunden
sind wie die Vorrichtungen 302 und 304 in 10A mit dem Sende-Empfangs-Gerät 300 verbunden
sind. Die Vorrichtungen 418, 420, 422 und 424 sind
in ähnlicher
Weise mit dem Sende-Empfangs-Gerät 406 verbunden.
Die Vorrichtung 420 ist eine zeitmultiplexierte Schnittstelle,
die zwei Vorrichtungen 426 und 428 mit dem Sende-Empfangs-Gerät 406 verbindet. Datenströme in dem
System können
unter Verwendung der Sende-Empfangs-Geräte 406 und 408 zwischen
Vorrichtungen und sogar zwischen Vorrichtungen in demselben System
geleitet werden, da die Sende-Empfangs-Geräte 406 und 408 einen
dynamisch konfigurierten Schalter 310 (10A) enthalten. Außer der Vermittlung zwischen
Vorrichtungen ermöglicht
dieser Sende-Empfangs-Geräteschalter die
Erzeugung von mehreren Stromkopien aus einem einzelnen Datenstrom.
-
Ein weiteres beispielhaftes System
ist in 10C gezeigt.
In 10C sind die Systeme 450 und 452 durch
eine Paketprotokoll-Schnittstelle 454 miteinander verbunden.
Die Verbindung wird durch Sende-Empfangs-Geräte 456 und 458 geschaffen, die
unter Verwendung des in 10A gezeigten Sende-Empfangs-Geräts implementiert
sind. Das System 452 enthält eine erste Vorrichtung 460,
die drei Datenkanäle
verwendet, die mit dem Sende-Empfangs-Gerät 458 verbunden sind.
Eine derartige Vorrichtung kann eine hochauflösende Fernsehvorrichtung (HDTV)
sein, die einen 4 : 2 : 2-Videokanal und einen Alphakanal verwendet.
Eine ähnliche Vorrichtung 462 ist
im System 450 vorhanden. Die Vorrichtung 464 verwendet
einen Kanal und kann ein Fernsehsignal mit Standardauflösung (SDTV)
liefern, das einen 4 : 4 : 4 : 4-Videokanal und einen Alphakanal
definiert. Eine ähnliche
Vorrichtung 466 ist im System 450 gezeigt. In
dieser Ausführungsform
kombiniert das Sende-Empfangs-Gerät 456 mehrere Eingangsströme, z. B.
von den Vorrichtungen 462 und 460 zu einer einzelnen
schnellen Verbindung 454. Der einzelne Datenstrom von der
Verbindung 454 wird in mehrere Ströme an die Vorrichtungen 460, 462, 464 und 466 unterteilt.
Diese Möglichkeit
ist nützlich,
wenn Datenströme übertragen
werden, die bei einer Rate betrieben werden, die über der
Rate eines einzelnen Anschlusses liegt.
-
Bei diesen Ausführungsformen ermöglicht die
Kombination einer FIFO-Puffers und Flusssteuerungsprotokollen für jeden
Anschluss an dem Sende-Empfangs-Gerät, dass das Sende-Empfangs-Gerät den maximalen
Datendurchsatz aufrechterhält, wenn
Vorrichtungen über
eine Paketprotokoll-Schnittstelle, z. B. die Schnittstelle 454 und
das Sende-Empfangs-Gerät
verbunden werden. Der hohe Durchsatz und eine effektive Verbindungsausnutzung
werden bei einem flexiblen Leitverfahren geschaffen.
-
Ein Vorteil dieses Protokolls wird
in Verbindung mit 11 veranschaulicht.
In 11 enthält ein erstes
Computersystem 200 eine Hostrechner-CPU 202, die
an eine PCI-Hostrechner-Brücke 204 angeschlossen
ist, die wiederum an zwei Hostrechner-Busse 206 und 208 angeschlossen
ist. Die PCI-Brücke
verbindet außerdem
die Hostrechner-CPU 202 mit dem Hostrechner- und Systemspeicher 210 und über einen
AGP-Bus mit einem graphischen Untersystem 212. An den ersten
PCI-Bus 206 sind eine Plattenanordnung 214 und
ein Videountersystem 216 angeschlossen. Eine Systemplatte 218 und
eine LAN-Schnittstelle 220 (Lokalnetz-Schnittstelle) sind
außerdem
an den zweiten PCI-Bus 208 angeschlossen. Die LAN-Schnittstelle
verbindet das System 200 mit anderen Computersystemen 222, 224 und 226.
Das erste Computersystem 200 besitzt eine Schnittstelle 228 gemäß IEEE-1394,
die mit ähnlichen
Schnittstellen im System 224 und im System 226 verbindet.
Die Systeme 224 und 226 sind an eine ähnliche
Schnittstelle im System 222 angeschlossen. Bei diesem System
ist das Computersystem 222 nicht direkt über eine
Schnittstelle gemäß IEEE-1394
mit dem System 200 verbunden. Unter Verwendung eines Paketprotokolls
kann jedoch das Computersystem 200 Daten über seine
Schnittstelle 228 gemäß IEEE-1394
zum System 224 leiten, das wiederum die Daten an das System 222 senden kann.
Das System 222 kann die Daten verarbeiten und die Daten über das
System 226 oder 224 an das System 200 zurückgeben.
-
Das Schicken von Paketen über verschiedene
Computerverbindungsleitungen mit diesem Paketprotokoll ermöglicht demzufolge,
dass lenkbare Videoströme
schnell in Standard-Computerumgebungen und aus diesen heraus geschickt
werden können.
Ein Videountersystem kann somit eine geeignete Umgebung besitzen,
um mit Videoanwendungen, die auf dem Host-Verarbeitungscomputer und
auf anderen Computern im System laufen, in Wechselwirkung zu treten.
Somit kann nun ein Computer in einem Mehrcomputersystem in einer
viel größeren Mehrsystemumgebung
als ein Videoverarbeitungsknoten verwendet werden. Zum Beispiel
können
die Leitinformationen, die in dem Paket verfügbar sind, verwendet werden,
um Videodaten an eine bestimmte Verarbeitungs- oder Hardwarekomponente in
einem fernen Verarbeitungsknoten zu schicken. Ein Flusssteuerungskanal
unter den Komponenten, der z. B. durch die LAN-Schnittstellen 220 bereitgestellt
wird, ermöglicht,
dass eine derartige Lenkung asynchron ausgeführt wird, so dass die zeitliche
Beziehung zwischen den mehreren Strömen aufrechterhalten und in
einem großen
System durchgehend gesteuert werden kann.
-
Daten können außerdem über Standard-Videoverbindungsleitungen,
wie etwa eine serielle Schnittstelle SMPTE-259M oder eine serielle
Schnittstelle SMPTE-292M, übertragen
werden. Eine serielle Standard-Schnittstelle kann außerdem verwendet werden.
Wie in 12 gezeigt ist,
kann z. B. ein erstes System 240 unter Verwendung von Videoverbindungsleitungen 244 und 246 mit
einem zweiten System 242 verbunden sein. Diese Verbindungsleitungen
können
Daten über
Schnittstellen 256, 258, 260 und 262 an
Videovorrichtungen 248, 250, 252 und 254 liefern.
Da diese Standard-Videoverbindungsleitungen Daten trunkieren können oder
nach Markercodes suchen können,
können
Vorrichtungen an jedem Ende einer Schnittstelle so modifiziert werden, dass
sie Pakete verarbeiten, bevor der Strom trunkiert oder gemäß dem Standard
modifiziert wird. Bei diesen Ausführungsformen können die
Pakete in diesem Protokoll in dem Datenformat, das durch die Standards
verwendet wird, eingebettet sein. Im Einzelnen wird ein Bild aus
Videodaten, die über
die seriellen Verbindungsleitungen übertragen werden, durch den
SMPTE-Standard 125M-1996 festgelegt. Es wird erwartet, dass Zusatz-Datenfelder
dem SMPTE-Standard 291M-1996 entsprechen. Bei diesen Formaten gibt
es ein vertikales Zusatz-Datenfeld, ein optionales vertikales Zusatzfeld,
aktive Video- und horizontale Zusatz-Datenfelder für jedes
Feld eines Bilds aus verschachtelten Videodaten. Für einen
kontinuierlichen Transport des Videos werden die aktiven Videodaten
und die Zusatzdaten dieses Paketprotokolls auf die aktiven Abschnitte
und die Zusatzabschnitte des seriellen digitalen Schnittstellenprotokolls
ausgerichtet. Für
den gleichzeitigen Transport von Paketen können Daten ungeachtet des Datentyps
sowohl in den aktiven Videoabschnitten als auch Zusatz-Datenabschnitten
angeordnet werden. Die gleichzeitige Übertragung kann außerdem verwendet werden,
um Daten mit höherer
Auflösung
bei Nicht-Echtzeit-Raten zu transportieren, wie etwa für HDTV oder
für die
Film-Editierung. Beide Verbindungsleitungen werden verwendet, um
eine Flussteuerung zu schaffen, z. B. damit das System 242 Anforderungspakete
an das System 240 sendet und Datenpakete vom System 240 empfängt.
-
Wenn kontinuierliche Daten gesendet
werden, werden die aktiven Videokomponenten sowohl horizontal als
auch vertikal auf das Videobild ausgerichtet. Die Videopakete sind
eine Abtastzeile oder sind in 1440 Komponenten enthalten. Der Kopfabschnitt
für das
Videopaket wird für
eine vorgegebene Zeile durch die letzten Daten in einem horizontalen Zusatz-Datenfeld
(HANC) dargestellt. Der Endabschnitt für das Videopaket wird durch
die ersten Daten in dem HANC-Datenfeld
für die
vorherige Zeile als Videodaten angegeben. Kleinere Pakete können zwischen
die Zeile n und den Kopfabschnitt für die Zeile n + 1 im gleichen
HANC-Datenfeld eingeschoben werden. Diese Pakete können entweder
Befehlsdaten oder echte Zusatzdaten enthalten. Der Kopfabschnitt,
der Endabschnitt und die dazwischenliegenden Pakete können sich
in einem 291M-Paket befinden oder es können mehrere 291M-Pakete verwendet
werden.
-
Zum Beispiel kann der HANC-Abschnitt
einer Abtastzeile den Paket-Endabschnitt für das Paket, das in der vorherigen
Abtastzeile gesendet wurde, und den Paket-Kopfabschnitt für die momentane Abtastzeile
enthalten. Das gesamte HANC-Datenfeld ist
durch ein einzelnes SMPTE 291M-Paket belegt.
-
Die Felder "Ende des aktiven Videos" (EAV) und "Beginn des aktiven
Videos" (SAV) sind
in SMPTE 294M festgelegt und enthalten vier Codeworte: ein Wort
für alle
Einsen (0 × 3ff),
zwei Worte für
alle Nullen (0 × 000)
und ein Codewort, das F, V, H (Feld, Vertikal, Horizontal), P3,
P2, P1 und P0 (Paritätsbits) enthält. Der
Zusatzdaten-Kopfabschnitt ist in SMPTE 125M in den Abschnitten 3.6.1
und 3.6.2 definiert. Er ist als ein aus drei Worten bestehender
Kopfabschnitt definiert, wobei das erste Wort alle Nullen darstellt und
die nächsten
beiden Worte alle Einsen darstellen. Dieser Kopfabschnitt wird verwendet,
um die Erfassungsschaltung über
das Vorhandensein von Zusatzdaten zu informieren.
-
Das Zusatzdaten-Paketprotokoll ist
in SMPTE 291M definiert. Der Kopfabschnitt enthält drei Worte. Die oberen 8
Bits (9 : 2) jedes Worts definieren den Kopfabschnitt. Das erste
Wort ist der Datenidentifizierer (DID). Der DID ist einer von zwei
Typen. Typ 1 gibt an, dass das nächste
Byte als eine Datenblocknummer (DBN) interpretiert werden sollte.
Typ 2 gibt an, dass das nächste
Wort eine Erweiterung des DID-Felds ist. Die DIDs von 0 × 00 bis
0 × ff
werden verwendet, um den Typ 1 anzugeben. 0 × 01 bis 0 × 7f werden verwendet, um den
Typ 2 anzugeben. 0 × 00
ist der nicht definierte Datenidentifizierer und kann verwendet
werden. Das zweite Wort für
einen Kopfabschnitt Typ 1 ist die DBN. Die DBN ist im Abschnitt 3.9
der 291 M-Spezifikation definiert und ist ein Paketzähler, der
für jedes
Feld bei null beginnt und erhöht
wird, wenn ein Paket von diesem DID vorhanden ist. Die DBN schlägt um, wenn
mehr als 255 Pakete in einem Bild vorhanden sind. Das dritte Feld
ist der Datenzähler
(DC). Er ist ein Zähler
der Anzahl von Komponenten, die in den Zusatzdaten vorhanden sind.
Da der Kopfabschnitt eine 8 Bit-Entität ist (mit 2 Paritätsbits bei
10 Bit-Anwendungen), beträgt die
maximale Anzahl von Komponenten in einem Paket 255. Der DC ist im
Abschnitt 3.10 der 291M-Spezifikation definiert.
-
291M-Paketen folgt eine Prüfsumme.
Diese Prüfsumme
ist im Abschnitt 3.12 der 291M-Spezifikation definiert. Bei 10 Bit-Anwendungen
ist sie als eine 9 Bit-Prüfsumme aller
Komponenten des Pakets einschließlich Kopfabschnitt definiert.
Die Bits 8 : 0 enthalten die Prüfsumme
und Bit 9 ist die Umkehrung von Bit B. Diese Umkehrung verhindert,
dass die Prüfsumme
wie ein Markercode aussieht.
-
SMPTE 125M legt fest, dass alle Worte,
die keine Zusatzdaten enthalten, auf 0 × 040 gesetzt werden müssen. Diese
Fülldaten
können
entweder innerhalb oder außerhalb
der Zusatzdaten-Pakete angeordnet werden. Wenigstens zehn Komponenten,
die SMPTE 125M-Fülldaten
darstellen, erscheinen nach dem Paket, da 291M-Pakete bis zu 255 Komponenten
besitzen.
-
Der HANC-Abschnitt einer Abtastzeile
kann einen Paket-Endabschnitt für
das Paket, das in einer vorhergehenden Abtastzeile gesendet wurde,
und den Paket-Kopfabschnitt
für eine
momentane Abtastzeile enthalten. Der Endabschnitt und der Kopfabschnitt
befinden sich somit in verschiedenen 291M-Paketen. Ein Zusatzdaten-Kopfabschnitt
wird vor einem Zusatzpaket-Kopfabschnitt verwendet. Die Fülldaten
können
bei Bedarf innerhalb der Pakete angeordnet sein.
-
Wenn echte Zusatzdaten vorhanden
sind oder wenn Befehlspakete über
die Verbindung gesendet werden, können kleinere Pakete in dem HANC-Feld
oder größere Pakete
in dem VANC-Feld angeordnet sein. Beispiele von echten Zusatzdaten sind
Audioinformationen oder abgeschlossene Zwischentitelinformationen.
-
Ein Paket, das Zusatz- oder Befehlsdaten enthält, kann
mit dem Kopfabschnitt und/oder dem Endabschnitt eines Pakets kombiniert
sein. Obwohl das Paket in einem separaten Zusatzdaten-Paket gezeigt
ist, kann das Paket entweder Teil des Pakets mit dem Kopfabschnitt
oder Teil des Endabschnitts sein.
-
Sowohl SMPTE-konforme als auch nicht SMPTE-konforme
Datenpakete können
auf diese Weise gesendet werden. Befehlspakete sind nicht SMPTE-konform.
Anforderungspakete und Unterbrechungspakete können außerdem über eine 295M-Verbindungsleitung
gesendet werden.
-
Wenn die VANC-Felder für die Paketübertragung
verwendet werden, sind 291M-Zusatzdaten-Pakete
nicht länger
als 255 Komponenten. Pakete könnten
außerdem
nicht mit 291M-Paketen eine Reihe bilden. Mehrere Pakete oder ein
Teil eines einzelnen Pakets können
in einem 291M-Paket enthalten sein. Das Videosystem kann die Paketlänge in diesen
Abschnitten auswählen.
Ein kürzeres
Paket wird für
die Übertragung
während
des HANC-Felds verwendet, um zu bewirken, dass es zwischen den Endabschnitt
der vorherigen Zeile und den Kopfabschnitt der momentanen Zeile
passt. Ein 291M-Zusatzdaten-Paket kann außerdem gemeinsam mit zehn Komponenten
von 0 × 400-Fülldaten
verwendet werden, um die Übertragung
von vier weiteren Komponenten in dem Zusatzdaten- oder Befehlspaket
zu ermöglichen.
-
Ein System kann von der Videotaktgebung
in der 259M-Verbindungsleitung abweichen, solange beide Enden der
Verbindungsleitung die unterschiedliche Verwendung erkennen, um
die Zeilen 14 und 277 für
die Datenübertragung
zu nutzen. Diese Zeilen sind normalerweise für Taktdaten reserviert, die verwendet
werden, um den Videostrom zu synchronisieren. Da isochrone Videodaten
nicht zu einer echten Videovorrichtung gesendet werden, besteht
keine Forderung nach Synchronisation der Übertragung. Für isochrone
Videodaten können
die Pakete jede Länge
besitzen und werden durch EAV-Marker, SAV-Marker, Zusatzdaten-Kopfabschnitte, Zusatzdaten-Paketkopfabschnitte
und Zusatzdaten-Paketprüfsummen
unterbrochen. Diese Marker werden verwendet, um die Daten von seriellen
Formaten in parallele Formate umzuwandeln.
-
Isochrone Pakete können zu
den 291M-Feldern fehlausgerichtet sein. Ein Paket kann vor oder nach
dem Anfang eines Felds beginnen. Ein Paket kann die Grenze zwischen
dem aktiven Videofeld und dem HANC-Feld überbrücken. Wenn das gesamte HANC-Feld
verwendet werden soll, werden wenigstens zwei 291M-Zusatzdatenpakete
verwendet. Zehn Komponenten aus 0 × 040 können an Stelle eines zweiten
Pakets als Fülldaten
verwendet werden. Dieses Verfahren verringert den Umfang der Daten,
die durch drei Komponenten übertragen
werden.
-
Der Flusssteuerungsmechanismus für Videoverbindungsleitungen,
wie etwa die 259M- und 292M-Verbindungsleitungen, ist das Anforderungspaket.
Die Flusssteuerung verwendet eine bidirektionale Kommunikation.
Mit anderen Worten, eine Verbindung wird verwendet, um Anforderungen
an eine Videoquellenvorrichtung zu senden, und eine weitere Verbindung
wird durch die Videoquellenvorrichtung verwendet, um Videodaten
zu senden. Wenn zwei Systeme in einer Weise verwendet werden, bei
der bidirektionaler Videoverkehr vorhanden ist, werden diese beiden
Verbindungen außerdem
verwendet, um Daten zu übertragen.
Wenn die Flusssteuerung paketweise erfolgt, werden isochrone Videoübertragungen
verwendet. Wenn die Flusssteuerung bildweise erfolgt, kann die Übertragung
entweder in kontinuierlicher Form oder in isochroner Form erfolgen. Wenn
die kontinuierliche Form verwendet wird, kann die Dauer eines vollständigen Bilds
verloren gehen, wenn keine Daten angefordert werden.
-
Da das Paketprotokoll verwendet werden kann,
um Daten und Datenfluss-Steuerungsinformationen über mehrere
Verbindungsleitungen einzubetten, und Leitinformationen und Adressierungsinformationen
enthalten kann, können
verschiedene Mehrsystem-Topologien verwendet werden, um eine Videoverarbeitung
flussgesteuert auszuführen.
In dem in 10 gezeigten System kann
der Videoausgang z. B. durch das System 200 geliefert werden, das
auf der Verarbeitung basiert, die durch verschiedene Videoverarbeitungsvorrichtungen
in den Systemen 200, 222, 224 und 226 flussgesteuert
ist. Das Paketprotokoll bietet somit ein flexibles Verfahren zum
Leiten von Daten zwischen Vorrichtungen. Jede Datenspeicher- und
Datenverarbeitungsvorrichtung kann außerdem als eine Vermittlungseinrichtung
arbeiten und kann eine Datenflusssteuerung über ihre Eingangs- und Ausgangsverbindungsleitungen
implementieren.
-
Nachdem einige wenige Ausführungsformen beschrieben
wurden, sollte einem Fachmann klar sein, dass das Voranstehende
nur zur Veranschaulichung dient und nicht einschränkend ist
und lediglich beispielhaft dargestellt wurde. Zahlreiche Modifikationen
und weitere Ausführungsformen
liegen im Anwendungsbereich eines Fachmanns und sollen in den Umfang
der Erfindung fallen.