-
Die
vorliegende Erfindung betrifft allgemein Bildverarbeitungssysteme
und insbesondere solche Bildverarbeitungssysteme, mit denen ein
Benutzer Panoramabilder aus Daten erzeugen und betrachten kann,
welche mehrere Ansichten einer interessierenden Bildszene darstellen.
-
Die
vorliegende Erfindung betrifft auch Bildverarbeitungssysteme zur
Wiedergabe von Videos.
-
Herkömmliche
dreidimensionale Grafikanwendungen geben in Verbindung mit der entsprechenden
Hardware interessierende Bildszenen wieder, die aus einem oder mehreren
dreidimensionalen Objekten bestehen. Die dreidimensionalen Objekte werden üblicherweise
durch geometrische Grundelemente, zum Beispiel durch Dreiecke, dargestellt.
Die dreidimensionalen Grafikanwendungen speichern Grafikdaten, welche
die Position und die Farbe der geometrischen Grundelemente in einem
Modellkoordinatensystem darstellen. Mit Hilfe der Grafikanwendungen
kann ein Benutzer die Grafikdaten bearbeiten, um die Bildszene wiederzugeben,
d.h., dasjenige oder diejenigen Objekte der Bildszene darzustellen,
welche von einem bestimmten Standpunkt aus in einem Anzeigefenster
zu sehen sind. Der Benutzer kann sich durch Änderung der Position und der
Orientierung eines Standpunktes (z.B. durch Änderung eines Kamerastandpunktes)
durch die interessierende Bildszene hindurch bewegen. Durch das
Durchlaufen einer Reihe zuvor ausgewählter Positionen und Orientierungsrichtungen
des Standpunktes können
außerdem
auch Animationen erzeugt werden.
-
Die
Bildbearbeitung ist ein rechenintensiver Prozess und erfolgt daher
normalerweise mit Hilfe spezieller Grafikhardware. Solche Systeme
sind leistungsfähig,
gleichzeitig aber auch teuer, da sie eine nur für diesen Zweck geeignete spezielle
Hardware benötigen.
-
Außerdem ist
es bei herkömmlichen
dreidimensionalen Grafiksystemen erforderlich, dass der Benutzer
ein dreidimensionales Modell der Bildszene erstellt (d.h. die Grafikdaten
definiert, welche die Position und die Farbe der geometrischen Grundelemente
der Bildszene im Modellkoordinatensystem darstellen). Ein solches
dreidimensionales Modell kann mit Hilfe von Software in Verbindung
mit Peripherieeinheiten (z.B. Stifttabletts, Scannern, Kameras usw.)
erstellt werden. Zum Beispiel wird von Dassault Systems in Frankreich
ein Softwarepaket für dreidimensionale
Grafikbearbeitung unter der Bezeichnung CATIA vertrieben. Mit Hilfe
des Systems CATIA kann ein Benutzer ein dreidimensionales Modell
einer interessierenden Bildszene erstellen. Eine Modellsoftware
wie beispielsweise CATIA ist jedoch teuer, und zum Definieren der
Grafikdaten muss selbst bei einer relativ unkomplizierten Bildszene
ein beträchtlicher
Arbeitsaufwand geleistet werden.
-
Wegen
der hohen Kosten für
herkömmliche dreidimensionale
Grafiksysteme sind alternative Lösungen
entwickelt worden, die wirksame, aber begrenzte Mittel zum Erstellen
und Anzeigen einer dreidimensionalen Bildszene bieten. Die alternativen
Lösungen
sind normalerweise für
die Verwendung in Standard-PCs geeignet und kommen ohne spezielle Grafikhardware
aus. Eine solche Lösung
ist die von International Business Machines Corporation unter der
Bezeichnung PANORAMIX entwickelte und vertriebene Software.
-
Das
System PANORAMIX verwendet zur Wiedergabe der Panoramaansicht einer
interessierenden Bildszene (oder einer Sammlung von Bildern) eine
zylindrische oder Polyederumgebungskarte. Ansichten aus unterschiedlichen
Perspektiven werden durch Anzeigen der zylindrischen Umgebungskarte in
einem gewünschten
Anzeigefenster wiedergegeben.
-
Eine
andere Panoramadarstellung ist mit einem von Apple Computer, Inc.
in Cuperino, Kalifornien, unter der Bezeichnung QUICKTIMEVR entwickelten
und vertriebenen Softwaresystem möglich. Die Software QUICKTIMEVR
besteht aus zwei Teilen. Der erste Teil wird als Produktionswerkzeug
an die Inhaltsanbieter (Content Provider) verkauft und ermöglicht diesen,
aus mehreren Ansichten einer Bildszene ein Panoramabild zu erstellen.
Der zweite Teil ist eine Anzeigesoftware, die an die Verbraucher verkauft
wird, damit diese die mit Hilfe der Produktionssoftware erstellten
Panoramabilder betrachten können.
Eine ausführliche
Beschreibung der Funktionsweise des Systems QUICKTIMEVR ist zu finden in
Chen, „Quicktime
VR – An
Image-based Approach to Virtual Environment Navigation", ACM SIGGRAPH 1995,
Los Angeles, Kalifornien, S. 29 bis 38, und in der US-Patentschrift
5 396 583 vom 7. März
1995 mit dem Titel „Cylindrical
to Planar Image Mapping Using Scanline Coherence", von Chen et al., die an Apple Computer,
Inc., abgetreten wurde.
-
Das
System QUICKTIMEVR bedient sich zur Wiedergabe der Panoramaansicht
einer interessierenden Bildszene (oder einer Sammlung von Bildern) einer
Zylinderdarstellung der Umgebung. Unterschiedliche perspektivische
Ansichten werden wiedergegeben, indem die Zylinderdarstellung der
Umgebung in einem gewünschten
Anzeigefenster gezeigt wird.
-
Andere
handelsübliche
Panoramabetrachtungssysteme sind REALSPACE VR, PHOTOBUBBLES und
JUTVISION. Diese handelsüblichen
System ermöglichen
jedoch nicht das Einbinden von Videodatenströmen in die Panoramaansicht
der interessierenden Bildszene.
-
In
der britischen Patentschrift
GB
2 316 257 mit dem Titel „Method and Apparatus for
Overlaying a Bit Map Image on an Environment Map" von Lipscomb et al. wird beschrieben,
wie eine zweidimensionale Bitmap eines ersten Bildes in ein zweites
Bild kopiert werden kann, welches aus einem Teil einer Panoramadarstellung
einer Umgebung erstellt wurde.
-
Eine
erste Aufgabe und ein erster Vorteil der vorliegenden Erfindung
besteht darin, ein Bildbearbeitungssystem bereitzustellen, mit welchem
Panoramabilder und eingefügte
Videobilder wiedergegeben werden können.
-
Eine
andere Aufgabe und ein anderer Vorteil der vorliegenden Erfindung
bestehen darin, ein Bildbearbeitungssystem bereitzustellen, mit
dessen Hilfe die Wiedergabe von Panoramabildern und eingefügten Videobildern
synchronisiert werden kann.
-
Eine
weitere Aufgabe und ein weiterer Vorteil der vorliegenden Erfindung
besteht darin, ein Bildbearbeitungssystem bereitzustellen, das eine
interessierende Bildszene durch synchrones Zusammenfügen eines
Panoramabildes der Bildszene und eines kontinuierlich empfangenen
Stroms von Videobildern wiedergibt.
-
Weitere
Aufgaben und Vorteile der vorliegenden Erfindung werden aus einer
Erörterung
der Zeichnungen und der folgenden Beschreibung klar.
-
Die
oben genannten und weitere Probleme werden gelöst und die Aufgaben der Erfindung
werden realisiert mit Hilfe der Verfahren und der Vorrichtung gemäß den Ausführungsarten
der vorliegenden Erfindung, wobei Videodatenströme in ein wiederzugebendes
Panoramabild eingefügt
werden.
-
Die
vorliegende Erfindung liefert ein Verfahren zur Wiedergabe eines
Bildes, das aus einer gespeicherten Umgebungskarte einer Panoramaszene und
aus Videodaten zusammengesetzt wurde, wobei das Verfahren die folgenden
Schritte umfasst: Auswählen
einer Orientierungsrichtung der Panoramaszene; Ausgeben der Umgebungskarte
entsprechend der gewählten
Orientierungsrichtung der Panoramaszene, um für die ausgewählte Orientierungsrichtung
ein erstes Bild zu erzeugen; wobei das Verfahren durch die folgenden
Schritte gekennzeichnet ist: Empfangen von Videodatenpaketen mit
Videobilddaten; Anordnen der empfangenen Videobilddaten als Folge
von Einzelbildern; Auswählen
einer Folge von Videobilddaten zum Anzeigen; Umwandeln der ausgewählten Videobilddaten
entsprechend der gewählten
Orientierungsrichtung der Bildszene; synchrones Zusammenfügen der
umgewandelten Bilddaten und des ersten Bildes zu einem Gesamtbild
für die
gewählte
Orientierungsrichtung der Bildszene; und Anzeigen des Gesamtbildes.
-
Bei
einer Ausführungsart
beinhaltet das Verfahren zum Anzeigen der interessierenden Bildszene ferner
einen Schritt zum kontinuierlichen Empfangen von Videodatenpaketen,
welche Bilddaten und Tondaten enthalten. Bei dieser Ausführungsart
werden die Tondaten kontinuierlich abgespielt, während ausgewählte Teile
der Bilddaten angezeigt werden.
-
Bei
einer anderen Ausführungsart
beinhaltet das Verfahren zum Anzeigen der interessierenden Bildszene
ferner einen Schritt des Übereinanderlegens
der Videodaten und des ersten Bildes, das durch Ausgeben der Umgebungskarte
erzeugt wurde. Bei der vorliegenden Erfindung können solche Überlagerungsverfahren
wie beispielsweise Drawing Order Layering (Übereinanderlegen nach Zeichnungsreihenfolge),
z-Buffer-Hiding Layering (Übereinanderlegen
mit verdecktem z-Puffer) und das Chroma-Key-Verfahren verwendet werden.
-
Die
vorliegende Erfindung beschreibt ferner ein Bildbearbeitungssystem
zum Anzeigen eines Gesamtbildes aus einer gespeicherten Umgebungskarte
einer Panoramaszene und aus Videodaten, wobei das System Folgendes
umfasst: ein Mittel zum Wählen
einer Orientierungsrichtung der Panoramaszene; und ein Mittel zum
Ausgeben der Umgebungskarte entsprechend der gewählten Orientierungsrichtung der
Panoramaszene, um für
die gewählte
Orientierungsrichtung ein erstes Bild zu erzeugen, dadurch gekennzeichnet,
dass die Mittel Folgendes umfassen: ein Mittel zum Empfangen von
Videodatenpaketen mit Videobilddaten; ein Mittel zum Zusammenfügen der
empfangenen Videobilddaten zu einer Folge von Einzelbildern; ein
Mittel zum Auswählen
einer Folge von Videobilddaten zum Anzeigen; ein Mittel zum Umwandeln
der ausgewählten
Bilddaten entsprechend der gewählten
Orientierungsrichtung der Bildszene; ein Mittel zum synchronen Zusammenfügen der
umgewandelten Videobilddaten und des ersten Bildes zu einem Gesamtbild
für die
gewählte
Orientierungsrichtung der Bildszene; und ein Mittel zum Anzeigen
des Gesamtbildes.
-
Die
oben dargelegten sowie weitere Merkmale der Erfindung werden aus
der folgenden detaillierten Beschreibung der Erfindung in Verbindung
mit den beiliegenden Zeichnungen klar, wobei:
-
1 ein
Funktionsblockschaltbild eines Computersystems ist, das von der
bevorzugten Ausführungsart
der vorliegenden Erfindung verwendet werden kann;
-
2A ein
Flussdiagramm der Funktionsblöcke
eines unabhängigen
Panoramaanzeigeprozesses ist;
-
2B ein
Verfahren zum Ausführen
des Panoramaanzeigeprozesses gemäß 2A veranschaulicht;
-
3 eine
in rechteckige Abschnitte eingeteilte zylindrische Umgebungskarte
veranschaulicht, welche von den unabhängigen Panoramaanzeigeprogrammen
für die
Bildbearbeitung verwendet werden;
-
4 ein
Verfahren zum Berechnen eines Pyramidenvolumens einer rechteckigen
Zylinderfläche
der in 3 gezeigten Umgebungskarte veranschaulicht, welches
von den unabhängigen Panoramaanzeigeprogrammen
für die
Bildbearbeitung verwendet wird.
-
5 ein
Flussdiagramm der Funktionsblöcke
eines unabhängigen
Videoanzeigeprozesses ist;
-
6 ein
Verfahren zum Ausführen
des Videoanzeigeprozesses gemäß 5 veranschaulicht;
-
7 ein
Flussdiagramm der Funktionsblöcke
eines Anzeigeprozesses gemäß der vorliegenden
Erfindung zum gemeinsamen Anzeigen von Panorama- und Videodaten
ist;
-
8 ein
Flussdiagramm der Funktionsblöcke
eines alternativen Anzeigeprozesses gemäß der vorliegenden Erfindung
zum gemeinsamen Anzeigen von Panorama- und Videodaten ist; und
-
9 ein
Verfahren zum Ausführen
des alternativen Anzeigeprozesses gemäß 8 zum gemeinsamen
Anzeigen von Panorama- und Videodaten veranschaulicht.
-
Elemente
mit gleichen Bezugsnummern in verschiedenen oben beschriebenen Figuren
betreffen dieselben Elemente, jedoch muss nicht in der Beschreibung
aller Figuren auf sie Bezug genommen werden.
-
Im
Folgenden werden ein Verfahren und eine Vorrichtung zum Anzeigen
von Panoramen mit Videodatenströmen
beschrieben.
-
Die
vorliegende Erfindung kann in einem beliebigen Computersystem realisiert
werden, zum Beispiel einem Personal Computer, einem Arbeitsplatzrechner
oder einem Grafikadapter, der zusammen mit einem Personal Computer
oder einem Arbeitsplatzrechner arbeitet. 1 zeigt
ein beispielhaftes Computersystem, das für die vorliegende Erfindung geeignet
ist. Das beispielhafte Computersystem umfasst im Allgemeinen einen
Speicher 101, mindestens eine Zentraleinheit (Central Processing
Unit, CPU) 103 (von der eine gezeigt ist) und mindestens eine
Eingabeeinheit 107 für
den Benutzer (zum Beispiel eine Tastatur, eine Maus, ein Joystick,
ein Spracherkennungssystem oder ein Handschrifterkennungssystem).
Außerdem
beinhaltet das Computersystem einen nichtflüchtigen Speicher, zum Beispiel einen
ROM, und/oder andere nichtflüchtige
Speichereinheiten 108 wie beispielsweise ein Festplattenlaufwerk,
in welchem ein Betriebssystem und ein oder mehrere Anwendungsprogramme
gespeichert sind, die in den Speicher 101 geladen und von
der CPU 103 ausgeführt
werden. Bei der Ausführung
des Betriebssystems und des (der) Anwendungsprogramm(e) kann die
CPU Daten verwenden, die in der nichtflüchtigen Speichereinheit 108 und/oder
im Speicher 101 gespeichert sind.
-
Das
beispielhafte Computersystem beinhaltet auch einen Einzelbildpuffer 104,
der zwischen die CPU 103 und eine Anzeigeeinheit 105 geschaltet
ist. Bei der Anzeigeeinheit 105 kann es sich um eine Katodenstrahlröhre oder
einen LCD-Bildschirm
handeln. Der Einzelbildspeicher 104 enthält Pixeldaten, welche
ein auf der Anzeigeeinheit 105 anzuzeigendes Bild darstellen.
In manchen Systemen kann zwischen die CPU 103 und den Einzelbildpuffer 104 eine (nicht
gezeigte) Ausgabeeinheit, zum Beispiel eine Grafikbeschleunigungseinheit,
geschaltet sein.
-
Die
Tonausgabe erfolgt über
eine Tonausgabeeinheit 110, zum Beispiel über Lautsprecher
oder Kopfhörer,
die direkt mit dem Computersystem oder einer an das Computersystem
angeschlossenen Audiokarte verbunden ist.
-
Das
beispielhafte Computersystem kann einen Datenübertragungsanschluss 109 (zum
Beispiel einen Netzwerkadapter, einen Funkanschluss oder einen Modem)
enthalten, der mit der CPU 103 verbunden ist und die Datenübertragung
zwischen der CPU 103 und anderen Computersystemen über den Datenübertragungsanschluss,
zum Beispiel über
das Internet, ermöglicht.
Die CPU 103 kann Teile des Betriebssystems, Teile des (der)
Anwendungsprogramms(programme) oder Teile der bei der Ausführung des
(der) Anwendungsprogramms(programme) des Betriebssystems verwendeten
Daten über
den Datenübertragungsanschluss
empfangen.
-
Das
(die) von der CPU 103 ausgeführte(n) Anwendungsprogramm(e)
können
die im Folgenden ausführlich
beschriebenen Ausgabeprogramme der vorliegenden Erfindung ausführen. Alternativ
können Teile
der Ausgabeverfahren oder die kompletten Ausgabeverfahren als Hardware
realisiert werden, die in Verbindung mit dem durch die CPU 103 ausgeführten Anwendungsprogramm
arbeitet.
-
Wie
oben erwähnt,
ist das Konzept der Überlagerung
eines Bitmapbildes auf eine Panoramaszene in der Bildbearbeitung
bekannt, zum Beispiel aus der britischen Patentschrift
GB 2 316 257 . Die
2A und
2B veranschaulichen
einen unabhängigen
Panoramaanzeigeprozess. Vor der Ausführung dieses Prozesses werden
eine Hintergrundumgebungskarte erstellt und eine Datenübertragung von
einem Quellensystem zu einem Zielsystem durchgeführt. Die Hintergrundumgebungskarte
ist zum Beispiel eine zylindrische Umgebungskarte, die aus einer
rechteckigen Anordnung von Elementen oder Pixeln besteht, welche
jeweils Daten zur Darstellung eines Teils einer dreidimensionalen
Bildszene beinhalten.
3 veranschaulicht die Zylinderdarstellung
201 der
Umgebung, die in viele rechteckige Flächen aufgeteilt ist. Eine bestimmte
rechteckige Fläche
302 entspricht
einer bestimmten Orientierungsrichtung oder einem bestimmten Standpunkt
für die
interessierende Bildszene. Nachdem die Zylinderdarstellung der Umgebung
empfangen und vom Zielsystem gespeichert worden ist, kann der Panoramaanzeigeprozess
beginnen.
-
In
den 2A und 2B beginnt
der unabhängige
Panoramaanzeigeprozess in Kasten 202 durch Lesen der zylindrischen
Umgebungskarte 201, d.h. des Panoramabildes. Durch das
Lesen der zylindrischen Umgebungskarte 201 wird ein ausgesuchter
Teil der Darstellung 202, d.h. eine gewünschte Orientierungsrichtung
oder ein Anzeigefenster, zum Anzeigen ausgewählt. In Kasten 204 erfolgt
eine Panoramatransformation, bei welcher der ausgesuchte Zylinderteil
in eine rechtwinklig-lineare
Projektion der interessierenden Bildszene umgewandelt wird. Die rechtwinklig-lineare
Projektion wird in Kasten 206 in einem Panoramazwischenpuffer 203 gespeichert.
In Kasten 208 erfolgt eine Anzeigeaktualisierung, bei welcher
der Inhalt des Panoramazwischenpuffers 203 in einen Anzeigepuffer 205 kopiert
wird. Die rechtwinklig-lineare Projektion, d.h. der Inhalt des Panoramazwischenpuffers 203,
steht dann zur Anzeige aus dem Anzeigepuffer 205 bereit,
die in Kasten 210 erfolgt, und der Panoramaanzeigeprozess
ist abgeschlossen.
-
4 veranschaulicht
ein Verfahren zum Ausführen
der Panoramatransformation, bei welcher die Zylinderprojektion der
zylindrischen Umgebungskarte
201 in die rechtwinklig-lineare
Projektion
402 umgewandelt wird. Die Transformation erfolgt
durch Abbildung einer schmalen Pyramide, die durch den Ursprung
0 und
die Punkte a, b, c und d definiert ist, auf eine durch die Punkte
A, B, C und D definierte rechteckige Fläche
402. Der Abbildungsprozess
wird in der oben erwähnten
britischen Patentschrift
GB 2 316
257 ausführlich
beschrieben.
-
In
den 5 und 6 wird ein unabhängiger Videoanzeigeprozess
veranschaulicht. Der Videoanzeigeprozess beginnt in Kasten 502 mit
dem Empfangen aufgezeichneter und vom Quellensystem zum Zielsystem übertragener
Videodatenpakete 601. Die Videodatenpakete 601 können zum
Beispiel Bilddaten, Tondaten und Anweisungen enthalten, die im Quellensystem
aufgezeichnet wurden. In Kasten 504 werden die empfangenen
Bilddaten zusammengesetzt und in einem Videopufferkomplex 602 als
Folge von Einzelbildern gespeichert. Die Schritte des Empfangens
der Videodatenpakete 601 und des Zusammensetzens und Speicherns
der Bilddaten im Videopufferkomplex 602 werden immer wiederholt,
während
das Quellensystem kontinuierlich Videodatenpakete 601 zum
Zielsystem überträgt. In Kasten 506 werden
aus einem Videozwischenpuffer 603 des Videopufferkomplexes 602 die
Bilddaten einer Folge von Einzelbildern ausgewählt. Während die Bilddaten der Folge
von Einzelbildern aus dem Videozwischenpuffer 603 zum Anzeigen
ausgewählt
werden, werden die Tondaten kontinuierlich abgespielt. Dann wird
in Kasten 508 eine Transformation der ausgewählten Bilddaten
in ein Anzeigeformat durchgeführt, bei
welcher die Bilddaten der ausgewählten
Einzelbilder in ein für
die Anzeige geeignetes Format umgewandelt werden. Zum Beispiel kann
die Transformation in das Anzeigeformat eine Umwandlung von 24 Bit
Farbtiefe in 8 Bit Farbtiefe bewirken, d.h., die 24-Bit-Werte der
Farben rot, grün
und blau in 8-Bit-Zeiger umwandeln, welche auf Farbtabelleneinträge zeigen,
deren Farben den gewünschten
Farben nahe kommen. In Kasten 510 werden die umgewandelten
Bilddaten 604 in einem Videoanzeigepuffer 605 gespeichert,
sodass die umgewandelten Bilddaten 604 dann zum Anzeigen
aus dem Videoanzeigepuffer 605 bereitstehen, was in Kasten 512 erfolgt und
den Videoanzeigeprozess abschließt.
-
Gemäß der vorliegenden
Erfindung werden der oben erwähnte
unabhängige
Panoramaanzeigeprozess und der Videoanzeigeprozess miteinander verknüpft und
gleichzeitig ausgeführt,
sodass die Panoramaansichten eines interessierenden Bildszene mit
eingefügten
Videodatenströmen
ausgegeben werden können.
Dadurch werden die Bilder der Videodatenströme so wiedergegeben, dass sie
in das Panoramabild eingefügt
sind.
-
Es
ist anzumerken, dass der verknüpfte
Prozess der vorliegenden Erfindung in mehrerlei Hinsicht eine Verbesserung
gegenüber
den unabhängigen
Einzelprozessen darstellt. Vorzugsweise werden die übertragenen
statischen und dynamischen Daten in der Weise ineinander integriert,
dass die Bandbreite des Netzwerks wirksam genutzt wird. Die Bandbreite
des Netzwerks wird zunächst,
wie in der oben erwähnten
britischen Patentschrift
GB 2
316 257 beschrieben, zum Herunterladen des statischen Panoramabildes
und dann zum Übertragen
der dynamischen Videobilddaten mittels der Streamingtechnologie
genutzt. Die statischen und die dynamischen Datenkomponenten werden
anschließend
ineinander geschachtelt, damit sie in der oben beschriebenen Weise
als Gesamtbild angezeigt werden können.
-
Die
vorliegende Erfindung kann zwar ähnliche
Schritte wie die oben beschriebenen unabhängigen Prozesse beinhalten,
jedoch ergeben sich Verbesserungen durch die Verwendung von Videodatenströmen als
Quelle, die Synchronisierung des Videoanzeigeprozesses und des Panoramaanzeigeprozesses
und den zusätzlichen
Transformationsschritt zur Bildverknüpfung, um die Panoramabilder
und die Videobilder für
die Anzeige zusammenzufügen.
Der verknüpfte
Prozess überwindet
die Beschränkungen beim
unabhängigen
Prozess, zum Beispiel die mangelhafte Synchronisation zwischen Videoanzeige und
Panoramaanzeige sowie die fehlende Transformation der Videodaten
vor dem Anzeigen. Bei der vorliegenden Erfindung ermöglicht der
Transformationsschritt der Videodaten zum Beispiel die Maßstabsänderung,
das Herstellen von Ausschnitten, das Beschneiden und Dehnen, das
Chroma-Key-Verfahren
und das Aufeinanderlegen des Videobildes auf das Panoramabild.
-
7 veranschaulicht
einen Prozess zur verknüpften
Panoramaanzeige und Videoanzeige. Es ist klar, dass beim verknüpften Prozess
Schritte mit derselben Bezugsnummer ablaufen, wie bei den unabhängigen Prozessen
der Panoramaanzeige und der Videoanzeige beschrieben. Somit werden
beim verknüpften
Prozess im Abschnitt für
die Panoramaanzeige mit Kasten 202 bis 206 die
gespeicherten Hintergrundwerte gelesen und eine Zylinderprojektion
durch Ausführen
der Panoramatransformationsfunktion in eine rechtwinklig-lineare
Projektion überführt. Entsprechend
werden im Abschnitt für
die Videoanzeige in Kasten 502 bis 506 Bilddaten
aus den kontinuierlich empfangenen Videodatenpaketen zum Anzeigen
ausgewählt.
In Kasten 708 des verknüpften Prozesses
wandelt jedoch eine neue Transformationsfunktion, eine Verknüpfungstransformation,
die ausgewählten
Videobilddaten aus dem Videozwischenpuffer 603 um. Dann
werden die umgewandelten Videobilddaten in Kasten 710 mit
der rechtwinklig-linearen Projektion des Panoramaanzeigeprozesses
verknüpft
und bilden ein Gesamtbild. In Kasten 712 wird das Gesamtbild
im Panoramazwischenpuffer 203 gespeichert, um dann angezeigt
zu werden. In Kasten 208 wird der unabhängige Panoramaanzeigeprozess
wieder aufgenommen, indem der Inhalt des Panoramazwischenpuffers 203 in
den Anzeigepuffer 205 kopiert wird. In diesem Fall stellt
der Inhalt des Panoramazwischenpuffers 203 das Gesamtbild dar.
Dann kann das Gesamtbild in Kasten 210 aus dem Anzeigepuffer 205 heraus
angezeigt werden, womit der verknüpfte Anzeigeprozess abgeschlossen
ist.
-
Bei
einer Ausführungsart
der vorliegenden Erfindung beinhaltet die Transformationsfunktion
zur Bildverknüpfung
einen Schritt, bei welchem der Videoanzeigeprozess (Kasten 502 bis 506)
die ausgewählte
anzuzeigende Bilddatenfolge dadurch kennzeichnet, dass er mit einem
Zeiger auf den Videozwischenpuffer 603 zeigt, welcher die
ausgewählte
Bilddatenfolge enthält.
Bei dieser Ausführungsart
dient der Zeiger beispielsweise als Argument für den Aufruf eines Unterprogramms.
Es ist klar, dass der Prozess zur verknüpften Panoramaanzeige und Videoanzeige
ein Unterprogramm des Videoanzeigeprozesses aufrufen kann, dessen
Argument ein Speicherplatz oder eine Adresse des Videozwischenpuffers 603 ist,
in dem die ausgewählte
Bilddatenfolge gespeichert ist. Alternativ kann der Videoanzeigeprozess
ein Unterprogramm des Prozesses zur verknüpften Panoramaanzeige und Videoanzeige
mit der Adresse des Videozwischenpuffers 603 als Parameter
aufrufen, welche der Prozess der verknüpften Panoramaanzeige und Videoanzeige
dann zur späteren
Verwendung speichert. Dem Fachmann ist klar, dass es zahlreiche
andere Verfahren gibt (z.B. äußere Ereignisse
usw.), mit denen die anzuzeigende ausgewählte Bilddatenfolge gekennzeichnet
werden kann.
-
Ebenso
wie oben erwähnt,
kann die Transformationsfunktion zur Bildverknüpfung bei einer anderen Ausführungsart
der vorliegenden Erfindung einen Schritt beinhalten, bei welchem
die ausgewählten
Videobilddaten vor dem Einfügen
in das Panoramabild einer Maßstabsänderung,
dem Herstellen von Ausschnitten, dem Beschneiden und Dehnen, dem Chroma-Key-Verfahren und dem Übereinanderlegen unterzogen
werden. Diese Ausführungsart
kann auch einen Schritt der Lautstärkesteuerung von Tondaten beinhalten,
die gleichzeitig mit den Videobilddaten vom Quellensystem empfangen
wurden. Die Tondaten werden wie oben erörtert gleichzeitig mit den
Bilddaten kontinuierlich abgespielt.
-
Aus
der obigen Erörterung
wird deutlich, dass zu den Elementen, durch die sich der verknüpfte Prozess
von den unabhängigen
Einzelprozessen unterscheidet, zumindest die Fähigkeit, den Panoramazeichnungsprozess
und den Videozeichnungsprozess zu synchronisieren, und den Transformationsschritt
zur Bildverknüpfung
beinhalten. Diese Elemente werden im Folgenden ausführlich erörtert.
-
Bei
der vorliegenden Erfindung umfasst eine Synchronisierungsstrategie
die Ausführung
der folgenden Schritte:
- 1. Durchführen der
Panoramatransformation in Kasten 204;
- 2. Durchführen
der Transformation zum Zusammenfügen
der umgewandelten Bilddaten und der Panoramadaten in Kasten 708 und 710;
und
- 3. Durchführen
der Anzeigeaktualisierung in Kasten 208, wobei der Inhalt
des Panoramazwischenpuffers 203 in den Anzeigepuffer 205 für die Anzeige
geschrieben wird.
-
Besonders
wichtig ist die Synchronisierung dieser Schritte, wenn ein gemäß der Erfindung
arbeitendes System zwischen den aufeinander folgenden Bildern die
Zwischenspeicher nicht löscht.
Wenn zum Beispiel ein ungelöschter
Pufferspeicher asynchron gelesen wird, während in ihn geschrieben wird,
enthält
das Leseergebnis ein zuvor geschriebenes Bild, das mit dem gerade
geschriebenen Bild gemischt ist. 7 beschreibt
den ersten Schritt des Synchronisierungsverfahrens. Die Panoramatransformation (Kasten 204)
und die Anzeigeaktualisierung (Kasten 208) sind als zwei
asynchron ablaufende Prozesse zu erkennen. Bei diesem asynchronen
Betriebsmodus ist der Anzeigezeitpunkt zwar optimiert, aber trotzdem
kann das Bild verzerrt werden, da im Panoramazwischenpuffer 203 noch
ein unvollständig
aktualisiertes Bild enthalten sein kann, während die Anzeigeaktualisierung
im Gange ist. Die beiden asynchron ablaufenden Prozesse enthalten
die folgenden Schritte:
Beim Schritt der Panoramatransformation:
- 1. Durchführen
der Panoramatransformation in Kasten 204;
- 2. Warten auf Standortänderung;
- 3. Aktualisieren der Betrachtungsrichtung und des Zoom; und
- 4. Zurück
zu Schritt 1.
-
Beim
Schritt der Anzeigeaktualisierung:
- 1. Warten
auf die vertikale Austastlücke
der Anzeigeeinheit;
- 2. Durchführen
der Anzeigeaktualisierung in Kasten 208; und
- 3. Zurück
zu Schritt 1.
-
Wenn
die Programme jedoch synchronisiert wurden, erfolgt die Anzeige
verzögert,
und das Bild wird nicht verzerrt, da im Panoramazwischenpuffer ein
vollständiges
Einzelbild gespeichert ist, das während der Anzeigeaktualisierung
kopiert wird. Der synchrone Prozess, bei dem die Panoramatransformation
(nur Transformation des Panoramas, nicht der Videodaten) im Wechsel
mit der Anzeigeaktualisierung erfolgt, umfasst die folgenden Schritte:
Synchroner
Prozess:
- 1. Durchführen der Panoramatransformation
in Kasten 204;
- 2. Warten auf die vertikale Austastlücke der Anzeigeeinheit;
- 3. Durchführen
der Anzeigeaktualisierung in Kasten 208;
- 4. Warten auf Standortänderung;
- 5. Aktualisieren der Betrachtungsrichtung und des Zoom; und
- 6. Zurück
zu Schritt 1.
-
Im
Folgenden wird der zweite Schritt des Synchronisierungsverfahrens
beschrieben. Im zweiten Schritt erfolgt die Untersuchung der Beziehung zwischen
dem Zusammenfügungsschritt
(Kasten 708 und 710), der Panoramatransformation
(Kasten 204) und der Anzeigeaktualisierung (Kasten 208).
Es ist klar, dass ein synchroner Prozess bevorzugt wird, da Videobilddaten
im Panoramazwischenpuffer überlagert
werden. Durch den synchronen Prozess wird vermieden, dass das transformierte
Panorama ohne die Videobilddaten oder alternativ mit einem unvollständigen Videobild
angezeigt wird. Die Synchronisierung der Panoramatransformation
(Kasten 204), der Zusammenfügung (Kasten 708 und 710)
und die Anzeigeaktualisierung (Kasten 208) sind wie folgt
als zwei synchron ablaufende Prozesse zu erkennen:
Beim Videoanzeigeprozess:
- 1. Empfangen der Videodatenpakte 601 im
Videopufferkomplex 602 und Zusammensetzen der Bilddatenpakete
in Kasten 502 und 504, bis die ankommenden Datenpakete
zur Bildung eines vollständigen
neuen Bildes ausreichen;
- 2. Wiederholen von Schritt 1, bis eine Markierung „neuer
Videozwischenpuffer" gelöscht ist;
- 3. Warten auf das Löschen
einer Markierung „Zusammenfügen";
- 4. Verschieben eines Zeigers zum Videozwischenpuffer 603,
in welchem die ausgewählte
Folge der anzuzeigenden Bilddaten gespeichert ist, um auf das letzte
Bild zu zeigen;
- 5. Setzen der Markierung „neuer
Videozwischenpuffer";
- 6. Löschen
der vorigen Bilder aus dem Videozwischenpuffer und Rückgabe des
Speichers zum Videopufferkomplex 602; und
- 7. Zurück
zu Schritt 1.
-
Beim
Panoramaanzeigeprozess:
-
- 1. Durchführen
der Panoramatransformation in Kasten 204;
- 2. Setzen der Markierung „Zusammenfügen";
- 3. Ausführen
des Zusammenfügungsschrittes
in Kasten 708 und 710;
- 4. Löschen
der Markierung „Zusammenfügen";
- 5. Löschen
der Markierung „neuer
Videozwischenpuffer";
- 6. Warten auf die vertikale Austastlücke der Anzeigeeinheit;
- 7. Durchführen
der Anzeigeaktualisierung in Kasten 208;
- 8. Warten auf eine Änderung
der Betrachtungsrichtung oder des Zoom oder auf das Setzen einer Markierung „neuer
Videozwischenpuffer";
und
- 9. Zurück
zu Schritt 1.
-
Bei
einer anderen Ausführungsart
verläuft die
Synchronisierung der Panoramatransformation (Kasten 204),
des Zusammenfügungsschrittes
(Kasten 708 und 710) und der Anzeigeaktualisierung (Kasten 208)
wie folgt:
Beim Videoanzeigeprozess mit zu Anfang gelöschter Markierung „neuer
Videozwischenpuffer":
- 1. Empfangen der Videodatenpakete 601 im
Videopufferkomplex 602 und Zusammensetzen der Bilddatenpakete
in Kasten 502 und 504, bis die ankommenden Datenpakete
zur Bildung eines vollständigen
neuen Bildes ausreichen;
- 2. Wiederholen von Schritt 1, bis eine Markierung „Zusammenfügen" gesetzt ist.
- 3. Verschieben des Zeigers zum Videozwischenpuffer 603,
um auf das letzte Bild zu zeigen;
- 4. Setzen einer Markierung „neuer Videozwischenpuffer";
- 5. Warten auf das Löschen
der Markierung „Zusammenfügen";
- 6. Löschen
der vorigen Bilder aus dem Videozwischenpuffer und Rückgabe des
Speichers zum Videopufferkomplex 602; und
- 7. Zurück
zu Schritt 1.
-
Beim
Panoramaanzeigeprozess mit zu Anfang gelöschter Markierung „Zusammenfügen":
- 1.
Durchführen
der Panoramatransformation in Kasten 204;
- 2. Setzen einer Markierung „Zusammenfügen";
- 3. Warten. Weitergehen, wenn die Markierung „neuer Videozwischenpuffer" gesetzt ist oder wenn
in Schritt 9 eine Änderung
der vorigen Betrachtungsrichtung oder des Zoom des zuvor angezeigten
Bildes erfolgte oder wenn sich die Betrachtungsrichtung oder des
Zoom ändert;
- 4. Ausführen
des Zusammenfügungsschrittes
in Kasten 708 und 710;
- 5. Löschen
der Markierung „neuer
Videozwischenpuffer";
- 6. Löschen
der Markierung „Zusammenfügen";
- 7. Warten auf die vertikale Austastlücke der Anzeigeeinheit;
- 8. Durchführen
der Anzeigeaktualisierung in Kasten 208;
- 9. Aktualisieren der Betrachtungsrichtung und des Zoom; und
- 10. Zurück
zu Schritt 1.
-
Es
ist klar, dass alternative Verfahren zum Setzen und Löschen von
Markierungen („Flags") sowie andere Verfahren
zur bedingten Ausführung
von Prozessschritten beim Eintreten eines vorgegebenen Ereignisses
im Geltungsbereich der vorliegenden Erfindung liegen. Ein wichtiges
Merkmal der vorliegenden Erfindung beinhaltet die Synchronisierung
des Panoramatransformationsschrittes (Kasten 204), des Zusammenfügungsschrittes
(Kasten 708 und 710) und des Anzeigeaktualisierungsschrittes
(Kasten 208), sodass die Realisierung der Synchronisierung kein
wichtiges Element der Erfindung darstellt.
-
Außerdem ist
klar, dass jede beliebige Ausführungsreihenfolge
möglich
ist und zum Beispiel die Ausführung
mehrerer Panoramatransformationsschritte und Zusammenfügungsschritte
für mehrere Panoramen
und Videodatenströme
beinhalten kann, sofern der Anzeigeaktualisierungsschritt (Kasten 208)
als letzter Schritt ausgeführt
wird.
-
Bei
einer in den 8 und 9 gezeigten alternativen
Ausführungsart
der vorliegenden Erfindung ist die Videotransformation (Kasten 204)
in den unabhängigen
Videoanzeigeprozess einbezogen, der in den 6 und 7 dargestellt
ist. Gemäß den 6 und 7 werden
bei dem alternativen Videoanzeigeprozess in Kasten 502 Videodatenpakete 601 vom
Quellensystem empfangen. In Kasten 804 werden die Bilddaten
der empfangenen Videodatenpakete 601 bei der Videotransformation
direkt in den Videozwischenpuffer 603 geschrieben. Ebenso
wie beim unabhängigen
Videoanzeigeprozess werden die Schritte des Empfangens der Videodatenpakete 601 und
des Speicherns der empfangenen Bilddaten im Videozwischenpuffer 603 so
lange wiederholt, wie das Quellensystem kontinuierlich Videodatenpakete 601 zum
Zielsystem überträgt.
-
Die übrigen Schritte
des alternativen Videoanzeigeprozesses werden ebenso ausgeführt, wie oben
bei der Erörterung
des verknüpften
Prozesses der Panoramaanzeige und der Videoanzeige gemäß 7 beschrieben.
Somit werden empfangene Bilddaten aus dem Videozwischenpuffer 603 (Kasten 506)
ausgewählt,
zusammengefügt
(Kasten 708), mit den Panoramadaten zu einem Gesamtbild 903 zusammengesetzt
(Kasten 710) und für
die Anzeige zwischengespeichert (Kasten 712 bis 210).
-
Es
ist anzumerken, dass die Videotransformation (Kasten 804)
entweder asynchron oder synchron zum Zusammenfügen (Kasten 708 und 710) erfolgen
kann. Wie bereits erwähnt,
kann eine asynchrone Ausführungsform
zwar die Anzeige beschleunigen, aber auch zum Verzerren des Bildes
führen, da
der Videozwischenpuffer während
des Zusammenfügungsschritte
ein unvollständig
aktualisiertes Bild enthält.
Praktisch verläuft
dieser asynchrone Prozess wie folgt:
Beim Videoanzeigeprozess
mit zu Anfang gelöschter Markierung „neuer
Videozwischenpuffer":
- 1. Lesen der Videodatenpakete (601)
in den Videozwischenpuffer (603), bis die ankommenden Datenpakete
zur Bildung eines vollständigen
neuen Bildes ausreichen (Kasten 502 und 804);
und
- 2. Zurück
zu Schritt 1.
-
Beim
Panoramaanzeigeprozess mit zu Anfang gelöschter Markierung „Zusammenfügen":
- 1.
Durchführen
der Panoramatransformation in Kasten 204;
- 2. Ausführen
des Zusammenfügungsschrittes
in Kasten 708 und 710;
- 3. Warten auf die vertikale Austastlücke der Anzeigeeinheit;
- 4. Durchführen
der Anzeigeaktualisierung in Kasten 208;
- 5. Aktualisieren der Betrachtungsrichtung und des Zoom; und
- 6. Zurück
zu Schritt 1.
-
Wenn
die Videotransformation (Kasten 804) synchron mit dem Zusammenfügen (Kasten 708 und 710)
erfolgt, wird die Anzeige zwar verzögert, aber das Bild bleibt
unverzerrt. Beim synchronen Betriebsmodus wechseln die Videotransformation
und das Zusammenfügen
einander ab, sodass der Panoramaanzeigeprozess wie folgt gleichzeitig
mit dem Videoanzeigeprozess abläuft:
Beim
Videoanzeigeprozess mit zu Anfang gelöschter Markierung „neuer
Videozwischenpuffer":
- 1. Lesen der Videodatenpakte 601 in
den Videozwischenpuffer 603, bis die ankommenden Datenpakete
zur Bildung eines vollständigen
neuen Bildes ausreichen (Kasten 502 und 804);
- 2. Wiederholen von Schritt 1, bis die Markierung „Zusammenfügen" gesetzt wurde;
- 3. Setzen der Markierung „neuer
Videozwischenspeicher";
- 4. Warten, bis die Markierung „Zusammenfügen" gelöscht
wurde; und
- 5. Zurück
zu Schritt 1.
-
Beim
Panoramaanzeigeprozess mit zu Anfang gelöschter Markierung „Zusammenfügen":
- 1.
Durchführen
der Panoramatransformation in Kasten 204;
- 2. Setzen der Markierung „Zusammenfügen";
- 3. Warten, bis die Markierung „neuer Videozwischenpuffer" gesetzt wurde;
- 4. Durchführen
des Zusammenfügungsschrittes in
Kasten 708 und 710;
- 5. Löschen
der Markierung „neuer
Videozwischenpuffer";
- 6. Löschen
der Markierung „Zusammenfügen";
- 7. Warten auf die vertikale Austastlücke der Anzeigeeinheit;
- 8. Durchführen
der Anzeigeaktualisierung in Kasten 208;
- 9. Aktualisieren der Betrachtungsrichtung und des Zoom; und
- 10. Zurück
zu Schritt 1.
-
Im
Folgenden wird ebenfalls unter Bezug auf 7 der dritte
Schritt des Synchronisierungsverfahrens beschrieben. Bei dem dritten
Schritt wird die Beziehung zwischen der Anzeigeaktualisierung (Kasten 208)
und der Bildwiederholperiode der Anzeigeeinheit untersucht. Die
Anzeigeaktualisierung und die Bildwiederholperiode können in
derselben Weise wie oben erläutert
synchron oder asynchron ablaufen. Es ist jedoch zu beachten, dass
die Bildwiederholperiode der Anzeigeeinheit normalerweise vom Betriebssystem
des Computers gemäß der vorliegenden
Erfindung vorgegeben ist und der Startzeitpunkt der Bildwiederholperiode
nicht von der im Computer laufenden Anwendung bestimmt wird. Bei
den Verfahren der vorliegenden Erfindung an sich kann eine Anwendung
zwar den Zeitpunkt der Anzeigeaktualisierung in Bezug auf die anderen
Transformationen bestimmen, nicht aber die Bildwiederholperiode
der Anzeigeeinheit.
-
Im
synchronen Betriebsmodus beinhaltet deshalb jeder der während der
obigen Erörterung dargelegten
Prozessschritte den Schritt „Warten
auf die vertikale Austastlücke
der Anzeigeeinheit",
während
dieser Schritt beim asynchronen Betriebsmodus fehlt.
-
Besonders
ist zu beachten, dass bei der obigen Erörterung aller drei Schritte
des Synchronisierungsverfahrens keiner der Zwischenpuffer gelöscht wurde,
bevor ein Bild in ihn geschrieben wurde. Ändert man diese Prozesse dahingehend,
dass der Zwischenpuffer gelöscht
wird, bevor ein Transformationsschritt Daten hineinschreibt, müssen diese
Transformationsschritte mit anderen Transformationsschritten synchronisiert
werden, welche Daten aus dem Puffer lesen, damit das Lesen nicht
aus einem ganz oder teilweise gelöschten Puffer erfolgt und entweder
kein oder nur ein unvollständiges
Bild angezeigt wird.
-
Nach
der Erörterung
der Möglichkeiten
des Synchronisierungsverfahrens der vorliegenden Erfindung soll
im Folgenden besonders der Schritt der Videodatentransformation
betrachtet werden, bei dem zum Beispiel die Maßstabsänderung, das Herstellen von
Ausschnitten, das Beschneiden und Dehnen, das Chroma-Key-Verfahren
und das Überlagern
des Panoramabildes mit dem Videobild erfolgen können.
-
Zuvor
ist anzumerken, dass der Prozess der Maßstabsänderung und des Beschneidens
von Bilddaten in der Bildbearbeitung bekannt ist und beispielsweise
zu finden ist in „Computer
Graphics, principles and practice", von J. D. Foley, A. van Dam, S. K.
Feiner und J. F. Hughes, zweite Auflage, 1990, Addison-Wesley Publishing
Company, Reading, New York, Kapitel 5, „Geometrische Transformationen". Ferner ist anzumerken,
dass der unabhängige
Panoramaanzeigeprozess von 2A Maßstabsänderungen
bewirken kann, indem eine Zoomfunktion ausgeführt wird.
-
Das
Zusammenfügen
ermöglicht
wie oben erörtert
die Maßstabsänderung
oder das Beschneiden der Videobilddaten, während die Bilddaten transformiert
und mit den Panoramadaten im Panoramazwischenpuffer 603 verknüpft werden
(Kasten 708 bis 712 in 7). Bei
einer Ausführungsart
der vorliegenden Erfindung wird im Zusammenfügungsschritt (Kasten 708)
der Maßstab
der Videobilddaten geändert,
damit die Übereinstimmung
mit anderen Maßstabsänderungen
während
der Panoramatransformation (Kasten 204) erhalten bleibt.
Durch die übereinstimmenden
Maßstabsänderungen
bleibt das Videodatenbild dem maßstabsgeänderten Bild aus der Panoramatransformation
proportional. Mithin wird der Maßstab des Videodatenbildes
und des Panoramabildes gleich stark geändert. Außerdem bleibt die Position
eines Punktes der Videobilddaten im Panoramazwischenpuffer 203 während des
Zoomens erhalten, sodass ein Punkt unverändert an einer bestimmten Stelle
im Panoramabild erscheint.
-
Desgleichen
werden beim Zusammenfügen gemäß einer
Ausführungsart
der Erfindung Bilder auch beschnitten, um Beschneidungen während der Panoramatransformation
auszugleichen. Dabei erfolgt das Beschneiden durch Speichern der
Pixel der Videobilddaten im Panoramazwischenpuffer 203 in der
Weise, dass sie ebenfalls unverändert
an einer bestimmten Stelle des Panoramabildes erscheinen.
-
Gemäß der vorliegenden
Erfindung können Videobilddaten
beim Zusammenfügen
der Bilder dem Panoramabild überlagert
werden, um so das Gesamtbild zu erzeugen (Kasten 708 und 710).
Man beachte, dass durch das Überlagern
beim Zusammenfügen
der Bilder die Videobilddaten ganz oder teilweise in die Panoramabilddaten
eingefügt
werden können
oder umgekehrt. Gemäß der vorliegenden
Erfindung können Überlagerungsverfahren
wie beispielsweise das Drawing Order Layering (Überlagerung nach Zeichnungsreihenfolge),
das z-Buffer-Hiding Layering (Überlagerung
mit verdecktem z-Puffer) und das Chroma-Key-Verfahren verwendet werden.
-
Beim
Drawing Order Layering wird ein zweites Bild auf ein erstes (Original-)Bild
gezeichnet, sodass das zweite Bild im entstehenden Gesamtbild dem
Betrachter näher
erscheinen kann, da das zweite Bild das erste Bild verdeckt. Zwar
wird auch beim z-Buffer-Hiding Layering ein zweites Bild auf ein
erstes (Original-)Bild gezeichnet, damit es dem Betrachter näher erscheint,
jedoch werden hier die Pixel je nach der jedem Pixel entsprechenden
Tiefeninformation einzeln gezeichnet oder auch nicht gezeichnet. Dabei
werden nur die mit einer entsprechenden Tiefeninformation versehenen
Pixel gezeichnet, welche anzeigt, dass das Pixel sich näher am Beobachter befindet.
Dadurch kann ein Objekt (das zweite Bild) beim z-Buffer Hiding Layering teilweise vor
einem anderen Objekt (dem ersten Bild) herausragen.
-
Die
beiden Verfahren Drawing Order Layering und z-Buffer Hiding Layering
sind in der Bildbearbeitung bekannt und ausführlich beschrieben zum Beispiel
in „Computer
Graphics, principles and practice" von J. D. Foley, A. van Dam, S. K.
Feiner und J. F. Hughes, zweite Auflage, 1990, Addison-Wesley Publishing
Company, Reading, New York, im Inhaltsverzeichnis siehe unter painter's algorithm und z-Buffer.
-
Desgleichen
wird auch mit der Chroma-Key-Verfahren ein zweites Bild auf ein
erstes (Original-)Bild gezeichnet, damit dieses dem Beobachter näher oder
ferner erscheint. Beim Chroma-Key-Verfahren werden die Pixel jedoch je
nach dem jedem Pixel entsprechenden Farbwert einzeln gezeichnet
oder nicht gezeichnet. Das Chroma-Key-Verfahren wird im Folgenden
ausführlich
erörtert.
-
Bei
einer Ausführungsart
der vorliegenden Erfindung kann jedes der oben erwähnten Überlagerungsverfahren
durchgeführt
werden, während
das Videodatenbild transformiert und mit dem Panoramadatenbild verknüpft wird.
Diese unabhängigen Überlagerungsverfahren
sind bisher nur in Form von Sprites (zweidimensionalen Grafiksymbolen)
angewendet worden, die einem Panoramabild überlagert wurden, nicht aber
auf Videobilddaten, die mit Panoramabilddaten zu einem anzuzeigenden
Gesamtbild verknüpft
werden. Falls beim Transformationsschritt Überlagerungsverfahren eingesetzt
werden, können diese
in beliebiger Reihenfolge ausgeführt
werden, und außerdem
können
beim Zusammenfügen
der Videobilddaten und der Panoramabilddaten eine oder mehrere Panoramatransformationen
und ein oder mehrere Verknüpfungsschritte
durchgeführt
werden.
-
Im
Folgenden wird das Chroma-Key-Verfahren näher erläutert. Das Chroma-Key-Verfahren
kann bei der vorliegenden Erfindung auf ein Bild angewendet werden,
das in ein bestimmtes Zielsystem geschrieben wird, d.h. auf das
von der Quelle gesendete Bild, oder auf das Bild im Zielsystem,
d.h. das im Schreibpuffer des Zielsystems befindliche Bild.
-
Das
Chroma-Key-Verfahren ist ein übliches Überlagerungsverfahren,
das zum Beispiel im Fernsehfunk (TV) oder in der Filmindustrie verwendet wird,
um nicht das gesamte Bild, sondern nur Teile des Bildinhalts aufzutragen.
Mit dem Chroma-Key-Verfahren ist es zum Beispiel möglich, dass ein
Fernsehansager beim Wetterbericht scheinbar vor einer großen Wetterkarte,
tatsächlich
aber vor einem blauen oder grünen
Hintergrund steht. Das Verfahren beruht auf einem Prozess, bei dem
eine Entscheidung zum Übernehmen
von Pixeln von einem Farbschwellenwert (Chroma-Key-Farbe) abhängt. Dieser
Farbschwellenwert stellt eine Kombination aus Farbe, Helligkeit
und Pixelwerten in dem zu schreibenden Bild oder in dem zu überbeschreibenden
Bild dar. Eine ausführliche
Beschreibung des Chroma-Key-Verfahrens ist zu finden beispielsweise in „Video
Demystified, a Handbook for the Digital Engineer" von Keith Jack, zweite Auflage, 1996,
HighText Publications, San Diego, S. 404 bis 412 und A-54.
-
Beim
Chroma-Key-Verfahren ist eine Chroma-Key-Farbe beispielsweise rot
ohne grüne
oder blaue Farbanteile. Ein RGB-Pixelwert
(rot-grün-blau) wird
nicht geschrieben, wenn er einen bestimmten Rotwert ohne grüne oder
blaue Farbanteile aufweist. In diesem Fall erweist sich der Chroma-Key-Wert
sozusagen als transparent. So wird in dem folgenden Beispiel einer
Videokonferenz verfahren. Auch bei einem anderen Beispiel ist die
Chroma-Key-Farbe rot ohne grüne
oder blaue Farbanteile. In diesem Fall wird ein RGB-Pixelwert geschrieben,
wenn der zu beschreibende Hintergrund den bestimmten Rotwert ohne
grüne oder
blaue Farbanteile aufweist.
-
In
diesem Fall verhält
sich der Chroma-Key-Farbwert wie ein Bildschirm, auf den ein Bild projiziert
wird. Diese Variante wird im folgenden Beispiel eines Flugsimulators
genutzt.
-
Als
erstes Beispiel wird eine Videokonferenz beschrieben. Bei diesem
Beispiel besteht ein Gesamtbild aus dem Kopf einer Person, der auf
einer Panoramaszene eines Konferenzraums dargestellt wird. Mit Hilfe
der Panoramatransformation (Kasten 204 in 7)
wird ein ausgewählter
Zylinderbereich des Panoramabildes 201 in eine rechtwinklig-lineare Projektion
umgewandelt und diese rechtwinklig-lineare Projektion im Panoramazwischenpuffer 203 (Kasten 206)
gespeichert. Dann wird ein Videobild dieser Person zusammen mit
einem andersfarbigen ebenen Kontrasthintergrund aufgezeichnet und
zum Zielsystem übertragen.
Die Farbe des ebenen Hintergrundes wird als Chroma-Key-Farbe definiert,
sodass nur die Pixel zur Darstellung der Person und nicht die Pixel
des andersfarbigen ebenen Hintergrundes umgewandelt werden. Deshalb
erscheint der andersfarbige ebene Hintergrund nicht im Gesamtbild.
Somit werden beim Zusammenfügen
gemäß dem Chroma-Key-Verfahren
(Kasten 708 und 710) die außerhalb des Chroma-Key-Bereichs
liegenden Videobilddaten aus dem Videozwischenpuffer 603 in
den Panoramazwischenpuffer 203 (in dem jetzt nur die Panoramabilddaten
gespeichert sind) kopiert, d.h. nur die Pixel, welche die Person
darstellen, und nicht der andersfarbige ebene Hintergrund, sodass
sich daraus das Gesamtbild ergibt. Das Gesamtbild wird im Panoramazwischenpuffer 203 (Kasten 712)
gespeichert. Nach der Anzeigeaktualisierung (Kasten 208)
steht das Gesamtbild zur Anzeige bereit (Kasten 210). Die
folgenden Schritte geben einen Ausschnitt aus dem verknüpften Anzeigeprozess für Panorama-
und Videobilder nach dem Chroma-Key-Verfahren wieder:
- 1. Übergehen
zum nächsten
Pixel im Panoramazwischenpuffer;
- 2. Durchführen
der Panoramatransformation dieses Pixels in Kasten 204;
- 3. Auswählen
des entsprechenden Pixels aus dem Videozwischenpuffer 603 in
Kasten 506, welches in den Panoramazwischenpuffer 203 kopiert werden
soll;
- 4. Zurück
zu Schritt 1, wenn alle Komponenten rot, grün oder blau des Videopixels
innerhalb der vorgegebenen Chroma-Key-Bereiche für die Farben rot, grün und blau
liegen;
- 5. Transformieren des im Videozwischenpuffer 603 gespeicherten
Pixels und Zusammenfügen des
Pixels mit dem im Panoramazwischenpuffer 203 gespeicherten
Panoramabild; und
- 6. Zurück
zu Schritt 1.
-
Im
Folgenden wird als weiteres Beispiel der Ablauf in einem Flugsimulator
beschrieben. Im Flugsimulator enthält ein Gesamtbild ein Videobild
der Außenwelt,
das zusammen mit dem Panoramabild eines Cockpits angezeigt wird.
Bei diesem Beispiel wird ebenso wie oben ein ausgewählter Zylinderbereich
des Panoramabildes 201 des Cockpits in eine rechtwinklig-lineare Projektion
umgewandelt (Kasten 204) und diese rechtwinklig-lineare
Projektion im Panoramazwischenpuffer 203 gespeichert (Kasten 206).
Das Panoramabild weist auf den Fensterflächen des Cockpits einen ebenen
Hintergrund mit einer anderen Farbe auf. Ein Video eines Starts
und einer Landung wird vom Quellensystem aufgezeichnet und im Videozwischenpuffer 603 des
Zielsystems gespeichert. Beim Zusammenfügen nach dem Chroma-Key-Verfahren
(Kasten 708 und 710) wird das im Videozwischenpuffer
befindliche Videobild umgewandelt, das auf die innerhalb des Chroma-Key-Schwellenwertes liegenden
Teile der Cockpitszene fällt.
Der Panoramazwischenpuffer 203 (in welchem sich nun der
Panoramahintergrund des Cockpits befindet) wird mit dem transformierten
Videobild zusammengefügt
und ergibt das Gesamtbild. Beim vorliegenden Beispiel wird das Panorama
mit dem links, rechts, oben und unten beschnittenen Videobild überlagert,
sodass es außerhalb
des Cockpitfensters zu liegen scheint. Die folgenden Schritte geben
einen Ausschnitt aus dem verknüpften
Anzeigeprozess für
Panorama- und Videobilder nach dem Chroma-Key-Verfahren für das Beispiel
des Flugsimulators wieder:
- 1. Übergehen
zum nächsten
Pixel im Panoramazwischenpuffer 203;
- 2. Durchführen
der Panoramatransformation dieses Pixels in Kasten 204;
- 3. Zurück
zu Schritt 1, wenn eine Komponente rot, grün oder blau des Panoramapixels
außerhalb der
vorgegebenen Chroma-Key-Bereiche für die Farben rot, grün und blau
liegt;
- 4. Auswählen
des entsprechenden Pixels aus dem Videozwischenpuffer 603,
welches in den Panoramazwischenpuffer 203 kopiert werden
soll;
- 5. Transformieren des im Videozwischenpuffer 603 gespeicherten
Pixels und Zusammenfügen des
Pixels mit dem Inhalt des Panoramazwischenpuffers 203;
und
- 6. Zurück
zu Schritt 1.
-
Alternativ
kann zuerst das gesamte Videobild und anschließend das nach dem Chroma-Key-Verfahren
bewertete Panoramabild kopiert werden, dessen Pixelwerte außerhalb
der Chroma-Key-Bereiche liegen.
Auf diese Weise überschreiben
die das Innere des Cockpits darstellenden Pixel einige der Pixel, welche
die Videoaufnahmen der Starts und Landungen darstellen. Mit anderen
Worten, die das Fenster des Cockpits darstellenden Pixel werden
nicht geschrieben, sodass dieser Teil des Videobildes sichtbar bleibt.
-
Bei
einer Ausführungsart
werden die Chroma-Key-Werte jeweils als Wertebereiche dargestellt. Die
Verwendung von Chroma-Key-Werten
ist besonders dann von Bedeutung, wenn die Videodatenpakete in einem
komprimierten Format vom Quellensystem zum Zielsystem übertragen
werden. Normalerweise ändern
sich bei der Übertragung
komprimierter Daten oft die Werte durch das Codieren und Decodieren.
Beim Beispiel des Flugsimulators kann der Prozess durch die Verwendung
von Chroma-Key-Bereichen mit einem infolge einer fehlerhaften Dekomprimierung
möglicherweise
ungenauen Wert rechnen und einen genauen Farbwert rot, grün und blau
des Pixels beibehalten.
-
Die
Verwendung von Bereichen der Chroma-Key-Werte ist auch bei der Übertragung
von Standbildern von Bedeutung oder wenn ein Komprimierungsverfahren
verwendet wird, zum Beispiel das JPEG-Komprimierungsverfahren, bei dem die
Werte vor und nach der Komprimierung naturgemäß voneinander abweichen.
-
Bei
einer anderen Ausführungsart
kann ein gesondertes Chroma-Key-Panoramabild
erstellt werden. Dabei kann es sich um ein Bit im Originalpanoramabild
oder um ein gesondertes Bild mit einem genau definierten Chroma-Key-Wert
handeln. Dieses gesonderte Chroma-Key-Bild wird im Folgenden als Maske
bezeichnet und kann das Schreiben des Farbbildes zulassen oder verhindern.
Die Maske kann zum Beispiel für
jedes ihrer Pixel einen oder zwei Farbwerte haben. Ein erster Chroma-Key-Wert
bedeutet, dass die Maske transparent ist und das Videobild hindurchscheint.
Ein zweiter Chroma-Key-Wert entspricht einer anderen Farbe und bedeutet,
dass die Maske undurchlässig
ist und somit die Betrachtung des Videobildes verhindert.
-
Beim
Beispiel des Flugsimulators werden die Videopixel entsprechend dem
Zustand der statischen Pixel im Panorama entweder gezeichnet oder
nicht gezeichnet. Beim Beispiel der Videokonferenz werden die Videopixel
je nach dem Wert der Pixel des bewegten Videos gezeichnet oder nicht
gezeichnet, sodass die Maske in diesem Fall auch ein bewegtes Videobild
sein kann.
-
Wenn
eine Maske verwendet wird, kann diese dieselben Abmessungen wie
das Panorama aufweisen. Bei Verwendung einer Maske beim Beispiel des
Flugsimulators laufen die folgenden Schritte ab:
- 1. Übergehen
zum nächsten
Pixel im Panoramazwischenpuffer 203;
- 2. Durchführen
der Panoramatransformation für dieses
Pixel in Kasten 204; in diesem Schritt muss das richtige
Pixel (i, j) im Panoramabild gefunden und in den Panoramazwischenpuffer 203 kopiert werden;
- 3. Finden des entsprechenden Pixels in der Maske, wobei die
Maske dieselben Abmessungen wie das Panoramabild aufweist und deshalb
das Maskenpixel (i, j) gefunden wird;
- 4. Wenn das Maskenpixel (i, j) nicht den Chroma-Key-Wert aufweist:
- a. ist die Maske undurchsichtig, und das Video wird nicht gezeichnet;
zurück
zu Schritt 1;
- b. ansonsten ist die Maske durchsichtig wie ein transparentes
Cockpitfenster, sodass das Video gemäß den folgenden Schritten auf
das Panoramabild gelegt wird;
- 5. Berechnen des entsprechenden Pixels im Videozwischenpuffer 603,
das in den Panoramazwischenpuffer 203 kopiert werden soll;
- 6. Kopieren des Pixels aus dem Videozwischenpuffer 603 in
den Panoramazwischenpuffer 203; und
- 7. Zurück
zu Schritt 1.
-
Wenn
mit der Maske gearbeitet wird, braucht diese nicht dieselben Abmessungen
wie das Panoramabild zu haben, da sie proportional angepasst werden
kann.
-
Aus
der obigen Erörterung
ergibt sich, dass bei dem verknüpften
Anzeigeprozess für
ein Panoramabild und ein Videobild eine Bildszene in statische und
dynamische Komponenten zerlegt wird. Das Panoramabild 201 ist
die statische Komponente, während
die dynamische Komponente über
ein Netzwerk vom einem Server zu einem Client übertragen, wobei der Server
vorzugsweise zuerst das Panoramabild 201 zum Client überträgt. Dann
kann der Client die lokale Kopie des Panoramabildes 201 durchsuchen. Anschließend wird
der Videodatenstrom 601 vom Server zum Client übertragen
und in das Panoramabild eingefügt,
sodass ein Gesamtbild entsteht.
-
Anschließend wird
die Übertragung
der Bilddaten fortgesetzt, indem abwechselnd die Bilddaten des statischen
Panoramas und die Bilddaten der dynamischen Videobilder übertragen
werden.