-
Die
vorliegende Erfindung betrifft das Gebiet der Bildverarbeitung und
Datenverteilung. Insbesondere offenbart die vorliegende Erfindung
Verfahren und Vorrichtung zum Verarbeiten, Senden und Nachbearbeiten
von Panoramabild-Information.
-
Die
meisten Kameras nehmen lediglich eine Ansicht innerhalb eines kleinen
Blickwinkels auf. Somit erfasst eine typische konventionelle Kamera
lediglich ein Bild in derjenigen Richtung, in die die Kamera gerichtet
ist. Solche konventionellen Kameras zwingen Betrachter nur das zu
betrachten, auf was der Bediener der Kamera sich zu fokussieren
entscheidet.
-
Panoramakameras
erfassen ein sehr viel weiteres Feld des Feldes. Eine Panoramakamera, die
zur Verwendung einer optischen „Fischaugen"-Linse konstruiert
ist, kann höchstens
ein Blickfeld von 210 Grad erfassen. Eine Panoramakamera, die mit
einer katadioptrischen Linse konstruiert ist, erfasst ein volles
360-Grad-Panoramabild. Mit einem großen Panorama-Blickfeld können individuelle
Panoramabild-Betrachter entscheiden, worauf sie fokussieren möchten.
-
Konventionelle
Bilder werden häufig
von elektronischen Mitteln geliefert. Beispielsweise liefern Fernsehen
und das Internet konventionelle Bilder über verkabelte und kabellose
elektronische Medien. Jedoch gibt es keine Standard-Mittel zum elektronischen
Liefern von Panoramabildern. Da Panoramabilder so groß sind,
ist es schwierig, Panoramabilder unter Verwendung konventioneller
Bildübertragungstechniken
zu liefern. Um das Problem noch komplizierter zu machen, erfordern
bewegte Panoramabilder zur elektronischen Verteilung einen Kanal mit
sehr hoher Bandbreite. Daher wäre
es wünschenswert,
ein elektronisches Verteilungssystem zu haben, das die Information
von bewegten Panoramabildern effizient verteilt.
-
WO
97/30551 offenbart ein System zum Verteilen von Bildern über eine
begrenzte Bandbreite, in welchem das Bild durch Subsampling in Teilrahmen mit
niedriger Auflösung
aufgeteilt wird.
-
US 5,682,441 offenbart ein
Verfahren zum Bearbeiten eines Eingangsbildes zur Speicherung, welches
das Zerlegen des Eingangsbildes in Bilder mit niedrigerer Auflösung umfasst.
-
Die
vorliegende Erfindung, die in den beigefügten Ansprüchen definiert ist, betrifft
eine elektronische Bild-Verteilungs-Vorrichtung zur Verteilung bewegter
Panoramabilder. Der Hauptteil der Vorrichtung ist ein Server für bewegte
Panoramabilder, der eine Quelle von bewegten Panoramabildern aufweist.
Die Quelle von Panoramabild-Rahmen kann ein Wiedergabegerät für bewegte
Panoramabilder sein oder eine Verbindung zu einem Bewegungs-Panorama-Kamerasystem. Der
Server für
bewegte Panoramabilder wandelt die Panoramabild-Rahmen in eine vorläufige planare Repräsentierung
um, die einer elektronischen Übertragung
förderlicher
ist. Der Server für
bewegte Panoramabilder sendet dann die bewegten Panoramabilder an
Client-Systeme. Zwei unterschiedliche Übertragungssysteme werden unten
beschrieben.
-
Ein
erstes Panoramabild-Übertragungssystem
teilt die vorläufige
planare Repräsentierung
in individuelle Kacheln auf. Individuelle Client-Systeme fordern
dann die individuellen Kacheln an, die benötigt werden, um eine Ansicht
in das Panoramabild auf dem Client-System zu konstruieren. Der Server
sendet dann die angeforderten Kacheln an das Client-System. Zur
Handhabung einer Situation, in der ein Benutzer die Ansicht in das
Panoramabild in eine Position bewegt hat, für die das Client-System nicht die
notwendigen Kacheln zum Erzeugen einer Ansicht aufweist, wird gelegentlich
ein hoch komprimiertes vollständiges
Panoramabild gesendet.
-
Ein
zweites Panoramabild-Übertragungssystem
teilt die vorläufige
planare Repräsentierung ebenfalls
in individuelle Kacheln auf. Jedoch sendet das zweite Panoramabild-Übertragungssystem
dann die individuellen Kacheln auf unterschiedlichen Multicast-Kanälen. Client-Systeme
abonnieren dann die Multicast-Kanäle, die
zum Erbringen eines Bildes in der Richtung einer erwünschten
Ansicht notwendig sind.
-
Weitere
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
aus den beigefügten
Zeichnungen und aus der folgenden detaillierten Beschreibung ersichtlich
werden.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden
einem Fachmann angesichts der folgenden detaillierten Beschreibung
ersichtlich werden, in welcher:
-
1 eine
Ausführungsform
eines Panorama-Kamerasystems darstellt, welches ringförmige Bilder
erzeugt;
-
2a ein
ringförmiges
Bild darstellt, welches durch das Panorama-Kamerasystem aus 1 aufgenommen
wird;
-
2b darstellt,
wie das ringförmige
Bild aus 2a erscheint, nachdem es von
einer geometrischen Umwandlungs-Software ausgewickelt wurde;
-
3 das
360-Grad-Band darstellt, welches das Panorama-Kamerasystem aus 1 erfasst
und 3 außerdem
ein zylindrisches Projektions-Datenformat darstellt;
-
4 eine
vernetzte Computersysteme-Anordnung darstellt, die verwendet wird,
um von dem Panorama-Kamerasystem in 1 erfasste
bewegte Panoramabilder von einem Panoramabild-Server an Client-Systeme
zu verteilen;
-
5A eine
konzeptionelle Ansicht einer sphärischen
Ansicht darstellt, welche von dem Panorama-Kamerasystem aus 1 erfasst
wurde;
-
5B einen
Panoramabild-Rahmen in einer sphärischen
vorläufigen
planaren Repräsentierung
darstellt, welche ausgewickelt und in individuelle Kacheln aufgeteilt
wurde;
-
5C einen
Panoramabild-Rahmen in einer zylindrischen vorläufigen planaren Repräsentierung
darstellt, welche in individuelle Kacheln oder eine sphärische vorläufige planare
Repräsentierung aufgeteilt
wurde, welche eingestellt und in Kacheln aufgeteilt wurde;
-
5D einen
Panoramabild-Rahmen in einer vorläufigen planaren Repräsentierung
mit niedriger Auflösung
darstellt, welche in individuelle Kacheln aufgeteilt wurde;
-
5E einen
Panoramabild-Rahmen in einer vorläufigen planaren Repräsentierung
mit mittlerer Auflösung
darstellt, welche in individuelle Kacheln aufgeteilt wurde;
-
5F einen
Panoramabild-Rahmen in einer vorläufigen planaren Repräsentierung
mit hoher Auflösung
darstellt, welche in individuelle Kacheln aufgeteilt wurde;
-
5G einen
ringförmigen
Panoramabild-Rahmen darstellt, welcher in räumlich verschiedene Kacheln
aufgeteilt wurde;
-
6A eine
Ansicht innerhalb eines Panoramabild-Rahmens in einer vorläufigen planaren
Repräsentierung
darstellt;
-
6B vier
Kacheln aus 6A darstellt, die zum Konstruieren
einer Ansicht innerhalb eines Client-Systems gesendet wurden;
-
7A eine
Ansicht innerhalb einer vorläufigen
planaren Repräsentierung
eines Panoramabild-Rahmens darstellt, die sich plötzlich um
einen großen
Winkelwert verschoben hat;
-
7B eine
Ansicht innerhalb einer vorläufigen
planaren Repräsentierung
eines Panoramabild-Rahmens darstellt, die sich plötzlich um
einen kleinen Winkelwert verschoben hat;
-
8 ein
Flussdiagramm darstellt, welches beschreibt, wie ein Panoramabild-Client-System eine Verbindung
mit einem Server für
bewegte Panoramabilder aushandelt;
-
9 ein
Flussdiagramm darstellt, welches beschreibt, wie ein Server für bewegte
Panoramabilder Bildkacheln an einen Panoramabild-Client sendet;
-
10 ein
Flussdiagramm darstellt, welches beschreibt, wie ein Client für bewegte
Panoramabilder eine Panoramabild-Ansicht unter Verwendung von Bildkacheln,
die von einem Server empfangen wurden, erbringt;
-
11 einen
Panoramabild-Rahmen in einer vorläufigen planaren Repräsentierung
darstellt, welche in überlappende
Kacheln aufgeteilt wurde;
-
12 eine
vernetzte Computer-Anordnung darstellt, wobei ein Panoramabild-Server
Kacheln von bewegten Panoramabildern auf individuelle Multicast-Kanäle verteilt;
-
13 ein
Flussdiagramm darstellt, welches beschreibt, wie ein Client für bewegte
Panoramabilder Multicast-Panoramabildkachel-Kanäle abonniert und ein Bild unter
Verwendung von empfangenen Bildkacheln erbringt;
-
14 ein
ringförmiges
Panoramabild darstellt, welches in Quadranten aufgeteilt ist, die
auf verschiedenen Multicast-Kanälen
bereitgestellt werden;
-
15 einen
Panoramabild-Server darstellt, welcher Panoramabild-Informationen auf
verschiedenen Multicast-Kanälen
auf einem Multicast-Backbone überträgt und Client-Systeme,
welche die Multicast-Kanäle
abonnieren.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Es
wird ein Verfahren und eine Vorrichtung zum Komprimieren und Verteilen
von bewegten Panoramabildern offenbart. In der folgenden Beschreibung
wird zu Erklärungszwecken
eine spezifische Nomenklatur dargelegt, um ein gründliches
Verständnis
der vorliegenden Erfindung zu liefern. Jedoch wird es für den Fachmann
ersichtlich sein, dass diese spezifischen Details nicht erforderlich
sind, um die vorliegende Erfindung auszuführen. Zum Beispiel wurde das
Verfahren zum Verteilen von Panoramabildern der vorliegenden Erfindung
unter Bezugnahme auf das Internet beschrieben. Jedoch können andere
Arten von Digitalinformations-Verteilungssystemen,
beispielsweise private Datennetzwerke und Satellitensysteme, mit
der Lehre der vorliegenden Erfindung verwendet werden.
-
Die grundlegende
Panoramakamera-Konstruktion
-
1 stellt
eine Ausführungsform
eines möglichen
360-Grad-Panoramakamera-Systems dar.
Der Bilderfassungsmechanismus 150 des Panoramakamera-Systems
erfasst ein eckiges Bild des Umgebungspanoramas, das von dem Hauptreflektor 110 reflektiert
wird. Weitere Details über
das Panoramakamera-System aus 1 können in
der ebenfalls anhängigen
Patentanmeldung mit der Bezeichnung „Panoramakamera", eingereicht am
11. Juni 1997, gefunden werden, welche das Aktenzeichen 08/0872,525
aufweist.
-
2a stellt
ein Beispiel eines Panoramabilds dar, welches als ringförmiges Bild
erfasst wurde. Wie in 2a dargestellt, wird das Umgebungspanorama
durch den Hauptreflektor verzerrt, welcher eine radiale Symmetrie
aufweist, so dass die Umgebung als ein zweidimensionales ringförmiges Bild
repräsentiert
wird. In einer Ausführungsform
wandelt die Form des Hauptreflektors das rechtwinklige Standard-Koordinatensystem
des Bildes in ein Polarkoordinatensystem um. Um das als zweidimensionales ringförmiges Bild
erfasste Panoramabild anzusehen, kann das ringförmige Bild ausgewickelt werden,
um eine vorläufige
planare Repräsentierung
zu erzeugen. Das Auswickeln wird unter Verwendung einer geometrischen
Umwandlungsoperation durchgeführt. 2b stellt
dar, wie das ringförmige
Bild aus 2b erscheint, nachdem die Bilder
aus der ringförmigen
Repräsentierung
in eine rechtwinklige vorläufige
planare Repräsentierung
geometrisch umgewandelt sind.
-
Das
Panoramakamera-System aus 1 erfasst
ein gesamtes 360-Grad-Bild des Umgebungshorizonts, wie in 3 dargestellt.
Das Panoramakamera-System erfasst ein Panoramabild, welches Objekte
bis zu 50 Grad unterhalb des Horizonts und Objekte bis zu 50 Grad
oberhalb des Horizonts einschließt. Jedoch können alternative
Panoramakamera-Systeme eine vollständige sphärische Panoramaansicht, eine
partielle hemisphärische 180-Grad-Ansicht
oder jegliche andere Panoramaansicht erfassen. Des Weiteren kann
ein Panoramabild durch Kombinieren eines Mosaiks aus konventionellen
Bildern konstruiert werden, die mit konventionellen Kamerasystemen
erfasst wurden. Beispielsweise können
acht konventionelle Kameras verwendet werden, um Bilder aus acht
verschiedenen Richtungen zu erfassen. Jene Bilder werden dann miteinander kombiniert,
um ein einziges Panoramabild zu erzeugen.
-
Ein Erfassungssystem
für bewegte
Panoramabilder
-
Wenn
der Bilderfassungsmechanismus 150 der Panoramakamera aus 1 ein
Erfassungsmechanismus für
bewegte Bilder ist, beispielsweise eine ladungsgekoppelte Einrichtung
(CCD) oder ein film-basiertes Bilderfassungssystem für bewegte
Bilder, dann ist es möglich,
eine Reihe von ringförmigen Panoramabildern
zu erfassen. Die Reihe ringförmiger
Panoramabilder kann verwendet werden, um eine bewegte Panoramaanzeige
zu erzeugen. 4 stellt eine mögliche Ausführungsform
eines elektronischen Erfassungssystems für bewegte Panoramabilder dar.
-
Betreffend 4 erfasst
ein Panoramakamera-System 405 eine Reihe ringförmiger Panoramabild-Rahmen
mit einem elektronischen Bilderfassungsmechanismus. Zum Beispiel
kann der elektronische Bilderfassungsmechanismus ein Bilderfassungsmechanismus
mittels ladungsgekoppelter Einrichtung oder CMOS-Bildsensor sein,
welcher digitalisierte ringförmige
Panoramabild-Rahmen erzeugt. Die ringförmigen Panoramabild-Rahmen werden
von dem Panoramakamera-System 405 an einen Panoramabild-Server 400 über eine
Kommunikationsverbindung mit hoher Bandbreite 402 gesendet.
Die Kommunikationsverbindung muss eine hohe Bandbreite aufweisen,
da jeder ringförmige
Panoramabild-Rahmen eine sehr große Menge an Information enthält und zum
Bereitstellen eines flackerfreien beweglichen Bildes jede Sekunde
mehrere Panoramabilder gesendet werden müssen.
-
Es
können
auch alternative Ausführungsformen
von Erfassungssystemen für
bewegte Panoramabilder verwendet werden. Es kann zum Beispiel ein
bewegtes Panorama-Erfassungssystem mit zwei Filmkamera-Systemen
geschaffen werden, welche in entgegengesetzte Richtungen zeigen,
wobei jedes Filmkamera-System mit einer Fischaugen-Linse ausgestattet
ist, die zumindest ein hemisphärisches 180-Grad-Blickfeld erfasst.
In einem solchen Panoramabild-System müssten zwei verzerrte Fischaugen-Bilder
von jeder hemisphärischen
Ansicht „zusammengenäht" werden, um ein einziges
Panoramabild zu schaffen.
-
Eine erste
Ausführungsform
eines Verteilungssystems für
bewegte Panoramabilder
-
Wie
bereits vorangehend dargelegt, sind die vollständigen ringförmigen Panoramabild-Rahmen, die
von dem Panoramakamera-System (beispielsweise das Panoramakamera-System 405 aus 4) erzeugt
werden, so groß,
dass eine Verbindung mit sehr hoher Bandbreite benötigt wird,
um die vollständigen
bewegten Bilder an einen Empfänger
zu senden. Solche Verbindungen mit hoher Bandbreite sind selten
und teuer. Daher werden zur Massenverteilung von Panoramabildgebung
Verfahren zur Verteilung von Panoramabildern mit größerer Bandbreiten-Effizienz
benötigt.
-
Die
vorliegende Erfindung stellt zwei unterschiedliche Verfahren zum
Verteilen von bewegten Panoramabildern vor. Ein erstes Verfahren
teilt die Panoramabilder in Kacheln auf und sendet lediglich die
Kacheln, die zum Konstruieren eines erwünschten Bildes benötigt werden.
Ein zweites Verfahren, welches in einem späteren Abschnitt beschrieben wird,
teilt die Panoramabilder in individuelle Kacheln auf und sendet
dann alle Kacheln auf verschiedenen Multicast-Kanälen.
-
Das selektive Kachel-Übertragungs-System
-
Um
ein Panoramabild effizient zu senden, schlägt die vorliegende Erfindung
zuerst ein selektives Kachel-Übertragungs-System
vor. In dem selektiven Kachel-Übertragungs-System
teilt ein Server-Computersystem jeden Panoramarahmen in Kacheln
auf. Die Kachelgröße und -form
werden vorzugsweise in einer Art und Weise ausgewählt, die von
dem Koordinatensystem abhängt,
welches von dem zum Senden der Kacheln verwendeten Format verwendet
wird. Dann werden die Kacheln, die zum Konstruieren eines Bildes
auf einem Client-Computersystem benötigt werden, von dem Server-System an
individuelle Clients gesendet.
-
In
einer bevorzugten Ausführungsform
wandelt das Server-System jeden eingehenden Panoramabild-Rahmen
in eine vorläufige
planare Repräsentierung
um. Dieser Umwandlungsschritt ist nicht notwendig, bietet jedoch
bestimmte Vorteile. Das selektive Kachel-Übertragungs-System wird unter
Bezugnahme auf ein System, welches diese Umwandlung in den 4, 5, 6, 7, 8 und 9 durchführt, beschrieben.
-
Betreffend
die besondere Ausführungsform des
in 4 dargestellten selektiven Übertragungs-Systems, „wickelt" ein Umwandlungssystem 417 für ringförmige Panoramabilder
ringförmige
Panoramabild-Rahmen in eine vorläufige
planare Repräsentierung „aus". Die vorläufige planare
Repräsentierung
ist zum Erzeugen von Bildern, die zum Ansehen geeignet sind, günstiger.
Insbesondere sollte das vorläufige
Format weniger Berechnungen benötigen,
um eine endgültige
rechteckige Projektion zu erzeugen.
-
In
einer Ausführungsform
werden die eingehenden ringförmigen
Panoramabild-Daten
geometrisch in ein sphärisches
Koordinatensystem mit einer sphärischen
Projektions-Repräsentierung
umgewandelt. In einer solchen Ausführungsform kann ein Einzelrahmen
der Bilddaten mit dem „Live
Picture"-Betrachter
von Live Picture, Inc. betrachtet werden. 5A stellt
konzeptionell ein sphärisches
Datenformat dar, wobei die Ansicht der Umgebung auf eine Kugel projiziert
wird, die einen Blickpunkt umgibt.
-
In
einer weiteren Ausführungsform
werden die eingehenden ringförmigen
Panoramabild-Daten geometrisch in ein zylindrisches Koordinatensystem mit
einer zylindrischen Projektions-Repräsentierung umgewandelt. Ein
Bild, das in ein zylindrisches Koordinatensystem umgewandelt wurde,
kann mit dem von Apple Computer, Inc. geschaffenen „QuickTime VR"-Betrachter betrachtet
werden. 3 stellt konzeptionell ein zylindrisches
Datenformat dar, wobei die Ansicht der Umgebung auf einen Zylinder
projiziert wird, der einen Blickpunkt umgibt.
-
Nach
dem Konvertieren der Panoramabild-Rahmen in eine vorläufige planare
Repräsentierung
teilt das System der vorliegenden Erfindung die vorläufige planare
Repräsentierung
in individuelle Kacheln auf. In der vorliegenden Erfindung hängt die Größe der Kacheln
von dem Koordinatensystem der vorläufigen planaren Repräsentierung
ab. In solchen Ausführungsformen
können
die Kacheln räumlich verschieden
sein.
-
Die
Größe der Kacheln
kann des Weiteren von dem Client-System abhängen, welches die Panoramabild-Daten
anzeigen wird. In einer solchen Ausführungsform verwendet jeder
Client ein unterschiedliches Verfahren (441 oder 445)
zum Aufteilen vorläufiger
planarer Repräsentierungen
in Kacheln, da jeder Client unterschiedliche Client-Größen verwenden
kann. In einer standardisierten Ausführungsform ist jedoch die Größe der Kacheln
festgelegt, so dass ein einzelner Ablauf (dargestellt als gestrichelte Box 449)
verwendet werden kann, um eine vorläufige planare Repräsentierung
in individuelle Kacheln aufzuteilen.
-
5A stellt
ein konzeptionelles Diagramm der sphärisch codierten vorläufigen planaren
Repräsentierung
dar. Wie in 5A dargestellt, repräsentiert
die sphärisch
codierte vorläufige
planare Repräsentierung
die umgebende Welt als Bilddaten, die auf einer Kugel abgebildet
sind. Um die Daten aufzuteilen und zu organisieren wird die Kugel
in individuelle Bänder
auf der Kugel A, B, C, D, E und F aufgetrennt. Es ist zu bemerken,
dass die Bänder
nahe dem „Äquator" der sphärisch codierten
vorläufigen
planaren Repräsentierung
mehr Daten enthalten als die Bänder,
die näher
an den „Polen" sind.
-
In
einer Ausführungsform
der vorliegenden Erfindung werden die Bilddaten von individuellen Bändern repräsentiert,
die in individuelle Kacheln aufgeteilt werden, wie in 5B dargestellt.
Es ist zu bemerken, dass in den Bändern von höheren Neigungswinkeln weniger
Kacheln vorhanden sein werden. Alternativ werden dort die gleiche
Anzahl Kacheln vorhanden sein, aber die Kacheln werden Daten von
kleineren Scherwinkeln enthalten. Falls die Daten von den kleineren
Scherwinkeln vergrößert werden,
kann diese Art von vorläufigem
Datenformat grafisch dargestellt werden wie in 5C gezeigt.
Es ist zu bemerken, dass die grafische Datenrepräsentierung von 5C auch
mit dem zylindrischen Datenformat aus 3 übereinstimmt.
Obwohl das Datenformat aus 5B verwendet
werden kann und bestimmte Vorteile bietet, beispielsweise ein kompakteres
Datenformat, wird dieses Dokument sich auf das Format aus 5C konzentrieren,
da es die Beschreibung vereinfacht.
-
Betreffend
die besondere Ausführungsform der 5A, 5B und 5C deckt
eine erste Reihe Kacheln von der Horizontlinie bis dreißig Grad oberhalb
des Horizonts ab. Eine zweite Reihe Kacheln bedeckt von dreißig Grad
oberhalb des Horizonts bis zweiundvierzig Grad oberhalb des Horizonts.
Eine dritte obere Reihe Kacheln bedeckt das Band von zweiundvierzig
Grad oberhalb des Horizonts bis fünfzig Grad oberhalb des Horizonts.
Die gleichen Winkelaufteilungen werden verwendet, um den Raum unterhalb
des Horizonts aufzuteilen. Die Reihengrößen-Aufteilungen sind nichtlinear und am breitesten
am Horizont, da die Benutzer gewöhnlich am
meisten an Ansichten nahe dem Horizont interessiert sind. Jedoch
können
ebenso verschiedene Winkelaufteilungen, beispielsweise lineare Winkelaufteilungen,
verwendet werden.
-
Nach
dem Aufteilen jedes ausgewickelten Panoramabildes in Kacheln liest
ein Kachel-Ausleseprogramm (440 und 443) Kacheln
zur Übertragung an
das Client-System
aus. Idealerweise wählt
das Kachel-Ausleseprogramm lediglich die Kacheln aus, die zum Erzeugen
einer Ansicht auf einem Client-Computersystem benötigt werden.
In einer bevorzugten Ausführungsform
bestimmt das Client-Computersystem,
welche Kacheln benötigt
werden und schickt eine Anforderung, die beschreibt, welche Kacheln
ausgewählt
werden sollen. Die ausgelesenen Kacheln werden gesendet, indem ein
Kachel-Streaming-Programm (460 und 463) verwendet wird.
Indem lediglich diejenigen Kacheln übertragen werden, die zum Erzeugen
einer Ansicht auf dem Client-Computersystem benötigt werden, beschränkt das
System der vorliegenden Erfindung die Informationsmenge, die von
einem Panoramabildquellen-Server an eine Panoramabild-Client-Anzeige
gesendet werden müssen.
-
Übereinanderstufen von Kacheln
zur Vergrößerung
-
Um
mehrere verschiedene Vergrößerungsniveaus
unterzubringen, können
mehrere verschiedene Sätze
von Kachelauflösungen
erzeugt werden. Zum Beispiel kann ein „zurückgezoomter" ursprünglicher Satz Kacheln mit niedriger
Auflösung
zum Schwenk um ein Panoramabild herum verwendet werden. Die ursprünglichen
Kacheln mit niedriger Auflösung
würden
eine große
eckige Ansicht umfassen. Wenn ein interessanter Bereich des Panoramabildes
ausgewählt
wird, kann dann ein Satz Kacheln mit höherer Auflösung ausgewählt werden.
-
Die 5D, 5E und 5F stellen
eine mögliche
Ausführungsform
dar, bei der ein Panoramabildraum in drei Vergrößerungsstufen aufgeteilt wurde.
Eine ursprüngliche „zurückgezoomte" vorläufige planare
Repräsentierung
einer Kachelvergrößerung ist
in 5D gezeigt. Die vorläufige planare Repräsentierung
mit niedrigerer Auflösung
aus 5D wird zuerst verwendet. Wenn ein Benutzer wünscht, einen
Teil einer Ansicht in größeren Einzelheiten
zu sehen, „zoomt" die Client-Software
heran, indem Kacheln aus der in 5E angezeigten
vorläufigen
planaren Repräsentierung
mit der nächsthöheren Auflösung ausgelesen
werden. Falls sogar eine größere Auflösung benötigt wird, „zoomt" die Client-Software weiter
heran, indem Kacheln aus 5F ausgelesen werden.
In einer Ausführungsform
ist die Pixelauflösung
der individuellen Kacheln der 5D, 5E und 5F die
gleiche, so dass die individuellen Kacheln die gleiche verfügbare Bildschirmfläche einnehmen,
aber aufeinander folgend größere Auflösungen bereitstellen.
-
Kachelbildung ohne Umwandlung
-
Wie
am Anfang dieses Abschnitts erwähnt, müssen die
ursprünglichen
Panoramabild-Rahmen vor der Aufteilung in individuelle Kacheln nicht
in eine vorläufige
planare Repräsentierung
umgewandelt werden. Die vorläufige
planare Repräsentierungs-Umwandlung
wird normalerweise durchgeführt,
da die Umwandlung verwendet wird, um das Bild in ein Format zu bringen,
das zum raschen Erzeugen eines anzeigbaren Bildes mit minimaler
Verarbeitung verwendet werden kann. Jedoch können die unbearbeiteten Panoramabild-Rahmen
sofort in Kacheln aufgeteilt und gesendet werden.
-
Zum
Beispiel stellt 5G einen unbearbeiteten ringförmigen Panoramabild-Rahmen vom Panoramakamera-System
aus 1 dar. Vor dem Senden wird das unbearbeitete ringförmige Panoramabild
in Kacheln aufgeteilt. In der Ausführungsform von 5G wird
das unbearbeitete ringförmige
Panoramabild in quadratische Kacheln aufgeteilt, die nahe dem Mittelpunkt
klein sind, da eine kleine Kachel in dem ringförmigen Format einen breiten
Bildbereich bedeckt. Der mittlere Teil der ringförmigen Scheibe wird in größere Kacheln
aufgeteilt. Das Äußere der ringförmigen Scheibe
wird in kleinere Kacheln aufgeteilt, da ein schmaler Streifen Kacheln
benötigt
wird, wenn eine Ansicht konstruiert wird, welche Information vom
Rand der ringförmigen
Scheibe verwendet. Daher sind die Kacheln räumlich verschieden.
-
Auswahl der Kachellage
-
6A stellt
ein Beispiel einer Client-System-Ansicht in ein Panoramabild dar.
Speziell die Client-Ansicht 630 repräsentiert eine Ansicht in ein
ausgewickeltes Panoramabild 610, das von einem Client-Computersystem
angefordert wurde. Die Ansicht ist verzerrt, da die Ansicht innerhalb
des sphärischen Koordinatenraums
dargestellt ist. Um die Ansicht 630 auf einem Client-System
zu konstruieren, sendet ein Server (beispielsweise Server 400)
Kacheln 621, 623, 625 und 627.
Jede Kachel 621, 623, 625 und 627 wird
vor der Übertragung
komprimiert, um die Menge an Information, die gesendet werden muss, weiter
zu reduzieren. 6B stellt dar, wie die vier Kacheln 621, 623, 625 und 627 von
dem Server verwendet werden, um die Client-Ansicht 630 auf
einem Client-Computersystem zu konstruieren. (Die vier Kacheln 621, 623, 625 und 627 erscheinen
verzerrt, da die Kacheln in dem rechtwinkligen Projektions-Koordinatenraum
von 6B angezeigt werden.)
-
Zurück betreffend 6A,
wenn ein Benutzer die Ansicht 630 weiter nach rechts bewegt,
dann wird die Ansicht nicht länger
die Kacheln 621 und 623 benötigen und wird statt dessen
anfangen, die Kacheln 628 und 629 zu benötigen. Um
solchen Situationen Rechnung zu tragen, fängt das Client-System an Kacheln
anzufordern, die sich gerade eben leicht außerhalb einer momentanen Ansicht
befinden, wenn sich eine Ansicht dem Rand einer Kachel nähert, falls
sich der Benutzer weiter in diese Richtung bewegt. Somit würde das
Client-System in dem Beispiel von 6A anfangen
Kacheln 628 und 629 anzufordern, wenn sich die
Ansicht ein wenig weiter nach rechts verschiebt. Somit würde das
Kachel-Ausleseprogramm in dem Server die Kacheln 628 und 629 auslesen
und an das Client-System senden. Falls sich die Client-Ansicht 630 sogar
noch weiter nach rechts fortbewegt, dann würden die Kacheln 623, 628, 627 und 629 verwendet
werden, um die verschobene Client-Ansicht in dem Client-System zu konstruieren.
-
In
einer bevorzugten Ausführungsform
ist das Client-Computersystem verantwortlich festzulegen, wann die
außerhalb
der Ansicht befindlichen Kacheln benötigt werden und wann sie gesendet
werden sollen. Das Client-System trifft diese Festlegung anhand
von Prüfungsfaktoren,
beispielsweise wie schnell der Benutzer die Ansicht bewegt, der
Latenz der Verbindung mit dem Server und der Parameter, die die
Ansichten definieren. Das Client-Computersystem sendet eine Liste
erwünschter
Kacheln an den Server, wobei die Liste erwünschter Kacheln definiert,
welche Kacheln durch den Server an das Client-Computersystem gesendet
werden sollen.
-
Der
Bewegungs-Antizipations-Vorgang, der in den vorangehenden zwei Abschnitten
beschrieben wurde, funktioniert gut für kleine inkrementelle Client-Ansicht-Verschiebungen
(welche die meisten Ansichtsveränderungen
umfassen). Falls jedoch ein Benutzer eine plötzliche rasche Ansichtsveränderung vornimmt,
werden die benötigten
Kacheln nicht verfügbar
sein. Zum Beispiel kann, betreffend 7,
ein Benutzer rasch eine Ansicht von einer ersten Ansichtsposition 730 auf
eine zweite Ansichtsposition 740 verschieben. Die erste
Ansichtsposition 730 wurde mit den Kacheln 721, 723, 725 und 727 erbracht, die
an den Server gesendet wurden. Die neue zweite Ansichtsposition 740 erfordert
die Kacheln 751, 753, 755 und 757,
welche nicht gesendet werden.
-
Um
solche plötzlichen
Ansichtsveränderungen
zu bewältigen,
sendet die vorliegende Erfindung gelegentlich eine hoch komprimierte
Version der vorläufigen planaren
Repräsentierung
des vollständigen Panoramabildes.
Die hoch komprimierte vorläufige planare
Repräsentierung
des Panoramabildes wird lediglich einmal alle ca. 30 normale Rahmen
gesendet. Wenn eine schnelle Bewegung auftritt, erbringt der Client
eine Ansicht aus der zuletzt empfangenen hoch komprimierten vorläufigen planaren
Repräsentierung
des Panoramabildes. Diese erneut erbrachte Ansicht wird nicht in
der normalen Auflösung
vorliegen, da sie aus der hoch komprimierten vorläufigen planaren
Repräsentierung
des Panoramabildes erbracht wird. Simultan dazu wird der Server
anfangen, die Kacheln, die an der neuen Stelle der Ansicht benötigt werden,
zu senden.
-
In
dem Beispiel aus 7A wird der Server anfangen
Kacheln 751, 753, 755 und 757 zu
senden. Wenn die Kacheln 751, 753, 755 und 757 von
dem Client-Computersystem
empfangen werden, wird das Bild, das aus der zuletzt empfangenen
hoch komprimierten vorläufigen
planaren Repräsentierung des
Panoramabildes erbracht wurde, durch ein Bild ersetzt werden, das
aus den Kacheln 751, 753, 755 und 757 erbracht
wurde. Somit wird die neue Bildansicht klarer werden, sobald der
Server die plötzliche Ansichtsveränderung
des Benutzers „einholt".
-
Eine
plötzliche
Bewegung muss die Ansicht nicht vollständig von den momentan verfügbaren Kacheln
weg bewegen. Zum Beispiel kann eine Bewegung die Ansicht teilweise
auf Kacheln platzieren, die verfügbar
sind, und teilweise auf Kacheln, die nicht verfügbar sind. In einer solchen
Situation kann der Teil der Ansicht, der auf verfügbaren Zeiten
angeordnet ist, mit der Auflösung
dieser Kacheln erbracht werden und der Rest der Ansicht wird unter
Verwendung der hoch komprimierten Version erbracht werden. In ähnlicher
Weise kann, falls der Benutzer auf hochauflösenden Kacheln „herangezoomt" ist und der Benutzer
sich rasch von den momentan verfügbaren
hochauflösenden
Kacheln weg bewegt, die Ansicht unter Verwendung der Kachel aus
der nächstniedrigeren
Auflösungsstufe
konstruiert werden, sofern diese Kachel noch verfügbar ist.
-
8 und 9 liefern
detaillierte Flussdiagramme, die vollständig beschreiben, wie das elektronische
Bildverteilungssystem aus 4 arbeitet. 8 stellt
ein Flussdiagramm dar, welches eine Ausführungsform beschreibt, in der
ein Server-System für
bewegte Panoramabilder und ein Client-System eine Verbindung aushandeln.
Jedoch ist anzumerken, dass in anderen Ausführungsformen eine Standardverbindung
verwendet werden kann, so dass dort kein Aushandeln von Verbindungsparametern
stattfindet. 9 beschreibt, wie ein Server-System
Bildkacheln an ein Client-System sendet.
-
Aushandeln der Client-Server-Verbindung
für bewegte
Panoramabilder
-
4 stellt
eine Ausführungsform
eines Client-Server-Systems für
bewegte Panoramabilder dar, in welchem die Bandbreite durch Aufteilen
der Panoramabilder in Kacheln erhalten wird. Es ist anzumerken,
dass häufig
keine „Standard"-Server- und -Client-Umgebung
vorliegt. Speziell die Clients, die Server und das Netzwerk in einer
Client-Server-Umgebung können
sämtlich
in Abhängigkeit
der Umstände
variieren. Die Fähigkeiten
jedes verschiedenen Panorama-Server-Systems und jedes verschiedenen
Panorama-Client-Systems variieren in Abhängigkeit der Systemspezifikationen,
einschließlich
der Computer-Machart, des Prozessortyps, der Prozessor-Generation,
der Menge verfügbaren
RAM-Speichers, der Busgeschwindigkeit und des Betriebssystems.
-
Um
bewegte Panoramabilder am effizientesten von einem Server für bewegte
Panoramabilder an Clients zu verteilen weist die vorliegende Erfindung eine
Client-Server-Aushandlung
auf. Das Server-System bestimmt die Kenndaten des Clients, bevor
es bestimmt, wie das Client-Server-System arbeiten wird. 8 stellt
ein Flussdiagramm dar, welches das Verfahren des Aushandelns der
Client-Server-Verbindung
für bewegte
Panoramabilder beschreibt.
-
Betreffend 8 initiiert
ein Client in Schritt 810 eine Verbindung zu einem Panoramabild-Server. Als
nächstes
fordert der Panoramabild-Server in Schritt 820 Information
an, die die Anzeige-Kenndaten des Clients beschreibt. Insbesondere
kann der Server die Bildspeichergröße des Clients, die Bildspeicher-Farbkenndaten
des Clients, die Größe des Panoramabild-Ansichtsfensters
und andere Information, die für
die Anzeige von Bildern auf dem Client-System relevant ist, anfordern.
Der Server für
bewegte Panoramabilder kann auch Information anfordern, die die
Verarbeitungsfähigkeiten
des Clients beschreibt. Zum Beispiel kann der Panoramabild-Server
den Prozessortyp, die Prozessorgeschwindigkeit und die Menge verfügbaren Hauptspeichers
anfordern. Der Client antwortet dem Server, indem er diese Information
in Schritt 830 an den Server für bewegte Panoramabilder sendet.
-
In
Schritt 840 verwendet der Server für bewegte Panoramabilder die
gesammelte Information, um zu bestimmen, wie der Server den Client
bedienen wird. Ein spezifischer Parameter, welchen der Server entscheiden
muss, ist, wie die ausgewickelte vorläufige planare Panorama-Repräsentierung
in Kacheln aufzuteilen ist. Insbesondere wird die Größe der individuellen
Kacheln bestimmt werden. Der Server für bewegte Panoramabilder kann
auch die Video-Bildfolge, einen zu verwendenden Kompressionstyp
und eine Aufteilung von Verarbeitungsaufgaben, welche auf der Geschwindigkeit
und Qualität
der Netzwerkverbindung beruht, die Fähigkeiten des Client-Systems
und die momentane und zu erwartende Verarbeitungs-Auslastung des
Bildservers bestimmen.
-
Nach
dem Bestimmen der Parameter der Verbindung für bewegte Panoramabilder, sendet
der Server für
bewegte Panoramabilder in Schritt 850 die Verbindungs-Parameter
an das Client-System. Das Client-System wird die Parameter verwenden,
um zu bestimmen, wie das Client-System die bewegten Panoramabilder
anzeigen wird.
-
Nachdem
der Client und Server die Verbindung für bewegte Panoramabilder ausgehandelt
haben, fängt
der Client an, in Schritt 860 von dem Server-System Information über bewegte
Panoramabilder anzufordern. Als Antwort auf die Anforderungen fängt der
Server in Schritt 870 an, Kacheln bewegter Panoramabilder
an das Client-System zu senden. Da die Verbindung zu jedem Client
auf einzigartige Weise kalibriert ist, wird der Server Panoramabild-Information
an jeden unterschiedlichen Client in einer Weise senden, die spezifisch
für den
bestimmten Client ist. Der Server wird mit dem Senden von bewegten
Panoramabildern fortfahren bis der Client in Schritt 880 vom
Server verlangt, das Senden von Bildern einzustellen.
-
Betrieb des Servers für bewegte
Panoramabilder
-
9 beschreibt,
wie der Server für
bewegte Panoramabilder die Information sendet, die zum Konstruieren
einer Ansicht innerhalb eines bewegten Panoramabildes auf einem
Client-System benötigt wird.
Somit beschreibt 9 im Detail, was während der
Schritte 860 und 870 aus 5 geschieht.
-
Betreffend
Schritt 910 aus 9 ist der erste Schritt, den
der Server für
bewegte Panoramabilder ausführen
muss, einen Panoramabild-Rahmen in eine oder mehr vorläufige planare
Repräsentierungen
umzuwandeln. Das exakte Verfahren des Umwandelns eines Panoramabild-Rahmens
hängt von dem
Typ des verwendeten Kamerasystems ab. Zum Beispiel würde ein
System, das zur Verwendung des Panoramakamera-Systems aus 1 gemacht
ist, eine geometrische Umwandlung durchführen, um den ringförmigen Panoramabild-Rahmen
in die ausgewählte
vorläufige
planare Repräsentierung
umzuwandeln. Sofern ein Panoramakamera-System mit Fischaugen-Linse
benutzt würde,
würde eine
unterschiedliche geometrische Umwandlung das verzerrte Fischaugen-Bild
in die erwünschte
vorläufige
planare Repräsentierung
umwandeln. Alle folgenden Handlungen werden an der umgewandelten
vorläufigen planaren
Repräsentierung
durchgeführt.
-
In
einer Ausführungsform
mit Vergrößerung werden
die Panoramabild-Quelldaten
in mehr als eine vorläufige
planare Repräsentierung
verschiedener Auflösungen
umgewandelt. Zum Beispiel können die
Panoramabild-Quelldaten in vorläufige
planare Repräsentierungen
mit niedriger, mittlerer und hoher Auflösung umgewandelt werden, wie
in 5D, 5E und 5F dargestellt.
-
Nachdem
der Panoramabild-Rahmen in eine vorläufige planare Repräsentierung
umgewandelt wurde, fährt
das Verfahren mit Schritt 920 fort. In Schritt 920 bestimmt
das Verfahren, ob eine hoch komprimierte Version des vollständigen Panoramabild-Rahmens
gesendet werden soll. Wie vorangehend ausgeführt, wird gelegentlich eine
hoch komprimierte Version des vollständigen Panoramabild-Rahmens
gesendet, um plötzliche
Bewegungen der Client-Ansicht zu bewältigen. In einer Ausführungsform sendet
der Server für
bewegte Panoramabilder eine hoch komprimierte Version des vollständigen Panoramabild-Rahmens
während
des ersten und jedes N-ten folgenden Rahmens. Somit fährt das
Verfahren während
des ersten und jedes N-ten folgenden Rahmens mit Schritt 970 fort,
wo der vollständige
Panoramabild-Rahmen komprimiert wird. Dann fängt der Server für bewegte
Panoramabilder in Schritt 980 an, die hoch komprimierte
Version des vollständigen
Panoramabild-Rahmens zu senden. Die Übertragung der hoch komprimierten
Version des vollständigen Panoramabild-Rahmens
kann auf einmal geschehen. Alternativ kann die hoch komprimierte
Version des vollständigen
Panoramabild-Rahmens gleichzeitig mit den individuellen Bildkacheln
gesendet werden, so dass die individuellen Bildkacheln nicht verzögert werden.
-
Als
nächstes
werden in Schritt 930 der/die eine oder mehreren vorläufige(n)
planare(n) Repräsentierungs-Rahmen
in individuelle Kacheln aufgeteilt, wie in 5D, 5E und 5F dargestellt. Die
Größe der individuellen
Kacheln ist die Größe, die
während
des Verbindungs- Prozesses, der in dem Flussdiagramm aus 8 beschrieben
ist, ausgehandelt wurde.
-
Nachdem
der Rahmen in individuelle Kacheln aufgeteilt wurde, liest dann
der Server in Schritt 940 die Kacheln aus, die zum Erzeugen
der Client-Ansicht benötigt
werden, und sendet sie. Jede Kachel wird vor der Übertragung
komprimiert, um die Bandbreite zu erhalten und die Latenz zu verringern. Der
Client wird die gesendeten Kacheln zum Konstruieren eines Bildes
verwenden.
-
In
Schritt 950 bestimmt das Server-Verfahren, ob das Client-System
mit dem Ansehen des bewegten Panoramabildes fertig ist. Falls der
Client nicht fertig ist, kehrt das Verfahren zu Schritt 960 zurück.
-
Betrieb des Servers für bewegte
Panoramabilder
-
10 stellt
ein Flussdiagramm dar, welches ein Verfahren beschreibt, das ein
Client-System durchlaufen kann, um Information vom Erbringen eines
Bildes zu erhalten. Es ist anzumerken, dass 10 lediglich
eine mögliche
Ausführungsform
eines Client-Systems darstellt und dass erhebliche Variationen geschaffen
werden können.
Zum Beispiel können
mehrere der in 10 beschriebenen Schritte, wie
beispielsweise Empfangen von Kacheln und Erbringen eines Bildes,
gleichzeitig durchgeführt werden.
Alternativ könnte
weniger Verarbeitung in dem Client-System durchgeführt werden
und mehr Verarbeitung könnte
in dem Server durchgeführt
werden.
-
Betreffend
Schritt 1010 aus 10 empfängt der
Client jegliche und alle angeforderten Panoramabild-Kacheln und
hoch komprimierten vollständigen Panoramabilder,
die vom Server gesendet wurden. In Schritt 1020 versucht
der Client für
die momentane Ansichtsposition ein Bild zu erbringen. Idealerweise wird
die Ansicht mit den Kacheln, die für die Ansicht benötigt werden,
erbracht werden. Falls jedoch der Client nicht die erwünschten
Kacheln hat, dann erbringt der Client ein Bild der momentanen Ansicht,
indem er die verfügbaren
Kacheln für
die Ansicht, Kacheln aus niedrigeren Auflösungsstufen und die zuletzt
empfangene Version des hoch komprimierten vollständigen Panoramabildes verwendet.
-
Nachdem
ein Bildrahmen erbracht ist, akzeptiert das Client-System in Schritt 1030 eine
Eingabe von einem Benutzer. Das Client-System kann Eingaben akzeptieren
wie beispielsweise Richtungsbefehle von einer Computermaus, die
die Ansicht innerhalb des Panoramabildes schwenken. Der Client kann
auch Befehle akzeptieren, die heranzoomen und den vertikalen Blickwinkel
verändern.
-
Das
Client-System verarbeitet dann in Schritt 1030 die Benutzereingabe
an das Server-System, um eine nächste
Ansichtsposition zu bestimmen. In Schritt 1040 bestimmt
das Client-System, ob die Eingabe festlegt, dass der Benutzer mit
dem Ansehen der Panoramabild-Information fertig ist. Das Client-Programm
zum Erbringen eines Panoramabildes wird beendet, wenn der Benutzer
das Panoramabild nicht länger
anzusehen wünscht.
-
In
Schritt 1050 bestimmt das Client-System die Rahmenkacheln,
die zum Erzeugen einer neuen Ansichtsposition benötigt werden.
Das Client-System bestimmt auch, ob es Kacheln anfordern soll, die
sich gerade eben außerhalb
der momentanen Ansicht befinden, jedoch wahrscheinlich zukünftig benötigt werden.
Insbesondere bestimmt der Client, ob sich die momentane Ansicht
in der Nähe
des Randes einer Kachel befindet. Falls sich die Ansicht des Clients
in der Nähe
des Randes einer Kachel befindet, dann wird der Client Kacheln anfordern,
die sich gerade eben außerhalb
der momentanen Ansicht des Clients befinden. Die gerade eben außerhalb
der Ansicht befindlichen Kacheln werden so angefordert, dass, falls der
Client die Ansicht jenseits des Randes der Kachel bewegt, dann der
Client in der Lage sein wird eine Ansicht zu erzeugen, ohne anfordern
und auf den Server warten zu müssen,
bis dieser dann die benötigte
Kachel sendet. Somit antizipiert der Client kleine Ansichtsbewegungen
und ist vorbereitet eine Ansicht zu erzeugen. Falls der Benutzer
jedoch eine plötzliche
große
Ansichtsveränderung
vornimmt, kann dann die Client-Erbringungsmaschine stets auf die hoch
komprimierte Version des vollständigen
Panoramabildes zurückgreifen.
-
Des
Weiteren bestimmt das Client-System in Schritt 1050, ob
irgendwelche momentan angeforderten Kacheln nicht länger benötigt werden.
Kacheln, die nicht länger
benötigt
werden, verbrauchen wertvolle Bandbreite, so dass das Client-System Kacheln abbestellen
sollte, die nicht länger
benötigt werden.
-
Nach
dem Bestimmen der für
die momentane Ansicht benötigten
Kacheln bestimmt das Client-System in Schritt 1060, ob
die benötigten
Kacheln bereits angefordert wurden und ob keine Anfragen für unnötige Kacheln
vorliegen. Falls die benötigten
Kacheln bereits angefordert wurden und keine Anfragen für unnötige Kacheln
vorliegen, muss dann das Client-System die Kachel-Abonnierungen
nicht abändern.
Falls jedoch neue Kacheln benötigt
werden oder momentan abonnierte Kacheln nicht länger benötigt werden, sendet dann das
Client-System in Schritt 1070 eine Anforderung an den Server,
welche die Kachel-Abonnierung abändert.
-
In
Schritt 1080 bestimmt das Client-System, ob irgendwelche
neuen Rahmenkacheln oder komprimierte Panoramabild-Rahmen empfangen
wurden. Falls neue Rahmen empfangen wurden, kehrt das Verfahren
dann zurück
zu Schritt 1010, um die neuen Rahmen zu akzeptieren. Andernfalls
kehrt das Verfahren zurück
zu Schritt 1020, um ein neues Ansichtsbild unter Verwendung
der momentan verfügbaren
Kacheln und der hoch komprimierten Information des vollständigen Panoramabildes
zu erbringen. Ein unterschiedliches Bild kann aus derselben Rahmeninformation
erzeugt werden, falls der Benutzer die Ansicht verschoben hat.
-
Ausführungsform mit überlappenden
Kacheln
-
In
einer vorgeschlagenen Ausführungsform wird
die vorläufige
planare Repräsentierung
des Panoramabildes in überlappende
Kacheln aufgeteilt. Ein Beispiel dafür ist in 11 vorgesehen.
Durch Aufteilen der vorläufigen
planaren Repräsentierung in überlappende
Kacheln wird ein Hysteresegrad vorgesehenn, so dass kleine Hin-und-Her-Ansichtsänderungen
das Client-System nicht dazu bringen, Anforderungen für neue Kacheln
zu oszillieren.
-
Eine zweite
Ausführungsform
eines Verteilungssystems für
bewegte Panoramabilder
-
Das
in dem vorangegangenen Abschnitt beschriebene selektive Kachel-Übertragungssystem sieht ein
nützliches
Verfahren zum Liefern von bewegter Panoramabild-Information in einer Punkt-zu-Punkt(Unicast)-Umgebung
vor, wo jeder Client einen einzigartigen individuellen Datenfluss empfängt. Da
der bewegte Panorama-Server einen einzigartigen Datenfluss an jeden
Client aussenden muss, wird jedoch eine beträchtliche Menge redundanter
Information gesendet werden. Um die Menge an redundanter Information,
die übertragen
wird, zu reduzieren, stellt die vorliegende Erfindung auch ein zweites
Multicast-Serving-System für
bewegte Panoramabilder vor.
-
12 stellt
ein Multicast-Serving-System für
bewegte Panoramabilder dar, welches gemäß der Lehre der vorliegenden
Erfindung konstruiert ist. In dem System aus 12 liefert
ein bewegtes Panoramakamera-System 1205 eine Reihe Panoramabilder mit
hoher Auflösung über eine
Verbindung mit hoher Bandbreite 1202 an einen bewegten
Panorama-Server 1200. Eine Panoramakamera-Schnittstelle 1210 handhabt
die Kommunikation mit dem bewegten Panoramakamera-System 1205.
Eine Umwandlungseinheit 1217 wandelt die unbearbeiteten
Panoramabild-Rahmen in eine vorläufige
planare Repräsentierung
um. Wie vorangehend ausgeführt,
sind zwei mögliche
vorläufige
planare Repräsentierungen
eine zylindrisch codierte vorläufige
planare Repräsentierung
und eine sphärisch
codierte vorläufige
planare Repräsentierung.
-
Nachdem
ein Panoramabild-Rahmen in eine vorläufige planare Repräsentierung
umgewandelt wurde, wird die vorläufige
planare Repräsentierung mittels
Einheit 1241 in individuelle Kacheln aufgeteilt. Nach dem
Aufteilen der vorläufigen
planaren Repräsentierung
in individuelle Kacheln, sendet ein Satz von Kachel-Streaming-Einheiten 1261, 1262, 1263, ..., 126n die
Kacheln auf Multicast- Kanälen 1293 auf einem
Netzwerk mit hoher Bandbreite 1290. Insbesondere ist jeder
Kachel-Position ihr eigener Multicast-Kanal zugeteilt.
-
Um
eine Ansicht innerhalb eines bewegten Panoramabildes anzuzeigen,
abonniert jedes Client-System die Multicast-Kanäle, welche die Kacheln befördern, die
zum Konstruieren der erwünschten Ansicht
benötigt
werden. Z. B. benötigt
Client-System 1295 die
zwei von den Kachel-Streaming-Einheiten 1261 und 1262 gelieferten
Kacheln, so dass Client-System 1295 die Multicast-Kanäle abonniert,
die von jenen Kachel-Streaming-Einheiten gesendet werden.
-
13 sieht
ein Flussdiagramm vor, welches eine mögliche Methode beschreibt,
die ein Client-System befolgen kann, um eine Ansicht von einem bewegten
Panorama-Server zu erbringen, die gemäß der Lehre von 12 konstruiert
ist. Anfangs abonniert das Client-System in Schritt 1310 die
Multicast-Panorama-Kachel-Kanäle, die
notwendig sind, um eine Ansicht von einem ursprünglichen Ansichtsort zu erbringen.
Router und Switches, die das Client-System mit einem Haupt-Multicast-Basisnetz verbinden,
werden die notwendigen Operationen durchführen, um anzufangen, die abonnierten
Multicast-Panorama-Kachel-Kanäle zu liefern.
-
Als
nächstes
wird das Client-System in Schritt 1320 ein Bild der momentanen
Ansicht unter Verwendung der Information von den abonnierten Multicast-Panorama-Kachel-Kanälen erbringen.
Es ist anzumerken, dass andere Client-Systeme die gleichen Multicast-Kanäle gemeinsam
benutzen werden, so dass Bandbreite erhalten wird.
-
In
Schritt 1330 akzeptiert das Client-System eine Eingabe
von dem Benutzer. Das Client-System kann Eingaben wie beispielsweise
Richtungsbefehle von einer Computermaus akzeptieren, die die Benutzeransicht
innerhalb des bewegten Panoramabildes schwenken und kippen.
-
Nach
dem Akzeptieren der Benutzereingabe analysiert das Client-System
die Benutzereingabe. Falls der Benutzer in Schritt 1340 angezeigt
hat, dass er mit dem Anschauen des bewegten Panoramabildes fertig
ist, bestellt dann das Client-System sämtliche Multicast-Kachel-Kanäle ab werden
aufhören
Bilder anzuzeigen, wie in Schritt 1370 dargelegt.
-
Falls
die Benutzereingabe die Position der Ansicht innerhalb des bewegten
Panoramabildes verändert,
bestimmt dann das Client-System in Schritt 1350 die Kacheln,
die notwendig sein werden, um die neue Ansichtsposition zu erbringen.
Zurück betreffend 5, bestimmt das Client-System insbesondere,
welche Dateien die momentane Ansichtslage umfassen. In Schritt 1360 bestimmt
der Client, ob lediglich dieselben Kacheln, die bereits abonniert sind,
benötigt
werden. Falls dies der Fall ist, kehrt dann das Verfahren zurück zu Schritt 1320,
um einen nachfolgenden Bildansicht-Rahmen zu erbringen.
-
Falls
unterschiedliche Kacheln benötigt
werden, fährt
dann das Client-System mit Schritt 1310 fort. In Schritt 1310 abonniert
das Client-System die Multicast-Kachel-Kanäle, die
benötigt
werden, um die momentane Ansicht zu erbringen.
-
Um
die Anzahl der verwendeten Multicast-Kanäle zu begrenzen, sollte die
Anzahl an Kacheln, in die das Panoramabild aufgeteilt wird, klein gehalten
werden. 14 stellt einen möglichen
Weg zum Aufteilen des originalen Quell-Panoramas dar. In der Ausführungsform
von 14 wird das Quell-Panorama in vier Quadranten
aufgeteilt: einen oberen Quadranten, einen linken Quadranten, einen rechten
Quadranten und einen unteren Quadranten. (Die Quadranten sind durch
die Verwendung von gestrichelten Linien dargestellt.) Jeder Quadrant
wird zur Quelle eines Multicast-Kanals. Somit sind lediglich vier
Multicast-Kanäle
erforderlich.
-
Um
Schwenks der Benutzeransicht zu bewältigen, sollte die für jeden
Quadranten gelieferte Information die anderen Quadranten überlappen,
so dass lediglich ein Multicast-Kanal abonniert werden muss. Idealerweise
wird der Überlapp-Bereich mindestens
so groß sein
wie eine Client-Ansicht. Betreffend 14 ist
ein Satz überlappender
Quadranten dargestellt: überlappender
oberer Quadrant 1410, überlappender
linker Quadrant 1420, überlappender unterer
Quadrant 1430, überlappender
rechter Quadrant 1440.
-
Falls
sehr schnelle Schwenks auftreten, kann die Multicast-Ausführungsform
auch einen Kanal für
ein hoch komprimiertes vollständiges
Panoramabild enthalten. Der Kanal für ein hoch komprimiertes vollständiges Panoramabild
würde gelegentlich eine
hoch komprimierte Version des vollständigen Panoramabildes senden,
so dass eine Ansicht in jeglicher Richtung erzeugt werden könnte.
-
Um
die Verarbeitung, die durchgeführt
werden muss, aufzuteilen, können
mehrere Server verwendet werden. Z. B. könnte ein erster Server den Multicast-Kanal, welcher den überlappenden
oberen Quadranten 1410 befördert, erzeugen und bedienen, ein
zweiter Server könnte
den Multicast-Kanal, welcher den überlappenden linken Quadranten 1420 befördert, erzeugen
und bedienen, und so weiter.
-
15 stellt
grafisch dar, wie Netzwerk-Bandbreite erhalten wird, indem ein System vom
Multicast-Typ verwendet wird. Insbesondere sendet ein Panoramabild-Server sämtliche
Kachel-Kanäle
auf einem Multicast-Basisnetz. Verschiedene mit dem Multicast-Basisnetz
verbundene Router leiten lediglich Multicast-Kanäle weiter, die von Clients
abonniert sind, welche mit ihren Unternetzwerken verbunden sind.
Indem sie lediglich die Multicast-Kanäle weiterleiten, die von Clients
benötigt
werden, die mit ihren Unternetzwerken verbunden sind, begrenzen
die Router die von den Unternetzwerken beförderte Kachel-Information.