-
Die
vorliegende Erfindung bezieht sich allgemein auf die Verarbeitung
von Videodaten, insbesondere auf die Verarbeitung von Videodaten
zur Anzeige einer Rastergrafik über
Videobilder.
-
Home-Entertainment-Anlagen,
die die Funktionen von Personalcomputer und Fernsehgerät in sich
vereinen (PC-TV-Anlagen),
wandeln sich in steigendem Maße
zu gattungsgemäßen benutzerinteraktiven
Kommunikationseinrichtungen mit mehreren Quellen und mehreren Zielen.
Derartige Multimedia-Anlagen werden für die Kommunikation in unterschiedlichen
Datenformaten zwischen mehreren Standorten für eine Vielzahl von Anwendungen
als Reaktion auf Benutzeranfragen benötigt. Beispielsweise kann eine
PC-TV-Anlage Daten über
Satelliten- oder
terrestrische Quellen empfangen, wobei diese Quellen Übertragungen über hochauflösendes Fernsehen
(High Definition Television, HDTV), drahtlose Sprach- und Datenübertragungen
(Multipoint Microwave Distribution System, MMDS) und digitale Fernsehübertragungen
(Digital Video Broadcasts, DVB) umfassen. Eine PC-TV-Anlage kann
auch Daten über
Telefonleitungen (z.B. Internet) und Koaxialleitungen (z.B. Kabelfernsehen)
sowie von entfernten und lokalen Quellen wie beispielsweise Digital
Video Disk (DVD), CD-ROM, VHS-Player, Digital-VHS-Player (D-VHSTM)
und PCs empfangen und senden.
-
Eine
derartige gattungsgemäße PC-TV-Entertainment-Anlage
erfordert für
den Gebrauch von Videoprogramminhalten aus verschiedenen Quellen oder
für verschiedene
Anwendungen eine Vielzahl verschiedener Bildschirmmenüs (On Screen
Display, OSD). In derartigen Anlagen wird die OSD-Funktion zur Anzeige
von Rastergrafiken verwendet, die das Videobild auf einem Fernsehbildschirm überlagern, um
auf dem Fernsehbildschirm Informationen zu übermitteln oder Menüs anzuzeigen.
Das OSD wird auf einen „Pixelbildspeicher" gerendert, wobei
das Pixelbild auf den Fernsehbildschirm abgebildet wird. Dieses
OSD-Pixelbild muss an einer beliebigen Stelle über dem Videobild die gleiche
Größe haben
wie der aktive Videobereich auf dem Fernsehbildschirm.
-
Bei
einigen Anlagen schaltet das Videoraster zwischen den Abtastmodi
2H und 2,14H um, je nachdem welcher Kanal gerade angeschaut wird.
Daher ist die Größe des aktiven
Videobereichs in den beiden Modi jeweils unterschiedlich. Infolgedessen muss
für jeden
Rastermodus ein OSD-Pixelbild in einer anderen Größe verfügbar sein.
Beispielsweise ist im 2H-Modus eine OSD-Größe von 480 Zeilen × 2096 Pixel/Zeile
und im 2,14-Modus eine OSD-Größe von 540
Zeilen × 1920
Pixel/Zeile erforderlich. Dies beruht auf der Tatsache, dass der
OSD-Pixeltakt eine Funktion des Videorastertaktes ist.
-
Eine
Methode, dieses Problem zu lösen,
besteht darin, mehrere Pixelbilder für mehrere Videobilder mit unterschiedlichen
Rastergrößen aufrechtzuerhalten
und abhängig
von einem gewünschten
Anzeigemodus auf ein bestimmtes Pixelbild umzuschalten. Diese Methode
ist jedoch nachteilig, weil dabei alle OSD-Pixelbilder mehrmals
(einmal pro Pixelbild) gerendert werden müssen und so Speicherplatz verschwendet
wird. Ein weiterer Nachteil dieser Methode ist die Verlangsamung
des Systems, weil sich die zum Rendern des Pixelbildes erforderliche
Zeit vervielfacht.
-
WO
98 17058 A offenbart ein Verfahren und ein System für die Anzeige
eines Pixelbildes in einem ersten und einem zweiten Anzeigemodus,
wobei es sich bei einem der Modi um einen Zeilenverdoppelungsmodus
handelt.
EP 1 069 770 ,
die nach Art. 54(3)EPC als Stand der Technik gilt, bezieht sich
auf ein Verfahren und ein System für die Anzeige eines Pixelbildes,
bei dem Anzeigeeigenschaften in einer Vielzahl von unterschiedlichen,
zu dem Pixelbild gehörigen
Headern definiert werden.
-
Daher
besteht ein Bedarf an einem verbesserten Verfahren und einem verbesserten
System mit Verwendung eines einzelnen Pixelbildes über mehrere
Videoraster unterschiedlicher Größe. Die
vorliegende Erfindung stellt ein Verfahren und ein System zur Deckung
dieses Bedarfs bereit.
-
Die
vorliegende Erfindung ist in den im Anhang aufgeführten Ansprüchen dargelegt
und stellt ein Verfahren und ein System bereit, die ein einzelnes
Pixelbild, das eine Vielzahl von Pixelzeilen enthält, in mehreren
Videorastern unterschiedlicher Größe verwenden. Im Allgemeinen
werden nach der vorliegenden Erfindung wenigstens zwei Sätze von
Headern (z.B. ein erster Satz und ein zweiter Satz von Headern)
verwendet, um verschiedene Abschnitte eines einzelnen Pixelbildes
auszuwählen,
das basierend auf unterschiedlichen Rastergrößen angezeigt werden soll.
Die Header in dem ersten oder zweiten Satz von Headern zeigen jeweils
auf eine Pixelzeile, um die Anzahl von Pixeln für diese Pixelzeile auszuwählen. Daher
bestimmt die Anzahl der Header in einem Satz von Headern die Höhe des Pixelbildes,
und die Auswahl der Anzahl der Pixel durch einen Satz von Headern
bestimmt die Breite des Pixelbildes. Als Reaktion auf verschiedene
Anzeigemodi wird bei der vorliegenden Erfindung gezielt der erste
oder zweite Satz von Headern aufgerufen, um einen betreffenden Abschnitt
des anzuzeigenden Pixelbildes auszuwählen. Auf diese Weise kann
ein einzelnes Pixelbild über
mehrere Videoraster unterschiedlicher Größe verwendet werden.
-
Kurzbeschreibung
der Zeichnungen
-
Es
zeigen:
-
1 zeigt
eine beispielhafte Home-Entertainment-Anlage zur Verarbeitung von
OSD-Header- und OSD-Inhaltsdaten gemäß der vorliegenden Erfindung.
-
2 veranschaulicht
weiter den MPEG-Decoder und den Videospeicher der in 1 gezeigten beispielhaften
Home-Entertainment-Anlage.
-
3 veranschaulicht
einen herkömmlichen MPEG-Decoder
und eine herkömmliche
Videospeicheranordnung.
-
4 zeigt
ein Ablaufdiagramm, das einen herkömmlichen OSD-Abrufprozess veranschaulicht.
-
5 veranschaulicht
herkömmliche OSD-Datenformate.
-
6 veranschaulicht
einen MPEG-Decoder und eine Videospeicheranordnung gemäß der vorliegenden
Erfindung.
-
7 veranschaulicht
eine verbesserte OSD-Anordnung gemäß der vorliegenden Erfindung.
-
8 zeigt
ein Ablaufdiagramm, das einen Pixelbildabrufprozess gemäß der vorliegenden
Erfindung veranschaulicht.
-
Die
Eigenschaften und Vorteile der vorliegenden Erfindung werden anhand
der folgenden, als Beispiel angegebenen Beschreibung ersichtlich.
-
Unter
Bezugnahme auf 1 wird ein Blockdiagramm einer
digitalen Videoempfangsanlage gezeigt, die nach den Grundlagen der
Erfindung arbeitet. Die Videoempfangsanlage umfasst eine Antenne 10 und
einen Eingangsprozessor 15 zum Empfangen und Digitalisieren
eines Übertragungsträgers, der
mit Signalen moduliert ist, welche Audio-, Video- und zugehörige Daten
tragen, einen Demodulator 20 zum Empfangen und Demodulieren
des von dem Eingangsprozessor 15 kommenden digitalen Ausgangssignals
sowie einen Decoder 30, der ein Signal ausgibt, das Trellis-decodiert,
in Datensegmente von Bytelänge
abgebildet, entschachtelt und Reed-Solomon-fehlerkorrigiert ist.
Die von der Decodereinheit 30 kommenden korrigierten Ausgangsdaten
liegen in Form eines MPEG-kompatiblen Transportdatenstroms vor,
der für
ein Programm repräsentative
multiplexierte Audio-, Video- und Datenkomponenten enthält.
-
Die
Videoempfangsanlage umfasst ferner ein Modem 80, das über Telefonleitungen
an einen Server 83 oder Verbindungsservice 87 so
angeschlossen werden kann, dass Daten in verschiedenen Formaten
(z.B. MPEG, HTML und/oder JAVA) von der Videoempfangsanlage über die
Telefonleitungen empfangen werden können.
-
Ein
Prozessor 25 verarbeitet die von dem Decoder 30 und/oder
dem Modem 80 ausgegebenen Daten so, dass die verarbeiteten
Daten auf einer Anzeigeeinheit 75 angezeigt oder auf einem
Speichermedium 105 gespeichert werden können, und zwar aufgrund von
Anfragen, die ein Benutzer über
eine Fernsteuerungseinheit 125 eingibt. Insbesondere umfasst
der Prozessor 25 eine Steuereinheit 115, die die
von dem Fernsteuerungsgerät 125 über die
Fernbedienungsschnittstelle 120 empfangenen Anfragen auswertet
und die Elemente des Prozessors 25 entsprechend konfiguriert,
damit dieser die Benutzeranfragen ausführt (z.B. Kanal, Website und/oder OSD-Display). In einem
beispielhaften Modus konfiguriert die Steuereinheit 115 die
Elemente des Prozessors 25 so, dass MPEG-decodierte Daten
und ein OSD zur Anzeige auf der Anzeigeeinheit 75 bereitgestellt
werden. In einem anderen beispielhaften Modus konfiguriert die Steuereinheit 115 die
Elemente des Prozessors 25 so, dass ein MPEG-kompatibler Datenstrom
zur Speicherung auf einem Speichermedium 105 über die
Speichervorrichtung 90 und die Speicherschnittstelle 95 bereitgestellt
werden. In einem weiteren beispielhaften Modus konfiguriert die Steuereinheit 115 die
Elemente des Prozessors 25 für andere Kommunikationsmodi,
beispielsweise zum Empfang von bidirektionalen Nachrichtenübertragungen
(z.B. Internet) über
einen Server 83 oder einen Verbindungsservice 87.
-
Der
Prozessor 25 umfasst eine PID-Auswahl-Decodier-Einheit 45,
die ausgewählte
Pakete in dem Transportstrom von dem Decoder 30 zu dem Transport-Decoder 55 erkennt
und leitet. Der von dem Decoder 30 kommende Transportstrom
wird durch den Transportdecoder 55 in Audio-, Video- und Datenkomponenten
demultiplexiert und weiter durch die anderen Elemente des Prozessors 25 verarbeitet, wie
im Folgenden detaillierter beschrieben.
-
Der
dem Prozessor 25 zugeführte
Transportstrom umfasst Datenpakete, die Programmkanaldaten, Zusatzinformationen
zur Systemzeitsteuerung und programmspezifische Informationen enthalten, wie
beispielsweise Informationen über
die Einstufung der Programminhalte und Programmführerinformationen. Der Transportdecoder 55 leitet
die Zusatzinformationspakete zu der Steuereinheit 115,
die die Zusatzinformationen analysiert und sortiert und die Zusatzinformationen
in hierarchisch angeordneten Tabellen zusammenstellt. Einzelne,
den vom Benutzer ausgewählten
Programmkanal umfassende Datenpakete werden erkannt und mit Hilfe
der zusammengestellten programmspezifischen Informationen zusammengestellt.
Die Informationen zur Systemzeitsteuerung enthalten einen Zeitreferenzanzeiger
sowie zugehörige
Korrekturdaten (z.B. Sommerzeitanzeiger und Offset-Informationen zum
Anpassen an Zeitabweichungen, Schaltjahre usw.). Diese Zeitsteuerungsinformationen
reichen dafür
aus, dass ein Decoder den Zeitreferenzanzeiger in einen Zeittaktgeber
(z.B. amerikanische Ostküstenzeit
und zugehöriges
Datum) umwandelt, damit ein Tageszeitpunkt und ein Datum für die zukünftige Übertragung
eines Programms durch die Sendeanstalt des Programms festgelegt
wird. Der Zeittaktgeber kann für
die Auslösung
von zeitlich festgelegten Programmverarbeitungsfunktionen verwendet
werden, wie beispielsweise zum Abspielen, Aufzeichnen und Wiedergeben
eines Programms. Ferner enthalten die programmspezifischen Informationen
bedingte Zugangs- und Netzwerkinformationen sowie Erkennungs- und
Verknüpfungsdaten,
die die in 1 gezeigte Anlage befähigen, sich
auf einen gewünschten Kanal
einzustellen und Datenpakete so zusammenzustellen, dass sie vollständige Programme
bilden. Die programmspezifischen Informationen enthalten außerdem Zusatzinformationen
zur Einstufung der Programminhalte (z.B. Einstufung für Alterseignung), Programmführerinformationen
(z.B. ein elektronischer Programmführer – EPG) und beschreibenden Text
zu den gesendeten Programmen sowie Daten, die die Erkennung und
Zusammenstellung dieser Zusatzinformationen unterstützen.
-
Der
Transportdecoder 55 führt
die MPEG-kompatiblen Video-, Audio- und Teilbildströme dem MPEG-Decoder 65 zu.
Die Video- und Audioströme enthalten
komprimierte Video- und Audiodaten, die den Inhalt des ausgewählten Kanalprogramms
darstellen. Die Teilbilddaten enthalten mit dem Kanalprogramminhalt
zusammenhängende
Informationen, wie beispielsweise Einstufungsinformationen, programmbeschreibende
Informationen und ähnliche
Informationen.
-
Der
MPEG-Decoder 65 wirkt mit einem Arbeitsspeicher (RAM) 67 zusammen,
um die von der Einheit 55 kommenden MPEG-kompatiblen Audio- und
Videodatenpakete zu decodieren und zu dekomprimieren, und führt dem
Anzeigeprozessor 70 dekomprimierte programmrepräsentative
Pixeldaten zu. Darüber
hinaus stellt der Decoder 65 die von der Einheit 55 kommenden
Teilbilddaten zusammen und sortiert und interpretiert diese, um
formatierte Programmführerdaten
zur Ausgabe an ein internes OSD-Modul zu erzeugen (siehe 2, 3 und 7).
Das OSD-Modul wirkt mit dem RAM 67 zusammen, um die Teilbilddaten
und weitere Informationen zu verarbeiten, so dass Pixelbilddaten
generiert werden, die Untertitel-, Steuerungs- und Informationsmenüanzeigen
darstellen, einschließlich
auswählbarer
Menüoptionen
und anderer Punkte zur Darstellung auf der erfindungsgemäßen Anzeigevorrichtung 75.
Mit Hilfe der angezeigten Steuerungs- und Informationsmenüs kann der
Benutzer ein Programm auswählen,
um sich Funktionen für
die zukünftige
Programmverarbeitung anzeigen zu lassen und diese zeitlich festzulegen;
dazu gehört
die Einstellung für
den Empfang eines ausgewählten
Programms zum Anschauen, für
das Aufzeichnen eines Programms auf einem Speichermedium 105 und
für die
Wiedergabe eines Programms von dem Medium 105.
-
Die
Steuerungs- und Informationsanzeigen, einschließlich durch das OSD-Modul erzeugte
Schrift und Grafik, werden auf Anweisung der Steuereinheit 115 in
Form von überlagerten
Pixelbilddaten generiert. Die von dem OSD-Modul kommenden überlagerten
Pixelbilddaten werden auf Anweisung der Steuereinheit 115 mit
den von dem MPEG-Decoder 65 kommenden dekomprimierten pixelrepräsentativen
Daten kombiniert und synchronisiert. Die kombinierten Pixelbilddaten,
die ein Videoprogramm auf dem ausgewählten Kanal darstellen, werden
zusammen mit den Teilbilddaten durch den Anzeigeprozessor 70 codiert
und zur Anzeige zur Vorrichtung 75 ausgegeben.
-
Die
Grundlagen der Erfindung können
auf terrestrische, Kabel-, Satelliten-, Internet- oder Computernetz-Übertragungsanlagen
angewendet werden, in denen die Codierungsart oder das Modulationsformat
variieren kann. Solche Anlagen können beispielsweise
Systeme enthalten, die nicht mit MPEG kompatibel sind und andere
Arten codierter Datenströme
sowie andere Verfahren zur Übermittlung
programmspezifischer Informationen betreffen. Und auch wenn die
offenbarte Anlage laut Beschreibung übertragene Programme verarbeitet,
ist sie weiterhin nur als ein Beispiel zu verstehen. Der Begriff „Programm" wird so verwendet,
dass er jede beliebige Form von Datenpaketen darstellt, beispielsweise Audiodaten,
telefonische Nachrichten, Computerprogramme, Internetdaten oder
andere Nachrichtenübertragungen.
-
Die
Architektur von 1 ist nicht ausschließlich. Nach
den Grundsätzen
der Erfindung können
andere Architekturen abgeleitet werden, um die gleichen Ziele zu
erfüllen.
Ferner können
die Funktionen der Elemente des in 1 gezeigten Prozessors 25 ganz
oder teilweise im Rahmen der programmierten Anweisungen eines Mikroprozessors
ausgeführt
werden. Zudem gelten die Grundsätze
der Erfindung für
jede beliebige Form eines MPEG-kompatiblen oder nicht-MPEG-kompatiblen elektronischen
Programmführers.
-
Unter
Bezugnahme auf 2 werden nun der MPEG-Decoder 65 und
das Video-RAM 67 im Einzelnen veranschaulicht. Der Decoder 65 umfasst einen
FIFO-Pufferspeicher 130, der die Videodatenpakete auf Anfrage
in kleinen Segmenten von dem Transportdecoder 55 empfängt und
sie über
eine Speichersteuereinheit 132 in relativ größeren Segmenten
an einen Abschnitt 134 des RAM 67 koppelt, welcher
für die
Decodierung und die Dekomprimierung reserviert ist. Das Video-RAM 67 wird
auf Anweisung der Speichersteuereinheit 132 adressiert. Der
Abschnitt 134 des RAM 67 umfasst einen Ratenpufferabschnitt
zur Speicherung der empfangenen Videodatenpakete und einen Framespeicherabschnitt
zum Speichern von Frames von Videoinformationen während des
Decodierungs- und Dekomprimierungsschrittes. Eine Videoanzeigeeinheit 140 decodiert
und dekomprimiert die gespeicherten Videodatenpakete, um eine Abfolge
von Videobildkomponenten zu bilden. Zu diesem Zweck fragt die Videoanzeigeeinheit 140 Daten
von dem Decodier- und Dekomprimierteil des Abschnitts 134 über die
Speichersteuereinheit 132 je nach Bedarf ab. Die Abfolge der
Videobildkomponenten wird mit Halbbild-, Zeilen- und Pixelratensignalen
synchronisiert, die durch den Anzeigeprozessor 70 erzeugt
werden. Die von der Steuereinheit 115 erzeugten Steuerdaten
werden von der Steuerschnittstelleneinheit 142 empfangen und
an verschiedene Elemente des MPEG-Decoders 65 über einen
internen Steuerbus gekoppelt.
-
Der
OSD-Teil des MPEG-Decoders 65 umfasst eine OSD-Anzeige-Einheit 144,
die mit einem OSD-Header-Speicherblock 136 und einem OSD-Pixelbild-
bzw. OSD-Rastergrafik-Speicherblock 138 des RAM 67 über die
Speichersteuereinheit 132 kommuniziert, wie im Einzelnen
unten beschrieben. Sobald der Videoempfänger initialisiert wird, erzeugt die
Steuereinheit 115 ein einzelnes Pixelbild sowie zugehörige Sätze von
Pixelbild-Headern
und speichert diese über
die Steuerschnittstelle 142 und die Speichersteuereinheit 132 in
OSD-Pixelbild- und OSD-Header-Blöcken der
Speicher 138 und 136.
-
Unter
der Steuerung der OSD-Anzeige-Einheit 144 kombiniert ein
Ausgangsmultiplexer 146 den Ausgang der Videoanzeigeeinheit 140 (Videobildkomponenten)
und den Ausgang der OSD-Anzeige-Einheit 144 (Grafikbildkomponenten)
miteinander und leitet diese Video- und Grafikkombination zu dem Anzeigeprozessor 70 zur
Anzeige auf der Anzeigeeinheit 75.
-
Unter
Bezugnahme auf 3 wird nun eine herkömmliche
OSD-Management-
und Steuerungsanordnung gezeigt. Die Speichersteuereinheit 132 umfasst
unter anderem ein Register 148 für OSD-Header-Pointer (OHP)
sowie ein Register 150 für Speicherzugangsdateien (Memory
Access File, MAF), die die Speicherung und den Abruf von OSD-Daten
im OSD-Header-Block 136 und im OSD-Pixelbild-Block 138 des
Speichers 67 ermöglichen.
Die Speichersteuereinheit 132 verwaltet die Speicherung
und den Abruf der OSD-Daten im Speicher 67 in Reaktion
auf Anfragen von der OSD-Anzeige-Einheit 144. Sobald der
Videoempfänger
initialisiert wird, werden in dem Speicher 67 eine Vielzahl von
OSD-Datenstrukturen gespeichert. Jede OSD-Datenstruktur umfasst
einen im Header-Block 136 des Speichers 67 gespeicherten
OSD-Header (z.B. Header „OSD
1", „OSD 2" und „OSD 3") und ein im Pixelbildblock 138 des
Speichers 67 gespeichertes OSD-Pixelbild (z.B. Pixelbild „OSD 1", „OSD 2" und „OSD 3"). Basierend auf
der herkömmlichen OSD-Puffertechnik
ist für
jedes im Pixelbildblock 138 gespeicherte OSD-Pixelbild
ein einzelner OSD-Header im Header-Block 136 gespeichert. Jeder OSD-Header
enthält
den Speicherplatz des zugehörigen
Pixelbildes im Pixelbildblock 138 sowie einen Satz von
Anzeigeeigenschaften, die definieren, wie das zugehörige Pixelbild
durch den Anzeigeprozessor 70 zu verarbeiten und auf der
Anzeigeeinheit 75 anzuzeigen ist. Beispielsweise enthält der Header „OSD 1" den Speicherplatz
für das
Pixelbild „OSD
1" sowie einen Satz
von Anzeigeeigenschaften, die definieren, wie das Pixelbild „OSD 1" zu verarbeiten und anzuzeigen
ist. Ohne darauf beschränkt
zu sein, umfassen die Anzeigeeigenschaften die Anwesenheit oder
Abwesenheit von OSD-Seitenbereichen, die Anwendung von Pixelkomprimierung,
die Anzahl von Bits pro Pixel, YUV- oder YIQ-Farbmessung, Transparenzgrad,
OSD-Größe, OSD-Format
(z.B. interlaced oder progressiv), OSD-Farbschema, OSD-Mischverhältnis, OSD-Auflösung, Seitenverhältnis, horizontale
Pixelverdoppelung, vertikale Pixelverdoppelung, OSD-Bilschirmplatz.
Einige beispielhafte OSD-Header- und OSD-Pixelbild-Datenstrukturen sind in 5 veranschaulicht.
Wie oben beschrieben, hängt
jeder OSD-Header 167 mit einem anderen OSD-Pixelbild 168 zusammen.
-
Unter
Bezugnahme auf 4 und in Verbindung mit 3 wird
nun ein herkömmlicher
OSD-Abrufvorgang 151 aufgezeigt.
-
Zunächst empfängt die
OSD-Anzeige-Einheit 144 in Schritt 152 eine OSD-Anzeige-Anfrage von
der Steuereinheit 115, ein OSD (z.B. ein Grafikbild wie
in 5 abgebildet) auf der Anzeigeeinheit 75 anzuzeigen.
Als Reaktion auf die Anfrage der Steuereinheit überträgt die OSD-Anzeige-Einheit 144 in
Schritt 154 eine Speicherzugriffsanfrage an das OHP-Register 148.
Das OHP-Register 148 bedient die Anfrage in Schritt 156,
indem es den OSD-Header, der dem gewünschten OSD-Pixelbild entspricht, in
das MAF-Register 150 schreibt. In Schritt 158 liest die
OSD-Anzeige-Einheit 144 den OSD-Header aus, um den Platz
des OSD-Pixelbildes in dem Pixelbildblock 138 zu bestimmen.
Sobald der Pixelbildplatz bestimmt ist, setzt die OSD-Anzeige-Einheit 144 die OSD-Adresse
in der Speichersteuereinheit 132 und fordert die Speichersteuereinheit 132 auf,
das Bild an der gesetzten Adresse in das MAF-Register 150 einzulesen.
Daraufhin stellt die OSD-Anzeige-Einheit 144 in Schritt 160 fest,
ob die Anzeigeeigenschaften in dem abgerufenen OSD-Header mit den Anzeigeeigenschaften
der OSD-Anzeige-Anfrage übereinstimmen.
Beispielsweise können
die Anzeigeeigenschaften des abgerufenen Headers angeben, dass das
zugehörige
Pixelbild als blaues Bild im oberen Teil der Anzeige 75 angezeigt
werden soll, während
die angeforderten Anzeigeeigenschaften angeben, dass das zugehörige Pixelbild
als grünes
Bild im unteren Teil der Anzeige 75 angezeigt werden soll.
Stimmen die Anzeigeeigenschaften des OSD-Headers mit den angeforderten
OSD-Anzeigeeigenschaften überein, übergibt
die OSD-Anzeige-Einheit 144 in
Schritt 162 das OSD-Pixelbild und die zugehörigen Anzeigeeigenschaften
(wie in dem OSD-Header vorgesehen) an den Anzeigeprozessor 70.
Stimmen die Anzeigeeigenschaften des OSD-Headers nicht mit den angeforderten
OSD-Anzeigeeigenschaften überein, überschreibt
die OSD-Anzeige-Einheit 144 in Schritt 164 die
Anzeigeeigenschaften in dem abgerufenen OSD-Header und/oder baut
das OSD-Pixelbild neu auf, damit es die angeforderten Anzeigeeigenschaften
enthält,
bevor sie in Schritt 166 das (neu aufgebaute) OSD-Pixelbild
und den zugehörigen
(überschriebenen)
Header an den Anzeigeprozessor 70 übergibt. Durch das Überschreiben
des OSD-Headers und/oder den Neuaufbau des OSD-Pixelbildes entsteht
zwischen der OSD-Anfrage der Steuereinheit 115 und der
Anzeige des OSD mit den gewünschten
Anzeigeeigenschaften eine Verzögerung. Das
heißt,
dass die für
die Änderung
des OSD-Headers und des zugehörigen
OSD-Pixelbildes
erforderlichen mehreren Speicheranweisungen zu einer verzögerten Anzeige
des OSD führen.
Falls die OSD-Anzeige-Anfrage
zu einem Zeitpunkt stattfindet, zu dem der Videoempfänger mit
einem zeitkritischen Vorgang beschäftigt ist (z.B. die Anzeige
eines Videoprogramms), sollte hier beachtet werden, dass eine verzögerte Anzeige
des OSD eine Unterbrechung oder Verzerrung (z.B. Einleitung zu einer
Videostörung)
des für
einen Benutzer angezeigten Videos verursachen kann.
-
Unter
Bezugnahme auf 6 wird ein verbesserter Aufbau
des OSD-Pixelbildes gemäß der vorliegenden
Erfindung veranschaulicht, bei dem ein einzelnes OSD-Pixelbild in
einer Vielzahl von Videorastergrößen angezeigt
werden kann. Wie in 6 gezeigt, umfasst der Pixelbildaufbau
ein Pixelbild 190, einen ersten Satz von Headern 198,
einen zweiten Satz von Headern 200 sowie einen OHP (OSD-Header-Pointer) 202.
Das Pixelbild 190 umfasst typischerweise einen mittleren
Bereich 192, in dem Menüs,
Führer
usw. angezeigt werden, sowie seitliche Bereiche links und rechts,
auf die unter dem Sammelbegriff Seitenbereiche (194 und 196)
Bezug genommen wird. Für
die zur Anzeige in den Seitenbereichen ausgewählten Pixel kann vorgegeben
werden, ob sie graue oder transparente Pixel sein sollen, je nachdem,
ob das zugrundeliegende Videobild im Format 4x3 oder 16x9 angezeigt
wird. Das Pixelbild 190 als solches ist so gestaltet, dass
die Seitenbereiche des Pixelbildes so manipuliert werden können, dass
sie die Größenunterschiede
zwischen den beiden Anzeigemodi kompensieren und gleichzeitig ermöglichen,
dass der mittlere Bereich des OSD-Bildes unverändert erscheint.
-
In
einer beispielhaften Ausführung
enthält das
Pixelbild 190 540 Pixelzeilen, die jeweils 2096 Pixel umfassen.
Der erste Satz von Headern 198 enthält 480 einzelne Header (oder
er enthält
nur einen Header), und der zweite Satz von Headern 200 enthält 540 einzelne
Header. Die einzelnen Header in dem ersten und dem zweiten Satz
von Headern sind miteinander verkettet, wobei jeder Header auf eine einzelne
Pixelzeile in dem Pixelbild 190 zeigt. Wird der Pixelbildaufbau
der vorliegenden Erfindung verwendet, ist es möglich, ein einzelnes Pixelbild
in verschiedenen Videorastern in unterschiedlichen Anzeigemodi (d.h.
2H-Modus und 2,14H-Modus) zu verwenden. Insbesondere zeigt jeder
der 480 Header in dem ersten Satz von Headern 198 auf eine
einzelne fortlaufende Pixelzeile des Pixelbildes 190, die
2096 Pixel breit ist. Jeder der 540 Header in dem zweiten Satz von
Headern 200 zeigt auf eine einzelne fortlaufende Pixelzeile
des Pixelbildes 190, das 1920 Pixel breit ist. Bei einer
Kanaländerung
kann der OHP 202 entweder im 2H-Modus die 480 verketteten
Header in dem ersten Satz von Headern 198 oder im 2,14H-Modus
die 540 verketteten Header in dem zweiten Satz von Headern 200 auswählen.
-
Hier
ist zu beachten, dass für
die Auswahl der Breite des Pixelbildes im 2,14H-Modus die Header
im zweiten Satz von Headern 200 jeweils nur einen Teil
der Pixel (z.B. 1920 von 2096 Pixeln) in dem Pixelbild in horizontaler
Richtung auswählen.
Daher müssen
in dem zweiten Satz von Headern 200 540 einzelne Header
verwendet werden, die auf die 540 Pixelzeilen in dem Pixelbild 190 zeigen.
Um allerdings die Breite des Pixelbildes im 2H-Modus auszuwählen, wählen die
480 Header in dem ersten Satz von Headern 198 jeweils alle
Pixel (z.B. 2096 von 2096 Pixeln) in dem Pixelbild in horizontaler
Richtung aus. Daher könnte
in einer alternativen Ausführung, wie
in 6 gezeigt, ein einzelner Header in dem ersten
Satz von Headern 198 verwendet werden, der auf die 480
mittleren Pixelzeilen in dem Pixelbild zeigen soll.
-
Unter
Bezugnahme auf 7 wird nun eine verbesserte
OSD-Management-
und OSD-Steuerungsanordnung gemäß der vorliegenden
Erfindung veranschaulicht. Gemäß der Anordnung
der vorliegenden Erfindung wird bei Initialisierung des Videoempfängers eine
OSD-Datenstruktur in dem Speicher 67 gespeichert. Insbesondere
umfasst die OSD-Datenstruktur gemäß der vorliegenden Erfindung
ein einzelnes OSD-Pixelbild, das in dem Pixelbildblock 138 des
Speichers 67 gespeichert ist. Das Pixelbild enthält 540 Pixelzeilen,
die jeweils 2096 Pixel umfassen. Die OSD-Datenstruktur umfasst außerdem einen
ersten und einen zweiten Satz von Headern, die in dem Header-Block 136 des
Speichers 67 gespeichert sind. Der erste Satz von Headern
enthält
480 einzelne Header (oder kann, wie oben beschrieben, auch nur einen
Header enthalten), und der zweite Satz von Headern enthält 540 einzelne
Header. Die einzelnen Header in dem ersten und dem zweiten Satz
von Headern sind in dem Header-Block 136 des Speichers 67 miteinander
verkettet. Jeder einzelne Header enthält den Speicherplatz einer
zugehörigen
Pixelzeile, die in dem Pixelbildblock 138 des Speichers 67 gespeichert
ist.
-
Unter
Bezugnahme auf 8 und in Verbindung mit 7 wird
nun ein beispielhafter Vorgang für
den Pixelbildabruf 170 gemäß der vorliegenden Erfindung
aufgezeigt.
-
In
Schritt 172 empfängt
die OSD-Anzeige-Einheit 144 eine OSD-Anzeige-Anfrage von der Steuereinheit 115.
Die Anzeigeanfrage enthält
die Informationen zu dem Anzeigemodus, in dem ein Kanal angeschaut
wird.
-
In
Schritt 174 stellt die OSD-Anzeige-Einheit 144 auf
der Grundlage der empfangenen OSD-Anzeige-Anfrage den Anzeigemodus
in der Anzeigeanfrage fest (oder erkennt diesen).
-
In
Schritt 176 überträgt die OSD-Anzeige-Einheit 144 als
Reaktion auf die Anzeigeanfrage auf der Grundlage des erkannten
Anzeigemodus einen Header-Pointer in das OHP-Register 148. Handelt es sich
bei dem erkannten Anzeigemodus um den 2H-Modus, wird der übertragene
Header-Pointer insbesondere den ersten Satz von Headern 198 auswählen.
-
Handelt
es sich bei dem erkannten Anzeigemodus um den 2,14H-Modus, wird der übertragene Header-Pointer
den zweiten Satz von Headern 200 auswählen.
-
In
Schritt 178 bedient das OHP-Register 148 die Anfrage
durch Abrufen des ersten Headers (oder eines nachfolgenden Headers)
in dem ausgewählten Satz
von Headern und Schreiben des abgerufenen Headers in das MAF-Register 150.
-
In
Schritt 180 analysiert die OSD-Anzeige-Einheit 144 den
abgerufenen Header, um den Platz einer zugehörigen Pixelzeile zu bestimmen,
die in dem Pixelbildblock 138 gespeichert ist.
-
In
Schritt 182 übergibt
die OSD-Anzeige-Einheit 144 den abgerufenen Header und
die zugehörige Pixelzeile
an den Anzeigeprozessor 70. In diesem Schritt wählt der
abgerufene Header in dem ausgewählten
Satz von Headern die Anzahl der anzuzeigenden Pixel (1920 oder 2096)
aus, abhängig
von dem Anzeigemodus, in dem der Kanal angeschaut wird.
-
In
Schritt 184 zeigt der Anzeigeprozessor 70 die
Pixel in dem mittleren Bereich 192 als farbige Pixel und
die Pixel in den ausgewählten
Teilen der Seitenbereiche als graue oder transparente Pixel an.
-
In
Schritt 186 stellt die OSD-Anzeige-Einheit 144 fest,
ob ein nachfolgender, mit dem aktuellen Header verketteter Header
in dem ausgewählten Satz
von Headern existiert. Existiert ein nachfolgender Header in dem
ausgewählten
Satz von Headern, erfolgt eine Rückkehr
zu Schritt 178, um die nachfolgende Pixelzeile in dem Pixelbild
anzuzeigen. Der Vorgang von Schritt 178 bis 186 wird
wiederholt, bis der letzte Header in dem ausgewählten Satz von Headern verarbeitet
ist.
-
Es
ist zu beachten, dass in der Situation, in der der erste Satz von
Headern 198 nur einen Header enthält, der Header auf die mittleren
480 Pixelzeilen in dem Pixelbild zeigen wird. Daher ruft die OSD-Anzeige-Einheit 144 die
mittleren 480 Pixelzeilen zur gleichen Zeit ab und übergibt
sie zusammen an den Anzeigeprozessor 70, der die mittleren
480 Pixelzeilen weiter über
ein Videobild anzeigt.
-
Zusammenfassend
kann die vorliegende Erfindung ein einzelnes Pixelbild in einer
Vielzahl von Videorastergrößen anzeigen.
Die vorliegende Erfindung spart nicht nur Speicherplatz, sondern
verbessert auch die Anzeigegeschwindigkeit für eine TV-Anlage. Daher ist
in einem gewissen Sinn die Aussage „eine Größe passt für alle" eine geeignete Beschreibung des Pixelbildes
gemäß der vorliegenden
Erfindung. Obwohl die vorliegende Erfindung für die Verwendung eines Pixelbildes
in N (N = 2) Anzeigemodi beschrieben wurde, ist zu beachten, dass
N auch größer als
2 (N > 2) sein kann.
Beispielsweise gibt es N Sätze
von Headern für
ein beliebige Anzahl N. Die vorliegende Erfindung kann erkennen,
welcher der N Anzeigemodi gerade angezeigt wird, und einer der N
Sätze von
Headern kann dementsprechend einen geeigneten Teil des Pixelbildes
auswählen.
Solange ein einzelnes Pixelbild groß genug ist, um die größte Rastergröße der N
Anzeigemodi zu umfassen, kann die vorliegende Erfindung somit jeden
beliebigen der N Anzeigmodi in einem einzelnen Pixelbild unterbringen.