-
Die vorliegende Erfindung bezieht
sich auf das Gebiet zum Anzeigen von OSD-Grafikdaten auf einer Anzeigeeinrichtung.
Insbesondere bezieht sich die vorliegende Erfindung auf das Gebiet,
OSD-Grafikdaten, die von einer Quelleneinrichtung geliefert werden,
auf einer Anzeigeeinrichtung anzuzeigen.
-
Der IEEE 1394–1995-Standard "1394 Standard For
A High Performance Serial Bus" ist
ein internationaler Standard, um eine preiswerte Hochgeschwindigkeits-Seriellbus-Architektur auszuführen, der
sowohl asynchrone als auch isochrone Formatdatenübertragungen unterstützt. Zusätzlich hat
der IEEE 1394-1995-Bus einen Universaltakt, der als Zyklustimer
bezeichnet wird. Dieser Takt ist auf allen Knotenpunkten synchronisiert.
Isochrone Datenübertragungen
sind Realzeitübertragungen,
die auf der Basis des Universaltakts stattfinden, so dass die Zeitintervalle
zwischen signifikanten Fällen
die gleiche Zeitdauer sowohl bei Übertragungs- als auch bei Empfangsanwendungen
haben. Jedes Datenpaket, welches isochron übertragen wird, wird in seiner
eigenen Zeitperiode übertragen.
Ein Beispiel einer idealen Anwendung zur isochronen Datenübertragung würde von
einem Videorekorder zu einem Fernsehempfänger sein. Der Videorekorder
zeichnet Bilder und Töne
auf und speichert die Daten in diskreten Blöcken oder Paketen. Der Videorekorder überträgt dann
jedes Paket, welches das Bild und den Ton zeigt, die über eine
beschränkte
Zeitperiode aufgezeichnet sind, während dieser Zeitperiode, um
dieses durch das Fernsehgerät
anzuzeigen. Die IEEE 1394-1995-Standard-Bus-Architektur
liefert unabhängige
Mehrfachkanäle
für die
isochrone Datenübertragung
zwischen Anwendungen. Eine Sechsbit-Kanalnummer wird mit den Daten
gesendet, um den Empfang durch die geeignete Anwendung sicherzustellen.
Dies erlaubt, dass Mehrfachanwendungen simultan isochrone Daten über die
Busstruktur übertragen
können.
Asynchrone Übertragungen sind
traditionell verlässliche
Datenübertragungsoperationen,
die stattfinden, sobald eine Entscheidung getroffen ist, und übertragen
eine maximale Datenmenge von einer Quelle zu einem Bestimmungsort.
-
Der IEEE 134-1995-Standard stellt
einen seriellen Hochgeschwindigkeitsbus bereit, um digitale Einrichtungen
miteinander zu verbinden, wodurch eine universelle UO-Ver bindung
geliefert wird. Der IEEE 1394-1995-Standard definiert eine digitale Schnittstelle
für die
Anwendung, wodurch die Notwendigkeit beseitigt wird, dass eine Anwendung
Digitaldaten in Analogdaten umsetzen muss, bevor diese über den
Bus übertragen
werden. Somit wird eine Empfangsanwendung Digitaldaten vom Bus empfangen,
und nicht Analogdaten, und es wird daher nicht erforderlich sein,
Analogdaten in Digitaldaten umzusetzen. Das Kabel, welches für den IEEE 1394-1995-Standard
erforderlich ist, ist sehr dünn
im Vergleich zu dickeren Kabeln, die verwendet werden, diese Einrichtungen
bei anderen Verbindungsverfahren zu verbinden. Einrichtungen können hinzugefügt werden
oder sie können
von einem IEEE 1394-1995-Bus entfernt werden, während der Bus arbeitet. Wenn
eine Einrichtung hinzugefügt
oder entfernt wird, wird sich der Bus dann automatisch neu konfigurieren,
um Daten zwischen den existierenden Knoten zu übertragen. Ein Knoten wird
als logische Einheit mit einer einmaligen Adresse auf der Busstruktur
angesehen. Jeder Knoten liefert bei einem Standardadressenplatz,
einem Identifikations-ROM, einen standardisierten Satz an Steuerregistern
und zusätzlich
seinen eigenen Adressplatz.
-
Der IEEE 1394-1995-Standard definiert
ein Protokoll, wie in 1 gezeigt
ist. Dieses Protokoll enthält
einen Seriellbus-Verwaltungsblock 10, der mit einer Transaktionszone 12,
einer Verknupfungszone 14 und einer realen Zone 16 gekoppelt
ist. Die reale Zone 16 liefert die elektrische und mechanische Verbindung
zwischen einer Einrichtung und dem IEEE 1394-1995-Kabel. Die reale
Zone 16 liefert außerdem
die Entscheidung, um sicherzustellen, dass alle Einrichtungen, die
mit dem IEEE 1394-1995-Bus gekoppelt sind, beliebigen Zugriff auf
den Bus sowie auch auf aktuelle Datenübertragung und Empfang haben.
Die Verknüpfungszone 14 liefert
den Datenpaket-Lieferdienst für
sowohl den asynchronen als auch den isochronen Datenpakettransport.
Dies unterstützt
sowohl den asynchronen Datentransport, wobei ein Anerkenntnisprotokoll
verwendet wird, als auch den isochronen Datentransport, der ein
Nichtanerkenntnis-Realzeit-Garantie-Breitbandprotokoll für die gerade
stattfindende Datenlieferung bereitstellt. Die Transaktionszone 12 unterstützt die
Befehle, die notwendig sind, asynchrone Datenübertragungen abzuschließen, einschließlich des
Lesens, des Schreibens und der Verriegelung. Der Seriellbus-Verwaltungsblock 10 enthält einen
Isochronquellenmanager, um isochrone Datenübemagungen zu verwalten. Der
Seriellbus-Verwaltungsblock 10 liefert außerdem die
Gesamtkonfigurationssteuerung des Seriellbus in Form einer Optimierung
einer Entscheidungszeit, die Garantie einer adäquaten elektrischen Versorgung
für alle
Einrichtungen auf dem Bus, die Bestimmung des Zyklusmaster, die
Bestimmung von isochronen Kanal- und Bandbreitenresourcen und die
Basisfehlerinformation.
-
Ein Blockdiagramm eines herkömmlichen Audio-/Videonetzwerks
einschließlich
eines Fernsehempfängers
und eines Videokassettenrekorders (VCR) ist in 2 gezeigt. Der Fernsehempfänger 20 ist
mit dem VCR 40 verbunden. Videodaten und damit verknüpfte Daten
werden zwischen dem VCR 40 und dem Fernsehempfänger 20 einer
bekannten Weise geliefert.
-
In 2 sind
außerdem
relevante interne Komponenten des Fernsehempfängers 20 und des VCRs 40 gezeigt.
Der Fernsehempfänger 20 besitzt eine
Schnittstelle 32, welche Audio- und Videosignale zu und
vom VCR 40 sendet und empfängt. Die Schnittstelle 32 ist
mit einem Audio-/Videoschalter 26 verbunden, um Audio-/Videosignale
zu und vom VCR 40 zu liefern. Eine Kabel-/Antennenschnittstellenschaltung 30 ist
geschaltet, um Eingangssignale von einem Koaxialkabel oder einer
Antenne zu empfangen und um diese Signale über einen Tuner 28 zum Audio-/Videoschalter 26 zu
leiten. Der Audio-/Videoschalter 26 ist mit einer Videospeicherschaltung
mit wahlfreiem Zugriff 24 (VRAM-Schaltung) verbunden, um
die Videosignale von der Kabel-/Antennenschnittstelle 30 oder
dem VCR 40 zur Anzeigeeinrichtung 22 zu liefern.
-
Der VCR 40 besitzt eine
Videoquelle 46, beispielsweise ein Videoband, welches durch
den VCR 40 oder einem Fernseheingang abgespielt wird. Der VCR 40 besitzt
außerdem
eine Grafikquelle 48, welche OSD-Grafik erzeugt, die durch
den Fernsehempfänger 20 angezeigt
wird, wenn der VCR 40 Daten sendet, die durch den Fernsehempfänger 20 anzuzeigen
sind. Diese OSD-Grafik umfasst Wörter
oder Symbole, die Befehle zeigen, die durch den VCR 40 ausgeführt werden,
beispielsweise Wiedergabe, Stopp, Zurückspulen, schneller Vorlauf,
Pause und Aufzeichnung. Die OSD-Grafik, die durch die Grafikquelle 48 erzeugt
wird, umfasst außerdem üblicherweise
ein Menü oder
Menüs,
die auf dem Fernsehempfänger 20 für den Benutzer
angezeigt werden, die es dem Benutzer erlauben, den VCR 40 zu
programmieren. Die OSD-Grafik, welche durch die Grafikquelle 48 erzeugt
wird, wird zu einer Mischschaltung 44 geliefert. Die Mischschaltung 44 empfängt außerdem Videodaten
von der Videoquelle 46. Die Mischschaltung 44 kombiniert
dann die OSD-Grafik von der Grafikquelle 48 und die Videodaten
von der Videoquelle 46 zu einem Videoausgangssignal, welches über die
Schnittstellenschaltung 42 zum Fernsehempfänger 20 übertragen
wird. Das Videoausgangssignal vom VCR 40 wird dann durch
den Fernsehempfänger 20 verarbeitet
und auf der Anzeigeeinrichtung 22 gezeigt. Die Mischschaltung 44 wird, wenn
geeignet, entweder die ODS-Grafik den Videodaten überlagern,
um das Videoausgangssignal zu bilden, oder veranlassen, dass das
Videoausgangssignal lediglich OSD-Grafik von der Grafikquelle 48 oder
Videodaten von der Videoquelle 46 aufweist.
-
Bei einem Audio-/Videonetzwerk, welches einen
digitalen Fernsehempfänger
und einen digitalen VCR aufweist, welche zusammen über ein
IEEE 1394-1995-Seriellbusnetzwerk verbunden sind, werden die Videodaten
vom VCR üblicherweise
in einem Digitalformat, beispielsweise MPEG übertragen. Der VCR ist üblicherweise
nicht dafür
verantwortlich, die Videodaten in ein MPEG-Format zu codieren, sondern
wird Daten, welche vorher in einem MPEG-Format durch eine andere
Quelle codiert wurden, aufzeichnen und übertragen. Damit der VCR die
Fähigkeit
hat, die OSD-Grafik mit den Videodaten zu kombinieren, würde, wie
oben beschrieben, der VCR einen MPEG-Codierer haben müssen und
die Fähigkeit
haben müssen,
die OSD-Grafik in ein MPEG-Format zu codieren und dann die Datenströme zu einen
Videoausgangsdatenstrom zu kombinieren. Aufgrund der Herstellungskosten
von MPEG-Codierern ist ein solches Erfordernis bei Wettbewerbs-Verbraucher-VCR
teuer.
-
Eine Heimaudio-/Video-Architektur,
die untereinander arbeitet (HAVi), ist definiert durch "The HAVi Architecture
Specification of the Home Audio/Video Interoperability (HAVi) Architecture", Version 0,8n13,
16. September 1998. Die HAVi-Architektur wird bei Verbraucher-Elektronikgeräten und
Computergeräten
durchgeführt.
Die HAVi-Architektur liefert ein Satz an Diensten, die die Betreibbarkeit
untereinander und die Entwicklung von Verteilungsanwendungen beim
Heimnetzwerken erleichtern. Die HAVi-Architektur ist für Digitaleinrichtungen
bestimmt, die zusammen innerhalb eines IEEE 1394-1995-Seriellbusnetzwerks
gekoppelt sind.
-
Die HAVi-Architektur definiert zwei OSD-Grafikmodelle,
die als Level 1 und Level 2 bezeichnet werden. Das OSD-Grafikmodell
nach dem Level 1 ist ein Beschreibungsmodell, bei dem die Zieleinrichtung über eine
Reihe von Befehlen Datenstrukturen bereitstellt, welche die beabsichtigte OSD-Grafik
beschreibt. Wenn eine Grafik-Bibliothek-Anwendungsprogramm-Schnittstelle
verwendet wird, lädt
die Anzeigeeinrichtung diese Information herunter und konstruiert
die Anzeigegrafik, die wie die beabsichtigte Zieleinrichtung aussehen
kann oder nicht. Das OSD-Grafikmodell nach dem Level 2 definiert
eine Laufzeitausführungsumgebung,
wo die Anzeigeeinrichtung einen ausführbaren Code herunterlädt, der
auf der Anzeigeeinrichtung selbst läuft. Dieser ausführbare Code
wird dann dazu verwendet, die OSD-Grafik unter Verwendung von Einrichtungen zu
erzeugen, die durch die Anzeigeeinrichtung bereitgestellt werden.
-
Wenn die HAVi-Architektur verwendet
wird, ist eine Einrichtung, beispielsweise der oben beschriebene
digitale VCR nicht erforderlich, die OSD-Grafik zu erzeugen und
diese Grafik mit einem codierten Videodatenstrom zu kombinieren.
Anstelle davon erzeugt der digitale VCR, der die HAVi-Architektur
verwendet, Befehle, welche zur Anzeigeeinrichtung übertragen
werden und welche durch Anzeigeeinrichtung verwendet werden, um
die OSD-Grafik zu
erzeugen. Bei einem derartigen Aufbau ist es für den digitalen VCR nicht notwendig,
dass er einen MPEG-Codierer hat, da die OSD-Grafik mit den Videodaten
durch den Fernsehempfänger
erzeugt und kombiniert wird. Jedoch sind das Ausmaß und die Fähigkeit
dieser OSD-Grafik, die durch die HAVi-Architektur verfügbar ist,
wenn solche Befehle verwendet werden, begrenzt.
-
Einige Videoquelleneinrichtungen
haben die Fähigkeit,
sehr hohe Bandbreitengrafik-Ausgangssignale zu erzeugen, die zu
einer Anzeigeeinrichtung, beispielsweise einem Fernsehempfänger für die OSD-Anzeige
zum Benutzer geliefert werden. Dieses Grafikausgangssignal kann
eine sehr hohe Auflösung
oder Farbtiefe haben, einschließlich
dynamischer Animationseffekte mit Mehrfachbereichen von Grafikdaten,
welche sich häufig ändern. Diese
Grafikdaten werden üblicherweise
mit einem Videosignal gemischt oder dem Kopf eines Videosignals überlagert.
Wie oben beschrieben ist es relativ einfach und preiswert, die Fähigkeit
innerhalb einer analogen Einrichtung vorzusehen, um OSD-Grafik mit
einem Videodatenstrom zu kombinieren und den kombinierten Datenstrom
zu einem Fernsehempfänger
oder einer anderen Anzeigeeinrichtung zur Anzeige für den Benutzer
oder den Benutzern zu liefern. Es ist auch relativ einfach und preiswert
für eine
Einrichtung, beispielsweise eine Videospielkonsole, einen reinen Grafikausgangssignaldatenstrom
zu erzeugen und diesen Ausgangssignalstrom über eine analoge Videoverbindung
zum Fernsehempfänger
zu liefern. Für
digitale Einrichtungen ist es jedoch ziemlich teuer, innerhalb der
Einrichtung die Fähigkeit
vorzusehen, Grafikdaten zu erzeugen und die Grafikdaten in ein Format,
beispielsweise MPEG-Video, zu codieren, mit dem Digitaldaten üblicherweise übertragen werden.
Es ist für
die meisten Verbrauchereinrichtung, beispielsweise VCRs und Videospielkonsolen, kostentreibend,
die Fähigkeit
vorzusehen, OSD-Grafik zur Kombination mit Video- und/oder der Übertragung
zu einer digitalen Anzeigeeinrichtung zu erzeugen, beispielsweise
einen MPEG-Videodatenstrom. Die
HAVi-Architektur stellt ein Verfahren bereit, welches erlaubt, dass
eine Quelleneinrichtung OSD-Grafik auf einer Anzeigeeinrichtung
steuert, wobei Daten und/oder Befehle zur Anzeigeeinrichtung geliefert
werden, welche dann die Grafik erzeugt. Die OSD-Grafik, die verfügbar ist,
die unter Verwendung der HAVi-Architektur erzeugt wird, ist üblicherweise
jedoch nicht eine hochbandbreitige Grafik.
-
Die
EP
0 840 512 A2 offenbart eine integrierte Audio-/Videoschaltungsanordnung,
welche einen OSD-Coprozessor hat, der Grafik und Video mischt. OSD-Daten
können
von Benutzerdaten erzeugt werden oder sie können durch ein Anwendungsprogramm
erzeugt werden. Diese Anordnung umfasst eine Transportpaket-Syn taxanalyseschaltung,
um einen Transportdatenpaket-Datenstrom zu empfangen, eine CPU und
einen Speicher und Video- und Audiocodierschaltungen. Der OSD-Coprozessor empfängt und
verarbeitet Bereiche von Datenpaketen, die OSD-Daten enthalten,
und mischt die Daten mit decodierten Videosignalen. Folglich werden
die OSD-Daten und die Videodaten miteinander gemischt.
-
Die
EP 0 835 029 A2 offenbart ein Verfahren und
ein System zum Übertragen
und zum Empfangen von Daten von einer Quelleneinrichtung zu einer Anzeigeeinrichtung,
wo eine Datenübertragung
und ein Datenempfang über
einen 1394-Seriellbus durchgeführt
wird, welches einen isochronen Prozess umfasst. Befehls- und Antwortdatenpakete
werden auf dem Bus einschließlich
Feldern übertragen,
die eine Bestimmungsadresse bzw. eine Sendeadresse bereitstellen.
-
OSD-Grafikdaten werden von einer
Quelleneinrichtung zu einer Anzeigeeinrichtung über ein IEEE 1394-1995-Seriellbusnetzwerk übertragen,
wobei ein isochrones Datenformat verwendet wird. Die OSD-Grafikdaten
werden durch die Quelleneinrichtung erzeugt und zu einer Anzeigeeinrichtung
als Strom von isochronen Daten separat von Videodaten übertragen.
Jedes Paket von isochronen Daten innerhalb des Datenstroms von OSD-Grafikdaten
umfasst einen Adresswert, der einer Speicheradresse innerhalb der
Anzeigeeinrichtung entspricht, der einen Puffer bildet. Wenn die
OSD-Grafikdaten durch die Anzeigeeinrichtung empfangen werden, werden diese
in die geeigneten Speicherstellen innerhalb des Puffers geladen,
die den Adresswerten entsprechen. In der Anzeigeeinrichtung wird
ein eingebetteter Stromprozessor dazu verwendet, die Datenkopfinformation
von jedem Paket abzustreifen und die geeignete Speicherstelle zu
bestimmen, wo die Daten zu speichern sind. Ein Triggerpaket wird
am Ende des Datenstroms für
einen Bildschirm der OSD-Grafik geliefert. Das Triggerpaket umfasst
einen Augenblickszeitwert, der einer Anzeigezeit für den Bildschirm
der OSD-Grafik entspricht.
Wenn das Triggerpaket empfangen wird, überträgt die Anzeigeeinrichtung die
im Puffer gespeicherten Daten zu einer VRAM-Schaltung zur Anzeige
bei der angegebenen Darstellungszeit. Die OSD-Grafikdaten können Videodaten
zur Anzeige überlagert
sein und außerdem separat
angezeigt werden. Das Triggerpaket umfasst ein Triggerbit und ein Überlagerungsbit.
Das Triggerbit signalisiert, wenn dieses geschrieben wird, dass die
Speicherung des laufenden Rahmens vollständig ist. Das Überlagerungsbit
gibt an, ob der laufende OSD-Grafikdatenrahmen dem Videodatenrahmen
zu überlagern
ist oder nicht. Das Differenzcodieren wird verwendet, wenn Datenrahmen übertragen
werden, wo lediglich ein Bereich der Daten sich gegenüber dem
vorherigen Rahmen ändert.
-
Bei einem Merkmal der Erfindung umfasst ein
Verfahren zum Übertragen
von OSD-Grafikdaten von einer Quelleneinrichtung zu einer Anzeigeeinrichtung
separat von einem Videodatenstrom die Schritte, OSD-Grafik zu erzeugen,
die auf der Anzeigeeinrichtung anzuzeigen ist, das Kombinieren der OSD-Grafik
in einen Strom von Datenpaketen, der jeweils einen Adresswert aufweist,
der der Speicherstelle innerhalb der Anzeigeeinrichtung entspricht, und
das Übertragen
der Datenpakete von der Quelleneinrichtung zur Anzeigeeinrichtung.
Das Verfahren weist außerdem
den Schritt auf, ein Triggerpaket beim Auftreten eines Triggerereignisses
zu überragen,
wobei das Triggerpaket einen Triggeradresswert aufweist, der einer
Triggerspeicherstelle innerhalb der Anzeigeeinrichtung entspricht.
Das Triggerpaketumfasst vorzugsweise ein Triggerbit, welches, wenn dieses
in eine Triggerspeicherstelle geschrieben wird, signalisiert, dass
der Speicher eines laufenden Rahmens von OSD-Grafikdaten voll ist. Das Triggerpaket
weist außerdem
ein Überlagerungsbit
auf, welches angibt, ob die OSD-Grafik mit Videodaten zu kombinieren
ist oder nicht. Vorzugsweise sind die Datenpakete isochrone Pakete.
Alternativ sind die Datenpakete asynchrone Pakete.
-
Bei einem anderen Merkmal der Erfindung umfasst
ein Verfahren zum Übertragen
von OSD-Grafikdaten von einer Quelleneinrichtung zu einer Anzeigeeinrichtung
die Schritte, OSD-Grafik zu erzeugen, die auf der Anzeigeeinrichtung
anzuzeigen ist, das Kombinieren der OSD-Grafik zu einem Strom von
isochronen Datenpaketen, die jeweils einen Adresswert aufweisen,
der einer Speicherstelle innerhalb der Anzeigeeinrichtung entspricht,
und das Übertragen
der isochronen Datenpakete von der Quelleneinrichtung zur Anzeigeeinrichtung über einen
isochronen Kanal. Das Verfahren umfasst außerdem die Schritte, die isochronen
Datenpakete in der Anzeigeeinrichtung zu empfangen und Daten zu speichern,
die innerhalb aller isochronen Datenpakete enthalten sind, an der
Speicherstelle, die durch den Adresswert angegeben wird, der innerhalb
des isochronen Datenpakets enthalten ist. Das Verfahren umfasst
außerdem
die Schritte, die OSD-Grafik zu komprimieren, bevor die isochronen
Datenpakete gebildet sind, und die Daten in der Anzeigeeinrichtung zu
dekomprimieren, bevor der Speicherschritt beendet ist. Das Verfahren
umfasst außerdem
den Schritt, ein Triggerpaket beim Auftreten eines Triggerereignisses
zu übertragen,
wobei das Triggerpaket einen Triggeradresswert aufweist, der einer
Triggerspeicherstelle innerhalb der Anzeigeeinrichtung entspricht.
Das Triggerpaket umfasst außerdem
einen Darstellungszeitwert, der eine Anzeigezeit für die OSD-Grafik
angibt. Das Triggerereignis tritt auf, wenn alle isochronen Datenpakete
für einen
Bildschirm der OSD-Grafik übertragen
sind. Das Verfahren umfasst außerdem
die Schritte, die isochronen Datenpakete in der Anzeigeeinrichtung
zu empfangen, Daten, die innerhalb aller isochronen Datenpakete
enthalten sind, an der Speicherstelle zu speichern, die durch den
Adresswert angegeben wird, der innerhalb des isochronen Datenpakets
enthalten ist, das Triggerpaket in der Anzeigeeinrichtung zu empfangen,
das Triggerpaket an der Triggerspeicherstelle zu speichern und den
Bildschirm der OSD-Grafik in der Anzeigezeit anzuzeigen. Die Speicherstellen
und die Triggerspeicherstelle innerhalb der Anzeigeeinrichtung sind
innerhalb eines OSD-Grafikpuffers enthalten. Alternativ sind die Speicherstellen
vorzugsweise innerhalb eines OSD-Grafikpuffers enthalten, und die
Triggerspeicherstelle ist innerhalb eines Triggerpuffers enthalten.
Das Triggerpaket umfasst vorzugsweise ein Triggerbit, welches, wenn
dieses in eine Triggerspeicherstelle geschrieben ist, signalisiert,
dass die Speicherung eines laufenden Rahmens der OSD-Grafikdaten abgeschlossen
ist. Das Triggerpaket umfasst außerdem ein Überlagerungsbit, welches angibt,
ob die OSD-Grafik mit Videodaten zu kombinieren ist oder nicht.
Die isochronen Datenpakete und das Triggerpaket werden von der Quelleneinrichtung
zur Anzeigeeinrichtung über
eine Hochgeschwindigkeits-Seriell-Schnittstelle übertragen.
Vorzugsweise ist die Hochgeschwindigkeits-Seriell-Schnittstelle
eine IEEE 1394-Seriellbus-Netzwerk. Das Verfahren umfasst außerdem die
Schritte, einen nachfolgenden Bildschirm der OSD-Grafik zu erzeugen,
der auf der Anzeigeeinrichtung anzuzeigen ist, geänderte Pixel innerhalb
des nachfolgenden Bildschirms im Vergleich zu einen vorherigen Bildschirm
der OSD-Grafik zu bestimmen, die OSD-Daten, welche lediglich die
geänderten
Pixel darstellen, zu einem Differenzdatenstrom von isochronen Datenpaketen
zu kombinieren, wobei jedes isochrone Differenzpaket einen Adresswert
aufweist, der der Speicherstelle entspricht, die auf die dargestellten
geänderten
Pixel bezogen ist, und die isochronen Datenpakete von der Quelleneinrichtung
zu Anzeigeeinrichtung über
den isochronen Kanal zu übertragen.
-
Bei einem anderen Merkmal der vorliegenden
Erfindung umfasst ein Verfahren zum Empfangen von OSD-Grafikdaten,
die durch eine Quelleneinrichtung erzeugt und in isochronen Datenpaketen über einen
isochronen Kanal übertragen
werden, wobei jedes isochrone Datenpaket einen Adresswert aufweist,
der einer Speicherstelle innerhalb der Anzeigeeinrichtung entspricht,
die Schritte, ein isochrones Datenpaket, welches OSD-Grafikdaten
enthält und
den Adresswert zu empfangen, und die OSD-Grafikdaten, welche innerhalb
des isochronen Datenpakets enthalten sind, an der Speicherstelle
innerhalb der Anzeigeeinrichtung zu speichern. Das Verfahren weist
außerdem
die Schritte auf, ein Triggerpaket zu empfangen, welches einen Triggeradresswert
enthält,
der einer Triggerspeicherstelle innerhalb der Anzeigeeinrichtung
entspricht, und den Darstellungszeitwert, der eine Anzeigezeit für die OSD-Grafik
angibt und die OSD-Grafik in der Anzeige anzeigt. Das Verfahren
weist außerdem
den Schritt auf, das Triggerpaket an der Triggerspeicherstelle zu
speichern. Das Trigger paket umfasst vorzugsweise ein Triggerbit,
welches, wenn dieses in den Triggerspeicherstelle geschrieben wird,
signalisiert, dass das Speichern eines laufenden Rahmens der OSD-Grafikdaten
abgeschlossen ist. Das Verfahren umfasst außerdem den Schritt, die OSD-Grafik zu
dekomprimieren, wenn die OSD-Grafik vorher komprimiert wurde, bevor
der Speicherschritt beendet ist. Die Speicherstellen und die Triggerspeicherstelle
sind innerhalb eines OSD-Grafikpuffers enthalten. Die isochronen
Datenpakete und das Triggerpaket werden von der Speichereinrichtung
zur Anzeigeeinrichtung über
eine Hochgeschwindigkeits-Seriell-Schnittstelle übertragen. Vorzugsweise ist
die Hochgeschwindigkeits-Seriell-Schnittstelle ein IEEE 1394-Seriellbus-Netzwerk.
-
Bei einem weiteren Merkmal der Erfindung umfasst
ein Gerät
zum Übertragen
von OSD-Grafikdaten von einer Quelleneinrichtung zu einer Anzeigeeinrichtung
eine Grafikquelle, um OSD-Grafik zu erzeugen, die durch die Grafikeinrichtung
anzuzeigen ist, und eine Schnittstellenschaltung, welche mit der Grafikquelle
verbunden ist und die konfiguriert ist, die Anzeigeeinrichtung zum
Kombinieren der OSD-Grafik zu einem Strom von isochronen Datenpaketen,
die jeweils einen Adresswert enthalten, der einer Speicherstelle
innerhalb der Anzeigeeinrichtung entspricht, und die isochronen
Datenpakete von der Quelleneinrichtung zur Anzeigeeinrichtung über einen
isochronen Kanal zu übertragen.
Die Grafikquelle erzeugt ebenfalls ein Triggerpaket, welches durch die
Schnittstellenschaltung beim Auftreten eines Triggerereignisses übertragen
wird, wobei das Triggerpaket einen Triggeradresswert enthält, der
einer Triggerspeicherstelle innerhalb der Anzeigeeinrichtung entspricht.
Das Triggerereignis tritt auf, wenn alle isochronen Datenpakete
für einen
Bildschirm der OSD-Grafik von der Schnittstellenschaltung übertragen
wurden. Das Triggerpaket weist außerdem einen Darstellungszeitwert
auf, der eine Anzeigezeit für den
Bildschirm der OSD-Grafik angibt. Das Triggerpaket umfasst vorzugsweise
eine Triggerbild, welches, wenn dieses in eine Triggerspeicherstelle
geschrieben ist, signalisiert, dass der Speicher eines laufenden
Rahmens für
OSD-Grafikdaten voll ist. Das Triggerpaket umfasst außerdem ein Überlagerungsbit,
welches angibt, ob die OSD-Grafik mit Videodaten zu kombinieren
ist oder nicht. Das Gerät
umfasst außerdem
eine Kompressionsschaltung, welche mit der Grafikquelle und mit
der Schnittstellenschaltung gekoppelt ist, um die OSD-Grafik vor
der Übertragung
durch die Schnittstellenschaltung zu komprimieren. Die Schnittstellenschaltung
ist vorzugsweise mit der Anzeigeeinrichtung über eine Hochgeschwindigkeits-Seriell-Schnittstelle
gekoppelt. Vorzugsweise ist die Hochgeschwindigkeits-Seriell-Schnittstelle
ein IEEE 1394-Seriellbus-Netzwerk.
-
Bei einem noch weiteren Merkmal der
vorliegenden Erfindung umfasst ein Gerät zum Empfangen von OSD-Grafikdaten,
die durch eine Quelleneinrichtung erzeugt und in isochronen Datenpaketen über einen
isochronen Kanal übertragen
werden, wobei jedes isochrone Datenpaket einen Adresswert aufweist,
der einer Speicherstelle entspricht, eine Schnittstellenschaltung,
die konfiguriert ist, um diese mit der Quelleneinrichtung zu koppeln,
um die isochronen Datenpakete von der Quelleneinrichtung über den
isochronen Kanal zu empfangen, eine Verarbeitungseinrichtung, welche
mit der Schnittstellenschaltung gekoppelt ist, um die isochronen
Datenpakete zu empfangen und um den Adresswert von den OSD-Grafikdaten
zu trennen, eine Speichereinrichtung, welche mit der Verarbeitungseinrichtung
gekoppelt ist, um die OSD-Grafikdaten in eine Speicherstelle zu
speichern, die dem Adresswert entspricht, und eine Anzeigeeinrichtung,
welche mit der Speichereinrichtung gekoppelt ist, um die OSD-Grafik
in einem Anzeigezeitpunkt anzuzeigen. Der Anzeigezeitpunkt wird
in einem Triggerpaket empfangen. Vorzugsweise ist die Verarbeitungseinrichtung
ein eingebetteter Datenstromprozessor, der bestimmt, ob OSD-Grafikdaten
innerhalb der isochronen Datenpakete enthalten sind, streift die
Datenkopfinformation von den isochronen Datenpaketen ab, bestimmt
den Adresswert und überträgt den Adresswert und
die OSD-Grafikdaten zur Speichereinrichtung. Die Speichereinrichtung
umfasst einen Puffer und eine DMA-Maschine, welche den Adresswert
empfängt
und die OSD-Grafikdaten in der Speicherstelle speichern, die dem
Adresswert innerhalb des Puffers entspricht. Die Anzeigeeinrichtung
umfasst eine Anzeige und eine VRAM-Schaltung, in welcher die OSD-Grafik
gespeichert wird, bevor diese auf der Anzeigeeinrichtung angezeigt
wird. Die Schnittstellenschaltung ist vorzugsweise mit der Quelleneinrichtung über eine
Hochgeschwindigkeits-Seriell-Schnittstelle gekoppelt. Vorzugsweise
ist die Hochgeschwindigkeits-Seriell-Schnittstelle ein IEEE 1394-Seriellbus-Netzwerk.
-
Bei einem weiteren Merkmal der vorliegenden
Erfindung umfasst ein System zum Übertragen von OSD-Grafikdaten
eine Quelleneinrichtung, die eine Grafikquelle umfasst, um OSD-Grafik
zu erzeugen, die durch die Anzeigeeinrichtung anzuzeigen ist, und
eine Quellenschnittstellenschaltung, welche mit der Grafikquelle
gekoppelt ist und die konfiguriert ist, mit der Anzeigeeinrichtung
gekoppelt zu werden, um die OSD-Grafik zu einem Strom von isochronen Datenpaketen
zu kombinieren, wobei jedes einen Adresswert aufweist, der einer
Speicherstelle innerhalb der Anzeigeeinrichtung entspricht, und
zum Übertragen
der isochronen Datenpakete von der Quelleneinrichtung zur Anzeigeeinrichtung über einen
isochronen Kanal, und eine Anzeigeeinrichtung, die eine Anzeigeschnittstellenschaltung
aufweist, die mit der Quellenschnittstellenschaltung gekoppelt ist, um
die isochronen Datenpakete von der Quelleneinrichtung über den
isochronen Kanal zu empfangen, eine Verarbeitungseinrichtung, die
mit der Anzeigeschnittstellenschaltung gekoppelt ist, um die isochronen
Datenpakete zu empfangen und um den Adresswert von den OSD-Grafikdaten
zu trennen, eine Speichereinrichtung, welche mit der Verarbeitungseinrichtung
gekoppelt ist, um die OSD-Grafikdaten in einer Speicherstelle zu
speichern, die dem Adresswert entspricht, und eine Anzeigeeinrichtung,
die mit der Speichereinrichtung gekoppelt ist, um die OSD-Grafik
in einem Anzeigezeitpunkt anzuzeigen. Die Grafikquelle erzeugt außerdem ein
Triggerpaket, welches durch die Schnittstellenschaltung beim Auftreten
eines Triggerereignisses übertragen
wird, wobei das Triggerpaket einen Triggeradresswert aufweist, der einer
Triggerspeicherstelle innerhalb der Anzeigeeinrichtung entspricht.
Das Triggerereignis tritt auf, wenn alle isochronen Datenpakete
für einen
Bildschirm der OSD-Grafik von der Quellenschnittstellenschaltung übertragen
sind. Das Triggerpaket weist außerdem
einen Darstellungszeitwert auf, der die Anzeigezeit für den Bildschirm
der OSD-Grafik angibt. Das Triggerpaket umfasst vorzugsweise ein Triggerbit,
welches, wenn dieses in eine Triggerspeicherstelle geschrieben ist,
signalisiert, dass der Speicher eines laufenden Rahmens der OSD-Grafik
voll ist. Das Triggerpaket umfasst außerdem ein Überlagerungsbit, welches angibt,
ob die OSD-Grafik mit Videodaten zu kombinieren ist oder nicht.
Die Verarbeitungseinrichtung ist ein eingebetteter Datenstromprozessor,
der bestimmt, ob OSD-Grafikdaten innerhalb der isochronen Datenpakete
enthalten sind, streift die Datenkopfinformation von den isochronen Datenpaketen
ab, bestimmt den Adresswert und überträgt den Adresswert
und die OSD-Grafikdaten zur Speichereinrichtung. Die Speichereinrichtung umfasst
einen Puffer und eine DMA-Maschine, welche den Adresswert empfängt und
die OSD-Grafikdaten an der Speicherstelle speichern, die dem Adresswert
innerhalb des Puffers entspricht. Die Anzeigeeinrichtung umfasst
eine Anzeige und eine VRAM-Schaltung, in welcher die OSD-Grafik
gespeichert wird, bevor diese auf der Anzeigeeinrichtung angezeigt
wird. Die Quellenschnittstellenschaltung ist vorzugsweise mit der
Anzeigeschnittstellenschaltung über
eine Hochgeschwindigkeits-Seriell-Schnittstelle gekoppelt. Die Hochgeschwindigkeits-Seriell-Schnittstelle
ist vorzugsweise ein IEEE 1394-Seriellbus.
-
1 zeigt
ein Protokoll, welches durch den IEEE 1394-1995-Standard definiert
ist;
-
2 zeigt
ein Blockdiagramm eines herkömmlichen
Heimaudio-Video-Netzwerks, welches einen Fernsehempfänger und
einen VCR aufweist;
-
3 zeigt
ein Blockdiagramm eines Netzwerkbeispiels von Einrichtungen gemäß der vorliegenden
Erfindung einschließlich
eines Fernsehempfängers
und eines VCRs;
-
4 zeigt
die bevorzugte Ausbildung des OSD-Grafikspeicherpuffers der vorliegenden
Erfindung;
-
5 zeigt
die bevorzugte Ausbildung der VRAM-Schaltung der vorliegenden Erfindung;
-
6 zeigt
eine alternative Ausbildung der VRAM-Schaltung der vorliegenden
Erfindung;
-
7 zeigt
eine alternative Ausbildung der vorliegenden Erfindung einschließlich eines
einzelnen Zwischenpuffers zwischen dem Dekomprimierer und der VRAM-Schaltung;
-
8 zeigt
das bevorzugte Format eines isochronen Datenpakets zur Übertragung
von OSD-Grafikdaten gemäß der vorliegenden
Erfindung;
-
9 zeigt
das bevorzugte Format des Datenfelds von einem isochronen Datenpaket
der vorliegenden Erfindung;
-
10 zeigt
das bevorzugte Format des Datenfelds eines Triggerpakets der vorliegenden
Erfindung;
-
11 zeigt
ein Blockdiagramm von Datenverarbeitungselementen innerhalb einer
alternativen Ausführungsform
des Fernsehgeräts 60;
-
12 zeigt
ein Flussdiagramm der bevorzugten Schritte, die auf die Quelleneinrichtung
folgen, wenn ein Bildschirm von OSD-Grafikdaten übertragen wird;
-
13 zeigt
ein Flussdiagramm von bevorzugten Schritten, die auf die Anzeigeeinrichtung
folgen, wenn die OSD-Grafikdaten empfangen werden; und
-
14 zeigt
die Kombination eines Datenstroms von Quellenpaketen zu einem Datenstrom von
isochronen Paketen.
-
Ein isochrones Datenformat wird dazu
verwendet, OSD-Grafik von einer Quelleneinrichtung zu einer Anzeigeeinrichtung
zu übertragen.
Die OSD-Grafik wird durch die Quelleneinrichtung, beispielsweise
einen VCR erzeugt und zu einer Anzeigeeinrichtung als Strom von
isochronen Daten übertragen,
separat von Nicht-OSD-Grafikdaten. Nicht-OSD-Grafikdaten umfassen andere Datenarten,
beispielsweise Videodaten, Audiodaten und irgendwelche geeigneten
Daten, welche von einer Quelleneinrichtung zu einer Anzeigeeinrichtung
geliefert werden. Die Quelleneinrichtung codiert vorzugsweise nicht
den OSD-Grafikdatenstrom zu einem Format, beispielsweise MPEG. Alternativ
werden die OSD-Grafikstromdaten mit anderen Stromdaten gemischt,
beispielsweise Videodaten, und zu einem Format, beispielsweise MPEG
codiert. Jedes Paket von isochronen Daten innerhalb des Datenstroms
von OSD-Grafikdaten umfasst einen Adresswert. Wenn Die OSD-Grafikdaten
durch die Anzeigeeinrichtung empfangen werden, werden diese in einen
OSD-Anzeigepuffer an Speicherstellen geladen, die den Adresswerten
entsprechen. In der Anzeigeeinrichtung wird vorzugsweise ein eingebetteter
Datenstromprozessor dazu verwendet, die Datenkopfinformation von
jedem Paket abzustreifen und die geeignete Speicherstelle zu bestimmen,
bei der die Daten zu speichern sind. Alternativ kann irgendein anderer
geeigneter allgemeiner oder Spezialzweckverarbeitungsmechanismus
dazu verwendet werden, die Datenkopfinformation von jedem Paket
abzustreifen und die geeignete Speicherstelle zu bestimmen, bei
der die Daten zu speichern sind.
-
Ein Triggerpaket wird am Ende eines
Datenstroms für
einen Bildschirm der OSD-Grafik
gesendet. Das Triggerpaket umfasst einen Darstellungszeitwert, der
einem Anzeigezeitpunkt für
den Bildschirm der OSD-Grafik entspricht. Nachdem ein Triggerpaket
empfangen wird, zeigt die Anzeigeeinrichtung anschließend die
OSD-Grafik vom OSD-Puffer in dem Zeitpunkt an, der durch den Darstellungszeitwert
angezeigt wird. Das Triggerpaket umfasst außerdem ein Triggerbit und ein Überlagerungsbit.
Das Triggerbit signalisiert, wenn es geschrieben wird, dass der
Speicher des laufenden Rahmens voll ist. Das Überlagerungsbit gibt an, ob
der laufende OSD-Trrafikdatenrahmen einem Videodatenrahmen zu überlagern
ist oder nicht. Wenn die OSD-Grafikdaten mit Videodaten angezeigt
werden, decodiert die Anzeigeeinrichtung vorzugsweise den Videostrom von
Daten und kombiniert den decodierten Videostrom von Daten mit den
OSD-Grafikdaten, um angezeigt zu werden. Vorzugsweise ist die Quelleneinrichtung
mit der Anzeigeeinrichtung über
ein IEEE 1394-1995-Seriellbus-Netzwerk
gekoppelt Das Differenzcodieren wird vorzugsweise verwendet, um
animierte Grafik zu ändern,
wobei lediglich der Bereich der Daten, der sich gegenüber dem
vorherigen Rahmen ändert, übertragen
wird.
-
Vorzugsweise werden die OSD-Grafikdaten separat
von anderen Datenströmen
geliefert. Alternativ werden die OSD-Grafikdaten zu einem kombinierten
Datenstrom zur Übertragung
gemischt Mehrfachdatenströme
von OSD-Grafikdaten können
zu einer einzigen Anzeigeeinrichtung geliefert werden. Mehrfachdatenströme von OSD-Grafikdaten
können außerdem koordiniert
werden und zu mehreren Anzeigeeinrichtungen geliefert werden. Diese
mehreren Datenströme
von OSD-Anzeigedaten können
von einer einzigen Quelleneinrtchtung oder von mehreren Quelleneinrichtungen
geliefert werden. Außerdem kann
ein einziger Strom von OSD-Grafikdaten simultan zu mehreren Anzeigeeinrichtungen
geliefert werden.
-
Ein Blockdiagramm eines beispielhaften Netzwerkes
von Einrichtungen einschließlich
eines Fernsehgeräts 60 und
eines VCRs 100, die miteinander über ein IEEE 1394-1995-Kabel 90 verbunden sind,
ist in 3 gezeigt Relevante
Komponenten des Fernsehgeräts 60 und
des VCRs 100 sind ebenfalls in 3 gezeigt. Das Fernsehgerät besitzt
eine IEEE 1394-1995-Schnittstellenschaltung 86, über welche
Daten und Befehle zum VCR 100 gelie fert und von dort empfangen
werden. Die IEEE 1394-1995-Schnittstellenschaltung 86 besitzt
außerdem
eine reale Schnittstellenschaltung 88. Die reale Schnittstellenschaltung 88 ist
mit dem VCR 100 über das
IEEE 1394-1995-Seriellbuskabel 90 gekoppelt. Die IEEE 1394-1995-Schnittstellenschaltung 86 ist vorzugsweise
mit einem eingebetteten Datenstromprozessor 84 gekoppelt,
der Mitteilungen vom VCR 100 empfängt und diese weiterleitet.
Der eingebettete Datenstromprozessor 84 ist mit einem Audio-/Videoschalter 74 gekoppelt,
um Videodaten vom VCR 100 zu liefern. Der eingebettete
Datenstromprozessor 84 ist außerdem mit einer Dekompressionsschaltung 76 gekoppelt,
um komprimierte OSD-Grafikdaten zu dekomprimieren. Die Dekompressionsschaltung 76 ist
mit einer DMA-Maschine 77 gekoppelt, welche bei der Verarbeitung
der OSD-Grafikdaten verwendet wird. Die DMA-Maschine 77 ist
außerdem gekoppelt,
um Adressierungsinformation vom eingebetteten Datenstromprozessor 84 zu
empfangen. Die DMA-Maschine 77 ist außerdem mit einem adressierbaren
OSD-Speicherpuffer 78 gekoppelt, um dekomprimierte OSD-Grafikdaten
vom VCR 100 an den Stellen zu speichern, die durch die
Adressierungsinformation vom eingebetteten Datenstromprozessor 84 angegeben
werden. Der Puffer 78 ist mit einer VRAM-Schaltung 64 gekoppelt,
um die dekomprimierten OSD-Grafikdaten der Anzeigeeinrichtung 62 bereitzustellen.
-
Das Fernsehgerät 60 besitzt außerdem eine Kabel/Antennenschnittstellenschaltung 82,
die geschaltet ist, um Eingangssignale von einem Koaxialkabel oder
einer Antenne zu empfangen und diese Signale über einen Tuner 89 zum
Audio-/Videoschalter 74 weiterzuleiten. Der Audio-/Videoschalter 74 ist mit
einer Decodierschaltung 72 gekoppelt, um alle codierten
Videosignale zu decodieren und um die decodierten Videosignale der
VRAM-Schaltung 64 bereitzustellen. Der Fernsehempfänger 60 besitzt
außerdem
eine oder mehrere lokale Anwendungen 70, welche mit einer
Grafikanwendungs-Programmierschnittstelle 68 gekoppelt
sind, um Befehle zu empfangen, die OSD-Grafik zeigen, die zu erzeugen
ist und die durch das Fernsehgerät 60 anzuzeigen
ist. Die Grafikanwendungs-Programmierschnittstelle 68 ist
mit einer Übersetzungsmaschine 66 gekoppelt, welche
die Befehle empfängt
und geeignete OSD-Grafik von den Befehlen erzeugt. Die Übersetzungsmaschine 66 ist
mit der VRAM-Schaltung 64 gekoppelt, um die erzeugte OSD-Grafik
zur VRAM-Schaltung 64 zu liefern. Vorzugsweise umfasst
die VRAM-Schaltung 64 eine Mischfähigkeit, um unterschiedliche
Datenströme
zu mischen und um verschiedene Datenarten, wenn erforderlich, zur Anzeige
zu mischen. Die VRAM-Schaltung 64 ist mit der Anzeigeeinrichtung 62 gekoppelt,
um die Videosignale der Anzeigeeinrichtung 62 bereitzustellen. Eine
Steuerung 63 ist außerdem
mit der VRAM-Schaltung 64 gekoppelt, um den Betrieb der VRAM-Schaltung 64 zu
steuern und um zu steuern, welche Einrichtung oder Einrichtungen
Zugriff zur VRAM-Schaltung 64 in einem bestimmten Zeitpunkt haben.
-
Der VCR 100 besitzt eine
IEEE 1394-1995-Schnittstellenschaltung 102, über welche Daten
und Befehle zum Fernsehempfänger 60 geliefert
und von dort empfangen werden. Die IEEE 1394-1995-Schnittstellenschaltung 102 besitzt
außerdem
eine reale Schnittstellenschaltung 104. Die reale Schnittstellenschaltung 104 ist
mit dem Fernsehgerät 60 über das
IEEE 1394-1995-Seriellbuskabel 90 gekoppelt. Der VCR 100 besitzt
eine Videoquelle 106, beispielsweise ein Videoband, welches durch
den VCR 100 abgespielt wird, oder einen Fernseheingangsanschluss.
Die Videoquelle 106 ist mit einem eingebetteten Datenstromprozessor 109 gekoppelt,
der mit der IEEE 1394-1995-Schnittstellenschaltung 102 gekoppelt
ist, um Videodatenströme über das
IEEE 1394-1995-Seriellbuskabel 90 zum Fernsehempfänger 60 zu übertragen.
Der VCR 100 besitzt außerdem
eine Grafkquelle 108, welche OSD-Grafik erzeugt, die durch
das Fernsehgerät 60 angezeigt
wird. Die Grafikquelle 108 ist vorzugsweise mit einer Kompressionsschaltung 110 gekoppelt, welche
die Grafikdaten, welche durch die Grafikquelle 108 erzeugt
werden, komprimiert. Die Kompressionsschaltung 110 ist
mit dem eingebetteten Datenstromprozessor 109 gekoppelt,
der mit der IEEE 1394-1995-Schnittstellenschaltung 102 gekoppelt
ist, um die komprimierten Grafikdaten über den IEEE 1394-1995-Seriellbuskabel 90 zum
Fernsehempfänger 60 zu übertragen.
Der eingebettete Datenstromprozessor 109 besitzt eine ähnliche
Fähigkeit
wie der eingebettete Datenstromprozessor 84 und verarbeitet
Daten von der Quelleneinrichtung 100, bevor diese über das
IEEE 1394-1995-Seriellbuskabel 90 übertragen
werden. Diese Verarbeitung umfasst das Anbringen von Datenköpfen an
Datenpaketen, die von der Quelleneinrichtung 100 übertragen
werden. Bei einer alternativen Ausführungsform umfasst die Quelleneinrichtung
keinen eingebetteten Datenstromprozessor 109.
-
Der in 3 gezeigte
Aufbau ist lediglich beispielhaft. Es soll deutlich sein, das ein
Audio-/Videonetzwerk viele unterschiedliche Kombinationen von Komponenten
aufweisen kann. Es soll gezeigt werden, dass Daten, Befehle und
Parameter in jeder Richtung zwischen den Einrichtungen innerhalb
des IEEE 1394-1995-Netzwerk, wenn geeignet, geliefert werden können.
-
Unter Verwendung der vorliegenden
Erfindung kann der VCR 100 wirksam einen codierten Videodatenstrom
von der Videoquelle 106 zum Fernsehgerät 60 über das
IEEE 1394-1995-Seriellbuskabel 90 übertragen. Der VCR 100 hat
außerdem
die Fähigkeit,
OSD-Grafik zu erzeugen,
welche durch das Fernsehgerät 60 angezeigt
wird. Die OSD-Grafik wird durch die Grafikquelle 108 erzeugt
und vorzugsweise zum Fernsehgerät 60 in
einem isochro nen Format über
das IEEE 1394-1995-Seriellbuskabel 90 separat von anderen
Datenströmen
einschließlich
des Videodatenstroms übertragen.
Alternativ wird die OSD-Grafik von der Grafikquelle 108 mit
dem Videodatenstrom von der Videoquelle 106 kombiniert
und in einem Digitalformat über
das IEEE 1394-1995-Seriellbuskabel 90 übertragen. Vorzugsweise wird
die OSD-Grafik durch die Kompressionsschaltung 110 in irgendeiner
verfügbaren
und geeigneten Weise komprimiert, bevor sie zum Fernsehgerät 60 übertragen wird.
Alternativ wird die OSD-Grafik ohne Kompression übertragen. Bei einer weiteren
alternativen Ausführungsform
wird die OSD-Grafik asynchron über das
IEEE 1394-1995-Seriellbuskabel 90 unter Verwendung von
asynchronen Paketen übertragen.
-
Wenn die OSD-Grafik durch das Fernsehgerät 60 empfangen
wird, wird diese durch den eingebetteten Datenstromprozessor 64 getrennt
und in Speicherstellen innerhalb des Puffers 78 geladen,
die dem Adresswert entsprechen, der innerhalb des isochronen Pakets
enthalten ist. Nachdem das letzte Paket von OSD-Grafikdaten für einen
Bildschirm oder Rahmen vom VCR 100 geliefert ist, liefert
der VCR 100 ein Triggerpaket, welches Information in Bezug
auf einen Anzeigezeitpunkt enthält,
bei dem das Fernsehgerät 60 die
OSD-Grafikdaten anzeigen soll. Beim Empfang des Triggerpakets lädt das Fernsehgerät 60 dann
die Daten innerhalb des OSD-Puffers 68 in die VRAM-Schaltung 64,
um auf der Anzeigeeinrichtung im geeigneten Zeitpunkt angezeigt
zu werden, der durch den Darstellungszeitwert innerhalb des Triggerpakets
angegeben wird. Wenn die Daten innerhalb des OSD-Puffers 78 komprimiert sind,
wird die Dekompressionsschaltung 76 die OSD-Grafikdaten
dekomprimieren, bevor diese zur VRAM-Schaltung 64 geliefert
werden.
-
Vorzugsweise wird die Übertragung
und die Verarbeitung der OSD-Grafikdaten wie oben beschrieben bei
einem vollen Datenrahmen durchgeführt. Alternativ kann die Übertragung
und die Verarbeitungsoperationen in Bezug auf kleinere Datenbereiche
durchgeführt
werden, beispielsweise einer Abtastzeile. Diese alternative Ausführungsform
erlaubt, dass die Quelleneinrichtung und die Anzeigeeinrichtung
kleinere Datenpuffer enthalten, da weniger Daten gespeichert werden
müssen.
In allen Fällen
erfordert der Entladezustand der Enddaten in die VRAM-Schaltung 64 das
Sammeln eines Datenrahmens, dann danach das Schalten der VRAM-Schaltung 64,
um dem Benutzer sichtbar zu sein, wodurch sanfte Übergänge zwischen
Rahmen von OSD-Grafikdaten erlaubt werden.
-
Die bevorzugte Konfiguration des
OSD-Grafikspeicherpuffers 78 ist in 4 gezeigt. Der Speicherpuffer 78 besitzt
eine Anzahl von Speicherstellen 120–124, in denen kollektiv
ein Rahmen von Daten gespeichert ist. Jede Speicherstelle 120–124 ist
individuell adressierbar. Wenn jedoch Daten in den Speicherpuffer 78 geschrieben
werden, nachdem eine Adresse angegeben ist, werden diese jedoch
in nacheinander ansteigenden Adressen innerhalb des Pufferspeichers 78 geschrieben,
bis ein nachfolgender Adresswert geliefert wird. Vorzugsweise speichert
die Endspeicherstelle 126 innerhalb des Speicherpuffers 78 das
Triggerpaket, welches dazu verwendet wird, die Anzeige von Daten
innerhalb des Speicherpuffers 78 zeitlich zu bestimmen.
Alternativ wird das Triggerpaket innerhalb irgendeines geeigneten
oder bestimmten Triggerspeicherpuffers oder Stelle gespeichert.
-
Ein Differenzcodierverfahren wird
vorzugsweise dazu verwendet, Daten von der Quelleneinrichtung zur
Anzeigeeinrichtung zu übertragen.
Unter Verwendung dieses Differenzcodierverfahrens werden lediglich
Pakete mit Daten, die sich vom vorherigen Rahmen zum laufenden Rahmen ändern, von der
Quelleneinrtchtung übertragen.
Diese Pakete, welche von der Quelleneinrtchtung übertragen werden, bei denen
sich die Videodaten ändern,
werden dann in die geeigneten Speicherstellen innerhalb des Speicherpuffers 78 geschrieben.
Wenn alle geänderten
Pakete für
den laufenden Rahmen in den Speicherpuffer 78 geladen sind,
wird das Triggerpaket dann in die Endspeicherstelle 126 geladen.
Dieses Differenzcodierverfahren minimiert die Datenmenge, die erforderlich
ist, für
jeden nachfolgenden Rahmen von OSD-Grafikdaten übertragen zu werden. Alternativ
werden die gesamten Rahmendaten von der Quelleneinrichtung zur Anzeigeeinrichtung
für alle Rahmen
von OSD-Grafikdaten übertragen.
-
Wie anschließend ausführlich beschrieben wird, besitzt
das Triggerpaket vorzugsweise zwei Vierer (quadlets) von Daten.
Das signifikanteste Bit des ersten Vierers ist ein Triggerbit t,
welches auf einen logischen hohen Spannungspegel gesetzt wird. Wenn
die Anzeigeeinrichtung ermittelt, dass das Triggerpaket innerhalb
des Speicherpuffers auf einen logischen hohen logischen Spannungspegel
gesetzt wurde, signalisiert dies, dass der Speicher des laufenden
Rahmens innerhalb des Speicherpuffers 78 voll ist. Das
zweithöchste
signifikante Bit des ersten ??? innerhalb des Triggerpakets ist
ein Überlagerungsbit
o, welches angibt, ob der laufende OSD-Grafikdatenrahmen einem Videodatenrahmen zu überlagern
ist oder nicht. Wenn das Überlagerungsbit
o auf einem logischen hohen Spannungspegel ist, wird vorzugsweise
dann der laufende OSD-Grafikdatenrahmen einem Videodatenrahmen überlagert.
Wenn der laufende OSD-Grafikdatenrahmen einem Videodatenrahmen überlagert
wird, mischt das Fernsehgerät 60 die
laufenden OSD-Grafikdaten mit den Videodaten. Wenn dagegen das Überlagerungsbit
o auf einem logischen niedrigen Spannungspegel ist, wird der laufende
OSD-Grafikdatenrahmen nicht einem Videodatenrahmen überlagert.
Der Rest des ??? ist reserviert und wird nicht verwendet. Der zweite
Vierer innerhalb des Triggerpakets umfasst den Darstellungszeitwert,
der angibt, in welchem Zeitpunkt der laufende OSD-Grafik datenrahmen
angezeigt werden sollte. Dieser Darstellungszeitwert gibt einen
Zeitpunkt von einer unmittelbaren Anzeige zu einer Anzeige bei einem
geeigneten Zeitwert an, der durch den Darstellungszeitwert dargestellt
wird.
-
Um glatte flickerfreie Bildschirmupdates
zu liefern, wird die VRAM-Schaltung 64 innerhalb des Fernsehgeräts 60 vorzugsweise
in zwei Teile unterteilt, wie in 5 gezeigt
ist. Die VRAM-Schaltung 64 umfasst vorzugsweise zwei Bereiche,
die VRAM-Schaltung 123 und die VRAM-Schaltung 121. Die
VRAM-Schaltungen 121 und 123 besitzen vorzugsweise
die Kapazität,
um ein Rahmendatenwert zu speichern. Die Steuerung 63 innerhalb
des Fernsehgeräts 60 verwaltet
das Umschalten zwischen den VRAM-Schaltungen 121 und 123.
Die Daten für einen
Rahmen werden zunächst
zur VRAM-Schaltung 123 übertragen.
Wenn die VRAM-Schaltung 123 einen Datenrahmen hat, bewirkt
die Steuerung 63, dass der nächste Datenrahmen innerhalb
der VRAM-Schaltung 121 gespeichert wird. Wenn eine der
VRAM-Schaltungen 121 und 123 voll
ist, bewirkt die Steuerung, dass die Daten innerhalb der VRAM-Schaltung 121 oder 123 auf
der Anzeigeeinrichtung in einer geeigneten Darstellungszeit angezeigt
werden.
-
Die VRAM-Schaltung 64, die
in 5 gezeigt ist, wird
bevorzugt, da sie als wirksamstes Verfahren zum Handhaben der Daten,
die angezeigt werden, angesehen wird. Dieses Verfahren jedoch erfordert
genug VRAM, um zwei Datenrahmen zu speichern. Eine alternative Ausführungsform,
welche die notwendige VRAM-Menge reduziert, ist in 6 gezeigt. Vom Dekompressor 76 werden
die Daten über
einen Selektor 130 geführt,
der die Daten entweder zu einem ersten Puffer 132 oder
zu einem zweiten Puffer 134 führt, in welchem die Daten gespeichert
werden. Die Puffer 132 und 134 sind nicht VRAM-Puffer,
sondern sie sind reguläre
RAM-Puffer, wobei jeder in der Lage ist, einen Rahmendatenwert zu
speichern. Der Selektor 136 richtet dann die Daten vom
geeigneten Puffer 132 oder 134 zur VRAM-Schaltung 138,
um auf der Anzeigeeinrichtung 62 angezeigt zu werden. Diese
Ausführungsform
ist weniger wünschenswert,
da sie zusätzliches Handhaben
der Daten über
die Puffer 132 und 134 und die Selektoren 130 und 136 erfordert.
Diese Ausführungsform
jedoch minimiert die notwendige VRAM-Höhe, wobei weniger teuere RAM-Puffer
verwendet werden.
-
Eine weitere alternative Ausführungsform weist
einen einzelnen Zwischenpuffer zwischen dem Dekompressor 76 und
der VRAM-Schaltung 138 auf, wie in 7 gezeigt ist. Der einzelne Zwischenpuffer 140 empfängt Daten
vom Dekompressor 76 und überträgt Daten zur VRAM-Schaltung 138.
Bei dieser Ausführungsform
wird, da der Zwischenpuffer 140 einen Datenrahmen zur VRAM-Schaltung 138 überträgt, dieser
außerdem
simultan Daten vom Dekompressor empfangen und diese Daten innerhalb
verfügbarer
Speicherstellen spei chern. Diese Ausführungsform nutzt eine VRAM-Schaltung 138 mit
einer Kapazität
für lediglich
einen einzelnen Datenrahmen mit einem einzelnen Zwischenpuffer.
Diese Ausführungsform
erfordert jedoch eine präzisere
Koordination im gesamten Datenhandhabungsprozess, da die Daten simultan übertragen
werden und im Zwischenpuffer 140 gespeichert werden.
-
Der VCR 100 oder eine andere
geeignete Quelleneinrichtung unterteilt die OSD-Grafikdaten von der Grafikquelle 108 in
Bereiche, die isochronen Paketen entsprechen, die über das
IEEE 1394-1995-Seriellbuskabel 90 übertragen werden. Ein Rahmen
der OSD-Grafikdaten wird in Datenblöcke unterteilt, wobei ein jeder
eine Größe hat,
die zur Übertragung
innerhalb eines isochronen Datenpakets geeignet ist. Wenn die Differenzcodierung
verwendet wird, werden lediglich die Pakete mit Pixeln, welche in
dem neuen Rahmen verschieden sind, zur Anzeigeeinrichtung geliefert.
Da jedoch jedes Datenpaket zu einer bestimmten Adresse innerhalb
des OSD-Puffers 78 geliefert wird, wird bevorzugt, dass ein
Vierer von Daten geliefert wird, wenn ein Pixel innerhalb des Vierers
geändert
wird. Folglich ist vorzugsweise ein Minimum von vier Bytes innerhalb
jedes differenz-codierten Datenpakets enthalten.
-
Ein bevorzugtes Format eines isochronen Datenpakets
zum Übertragen
von OSD-Grafikdaten über ein
IEEE 1394-1995-Seriellbusnetzwerk ist in 8 gezeigt. Das Format des Datenpakets
stimmt außerdem
mit dem ISO/IEC 61883-Standard überein.
Das isochrone Datenpaket umfasst einen Paketdatenkopf und ein Datenfeld
oder Nutzdaten. Der isochrone Paketdatenkopf umfasst ein Datenlängenfeld, ein
Kennzeichnungsfeld, ein Kanalfeld, ein tCodefeld, ein sy-Feld und
ein Datenkopf-CRC-Feld. Das Datenlängenfeld enthält einen
Wert, der die Anzahl von Datenbytes innerhalb des Datenfelds zeigt,
einschließlich
der Anzahl von Bytes innerhalb eines CIP-Datenkopfs (common isochronous
packet), der im Paket enthalten ist. Das Kennzeichnungsfeld liefert
ein Hochpegeletikett für
das Format von Daten, die durch das isochrone Paket getragen werden.
Das Kanalfeld enthält
die Kanalnummer, dem das isochrone Paket übertragen wird. Das tCode-Feld
enthält
einen Transaktionscode für
das Paket. Für
isochrone Datenpakete enthält
das tCodefeld entweder einen Wert Ah oder Ch. Das sy-Feld enthält ein Synchronisations-Flag,
welches bei einigen Anwendungen verwendet wird, um die Daten im
laufenden isochronen Paket mit einem anwendungs-spezifischen Ereignis
zu synchronisieren.
-
Ein Format des Datenfelds des isochronen Pakets,
welches verwendet wird, OSD-Grafik
gemäß der vorliegenden
Erfindung zu übertragen,
ist in 9 gezeigt. Das
Datenfeld besitzt einen erweiterten CIP-Datenkopf und einen Datenbereich.
Der erweiterte CIP-Datenkopf umfasst ein Ende eines Datenkopfbits
innerhalb jedes Vierers und ein Formbit innerhalb der zwei höchstwertigsten
Bits jedes Vierers. Bei dem bevorzugten Format des erweiterten CIP-Datenkopfs
wird das Ende des Datenkopfbits bis zum vierten und letzten Vierer
innerhalb des erweiterten CIP-Datenkopfs nicht auf logisch "1" gesetzt. Wenn das Ende des Datenkopfbits
einen Wert von logisch "1" hat, signalisiert
dies, dass das laufende Vierer der letzte Vierer innerhalb des CIP-Datenkopfs
ist. Innerhalb des CIP-Datenkopfs enthält das SID-Feld den Quellenknoten-ID-Wert
des Übertragungsknotens.
Das DBS-Feld enthält
einen Wert, der die Göße des Datenblocks
in Vierer zeigt. Das FN-Feld enthält eine Bruchzahl, welche die
Anzahl von Datenblöcken zeigt,
in welche ein Quellenpaket unterteilt ist. Das QPC-Feld enthält einen
Wert, der die Anzahl von Dummy-Vierern zeigt, welche einen Quellenpaket hinzugefügt wurden,
um die Größe der unterteilten Datenblöcke auszugleichen.
Wenn das FN-Feld zeigt, dass das Quellenpaket nicht unterteilt ist,
wird das QPC-Feld einen Wert gleich null enthalten. Das SPH-Flag
zeigt, ob das Quellenpaket einen Quellenpaketdatenkopf aufweist
oder nicht. Das SPH-Flag wird gleich logisch "1" gesetzt,
wenn das Quellenpaket einen Quellenpaketdatenkopf aufweist. Das RSV-Feld
ist für
die zukünftige
Erweiterung reserviert. Das DBC-Feld ist der Datenblock-Kontinuitätszähler, um
einen Verlust von Datenblöcken
zu ermitteln. Das FMT-Feld umfasst einen Formatidentifizierer, der
das Format des Pakets identifiziert. Das FDF-Feld ist ein format-abhängiges Feld
und hängt vom
Format des Pakets ab. Das SYT-Feld wird dazu verwendet, den Übertrager
und den Empfänger
zu synchronisieren. Das OSD-Pufferadressfeld enthält die Adresse,
in welcher die OSD-Grafikdaten, die im isochronen Paket enthalten
sind, innerhalb des OSD-Grafikdatenpuffers 78 gespeichert
werden sollen. Der verbleibende Datenbereich enthält die aktuellen
OSD-Grafiknutzdaten innerhalb des isochronen Pakets.
-
Ein Triggerpaket ist vorzugsweise
ein isochrones Datenpaket und hat das gleiche Format, wie in 8 gezeigt ist. Das Datenfeld
jedoch ist gegenüber
dem Datenfeld für
ein OSD-Grafikdatenpaket verschieden, wie in 9 gezeigt ist. Das bevorzugte Format
eines Datenfelds für
ein Triggerpaket ist in 10 gezeigt.
Das Format des erweiterten CIP-Datenkopfbereichs des Datenfelds
ist das gleiche wie das Format, welches in 9 gezeigt ist und oben erläutert wurde.
Das OSD-Pufferadressfeld enthält den
Wert, der die Adresse zeigt, in die das Triggerpaket zu schreiben
ist. Innerhalb der Nutzdaten umfasst das Triggerpaket vorzugsweise
drei Vierer. Der erste Vierer umfasst ein Triggerbit t als höchstwertigstes Bit,
welches auf einen Wert von logisch "1" für ein Triggerpaket
gesetzt wird. Das zweithöchste
signifikante Bit des ersten Vierers innerhalb des Triggerpakets
ist ein Überlagerungsbit
o. Das Überlagerungsbit
o gibt an, ob der laufende OSD-Grafikdatenrahmen einem Videodatenrahmen
zu überlagern
ist oder nicht. Der zweite und der dritte Vierer innerhalb des Triggerpakets umfassen
ein Darstellungszeitfeld, welches vorzugsweise einen Wert von 64 Bits
enthält,
die einen Zeitwert zeigen, bei dem der laufende Rahmen der OSD-Grafikdaten
anzuzeigen ist. Ein Darstellungszeitwert aller logischen "0" gibt eine unmittelbare Präsentationszeit
an.
-
Wenn das Triggerbit t geschrieben
wird, wird die Anzeigeeinrichtung informiert, dass der Puffer 78 einen
vollen Rahmen von OSD-Grafikdaten enthält, die fertig sind, in der
geeigneten Präsentationszeit angezeigt
zu werden. Die Daten werden dann zur VRAM-Schaltung 64 übertragen,
um in dem Zeitpunkt angezeigt zu werden, der durch den Präsentationszeitwert
angegeben wird. Obwohl bevorzugt wird, das Triggerbit t zu umfassen,
sollte für
den Fachmann klar sein, dass es möglich ist, dass ein Trggerbit
nicht notwendig ist. Bei einer alternativen Ausführungsform wirkt eine Schreibtransaktion
des Triggerpakets, welches den Präsentationszeitwert aufweist,
als Triggerereignis, und dann wird die Anzeigeeinrichtung informiert,
dass der Puffer 78 einen Rahmen von OSD-Grafikdaten enthält, die
in dem Zeitpunkt angezeigt werden sollen, der durch den Präsentationszeitwert
angegeben wird.
-
Wenn die Kommunikation zwischen der OSD-Grafikquelleneinrichtung
und der Anzeigeeinrichtung initialisiert wird, tritt eine Verhandlung
zwischen der Quelleneinrichtung und der Anzeigeinrichtung auf, um
die Parameter zu bestimmen, die zur Übertragung und zur Verarbeitung
der OSD-Grafikdaten zu verwenden sind. Diese Verhandlungsverarbeitung
umfasstdas Bestimmen von Parametern, beispielsweise der Adresse
des OSD-Puffers 78 innerhalb der Anzeigeeinrichtung, die
Größe des OSD-Puffers 78 und
der Attribute der OSD-Grafikdaten, beispielsweise die Bittiefe.
Vorzugsweise ist die Adresse des OSD-Puffers 78 fest, um
die gleiche Adresse innerhalb aller Anzeigeeinrichtungen zu sein.
Alternativ wird die Adresse des OSD-Puffers 78 durch die
Anzeigeeinrichtung so definiert, entweder eine einzelne Pufferbasisadresse
oder eine Adresse zu sein, die einer von mehreren Puffern entspricht, die
durch die Anzeigeeinrichtung verwendet werden. In der Anzeigeeinrichtung
umfasst der Verhandlungsprozess die Bestimmung des isochronen Kanals,
auf welchem die OSD-Grafikdaten empfangen werden und die Zuteilung
des internen Puffers, der als OSD-Puffer für diesen Kanal verwendet wird.
-
Vorzugsweise gibt es lediglich eine
Quelleneinrichtung, die in einen OSD-Grafikpuffer 78 zu
einem bestimmten Zeitpunkt schreibt. Alternativ ist die Anzeigeeinrichtung
in der Lage, die simultane Anzeige von OSD-Grafik von mehreren OSD-Puffern 78 unterzubringen.
Diese alternative Ausführungsform ist
bei Anzeigeeinrichtungen nützlich,
die eine Mehrfachanzeigetechnologie umfassen, beispielsweise Bild-in-Bild.
Jeder der Puffer 78 wird separat für jede Anzeige beibehalten.
Bei dieser Ausführungsform empfängt, wenn
alle Quelleneinrichtungen OSD-Grafikdaten zu der gleichen Pufferadresse
liefern, der eingebettete Datenstromprozess 84 diese Daten
und leitet diese zu einem geeigneten OSD-Puffer innerhalb der Anzeigeeinrichtung
weiter, und zwar in Abhängigkeit
vom isochronen Kanal, auf dem die Daten empfangen werden.
-
Die Quelleneinrichtung umfasst vorzugsweise
außerdem
die Möglichkeit,
Mehrfachdatenströme von
OSD-Grafikdaten zu einer einzelnen Anzeigeeinrichtung zu liefern
oder die Anzeige der Mehrfachdatenströme der OSD-Grafikdaten auf
mehreren Anzeigeeinrichtungen zu koordinieren. Die Quelleneinrichtung
umfasst außerdem
die Möglichkeit,
simultan einen einzelnen Datenstrom von OSD-Grafikdaten zu mehreren
Anzeigeeinrichtungen für
eine koordinierte Anzeige der OSD-Grafik zu liefern.
-
Datenpakete, welche durch die Anzeigeeinrichtung
auf isochronen Kanäle
empfangen werden, für
welche kein OSD-Grafikpuffer 78 zugeordnet ist, werden
durch den eingebetteten Datenstromprozessor 84 ausrangiert.
Außerdem
werden ankommende isochrone Datenpakete ohne die korrekte Datenkopfstruktur
entsprechend einem OSD-Grafikdatenpaket wie oben beschrieben, ebenfalls
durch den eingebetteten Datenstromprozessor 84 ausrangiert.
Der eingebettete Datenstromprozessor 84 erkennt ein OSD-Grafikdatenpaket
wegen der spezifischen Kombination des End-Datenkopfs und der Formbits
innerhalb der vier Vierer des erweiterten CIP-Datenkopfs.
-
Wenn ein isochrones Datenpaket auf
einem isochronen Kanal empfangen wird, der durch den Fernsehempfänger 60 empfangen
wird, leitet die IEEE 1394-1995-Schnittstellenschaltung 86 das
Paket weiter zum eingebetteten Datenstromprozessor 84.
Der eingebettete Datenstromprozessor 84 wirkt vorzugsweise
sowohl als Filter für
unerwünschte
isochrone Pakete als auch als Prozessor, um passend OSD-Isochrondatenpakete
zu empfangen. Für
passend empfangene isochrone Datenpakete analysiert der eingebettete
Datenstromprozessor 84 das empfange isochrone Paket, bestimmt,
ob es Videodaten oder OSD-Grafikdaten enthält, streift den Datenkopf vom
Paket ab und leitet die Nutzdaten entweder zum AN-Schalter 74,
wenn das Paket Videodaten enthält, oder
zur Dekompressionsschaltung 76, wenn das Paket OSD-Grafikdaten
enthält.
Vorzugsweise werden die OSD-Grafikdaten zur Übertragung komprimiert und
müssen
dekomprimiert werden, bevor sie verarbeitet werden. Alternativ sind
die OSD-Grafikdaten zur Übertragung
nicht komprimiert und die Dekompressionsschaltung 76 ist
nicht notwendig. Die OSD-Grafikdaten werden dann über die
DMA-Maschine 77, die verantwortlich ist, die Daten an den
geeigneten Stellen innerhalb des OSD-Puffers 78 zu speichern,
zum OSD-Puffer 78 geleitet. Die DMA-Maschine 77 empfängt die
Adressierungsinformation vom eingebetteten Datenstromprozessor 84, welche
die Stelle innerhalb des OSD-Puffers 78 angibt,
wo die laufenden OSD-Grafkdaten zu speichern sind. Von der DMA-Ma schine 77 werden
die laufenden OSD-Grafikdaten dann an den geeigneten Stellen innerhalb
des OSD-Puffers 78 gespeichert.
-
Wenn die OSD-Grafikdaten zur Übertragung komprimiert
sind, werden die Daten dann über
die Dekompressionsschaltung 76 geleitet und dekomprimiert,
bevor sie im OSD-Puffer 78 gespeicher
werden. Wenn die Daten durch die Quelleneinrichtung komprimiert
werden, werden diese in einer bekannten Weise komprimiert, die geeignet
ist, damit die Daten übertragen
werden können.
Die Dekompressionsschaltung 76 verwendet dann ein geeignetes
Dekompressionsverfahren, um die komprimierten Daten zu dekomprimieren.
Bei einer alternativen Ausführungsform
umfasst die Dekompressionsschaltung 76 einen Arbeitspuffer,
der die Daten ansammelt, welche dekomprimiert wurden. Wenn der Arbeitspuffer voll
ist, triggert die Dekompressionsschaltung 76 dann die DMA-Maschine 77,
welche die dekomprimierten OSD-Grafikdaten zu den passenden Stellen innerhalb
des OSD-Puffers 78 leitet. Innerhalb der bevorzugten Ausführungsform
der vorliegenden Erfindung umfasst jedoch die Dekompressionsschaltung 76 keinen
Arbeitspuffer, sondern liefert anstelle davon die dekomprimierten
Daten unmittelbar zur DMA-Maschine 77, und zwar jeweils
einen Vierer in einem Zeitpunkt. Die DMA-Maschine 77 empfängt die
Startadresse für
die Daten vom eingebetteten Datenstromprozessor 84. Solange
wie die DMA-Maschine Daten von der Dekompressionsschaltung 76 empfängt, wird
folglich die DMA-Maschine die dekomprimierten Daten an ansteigenden
Adressstellen innerhalb des OSD-Puffers 78 speichern. Wenn
die Dekompressionsschaltung 76 mit dem Dekomprimieren der
OSD-Grafikdaten für
das laufende Paket aufhört,
informiert die Dekompressionsschaltung 76 die DMA-Maschine 77,
dass das Paket abgeschlossen ist. Die DMA-Maschine 77 und
die Dekompressionsschaltung 76 warten dann auf das nächste isochrone Paket,
welches vom eingebetteten Datenstromprozessor 84 geliefert
wird.
-
Die bevorzugte Ausführungsform
der eingebetteten Datenstromprozessoren 84 und 109 werden gelehrt
in der US-Patentanmeldung mit der Serial Number 08/612 322, angemeldet
am 7. März
1996 mit dem Titel "ISOCHRONOUS
DATA PIPE FOR MANAG-ING
AND MANiPULATING A HIGH-SPEED STREAM OF ISOCHRONOUS DATE FLOWING BETWEEN
AN APPLICATION AND A BUS STRUCTURE", die hier durch mit Bezugnahme eingeführt wird.
Der eingebettete Datenstromprozessor 84 ist prgrammierbar
und wird eine Reihe von Instruktionen in Bezug auf Datenstromdaten
ausfihren, um Operationen und Manipulationen in Bezug auf Daten
wie erforderlich durchzuführen,
um die Daten in das geeignete Format zu versetzen. Innerhalb der
vorliegenden Erfindung empfängt
der eingebettete Datenstromprozessor 84 isochrone Pakete,
die OSD-Grafikdaten enthalten, streift den Datenkopf vom Paket, leitet
die OSD-Grafikdatennutzlast des Pakets weiter zur Dekompressionsschaltung 76 und
leitet die Adressierungsinformation zur DMA-Maschine 77 weiter.
Innerhalb der vorliegenden Erfindung empfängt der eingebettete Datenstromprozessor 109 Daten
von der Videoquelle 106 und der Grafikquelle 108,
fügt einen
Datenkopf den Paketen hinzu und leitet die Pakete weiter zur IEEE
1394-Schnittstellenschaltung 102. Es ist für den Fachmann
klar, dass alternativ irgendein Mechanismus mit einer geeigneten Verarbeitungsfähigkeit
anstelle der eingebetteten Datenstromprozessoren 84 und 109 verwendet
werden kann.
-
Wie oben beschrieben ist bei einer
alternativen Ausführungsform
der vorliegenden Erfindung die Anzeigeeinrichtung in der Lage, die
simultane Anzeige von OSD-Grafik von mehreren OSD-Puffern unterzubringen.
Die Datenverarbeitungskomponenten innerhalb des Fernsehgeräts 60,
die für
diese Ausführungsform
notwendig sind, sind in 11 gezeigt. Die
DMA-Maschine 77 ist mit den OSD-Puffern 150, 152 und 154 gekoppelt.
Die OSD-Puffer 150, 152 und 154 sind
jeweils mit einer Mischschaltung 156 gekoppelt. Die Mischschaltung 156 ist
dann mit der VRAM-Schaltung 64 gekoppelt. Bei dieser Ausführungsform
spürt der
eingebettete Datenstromprozessor 84 innerhalb des Fernsehgeräts 60 die
Verbindung zwischen dem ankommenden isochronen Kanalnummern und
den OSD-Puffern 150, 152 und 154 auf.
Jeder der OSD-Puffer 150, 152 und 154 bleibt separat
und entspricht einer isochronen Kanalnummer. Wenn der eingebettete
Datenstromprozessor 84 ein isochrones Datenpaket empfängt, wird
die Kanalnummer bestimmt und es wird die geeignete Adressierungsinformation,
die der geeigneten OSD-Pufferadresse entspricht, zur DMA-Maschine 77 geliefert. Die
Mischerschaltung 156 liefert dann die OSD-Grafikdaten von
Puffern 150, 152 und 154 zur VRAM-Schaltung 64.
Die Mischerschaltung 156 mischt die Daten von einem oder
mehreren Puffern wenn geeignet zur Anzeige für den Benutzer, einschließlich eines
Alternierens zwischen Bildschirmen von Daten oder Kombinationen
von Bildschirmen von Daten zur Anzeige.
-
Ein Flussdiagramm, welches die bevorzugten
Schritte zeigt, die auf die Quelleneinrichtung 100 folgen,
wenn ein Bildschirm von OSD-Grafikdaten übertragen wird ist in 12 gezeigt. Im Schritt 202 wird
ein voller Bildschirm von OSD-Grafikdaten durch die Grafikquelle 108 erzeugt.
Wenn das Differenzcodieren verwendet wird, werden lediglich die OSD-Grafikdaten zum Ändern von
Pixeln erzeugt. Im Schritt 204 werden die OSD-Grafikdaten
zur Kompressionsschaltung 110 übertragen und komprimiert. Alternativ
wird der Kompressionsschritt übersprungen
und die OSD-Grafikdaten nicht komprimiert. Die komprimierten OSD-Grafikdaten werden
dann in Quellenpakete im Schritt 206 unterteilt. Quellenpaketdatenköpfe werden
den Quellenpaketen im Schritt 108 hinzugefügt. Wenn
eines der Quellenpakete nicht genug Daten enthält, um ein volles Paket zu machen,
werden Füllbytes
im Schritt 210 hinzugefügt,
um jedes Quellenpaket zu einem vollen Paket zu machen.
-
Die Quellenpakete, welche die komprimierten
Daten enthalten, werden dann in isochrone Pakete kombiniert, einschließlich eines
isochronen Paketdatenkopfs und eines CIP-Datenkopfs, und zwar durch den eingebetteten
Datenstromprozessor 109 im Schritt 212 und dann zur Schnittstellenschaltung 102 geliefert.
Eine Darstellung von Datenstromdaten der Quellenpakete, welche in
isochrone Datenpakete kombiniert sind, ist in 14 gezeigt. Alle Quellenpakete 160–172 umfassen
einen Quellenpaketdatenkopf und eine Datennutzlast. Eine Anzahl
von Quellenpaketen wird zu einem isochronen Datenpaket kombiniert.
In der Darstellung, die in 14 gezeigt ist,
werden die Quellenpakete 160, 162 und 164 zum isochronen
Datenpaket 164 kombinier, und die Quellenpakete 160, 168 und 170 werden
zum isochronen Datenpaket 176 kombiniert. Alle isochronen
Datenpakete umfassen einen isochronen Paketdatenkopf und einen CIP-Datenkopf,
wie oben beschrieben wurde
-
Die isochronen Datenpakete werden
dann zur Anzeigeeinrichtung 60 über das IEEE 1394-1995-Sertellbuskabel 90 im
Schritt 214 übertragen.
Wenn ein Bildschirm von OSD-Grafikdaten geliefert wurde, wird das
isochrone Triggerpaket im Schritt 216 durch die Grafikquelle 108 erzeugt.
Im Schritt 218 wird das isochrone Datenpaket zur Anzeigeeinrichtung über die
Schnittstellenschaltung 102 übertragen. Wenn das Triggerpaket übertragen
ist, endet der Prozess für
diesen Bildschirm der OSD-Grafikdaten im Schritt 220. Der
in 12 gezeigte Prozess
wird für
jeden Bildschirm von OSD-Grafikdaten, die durch den VCR 100 erzeugt werden,
wiederholt.
-
Ein Flussdiagramm, welches die bevorzugten
Schritte zeigt, die auf die Anzeigeeinrichtuttg 60 folgen,
wenn OSD-Grafikdaten empfangen werden, ist in 13 gezeigt. Das bevorzugte Empfangsverfahren
beginnt im Schritt 230. Im Schritt 232 wird ein isochrones
Datenpaket durch die Anzeigeeinrichtung empfangen. Im Schritt 234 wird
die Kanalnummer, auf welcher das isochrone Datenpaket empfangen wurde
bestimmt. Im Schritt 236 wird dann durch den eingebetteten
Datenstrornprozessor 84 bestimmt, ob das laufende isochrone
Datenpaket OSD-Grafikdaten oder Videodaten aufweist. Wenn das laufende isochrone
Datenpaket Videodaten, Audiodaten oder andere Nicht-OSD-Grafikdaten
aufweist, wird das Paket zum AN-Schalter 74 übertragen
und als Nicht-OSD-Grafikdaten im Schritt 238 verarbeitet, und
die Verarbeitung kehrt zurück
zum Schritt 232, um das nächste isochrone Datenpaket
zu empfangen. Wenn dagegen das laufende isochrone Datenpaket OSD-Grafikdaten
aufweist, wird die Datenkopfinformation vom Paket durch den eingebetteten
Datenstromprozessor 84 im Schritt 240 abgestreift.
Die Quellenpakete werden dann im Schritt 241 unter Verwendung
von Daten innerhalb des Quellenpaketdatenkopfs rekonstruiert.
-
Im Schritt 242 wird die
Adresse innerhalb des Puffers 78, in welchem die laufenden
Daten gespeichert werden, bestimmt. Wenn die OSD-Grafikdaten vorher
komprimiert sind, werden diese Daten zur Dekompressionsschaltung 76 geliefert,
wo sie im Schritt 344 dekomprimiert werden. Die dekomprimierten
Daten werden dann an einer geeigneten Adresse innerhalb des OSD-Puffers 78 im
Schritt 246 gespeichert. Im Schritt 248 wird dann
bestimmt, ob das Datenpaket das Triggerpaket war. Wenn das Datenpaket
nicht das Triggerpaket war, kehrt das Verfahren zurück zum Schritt 232,
um das nächste
isochrone Datenpaket zu empfangen.
-
Wenn das laufende Datenpaket das
Triggerpaket ist, wird der Präsentationszeitwert
innerhalb des Pakets im Schritt 250 bestimmt. Der Prozess wartet
dann im Schritt 252, bis dies die Präsentationszeit ist. Wenn dies
die Präsentationszeit
ist, werden im Schritt 254 die Daten vom OSD-Puffer 78 vom OSD-Puffer 78 zur
VRAM-Schaltung 64 übertragen, um
auf der Anzeigeeinrichtung 62 angezeigt zu werden. Der
Prozess kehrt dann zurück
zum Schritt 232, um das nächste isochrone Datenpaket
zu empfangen.
-
Wie oben beschrieben werden isochrone Datenpakete
dazu verwendet, OSD-Grafikdaten von einer Quelleneinrichtung zu
einer Anzeigeeinrichtung zu übertragen.
Die isochronen Datenpakete umfassen jeweils eine Adresse, die einer
Adressstelle innerhalb der Anzeigeeinrichtung entspricht. Die OSD-Grafikdaten
werden durch die Quelleneinrichtung erzeugt und zur Anzeigeeinrichtung
als Datenstrom von isochronen Daten, vorzugsweise separat von Nicht-OSD-Grafikdaten übertragen.
Alternativ werden die OSD-Grafikdaten mit einem anderen Datenstrom,
beispielsweise Videodaten, kombiniert und von der Quelleneinrichtung
zur Anzeigeeinrichtung über
eine serielle Hochgeschwindigkeitsschnittstelle, beispielsweise
den seriellen IEEE 1394-1995-Bus übertragen. Es werden keine
einfachen Grafiken oder spezielle Grafikbefehle, beispielsweise
HAVi-Befehle verwendet, um die OSD-Grafik auf der Anzeigeeinrichtung
anzuzeigen. Außerdem
ist das Nichtcodieren der OSD-Grafikdaten erforderlich, bevor die
OSD-Grafikdaten von der Quelleneinrichtung übertragen werden. Indem es
einer Einrichtung erlaubt wird, reine Grafikdaten zu übertragen,
ohne dass irgendein Codieren erforderlich ist, können Einrichtungen mit beschränkten Videofähigkeiten,
beispielsweise MiniDisks, Grafikdaten zu einer Anzeigeeinrichtung
liefern, um eine Schnittstelle mit einem Benutzer zu bilden. Dies
kann es einem Benutzer gestatten, Dinge zu tun, beispielsweise ein
Heimaudiosystem über
eine Anzeigeeinrichtung zu konfigurieren.
-
Jedes Paket der OSD-Grafikdaten umfasst einen
Adresswert, der einer Speicheradresse innerhalb der Anzeigeeinrichtung
entspricht, die einen OSD-Puffer bildet. Wenn die OSD-Grafikdaten
durch die Anzeigeeinrichtung empfangen werden, werden diese in die
geeigneten Speicherstellen innerhalb des OSD-Puffers geladen. Ein
eingebetteter Datenstromprozessor wird dazu verwendet, die Datenkopfinformation
von allen isochronen Datenpaketen abzustreifen und die geeignete
Speicherstelle innerhalb des OSD-Puffers zu bestimmen, wo die Daten
zu speichern sind. Ein Triggerpaket wird dann am Ende des Datenstroms
der OSD-Grafikdaten
geliefert. Wenn das Triggerpaket empfangen wird, überträgt die Anzeigeeinrichtung
die Daten, die im OSD-Puffer gespeichert sind, zu einer VRAM-Schaltung
zur Anzeige durch die Anzeigeeinrichtung in einem speziellen Präsentationszeitpunkt.
Wenn die OSD-Grafikdaten
einem Videodatenstrom überlagert
sind, decodiert die Anzeigeeinrichtung den Videodatenstrom und kombiniert
die decodierten Videostromdaten mit den OSD-Grafikdaten zur Anzeige.
Ein Differenzcodieren wird dann verwendet, wenn Rahmendaten übertragen
werden, wo lediglich ein Bereich der Daten sich gegenüber einem
vorherigen Rahmen ändert.
-
Die vorliegende Erfindung wurde im
Hinblick auf spezielle Ausführungsformen
beschrieben, die Details enthalten, um das Verständnis der Prinzipien der Ausbaus
und der Arbeitsweise der Erfindung zu erleichtern. Diese Bezugnahme
hier auf spezielle Ausführungsformen
und Details ist nicht dazu da, den Rahmen der beigefügten Patentansprüche zu beschränken. Es
soll dem Fachmann klar sein, dass Modifikationen bei der Ausführungsform,
die zur Illustration gewählt
wird, durchgeführt
werden können. Insbesondere
soll es dem Fachmann klar sein, dass, obwohl die bevorzugten Ausführungsform
der Erfindung bei einer seriellen IEEE 1394-1995-Busstruktur verwendet
wird, die vorliegende Erfindung auch bei anderen geeigneten digitalen
Schnittstellen oder Busstrukturen durchgeführt werden kann, die andere oder
spätere
Versionen des seriellen IEEE 1394-Busses umfassen.