-
STAND DER TECHNIK
-
Aktuelle Implementierungen zum Rendern von dreidimensionalen (3D)-Bildern auf einem autostereoskopischen 3D-Display halten die Renderingprozedur unabhängig von einer Teilpixel-Interleavingprozedur. Multiview-Rendering wird zuerst ausgeführt, gefolgt von den Multiview-Bildern, gemäß eines bestimmten Teilpixelmusters. Die Zeit, die für das Multiview-Rendering erforderlich ist, ist proportional zur Zahl der Ansichten. Daher ist Echtzeit-3D-Bildrendering oder interaktives Rendering schwierig auf Grafik-Hardware für Verbraucher auszuführen. Dementsprechend kann ein Bedarf an verbesserten Verfahren zum Lösen dieser und anderer Probleme bestehen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 illustriert ein beispielhaftes linsenförmiges Feld und ein entsprechendes Teilpixel-Interleaving-Format für ein autostereoskopisches Multiview-3D-Display.
-
2 illustriert eine Probenpixelgruppierung gemäß Ausführungsformen der Erfindung.
-
3 illustriert einen Probenraum für eine 3D-Szene.
-
4 illustriert eine Ausführungsform einer Architektur, die zum Ausführen von Ausführungsformen der Offenbarung geeignet sind.
-
5 illustriert eine Ausführungsform eines Funktionsdiagramms einer Rendering-Anwendung.
-
6 illustriert eine Ausführungsform eines Logikflusses.
-
7 illustriert eine Ausführungsform eines Systems, das zum Implementieren von Ausführungsformen der Offenbarung geeignet sein kann.
-
8 illustriert Ausführungsformen einer Vorrichtung mit kleinem Formfaktor, in dem das System von 7 verkörpert sein kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es werden verschiede Ausführungsformen hierin präsentiert, die ein Einzelbild auf einem autostereoskopischen 3D-Display wiedergeben können. Eine Computerplattform, die eine Prozessorschaltung umfasst, welche eine Rendering-Anwendung ausführt, kann eine aktuelle Position und Orientierung eines virtuellen Kamerafeldes in einer dreidimensionalen (3D)-Szene und zumindest einen weiteren 3D-Bildgebungsparameter für die 3D-Szene bestimmen. Die zusätzlichen 3D-Bildgebungsparameter können eine Grundlinienlänge für das virtuelle Kamerafeld sowie einen Brennpunkt für das virtuelle Kamerafeld umfassen. Die Rendering-Anwendung kann mit Hilfe einer Raytracing-Engine auch einen Tiefenbereich für die 3D-Szene bestimmen. Die Raytracing-Engine kann dann das Rendern des Einzelbildes, das repräsentativ für die 3D-Szene ist, unter Verwendung eines Raytracing-Prozesses erleichtern.
-
Es wird nun auf die Zeichnungen verwiesen, wobei gleiche Bezugszahlen dazu verwendet werden, sich durchweg auf gleiche Elemente zu beziehen. In der folgenden Beschreibung werden zahlreiche spezielle Details zum Zweck der Erklärung dargelegt, um für ein gründliches Verständnis derselben zu sorgen. Es kann jedoch offensichtlich sein, dass die neuartigen Ausführungsformen ohne diese speziellen Details ausgeführt werden können. In anderen Fällen werden bekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um eine Beschreibung derselben zu erleichtern. Es besteht die Absicht, alle diese Modifikationen, Äquivalente und Alternativen abzudecken, die dem Geist und Geltungsbereich des beanspruchten Gegenstandes entsprechen.
-
Autostereoskopie ist ein Verfahren zum Anzeigen von stereoskopischen Bildern (was eine beidäugige Wahrnehmung der 3D-Tiefe hinzufügt) ohne die Verwendung von speziellem Headgear oder Brillen auf Seiten des Betrachters. Viele autostereoskopische Displays sind Multiview-Displays. 1 illustriert die Struktur einer geneigten Platte von linsenförmigem Feld auf einem LCD-Panel und das entsprechende Teilpixel-Interleaving-Format für ein autostereoskopisches Multiview-3D-Display. Eine Gruppe von benachbarten roten (R), grünen (G) und blauen (B) Farbkomponenten bildet ein Pixel, während jede Farbkomponente aus einer anderen Ansicht des Bildes kommt, wie durch die Zahl innerhalb jedes Rechtecks angibt. Die gestrichelten Linien mit der Beschriftung ”4” und ”5” zeigen die RGB-Farbkomponenten für die gegebene Ansicht an. Wenn ein herkömmliches Rasterungs-Rendering implementiert wäre, müssten neun (9) getrennte Bilder (eines für jede Ansicht) gerendert und dann gemäß einem speziellen Format verschachtelt werden. Die Verarbeitungszeit in der Grafik-Pipeline ist proportional zur Zahl der Ansichten. Die Rendering-Zeit ist also weitgehend proportional zur Zahl der Ansichten, was es schwierig macht, ein Echtzeit-Rendering mit herkömmlicher Grafik-Hardware zu erreichen.
-
Jedoch bleibt die Gesamtzahl von Pixeln für das Multiview-3D-Display unverändert. Die Rendering-Zeit unter Verwendung des Raytracing ist proportional zur Zahl von ausgesandten Strahlen (z. B. Pixeln). Daher ist die Rendering-Leistung unabhängig von der Zahl der Ansichten. Das bedeutet, dass die Rendering-Leistungskosten dieselben für das Rendering in autostereoskopischem 3D wie für das Rendern in zweidimensionaler (2D)-Auflösung sind.
-
Beim Rendern einer gegebenen Ansicht bilden rote (R), grüne (G) und blaue (B) Farbkomponenten Pixelgruppen 210, wie in 2 gezeigt. Die Mitte 220 einer Gruppierung von Pixeln befindet sich nicht notwendigerweise an ganzzahligen Koordinaten. Eine Raytracing-Engine stützt das Aussenden von Strahlen aus einem nicht ganzzahlig positionierten Mittelpixel und das Füllen der bestimmten Pixelfarbe am speziellen Ort aus einem Bildpuffer. Wenn alle Teilpixel im Bildpuffer gefüllt sind, ist die Zahl der ausgesandten Strahlen exakt gleich der Gesamtzahl der Pixel. Wenn jedoch das herkömmliche Rendering, wie zum Beispiel das Rastern, verwendet wird, sind zusätzliche Interpolationsoperationen erforderlich, um die genaue Farbe der Pixel an nicht ganzzahligen Koordinaten zu erhalten. Das würde beträchtlichen Verwaltungsaufwand mit sich bringen, im Vergleich zum Einzelansichts-Bildrendering.
-
3 illustriert einen Probenraum 300 für eine 3D-Szene. Der Probenraum 300 kann anschaulich für einen Charakter oder Avatar in einem Videospiel sein. Der Avatar kann repräsentativ für einen Spieler des Videospiels sein. Die Perspektive des Avatars kann durch ein virtuelles Kamerafeld repräsentiert werden. Dieses Beispiel soll eine Änderung der Perspektive auf der Grundlage von Bewegung des Avatars zwischen Einzelbildern zeigen. Ein erstes virtuelles Kamerafeld 310 ist gemäß der Perspektive des Avatars in einem ersten Einzelbild positioniert und orientiert. Das virtuelle Kamerafeld 310 kann ein Sichtfeld 320 auf der Grundlage einer Reihe von Bildgebungsparametern illustrieren oder ”sehen”. Die Bildgebungsparameter können einen (x, y, z)-Koordinatenort, eine winklige links/rechts-Betrachtungsperspektive (alpha), die einen virtuellen Kamerafeldschwenk anzeigt, eine Betrachtungsperspektive (6) nach oben/nach unten (beta), die eine virtuelle Kamerafeldneigung anzeigt, und eine Zoom-in/-out-Perspektive (Zr) umfassen, die einen Vergrößerungsfaktor anzeigt. Die verschiedenen Koordinatensysteme und Positionsdarstellungen haben nur erläuternden Charakter. Ein Fachmann auf diesem Gebiet kann ohne weiteres zusätzliche oder alternative Positions- und Orientierungsinformationen implementieren, ohne vom Geltungsbereich der Ausführungsformen hierin abzuweichen. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
In dem Beispiel von 3 kann das erste virtuelle Kamerafeld 310 mit dem Bildgebungsparametersatz (x1, y1, z1, α1, β1, zm1) verknüpft werden. Die Koordinaten x1, y1, z1 können den Punkt im Raum definieren, an dem das erste virtuelle Kamerafeld 310 aktuell positioniert ist. Die Parameter α1, β1 können die Orientierung des ersten virtuellen Kamerafeldes 310 definieren. Die Orientierungsparameter α1, β1 können die Richtung und den Erhebungswinkel beschreiben, in die das erste virtuelle Kamerafeld 310 orientiert ist. Der zm1-Parameter kann den Vergrößerungsfaktor beschreiben, auf den das erste virtuelle Kamerafeld 310 eingestellt ist. Zum Beispiel kann der Avatar in diesem Augenblick ein Fernglas benutzen, um den Zoomfaktor zu erhöhen. Alle diese Bildgebungsparameter wirken zusammen, um ein Sichtfeld 320 für das erste virtuelle Kamerafeld 310 zu erzeugen. Das Sichtfeld 320 kann repräsentativ für eine 3D-Szene innerhalb des Spiels sein, die als Einzelbild auf dem Display für den Spieler des Videospiels gerendert werden muss.
-
Das zweite virtuelle Kamerafeld 330 kann repräsentativ für ein neues Sichtfeld 340 sein, nachdem der Spieler des Videospiels eine Eingabe getätigt hat, die die Perspektive oder den Blickwinkel des Avatars ändert. Um die geänderte 3D-Szene als Einzelbild für den Spieler des Videospiels zu rendern, müssen die neuen Bildgebungsparameter bestimmt und verwendet werden. Das zweite virtuelle Kamerafeld 330 kann mit dem Bildgebungsparametersatz (x2, y2, z2, α2, β2, zm2) verknüpft sein. Die x2-, y2-, z2-Koordinaten können den Raumpunkt definieren, an dem das zweite virtuelle Kamerafeld 330 positioniert ist. Die Parameter α2, β2 können die Orientierung des zweiten virtuellen Kamerafeldes 330 definieren. Die Orientierungsparameter α2, β2 können die Richtung und den Erhebungswinkel beschreiben, in die das zweite virtuelle Kamerafeld 330 orientiert ist. Der Parameter zm2 kann den Vergrößerungsfaktor beschreiben, auf den das zweite virtuelle Kamerafeld 330 eingestellt ist. Zum Beispiel kann der Avatar in diesem Augenblick ein Fernglas benutzen, um den Zoomfaktor zu erhöhen. Alle diese Bildgebungsparameter wirken zusammen, um das neue Sichtfeld 340 für das zweite virtuelle Kamerafeld 330 zu erzeugen. Das neue Sichtfeld 340 kann repräsentativ für eine 3D-Szene innerhalb des Spiels sein, die als das nächste Einzelbild auf dem Display für den Spieler des Videospiels gerendert werden muss.
-
4 illustriert eine Ausführungsform einer Architektur 400, die zum Ausführen von Ausführungsformen der Offenbarung geeignet sind. Eine Computerplattform 410 kann eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU) oder eine Kombination beider umfassen. Die CPU und/oder GPU besteht aus einer oder mehreren Prozessoreinheiten, die Anweisungen ausführen können. Eine Rendering-Anwendung 420 kann auf der Computerplattform 410 betrieben werden. Die Rendering-Anwendung kann Software umfassen, die speziell auf das Rendern von Einzelbildern ausgerichtet ist, welche repräsentativ für eine 3D-Szene sind. Zum Beispiel kann die Rendering-Anwendung 420 von einer oder mehreren getrennten Software-Anweisungen verwendet werden, wie zum Beispiel ein Videospiel, um die Bild-Rendering-Funktionen für das Videospiel auszuführen. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Eine Raytracing-Engine 430 kann ebenfalls auf der Computerplattform 410 betrieben werden. Die Raytracing-Engine 430 kann mit der Rendering-Anwendung 420 kommunizieren und zusätzliche Unterstützung und Hilfe beim Rendern von 3D-Einzelbildern liefern. In der Computergrafik ist Raytracing ein Verfahren zum Erzeugen eines Bildes durch Verfolgen des Lichtweges durch Pixel in einer Bildebene und Simulieren der Effekte seines Zusammentreffens mit virtuellen Objekten. Das Verfahren kann einen sehr hohen Grad von optischem Realismus erzeugen, normalerweise höher als der von typischen Scanline-Renderingverfahren, wie zum Beispiel des Rasterns. Außerdem liefert das Rendern durch Rastern keine genaue Tiefenabschätzung der Szene. Wenn reflektierende/lichtbrechende Objekte beteiligt sind, kann die Tiefeninfo aus dem Tiefenpuffer nicht den genauen Tiefenbereich der gerenderten Szene anzeigen. Raytracing kann eine breite Palette von optischen Effekten simulieren, wie zum Beispiel Reflexion und Brechung, Streuung und Dispersionsphänomene.
-
Die Berechnungsplattform 410 kann Eingaben von einer Benutzerschnittstelleneingabevorrichtung 440 empfangen, wie zum Beispiel einem Videospiel-Controller. Die Benutzerschnittstelleneingabevorrichtung 440 kann Eingabedaten in Form von Signalen bereitstellen, die Bewegung innerhalb einer 3D-Szene anzeigen. Die Signale können Bewegung umfassen, die eine Bewegung vorwärts in einer 3D-Szene, Bewegung rückwärts in der 3D-Szene. Bewegung nach links in der 3D-Szene, Bewegung nach rechts in der 3D-Szene, Blicken nach links in der 3D-Szene, Blicken nach rechts in der 3D-Szene, Blicken nach oben in der 3D-Szene, Blicken nach unten in der 3D-Szene, Hinein/Herauszoomen in der 3D-Szene und jede Kombination des oben Genannten. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Die Berechnungsplattform 410 kann die gerenderten Einzelbilder für eine 3D-Szene ausgeben, um sie als solche zum Beispiel in einer autostereoskopischen 3D-Displayvorrichtung 450 anzuzeigen. Eine autostereoskopische 3D-Displayvorrichtung 450 kann stereoskopische Bilder (die die Fernglaswahrnehmung der 3D-Tiefe hinzufügt) ohne die Verwendung von speziellem Headgear oder Brillen auf Seiten des Betrachters anzeigen. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
5 illustriert ein Funktionsdiagramm 500 der Rendering-Anwendung 420. Die Rendering-Anwendung 420 kann allgemein aus vier Funktionen bestehen. Diese Funktionen sind willkürlich benannt worden und umfassen eine Positionsfunktion 510, eine Tiefenfunktion 520, eine Bildaktualisierungsfunktion 530 und eine Rendering-Funktion 540. Es ist zu beachten, dass die Aufgaben, die von diesen Funktionen erfüllt werden, logisch organisiert sind. Ein Fachmann auf diesem Gebiet kann eine oder mehrere Aufgaben, die am Rendering-Prozess beteiligt sind, auf eine andere Funktion umstellen, ohne vom Geltungsbereich der Ausführungsformen abzuweichen, die hierin beschrieben werden. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Die Positionsfunktion 510 kann für das Bestimmen und Aktualisieren von Daten verantwortlich sein, die zu einem virtuellen Kamerafeld innerhalb einer 3D-Szene gehören, welche gerendert werden soll. Das virtuelle Kamerafeld kann die Perspektive und den Blickwinkel in der 3D-Szene anzeigen. Beim Spielen eines Videospiels kann zum Beispiel der Spieler von einem Charakter oder Avatar innerhalb des Spiels selbst repräsentiert werden. Der Avatar kann repräsentativ für das virtuelle Kamerafeld derart sein, dass das, was der Avatar ”sieht”, vom virtuellen Kamerafeld interpretiert wird. Der Avatar kann in der Lage sein, das Ergebnis des Spiels durch Aktionen zu beeinflussen, die am Benutzereingabegerät 440 vorgenommen werden, welche zur Rendering-Anwendung 430 weitergeleitet werden. Die Aktionen können die Bewegung in der Szene anzeigen, welche die Perspektive des virtuellen Kamerafeldes ändert. In der Kameraterminologie können Bewegung links oder rechts als Schwenken, die Bewegung nach oben oder unten als Neigen bezeichnet werden. Die Positionsfunktion 510 erhält also Input von der Benutzerschnittstelleneingabevorrichtung 440 und verwendet dieses Input zum Neuberechnen von 3D-Szenenparametern.
-
Die Tiefenfunktion 520 kann für das Bestimmen einer Gesamttiefendimension der 3D-Szene verantwortlich sein. Ein weiterer Aspekt des Renderns eines 3D-Bildes kann das Bestimmen bestimmter Parameter der 3D-Szene sein. Ein solcher Parameter kann die Grundlinienlänge des virtuellen Kamerafeldes sein. Zum Bestimmen der Grundlinienlänge des virtuellen Kamerafeldes muss eventuell eine Abschätzung des Tiefenbereichs der 3D-Szene bestimmt werden. Beim Rendern durch Rastern kann auf die Tiefeninfo unter Verwendung eines Tiefenbildpuffers zugegriffen werden. Wenn jedoch reflektierende/lichtbrechende Flächen an der 3D-Szene beteiligt sind, muss mehr Tiefe jenseits des ersten auftretenden Objektes in der Sichtlinie berücksichtigt werden. Beim Rendern durch Raytracing kann ein oder können mehrere Strahlen ausgesandt werden, die rekursiv auf reflektierenden Flächen oder durch lichtbrechende Flächen laufen und den maximalen Weg (z. B. die Tiefe) in der 3D-Szene zurückgeben. Wenn ein Sondierstrahl auf eine Fläche trifft, könnte er bis zu drei neuen Arten von Strahlen erzeugen: Reflexion, Brechung und Schatten. Ein reflektierter Strahl fährt in der Spiegelreflexionsrichtung von einer glänzenden Fläche fort. Er schneidet dann Objekte in der Szene, wobei das nächstgelegene Objekt, das er schneidet, dasjenige ist, welches in der Reflexion zu sehen ist. Brechungsstrahlen, die durch transparentes Material laufen, funktionieren ähnlich, mit dem Zusatz, dass ein Brechungsstrahl in ein Material eintreten oder es verlassen kann.
-
Die Bildaktualisierungsfunktion 530 kann für das Bestimmen weiterer Bildgebungsparameter für die 3D-Szene verantwortlich sein. Sobald die Tiefendimension von der Tiefenfunktion 520 bestimmt wurde, kann die Grundlinienlänge des virtuellen Kamerafeldes bestimmt werden. Außerdem kann die Bildaktualisierungsfunktion 530 auch die Eingabe verwenden, die von der Positionsfunktion 510 empfangen wird, um einen Blickpunkt für das virtuelle Kamerafeld zu bestimmen.
-
An diesem Punkt kann die Rendering-Anwendung 420 wesentliche Daten empfangen und verarbeitet haben, die zum Aufbau der 3D-Szene benötigt werden. Die Position und Orientierung des virtuellen Kamerafeldes sind bestimmt worden, und eine Gesamttiefendimension für die 3D-Szene ist bestimmt worden. Der nächste Schritt besteht darin, dass die Rendering-Funktion 540 die 3D-Szene unter Verwendung von Raytracing-Verfahren vom Beobachtungspunkt des virtuellen Kamerafeldes aus und entsprechend den Parametern rendert, die von der Positionsfunktion 510, Tiefenfunktion 520 und der Bildaktualisierungsfunktion 530 bestimmt wurden.
-
Raytracing kann optische Bilder erzeugen, die in 3D-Computergrafikumgebungen aufgebaut wurden. Szenen, die unter Verwendung von Raytracing gerendert wurden, können mathematisch beschrieben werden. Jeder Strahl, der von der Raytracing-Engine 430 ausgesendet wird, entspricht einem Pixel innerhalb der 3D-Szene. Die Auflösung der 3D-Szene wird durch die Zahl von Pixeln in der 3D-Szene bestimmt. Daher entspricht die Zahl von Strahlen, die zum Rendern einer 3D-Szene benötigt werden, der Zahl von Pixeln in der 3D-Szene. Normalerweise kann jeder Strahl auf Schneiden mit einer Teilmenge von Objekten in der Szene getestet werden. Sobald das nächstgelegene Objekt identifiziert worden ist, kann der Algorithmus das einfallende Licht am Schnittpunkt abschätzen, die Materialeigenschaften des Objektes untersuchen und diese Informationen zum Berechnen der endgültigen Farbe eines Pixels kombinieren.
-
Das Rendering-Verfahren führt Teilpixel-Verschachtelung unter Verwendung von Raytracing aus.
-
Gemäß der Teilpixelverschachtelung befindet sich die Mitte einer Pixelgruppierung nicht notwendigerweise an ganzzahligen Koordinaten der Bildebene. Anders als beim Rendern durch Rastern können die Raytracing-Verfahren einen Strahl von nicht ganzzahligen Koordinaten aussenden, und die zurückgegebenen Farbkomponenten können direkt in einen entsprechenden RGB-Pixelort gefüllt werden, ohne dass zusätzliche Interpolationsprozeduren ausgeführt werden müssen.
-
Für eine bessere Datenlokalität kann die Raytracing-Engine 430 Strahlen in einer 8×8-Kachelgruppe aussenden. Wenn ein Bildpuffer für die 3D-Szene, die gerendert wird, vollständig gefüllt ist, kann das aktuelle Einzelbild mit autostereoskopischem 3D-Effekt auf dem Display 450 angezeigt werden.
-
Die Renderingzeit des Raytracing ist theoretisch proportional zur Zahl der Strahlen (Pixel), während die Zeit zum Rastern im Wesentlichen proportional zur Zahl der Ansichten ist. Daher führt das Rendern durch Raytracing sehr wenig Aufwand in das Rendern für autostereoskopische Multiview-3D-Displays ein.
-
Einbezogen werden hier eine oder mehrere Flussdiagramme, die repräsentativ für beispielhafte Methodiken zum Ausführen neuartiger Erscheinungsformen der offenbarten Architektur sind. Obwohl zur einfacheren Erläuterung die eine oder mehreren Methodiken, die hier gezeigt werden, zum Beispiel in Form eines Ablaufdiagramms oder Flussdiagramms, als Serie von Handlungen gezeigt und beschrieben werden, versteht es sich, dass die Methodiken nicht durch die Reihenfolge von Handlungen begrenzt werden, da einige Handlungen dementsprechend in unterschiedlicher Reihenfolge und/oder gleichzeitig mit anderen Handlungen auftreten können, als denen, die hierin gezeigt und beschrieben werden. Zum Beispiel werden Fachleute auf diesem Gebiet verstehen und erkennen, dass eine Methodik alternativ als Serie von aufeinander bezogenen Zuständen oder Ereignissen dargestellt werden könnten, wie zum Beispiel in einem Zustandsdiagramm. Außerdem werden möglicherweise nicht alle Handlungen, die in einer Methodik illustriert werden, für eine neuartige Implementierung benötigt.
-
6 illustriert eine Ausführungsform eines Logikflusses 600, bei dem eine 3D-Szene für ein autostereoskopisches 3D-Display gemäß Ausführungsformen der Erfindung gerendert werden kann. Zum Rendern eines Einzelbildes kann die Computerplattform 410 Nutzereingaben von einer Benutzerschnittstelleneingabevorrichtung, wie zum Beispiel einem Game-Controller, erhalten. Die Eingabe kann einen Charakter oder einen Avatar innerhalb eines Videospiels anzeigen, der sich vorwärts/rückwärts bewegt, sich nach links/rechts wendet, nach oben/unten blickt und herein/heraus zoomt. Diese Informationen können zum Aktualisieren der Position und Orientierung eines virtuellen Kamerafeldes verwendet werden. Ein Cluster von Sondierungsstrahlen kann von der Raytracing-Engine 430 ausgesandt werden, um den Tiefenbereich der aktuellen 3D-Szene zu erhalten. 3D-Bildgebungsparameter, wie zum Beispiel die Grundlinienlänge und der Blickpunkt des virtuellen Kamerafeldes können unter Verwendung der empfangenen Eingabeinformationen bestimmt werden. Das Rendering-Verfahren kann dann Strahlen in 8×8-Clustern oder -Kacheln aussenden. Die resultierenden RGB-Farbdaten, die aus den Strahlen resultieren, können Teilpixel sein, die an einem Pixelort in einem Bildpuffer verschachtelt werden, der repräsentativ für die 3D-Szene ist, welche gerendert wird. Wenn der Bildpuffer vollständig gefüllt ist, kann das aktuelle Einzelbild mit autostereoskopischem 3D-Effekt angezeigt werden. Der Logikfluss 600 kann repräsentativ für einige oder alle Operationen sein, die von einer oder mehreren Ausführungsformen ausgeführt werden, die hierin beschrieben werden.
-
In der illustrierten Ausführungsform, die in 6 gezeigt wird, kann der Logikfluss 400 eine aktuelle Position eines virtuellen Kamerafeldes bei Block 610 bestimmen. Zum Beispiel kann die CPU 110 die Rendering-Anwendung 420 derart ausführen, dass Eingabedaten von der Benutzerschnittstelleneingabevorrichtung 440 empfangen werden können. Das virtuelle Kamerafeld kann die Perspektive und den Blickwinkel (z. B. Orientierung) in der 3D-Szene anzeigen. Der Blickwinkel kann sich seit dem letzten Einzelbild auf Grund von bestimmten ergriffenen Aktionen geändert haben. Die Aktionen können die Bewegung in der 3D-Szene anzeigen, welche die Perspektive des virtuellen Kamerafeldes ändert. Die Benutzerschnittstelleneingabevorrichtung 440 kann Signale an die Rendering-Anwendung 420 in Übereinstimmung mit den Aktionen des Benutzers weiterleiten. Zum Beispiel kann ein Benutzer innerhalb der 3D-Szene sich vorwärts oder rückwärts bewegen, sich in der 3D-Szene nach links oder rechts bewegen, in der 3D-Szene nach links oder rechts blicken, in der 3D-Szene nach oben oder unten blicken oder in der 3D-Szene hinein- oder herauszoomen. Jede Aktion kann die Perspektive der 3D-Szene ändern. Die Rendering-Anwendung verwendet die Daten, die von der Benutzerschnittstelle 440 empfangen wurden, um bei der Bestimmung einer neuen Position und Orientierung des virtuellen Kamerafeldes innerhalb der 3D-Szene zu helfen. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
In der illustrierten Ausführungsform, die in 6 gezeigt wird, kann der Logikfluss 400 einen Tiefenbereich der 3D-Szene bei Block 620 bestimmen. Zum Bestimmen der Grundlinienlänge des virtuellen Kamerafeldes muss zum Beispiel eine genaue Abschätzung des Tiefenbereichs der 3D-Szene möglicherweise bestimmt werden. Die Raytracing-Engine 430 kann einen oder mehrere Sondierungsstrahlen aussenden, die rekursiv auf reflektierenden Flächen oder durch reflektierende Flächen innerhalb der 3D-Szene verlaufen und den maximalen Weg (z. B. Tiefe) in der 3D-Szene zurückgeben. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
In der illustrierten Ausführungsform, die in 6 gezeigt wird, kann der Logikfluss 400 Bildgebungsparameter für die 3D-Szene bei Block 630 bestimmen. Zum Beispiel können die Grundlinienlänge des virtuellen Kamerafeldes und der Blickpunkt des virtuellen Kamerafeldes bestimmt werden. Sobald die Tiefenfunktion bestimmt wurde, kann die Grundlinienlänge des virtuellen Kamerafeldes bestimmt werden. Außerdem kann die Eingabe, die in Block 610 empfangen wurde, zum Bestimmen eines Blickpunktes und die Orientierung für das virtuelle Kamerafeld verwendet werden. Die Rendering-Anwendung 420 kann in Verbindung mit der Raytracing-Engine 430 die Eingabe verarbeiten, die bei Block 610 empfangen wurde, und den Tiefenbereich, der bei Block 620 bestimmt wird, um die Grundlinienlänge des virtuellen Kamerafeldes und den Blickpunkt für das virtuelle Kamerafeld zu bestimmen. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
In der illustrierten Ausführungsform, die in 6 gezeigt wird, kann der Logikfluss 400 die neue 3D-Szene bei Block 640 rendern. Zum Beispiel kann die Rendering-Anwendung 420 in Verbindung mit der Raytracing-Engine 430 mehrere Strahlen von der aktualisierten Position und Orientierung des virtuellen Kamerafeldes aussenden, das an den Blöcken 610, 620 und 630 bestimmt wurde. Jeder Strahl, der von der Raytracing-Engine 430 ausgesendet wird, entspricht einem Pixel innerhalb der 3D-Szene. Die Auflösung der 3D-Szene wird durch die Zahl von Pixeln in der 3D-Szene bestimmt. Daher entspricht die Zahl von Strahlen, die zum Rendern einer 3D-Szene benötigt werden, der Zahl von Pixeln in der 3D-Szene. Normalerweise kann jeder Strahl auf Schneiden mit einer Teilmenge von Objekten in der Szene getestet werden. Sobald das nächstgelegene Objekt identifiziert worden ist, kann der Algorithmus das einfallende Licht am Schnittpunkt abschätzen, die Materialeigenschaften des Objektes untersuchen und diese Informationen zum Berechnen der endgültigen Farbe eines Pixels kombinieren. Das Rendering-Verfahren führt Teilpixel-Verschachtelung unter Verwendung von Raytracing aus. Gemäß der Teilpixelverschachtelung befindet sich die Mitte einer Pixelgruppierung nicht notwendigerweise an ganzzahligen Koordinaten der Bildebene. Die Raytracing-Verfahren können einen Strahl von nicht ganzzahligen Koordinaten aussenden, und die zurückgegebenen Farbkomponenten können direkt in einen entsprechenden RGB-Pixelort gefüllt werden, ohne dass zusätzliche Interpolationsprozeduren ausgeführt werden müssen. Für eine bessere Datenlokalität kann die Raytracing-Engine 430 Strahlen in einer 8×8-Kachelgruppe aussenden. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Beim Abschluss des Raytracing-Renderingprozesses für das aktuelle Einzelbild gibt die Rendering-Anwendung 420 die Kontrolle an Block 610 zurück, um den Prozess für das nächste Einzelbild zu wiederholen. Es kann eine Warteperiode 645 bestehen, je nach der Bildfrequenz, die die Rendering-Anwendung 420 gerade verwendet.
-
In der illustrierten Ausführungsform, die in 6 gezeigt wird, kann der Logikfluss 400 das gerenderte Einzelbild, das die neue 3D-Szene anzeigt, zu einem Display bei Block 650 liefern. Zum Beispiel kann die Rendering-Anwendung 420 das Einzelbild, das die aktuelle Ansicht der 3D-Szene darstellt, an ein Display 450 weiterleiten. Wenn ein Bildpuffer für die ganze 3D-Szene, die gerendert wird, gefüllt ist, kann das aktuelle Einzelbild mit autostereoskopischem 3D-Effekt auf dem Display 450 gezeigt werden. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
In einem Experiment wurde eine Raytracing-Engine zum Testen der Renderingleistung für eine Kombination von verschiedenen Auflösungen und einer unterschiedlichen Zahl von Ansichten für ein autostereoskopisches 3D-Display verwendet. Ein Videospiel, speziell seine Anfangsszene, wurde für Testbilder verwendet. Die Hardware-Plattform verwendete vierundzwanzig (24) Threads, um die Raytracing-Engine zu betreiben. In Tabelle 1 unten bezieht sich die Zeile ”Original” auf die Leistung der Raytracing-Engine beim Rendern des 2D-Bildes. Die Zeilen ”Verschachtelung durch Rendern” implementieren die Verfahren, die oben beschrieben werden (z. B. Aussenden von Strahlen und sofortiges Füllen der sich ergebenden Farbe). Um für eine bessere Datenlokalität zu sorgen, wurde eine Kachel von 8×8 Strahlen ausgesandt, und in eine Kachel von 8×8 wurden sofort Pixel gefüllt. Es ist zu sehen, dass für den Ein-Ansichtsfall der Verschachtelung durch Rendern die Leistung sehr dicht beim ”Original” liegt, während im Fall der 8-Ansichts-Verschachtelung nur einen 47%igen Leistungsverlust für HD-Auflösung einführt. Die letzte Zeile ”Verschachtelung nach Rendern” bezieht sich auf das Rendern aller 8-Ansichtsbilder und dann Ausführen der Teilpixel-Verschachtelung. Das bewirkt einen 65%igen Leistungsverlust, weil es einen extra Puffer zum Speichern von Bildern der Zwischenansichten erfordert. TABELLE 1
| | 1024×868 | 1920×1080 (HD) | Leistungsfähigkeit Verlust bei HD |
Original (2D-Rendering) | 58 ms | 97 ms | |
Verschachtelung durch Rendering | 1-Ansicht | 61 ms | 101 ms | –4% |
8-Ansicht | 116 ms | 133 ms | –37% |
Verschachtelung nach dem Rendern, 8-Ansicht | 108 ms | 160 ms | –65% |
-
Verschiedene Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination beider implementiert werden. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Spulen usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), feldprogrammierbares Gate-Array (FPGA), Logik-Gates, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsets usw. umfassen. Beispiele für Software können Software-Komponenten, Programmanwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Software-Schnittstellen, Anwendungsprogrammschnittstellen (API), Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Symbole oder eine Kombination derselben umfassen. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann variieren, je nach der Zahl von Faktoren, wie zum Beispiel die gewünschte Rechengeschwindigkeit, Leistungspegel, Wärmebeständigkeiten, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Konstruktions- oder Leistungsnebenbedingungen.
-
7 illustriert eine Ausführungsform eines Systems 700, das zum Implementieren von Raytracing-Rendering-Ausführungsformen der Offenbarung geeignet sein kann. In Ausführungsformen kann System 700 ein System sein, das die Raytracing-Ausführungsformen implementieren kann, obwohl System 700 nicht auf diesen Kontext beschränkt ist. System 700 kann zum Beispiel in einen Personal Computer (PC), Laptop-Computer, ultramobilen Laptop-Computer, Tablet, Touchpad, tragbaren Computer, Taschencomputer, Palmtop-Computer, Personal Digital Assistant (PDA), Mobiltelefon, Kombination aus Mobiltelefon und PDA, Fernsehgerät, Smart-Vorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-Fernseher), mobiles Internetgerät (MID), Mitteilungsgerät, Datenkommunikationsgerät usw. integriert sein.
-
In Ausführungsformen umfasst das System 700 eine Plattform 702, die an ein externes Display 720 angeschlossen ist. Plattform 702 kann Inhalte von einer Inhaltsvorrichtung empfangen, wie zum Beispiel Inhaltsservicevorrichtung(en) 730 oder Inhaltverteilungsvorrichtung(en) 740 oder andere ähnliche Inhaltsquellen. Ein Navigationscontroller 750, der ein oder mehrere Navigationsmerkmale umfasst, kann zum Zusammenwirken verwendet werden, zum Beispiel mit der Plattform 702 und/oder Display 720. Jede dieser Komponenten wird detaillierter unten beschrieben.
-
In einigen Beispielen kann die Plattform 702 eine beliebige Kombination von einem Chipset 705, Prozessor 710, Speicher 712, 714, grafischem Teilsystem 715, Anwendungen 716 und/oder Radio 718 umfassen. Das Chipset 705 kann für Kommunikation zwischen Prozessor 710, Speicher 712, 714, grafischem Teilsystem 715, Anwendungen 716 und/oder Radio 718 sorgen. Zum Beispiel kann das Chipset 705 einen Speicheradapter (nicht dargestellt) umfassen, der für die Kommunikation mit dem Speicher 714 sorgen kann.
-
Der/die Prozessor(en) 710 können als CISC-(Complex Instruction Set Computer)- oder RISC-(Reduced Instruction Set Computer)-Prozessoren, ×86-Befehlssatzkompatible Prozessoren, Multikern- oder anderer Mikroprozessor oder zentrale Verarbeitungseinheit (CPU) implementiert werden. In einigen Ausführungsformen kann der Prozessor 710 Doppelkernprozessor(en), mobile Doppelkernprozessor(en) usw. umfassen.
-
Der Speicher 712 kann als Vorrichtung mit flüchtigem Speicher implementiert werden, wie zum Beispiel, ohne darauf beschränkt zu sein, ein Direktzugriffsspeicher (RAM), Dynamischer Direktzugriffsspeicher (DRAM) oder Statischer RAM (SRAM).
-
Der Speicher 714 als nichtflüchtige Speichervorrichtung implementiert werden, wie zum Beispiel als Festplattenlaufwerk, Laufwerk für optische Speicherplatten, Bandlaufwerk, eine interne Speichervorrichtung, eine angeschlossene Speichervorrichtung, Flash-Speicher, batteriegestütztes SDRAM (synchrones DRAM) und/oder netzwerkzugängliche Speichervorrichtung, ohne darauf beschränkt zu sein. In einigen Ausführungsformen kann der Speicher 714 Technologie zum Erhöhen der Speicherleistung oder erhöhten Schutz für wertvolle digitale Medien umfassen, wenn zum Beispiel mehrere Festplattenlaufwerke enthalten sind.
-
Das grafische Teilsystem 715 kann das Verarbeiten von Bildern ausführen, wie zum Beispiel Standbild oder Video zur Anzeige. Das Grafik-Teilsystem 715 kann zum Beispiel eine Grafikverarbeitungseinheit (GPU) oder eine optische Verarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann zum kommunikativen Verbinden des grafischen Teilsystems 715 und der Anzeige 720 verwendet werden. Zum Beispiel kann die Schnittstelle eine aus einer Hochauflösenden Multimedia-Schnittstelle, DisplayPort, drahtloses HDMI und/oder drahtlose HD-kompatible Verfahren sein. Das Grafik-Teilsystem 715 könnte in den Prozessor 710 den Chipsatz 705 integriert sein. Das Grafik-Teilsystem 715 könnte eine eigenständige Karte sein, die kommunikativ mit dem Chipset 705 verbunden ist.
-
Die Grafik- und/oder Videoverarbeitungsverfahren, die hierin beschrieben werden, könnte in verschiedenen Hardware-Architekturen implementiert werden. Zum Beispiel kann die Grafik- und/oder Videofunktionalität in ein Chipset integriert sein. Alternativ kann ein separater Grafik- und/oder Videoprozessor verwendet werden. Als weitere Ausführungsform können die Grafik- und/oder Videofunktionen durch einen Mehrzweckprozessor implementiert werden, der einen Multikernprozessor umfasst. In einer weiteren Ausführungsform können die Funktionen in Unterhaltungselektronik implementiert werden.
-
Radio 718 kann ein oder mehrere Radios umfassen, die Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationsverfahren übertragen und empfangen können. Solche Verfahren können Kommunikation über ein oder mehrere drahtlose Netze beinhalten. Beispielhafte drahtlose Netze umfassen (ohne darauf beschränkt zu sein) drahtlose lokale Netze (WLANs), drahtlose Personal Area Networks (WPANs), drahtlose regionale Netze (WMANs), mobile Netze und Satellitennetze. Bei der Kommunikation über solche Netze kann das Radio 718 gemäß einer oder mehrerer Standards in jeder Version arbeiten.
-
In Ausführungsformen kann das Display 720 jeden fernsehgeräteartigen Monitor Anzeige umfassen. Das Display 720 kann zum Beispiel einen Computer-Anzeigebildschirm, Touchscreen-Display, Videomonitor, eine fernsehgeräteartige Vorrichtung und/oder ein Fernsehgerät umfassen. Das Display 720 kann digital und/oder analog sein. In Ausführungsformen kann das Display 720 holografisches Display sein. Das Display 720 kann auch eine transparente Fläche sein, die eine optische Projektion aufnehmen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten übermitteln. Zum Beispiel können solche Projektionen ein visuelles Overlay für eine mobile Erweiterte Realitäts-(MAR)-Anwendung sein. Unter der Kontrolle von einer oder mehreren Software-Anwendungen 716 kann die Plattform 702 die Benutzerschnittstelle 722 im Display 720 anzeigen.
-
In Ausführungsformen können Inhaltsservicevorrichtung(en) 730 von jedem nationalen, internationalen und/unabhängigen Service gehostet werden und daher für Plattform 702 zum Beispiel über das Internet zugänglich sein. Inhaltsservicevorrichtung(en) 730 können mit der Plattform 702 und/oder dem Display 720 verbunden sein. Plattform 702 und/oder Inhaltsservicevorrichtung(en) 730 können mit einem Netzwerk 760 verbunden sein, um Medieninformationen dem Netzwerk 760 mitzuteilen bzw. von demselben zu erhalten (z. B. Medien senden und/oder empfangen). Inhaltsbereitstellungsvorrichtung(en) 740 können auch mit der Plattform 702 und/oder dem Display 720 verbunden sein.
-
In Ausführungsformen können Inhaltsservicevorrichtung(en) 730 eine Kabelfernsehbox, Personal Computer, Netz, Telefon, internetaktivierte Vorrichtungen oder Geräte, die digitale Informationen und/oder Inhalte liefern können, und andere ähnliche Vorrichtungen, die Inhalte in einer oder zwei Richtungen zwischen Content Providern und Plattform 702 und/oder Display 720 über Netz 760 oder direkt kommunizieren können. Es ist zu erkennen, dass der Inhalt in einer und/oder zwei Richtungen zu oder von einer der Komponenten in System 700 und einem Content Provider über das Netz 760 kommuniziert werden kann. Beispiele für Inhalte können alle Medieninformationen umfassen, einschließlich zum Beispiel Video, Musik, medizinischer und Spielinformationen usw.
-
Inhaltsservicevorrichtung(en) 730 empfangen Inhalte, wie zum Beispiel Kabelfernsehprogrammierung, einschließlich Medieninformationen, digitalen Informationen und/oder anderen Inhalten. Beispiele für Content Provider können alle Kabel- oder Satelliten- oder Radio- oder Internet-Content Provider umfassen. Die bereitgestellten Beispiele sollen nicht die Ausführungsformen der Erfindung beschränken.
-
In Ausführungsformen kann die Plattform 702 Steuersignale vom Navigationscontroller 750 empfangen, der oder mehrere Navigationsmerkmale aufweist. Die Navigationsmerkmale von Controller 750 können zum Zusammenwirken zum Beispiel mit der Benutzerschnittstelle 722 verwendet werden. In Ausführungsformen kann der Navigationscontroller 750 eine Zeigevorrichtung sein, die eine Computer-Hardwarekomponente (speziell eine Schnittstellenvorrichtung) sein kann, die es einem Benutzer ermöglicht, räumliche (zum Beispiel kontinuierliche mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie zum Beispiel grafische Benutzerschnittstellen (GUI) und Fernsehgeräte und Monitore ermöglichen dem Benutzer die Steuerung und das Bereitstellen von Daten für den Computer oder das Fernsehgerät unter Verwendung körperlicher Gesten.
-
Bewegungen der Navigationsmerkmale des Controllers 750 können auf einem Display (z. B. Display 720) durch Bewegungen eines Mauszeigers, Cursors, Fokusring oder andere optische Indikatoren wiederholt werden, die auf dem Display angezeigt werden. Zum Beispiel können unter der Kontrolle von Software-Anwendungen 716 die Navigationsmerkmale, die sich auf dem Navigationscontroller 750 befinden, in virtuelle Navigationsmerkmale abgebildet werden, die zum Beispiel auf der Benutzerschnittstelle 722 angezeigt werden. In Ausführungsformen kann der Controller 750 keine separate Komponente sein, sondern in die Plattform 702 und/oder das Display 720 integriert sein. Ausführungsformen sind jedoch nicht auf die Elemente oder in dem Kontext beschränkt, der hierin gezeigt oder beschrieben wird.
-
In Ausführungsformen können Treiber (nicht dargestellt) Technologie umfassen, die es Benutzern ermöglichen, die Plattform 702 wie ein Fernsehgerät sofort mit dem Druck auf einen Knopf nach dem anfänglichen Hochfahren ein- auszuschalten, wenn dies aktiviert ist. Die Programmlogik kann es der Plattform 702 ermöglichen, Inhalte an Medienadapter oder andere Inhaltsservicevorrichtung(en) 730 oder Inhaltsbereitstellungsvorrichtung(en) 740 zu leiten, wenn die Plattform ”abgeschaltet” ist. Außerdem kann das Chipset 705 Hardware- und/oder Software-Unterstützung zum Beispiel für 6.1-Surround-Sound-Audio und/oder High Definition 7.1-Surround-Sound-Audio umfassen. Treiber können einen Grafiktreiber für integrierte Grafik-Plattformen umfassen. In Ausführungsformen kann der Grafiktreiber eine PCI-Express-Grafikkarte umfassen.
-
In verschiedenen Ausführungsformen kann jede der einen oder mehreren Komponenten, die in System 700 gezeigt werden, integriert werden. Zum Beispiel können Plattform 702 und Inhaltsservicevorrichtung(en) 730 integriert sein, oder Plattform 702 und Inhaltsbereitstellungsvorrichtung(en) 740 können integriert sein, oder Plattform 702, Inhaltsservicevorrichtung(en) 730 und Inhaltsbereitstellungsvorrichtung(en) 740 können zum Beispiel integriert sein. In verschiedenen Beispielen können die Plattform 702 und das Display 720 eine integrierte Einheit sein. Display 720 und Inhaltsservicevorrichtung(en) 730 können integriert sein, oder Display 720 und Inhaltsbereitstellungsvorrichtung(en) 740 können zum Beispiel integriert sein. Diese Beispiele sollen diese Erfindung nicht beschränken.
-
In verschiedenen Ausführungsformen kann das System 700 als drahtloses System, als verdrahtetes System oder als Kombination von beidem implementiert sein. Bei Implementierung als drahtloses System kann das System 700 Komponenten und Schnittstellen umfassen, die zur Kommunikation über ein drahtloses gemeinsam benutztes Medium geeignet sind, wie zum Beispiel eine oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogik usw. Ein Beispiel für drahtlose, gemeinsam benutzte Medien kann Teile eines drahtlosen Spektrums umfassen, wie zum Beispiel das HF-Spektrum usw. Wenn es als verkabeltes System implementiert wird, kann System 700 Komponenten und Schnittstellen umfassen, die für die Kommunikation über verkabelte Kommunikationsmedien geeignet sind, wie zum Beispiel Eingabe/Ausgabe-(I/O)-Adapter, physische Steckverbinder zum Verbinden des I/O-Adapters mit einem entsprechenden verkabelten Kommunikationsmedium, einer Netzschnittstellenkarte (NIC), Festplattencontroller, Videocontroller, Audiocontroller usw. Beispiele für verkabelte Kommunikationsmedien können ein Draht, ein Kabel, Metallkontakte, Leiterplatten (PCB), Backplane, Schaltmatrix, Halbleitermaterial, Doppeldrahtleitung, Koaxialkabel, Glasfaseroptik usw. umfassen.
-
Plattform 702 kann einen oder mehrere logische oder physische Kanäle zum Kommunizieren von Informationen aufbauen. Die Informationen können Medieninformationen und Steuerinformationen umfassen. Medieninformationen können alle Daten betreffen, die Inhalte darstellen, welche für einen Nutzer bestimmt sind. Beispiele für Inhalte können Daten aus einem Gespräch, Videokonferenz, Videostreaming, elektronischer Post(”Email”)-Mitteilung, Sprachnachricht, alphanumerischen Symbolen, Grafik, Bild, Video, Text usw. umfassen. Daten aus einem Gespräch können zum Beispiel Sprachinformationen, Stilleperioden, Hintergrundgeräusche, Comfort Noise, Töne usw. sein. Steuerinformationen können sich auf alle Daten beziehen, die Befehle, Anweisungen oder Steuerworte darstellen, welche für ein automatisches System bestimmt sind. Zum Beispiel können Steuerinformationen dazu verwendet werden, Medieninformationen durch ein System zu leiten oder einen Knoten anweisen, die Medieninformationen in einer vorgegebenen Weise zu verarbeiten. Die Ausführungsformen, die oben erwähnt werden, sind jedoch nicht auf die Elemente oder im Kontakt beschränkt, der in 7 gezeigt oder beschrieben wird.
-
Wie oben beschrieben wird, kann das System 700 in verschiedenen physischen Arten oder Formfaktoren verkörpert sein. 8 illustriert Ausführungsformen für eine Vorrichtung 800 mit kleinem Formfaktor, in welchem das System 700 verkörpert sein kann. In Ausführungsformen kann die Vorrichtung 800 als mobile Berechnungsvorrichtung implementiert werden, die Drahtlosfähigkeiten besitzt. Eine mobile Berechnungsvorrichtung kann sich auf jede Vorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Stromversorgung oder -zufuhr hat, wie zum Beispiel eine oder mehrere Batterien.
-
Wie oben beschrieben, können Beispiele für eine mobile Berechnungsvorrichtung können einen Personal Computer (PC), Laptop-Computer, Ultra-Laptop-Computer, Tablet, Touchpad, tragbaren Computer, Taschencomputer, Palmtop-Computer, Personal Digital Assistant (PDA), Mobiltelefon, Kombination aus Mobiltelefon und PDA, Fernsehgerät, Smart-Vorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-Fernseher), mobiles Internetgerät (MID), Mitteilungsgerät, Datenkommunikationsgerät usw. umfassen.
-
Beispiele für eine mobile Berechnungsvorrichtung können auch Computer umfassen, die dafür ausgelegt sind, von einer Person getragen zu werden, wie zum Beispiel einen Handgelenkcomputer, Ringcomputer, Fingercomputer, Brillencomputer, Gürtelschnallencomputer, Armbandcomputer, Schuhcomputer, Bekleidungscomputer und andere am Körper tragbare Computer. In Ausführungsformen kann eine mobile Berechnungsvorrichtung als Smartphone implementiert werden, das Computeranwendungen ausführen kann, sowie Sprachkommunikation und/oder Datenkommunikation. Obwohl einige Ausführungsformen mit einer mobilen Berechnungsvorrichtung beschrieben werden können, die als Smartphone implementiert wird, ist zu erkennen, dass andere Ausführungsformen auch unter Verwendung anderer drahtloser mobiler Berechnungsvorrichtungen implementiert werden können. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Wie in 8 gezeigt, kann die Vorrichtung 800 ein Gehäuse 802, ein Display 804, eine Eingabe/Ausgabe-(I/O)-Vorrichtung 806 und eine Antenne 808 umfassen. Vorrichtung 800 kann auch Navigationsmerkmale 812 umfassen. Das Display 804 kann jede geeignete Displayeinheit zum Anzeigen von Informationen umfassen, die sich für eine mobile Berechnungsvorrichtung eignet. Die I/O-Vorrichtung 806 kann jede geeignete I/O-Vorrichtung zum Eingeben von Informationen in eine mobile Berechnungsvorrichtung umfassen. Beispiele für eine I/O-Vorrichtung 806 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Knöpfe, Schalter, Kippschalter, Mikrofone, Lautsprecher, Spracherkennungsvorrichtung und -software usw. umfassen. Informationen können auch in die Vorrichtung 800 mittels Mikrofon eingegeben werden. Solche Informationen können durch eine Spracherkennungsvorrichtung digitalisiert werden. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Verschiedene Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination beider implementiert werden. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Spulen usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), feldprogrammierbares Gate-Array (FPGA), Logik-Gates, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsets usw. umfassen. Beispiele für Software können Software-Komponenten, Programmanwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Software-Module, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Software-Schnittstellen, Anwendungsprogrammschnittstellen (API), Befehlssätze, Berechnungscode, Computercode, Codesegmente, Computercodesegmente, Wörter, Symbole oder eine Kombination derselben umfassen. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann variieren, je nach der Zahl von Faktoren, wie zum Beispiel die gewünschte Rechengeschwindigkeit, Leistungspegel, Wärmebeständigkeiten, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Konstruktions- oder Leistungsnebenbedingungen.
-
Ausführungsformen können auch zumindest teilweise als Anweisungen implementiert werden, die in oder auf einem nichtflüchtigen computerlesbaren Medium enthalten sind, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können, um eine Leistungsfähigkeit der Operationen zu ermöglichen, die hierin beschrieben werden.
-
Eine oder mehrere Erscheinungsformen von mindestens einer Ausführungsform können durch repräsentative Anweisungen implementiert werden, die in einem maschinenlesbaren Medium gespeichert sind, welches verschiedenartige Logik innerhalb des Prozessors darstellt, die bei Lesen durch eine Maschine bewirkt, dass die Maschine Logik herstellt, um die Verfahren, die hierin beschrieben werden, auszuführen. Solche Darstellungen, die als ”IP Cores” bekannt sind, können auf einem greifbaren maschinenlesbaren Medium gespeichert werden und an verschiedene Kunden oder Produktionseinrichtungen geliefert werden und in die Produktionsmaschinen geladen werden, die tatsächlich die Logik oder den Prozessor herstellen.
-
Eine oder mehrere Erscheinungsformen von mindestens einer Ausführungsform können durch repräsentative Anweisungen implementiert werden, die in einem maschinenlesbaren Medium gespeichert sind, welches verschiedenartige Logik innerhalb des Prozessors darstellt, die bei Lesen durch eine Maschine bewirkt, dass die Maschine Logik herstellt, um die Verfahren, die hierin beschrieben werden, auszuführen. Solche Darstellungen, die als ”IP Cores” bekannt sind, können auf einem greifbaren maschinenlesbaren Medium gespeichert werden und an verschiedene Kunden oder Produktionseinrichtungen geliefert werden und in die Produktionsmaschinen geladen werden, die tatsächlich die Logik oder den Prozessor herstellen.
-
Einige Beispiele können unter Verwendung des Ausdrucks ”eine Ausführungsform” zusammen mit den Ableitungen beschrieben werden. Dieser Begriff bedeutet, dass ein spezielles Merkmal, Struktur oder Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten ist. Das Auftreten des Ausdrucks ”in einer Ausführungsform” an verschiedenen Stellen in der Patentschrift bezieht sich nicht notwendigerweise auf dieselbe Ausführungsform. Ferner können einige Ausführungsformen unter Verwendung des Ausdrucks ”verbunden” oder ”angeschlossen” zusammen mit ihren Ableitungen beschrieben werden. Diese Begriffe sollen nicht notwendigerweise Synonyme für einander sein. Zum Beispiel können einige Ausführungsformen, die die Begriffe ”angeschlossen” und/oder ”verbunden” verwenden, anzeigen, dass zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander sind. Der Begriff ”verbunden” kann jedoch auch bedeuten, dass zwei oder mehr Elemente sich nicht in direktem Kontakt miteinander befinden, aber trotzdem noch miteinander kooperieren oder Wechselwirken.
-
Es wird betont, dass die Zusammenfassung der Offenbarung bereitgestellt wird, um dem Leser zu ermöglichen, schnell die Art der technischen Offenbarung zu erfassen. Sie wird mit dem Verständnis vorgelegt, dass sie nicht zum Auslegen oder Begrenzen des Geltungsbereichs oder der Bedeutung der Ansprüche verwendet wird. Außerdem kann in der vorhergehenden Ausführlichen Beschreibung ersehen werden, dass verschiedene Merkmale in einer einzigen Ausführungsform mit dem Zweck zusammengefasst werden, die Offenbarung rational darzustellen. Dieses Verfahren der Offenbarung darf nicht als Widerspiegelung einer Absicht ausgelegt werden, dass die beanspruchten Ausführungsformen mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch angegeben werden. Wie die folgenden Ansprüche widerspiegeln, liegt vielmehr der erfindungsgemäße Gegenstand in weniger als allen Merkmalen einer einzelnen offenbarten Ausführungsform. Daher werden die nachfolgenden Ansprüche hiermit in die Ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich als separate Ausführungsform steht. In den angehängten Ansprüchen werden die Begriffe ”einschließlich” und ”in denen” als Äquivalente für die jeweiligen Begriffe ”umfassend” bzw. ”wobei” verwendet. Außerdem werden die Begriffe ”erster”, ”zweiter”, ”dritter” usw. lediglich als Kennzeichnung verwendet und sollen ihren Objekten keine numerischen Anforderungen auferlegen.
-
Das oben Beschriebene umfasst Beispiele für die offenbarte Architektur. Es ist natürlich nicht möglich, jede vorstellbare Kombination von Komponenten und/oder Methodiken zu beschreiben, jedoch kann ein Fachmann auf diesem Gebiet erkennen, dass viele mögliche Kombinationen und Permutationen möglich sind. Dementsprechend soll die neuartige Architektur alle solche Änderungen, Modifizierungen und Variationen umfassen, die in den Geist und den Geltungsbereich der angehängten Ansprüche fallen.