-
Hintergrund
-
Dies betrifft generell das Gebiet der Tiefenpufferung und insbesondere Ausführungsformen, die Techniken für eine verbesserte Tiefenpufferung für eine Grafikwiedergabe bei der Erstellung von dreidimensionalen Grafiken betreffen.
-
Computergrafiksysteme werden verwendet, um eine Szene mit dreidimensionalen Objekten zu modellieren und diese dann auf zweidimensionalen Anzeigevorrichtungen anzuzeigen. Ein derartiges System, das häufig verwendet wird, ist ein polygonbasiertes objektgeordnetes Grafiksystem, bei dem dreidimensionale Objekte in einer Szene jeweils von einer Vielzahl von Polygonen dargestellt werden, die annähernd die Gestalt von Objekten, die in dem Bild gezeigt sind, aufweisen. In Abhängigkeit von der Ausrichtung, die zum Betrachten der Szene in zwei Dimensionen ausgewählt ist, sind viele der Primitive, die Objekte in einer Szene darstellen, hinter anderen Primitiven verborgen und werden nicht angezeigt. Primitive, die nicht vollständig verborgen sind, werden als sichtbar bezeichnet und werden entweder vollständig oder teilweise angezeigt, und zwar in Abhängigkeit davon, ob ein Abschnitt eines vorgegebenen Primitivs in dem wiedergegebenen Bild der Anzeigevorrichtung verborgen ist. Wenn sich die Tiefenkomplexität einer wiederzugebenden Szene vergrößert, sinkt der Prozentsatz sämtlicher die Szene darstellenden Primitive, die schließlich für einen Betrachter der Anzeigevorrichtung sichtbar sind, beträchtlich. Somit sind in vielen Fällen viele der Primitive für eine Szene verborgen.
-
Kurzbeschreibung der Zeichnungen
-
Einige Ausführungsformen werden mit Bezug auf die folgenden Figuren beschrieben:
-
1 ist eine Systemdarstellung für eine Ausführungsform der vorliegenden Erfindung;
-
2 ist eine detailliertere schematische Darstellung des in 1 gezeigten Tiefenpuffers gemäß einer Ausführungsform;
-
3 ist ein Systemdarstellung für eine Ausführungsform der vorliegenden Erfindung; und
-
4 ist eine vertikale Vorderansicht einer Ausführungsform.
-
Detaillierte Beschreibung
-
Bekannte Computergrafiksysteme können einen Framepuffer und einen Tiefenpuffer aufweisen. Der Framepuffer ist typischerweise ein Speicher, der die digitale Darstellung der Farbe und der Stärke für jedes Pixel oder jeden Abtastwert des Bilds hält. Der Framepuffer wird auch als Video-Bitmap bezeichnet. Der Tiefenpuffer, auch als Z-Puffer bezeichnet, ist ein großes Array eines Speichers mit einem Eintrag für jedes Pixel oder jeden Abtastwert in dem Framepuffer.
-
Ein Verfahren zum Bestimmen, welche Primitive sichtbar oder verborgen sind, umfasst die Verwendung eines Tiefenpuffers. Die Tiefenachse in einem Grafiksystem gibt den Abstand von einem spezifischen Betrachtungspunkt eines Betrachters wieder. Somit stellt ein größerer Tiefenwert einen größeren Abstand zu dem Betrachtungspunkt dar. Eine Tiefenpufferung umfasst einen Vergleich der Tiefenwerte von Punkten an einem erzeugten Objekt zum Bestimmen, welches Objekt dem Betrachtungspunkt am nächsten liegt und daher auf einer zweidimensionalen Anzeige erscheinen soll. Als Teil der Verarbeitung der Grafikdaten für eine Szene werden Pixel für jedes der Primitive in der Szene erzeugt.
-
Bei der bekannten Tiefenpufferung wird bei der Erzeugung jedes Pixels dessen Tiefenkoordinate mit der Tiefenkoordinate, die zuvor in dem Tiefenpuffer für diese Position in dem Bild gespeichert worden ist, verglichen. Vor der Verarbeitung des ersten Primitivs für die Szene wird der Tiefenpuffer durch Speichern des Werts initialisiert, der dem maximalen Abstand in dem Tiefenpuffereintrag für jedes Pixel entspricht, so dass der anfängliche alte Tiefenwert dem maximalen Abstand entspricht. Generell wird, falls der neue Tiefenwert kleiner ist der alte Tiefenwert, wodurch angezeigt wird, dass das Pixel näher an dem Betrachtungspunkt als an dem vorhergehenden Betrachtungspunkt liegt, dieses Pixel in die Anzeigevorrichtung geschrieben und wird der Tiefenpuffer aktualisiert, damit er den neuen Wert enthält. Falls der neue Wert größer als der oder gleich dem alten Wert ist, wird das Pixel nicht geschrieben und bleibt der Tiefenpuffer unverändert. Es sei darauf hingewiesen, dass der vorstehende Text einen Tiefentest beschreibt, der als ”kleiner als” bezeichnet wird, d. h. der Tiefenpuffer behält die Werte, die kleiner sind als die vorhergehenden Werte. Andere Tiefentests können ebenfalls angewendet werden. Sämtliche Pixel für ein Primitiv, die vollständig verborgen sind, können schließlich während des Prozesses in dem Tiefenpuffer überschrieben werden, so dass das Primitiv nicht angezeigt wird.
-
Bei der Computergrafik ist ”Wiedergeben” der Prozess des Umsetzens eines Satzes von Daten in ein Bild, das angezeigt werden kann. Bei dem Wiedergabeprozess hält eine Bild-Datenbank typischerweise Polygondaten, die gelesen werden, und werden Berechnungen von einer Wiedergabe-Hardware Pixel für Pixel durchgeführt, um über die Farbe jedes Pixels zu entscheiden. Ein Farbrechner führt häufig diese Funktionalität durch. Wenn ein Polygon wiedergegeben wird, wird ein Farbabtastwert für jedes Pixel, das das Polygon abdeckt, wiedergegeben. Falls eine Überabtastung durchgeführt wird, weist jedes Pixel mehrere entsprechende Farbwerte auf, die gemittelt werden, um eine endgültige Farbe zu ergeben. Jede Farbe weist einen zugehörigen Tiefenwert und Ort auf. Zum Beispiel speichert bei einem kleiner-als-Tiefentest der Tiefenpuffer den kleinsten Tiefenwert und Zähler für jeden Ort. Falls ein Farbabtastwert einen Tiefenwert aufweist, der kleiner ist als der Wert für diesen Ort, wie in dem Tiefenpuffer aufgezeichnet ist, wird dieser Abtastwert in den Framepuffer geschrieben und wird der Tiefenpuffer aktualisiert. Andernfalls wird der Farbabtastwert verworfen.
-
Somit werden bei der Tiefenpufferung die Farbbestimmung jedes Pixels sowie viele andere Funktionen, die mit der dreidimensionalen Grafik in Zusammenhang stehen, wie z. B. das Verwenden unterschiedlicher Texturen, die unterschiedliche Schattierungen, Löcher, durchsichtige Texturen, durchscheinende Texturen und andere Merkmale aufweisen, typischerweise in einer Wiedergabemaschine eines Grafikprozessors durchgeführt. Die Wiedergabemaschine führt diese Funktionen durch Nutzen einer Wiedergabe-Pipeline durch. Grafikdaten fließen die Wiedergabe-Pipeline entlang. Typischerweise wird eine Tiefenpufferung nicht vor dem Ende der Pipeline durchgeführt. Die Vorstellung einer Tiefenpufferung besteht in dem Entfernen von Pixeln für Primitive, die verdeckt wären. Folglich kann Verarbeitungszeit eingespart werden und kann die Effizienz verbessert werden.
-
Bei einigen Ausführungsformen können Tiefenwerte in höher- und niederwertige Bits aufgeteilt werden. Dabei kann ein Teil der Verarbeitung auf der Basis nur der höherwertigen Bits ausgeführt werden. Wenn die Anzahl von höherwertigen Bits wesentlich kleiner ist als die Gesamtanzahl von Bits, kann eine gewisse Bandbreite erhalten bleiben. Mit anderen Worten kann durch Verwenden nur der höherwertigen Bits für einen Teil der Tiefenpufferungs-Operationen die Speicherbandbreiten-Nutzung verringert werden, wodurch die Effizienz verbessert wird.
-
In einigen Fällen ist die Speicherbandbreiten-Nutzung die wichtigste Bestimmungsgröße des Energieverbrauchs. Bei vielen Anwendungen, einschließlich mobilen Anwendungen, ist der Energieverbrauch eine primäre Überlegung.
-
Ein Speicherzugriff ist eine der am meisten Energie verbrauchenden Operationen in einem Computersystem. Daher ist es wichtig, die Speicherbandbreiten-Nutzung im größtmöglichen Maß zu verringern.
-
Durch Verringern der Speicherbandbreiten-Nutzung in den und aus dem Tiefenpuffer in einem Grafikprozessor können in einigen Fällen wesentliche Einsparungen beim Energieverbrauch erreicht werden. Somit kann bei einigen Ausführungsformen durch Verringern der Anzahl von Bits, die verwendet werden, um die Tiefenwerte darzustellen, die Speicherbandbreite verringert werden, wobei der Energieverbrauch ebenfalls verringert wird. Die hier beschriebenen Techniken können in Zusammenhang mit normalen Tiefenpufferungs-Techniken, einschließlich Tiefenpufferungs-Caching, Tiefenpufferungs-Komprimierung, Zmax-Aussonderung und Zmin-Aussonderung, angewendet werden.
-
Bei viele Grafikverarbeitungsspezifikationen, einschließlich DirectX und OpenGL, kann ein Tiefenwert als 24-Bit-Ganzzahlen- oder 32-Bit-Gleitkommawert gespeichert werden. Die Erfinder der vorliegenden Anmeldung haben erkannt, dass es relativ wenig nützlichen Inhalt in den niedrigstwertigen Bits der Tiefenwerte gibt. Somit kann ein Tiefenwert Z N-Bits aufweisen, bei denen es sich derzeit typischerweise um 24 oder 32 Bits handelt. Die höchstwertigen H-Bits können durch die Bezeichnung Zhi bezeichnet und die niederwertigsten L-Bits können als Zlo bezeichnet werden. Daher ist Z = (Zhi << L) + Zlo. Es gilt, dass (Zhi << L) + 000...00b <= Z <= (Zhi << L) + 111...11b ist, wobei 000...00b L-Binärnullen bedeutet und 111...11b L-Binäreinsen bedeutet. Aus Gründen der Einfachheit ist Zf = (Zhi << L) + 000...00b, wobei Z auf H-Bits quantifiziert ist mit Floor-Rundung) und Zc (Zhi << L) + 111...11b ist, wobei Z auf H-Bits quantifiziert ist, mit Ceil-Rundung).
-
Generell liest bei einer Zmin/Zmax-Aussonderung ein Grafikprozessor die aktuellen Tiefenwerte, gefolgt von einem Tiefenvergleich pro Abtastwert oder Pixel, und falls der Tiefenvergleich bestanden ist, wird der neue Tiefenwert über den Tiefencache in den Tiefenpuffer geschrieben. Bei einigen Ausführungsformen der vorliegenden Erfindung kann der Tiefenvergleich konservativ durchgeführt werden, so dass niemals inkorrekte Tiefenvergleiche nur unter Verwendung in erster Linie von Zhi und dann weiter unter Verwendung von Zlo nur dann, wenn erforderlich, erzeugt werden.
-
Bei den hier beschriebenen Ausführungsformen ist der Tiefentest dahingehend ein kleiner-als-Test, dass der Tiefentest bestanden ist, falls die Tiefe der ankommenden Abtastwerte kleiner ist als die entsprechende Tiefe in dem Tiefenpuffer. Es kann jedoch bei anderen Ausführungsformen der vorliegenden Erfindung jeder geeignete Tiefentest angewendet werden.
-
Gemäß 1 kann eine Tiefen-Pipeline eine Rastereinrichtung 12, die mit einem Speichersystem 18 gekoppelt ist, eine HiZ-Einheit 14 und eine Tiefeneinheit 16 aufweisen. Die HiZ-Einheit 14 führt bei einer Ausführungsform eine Zmin/Zmax-Aussonderung durch. Die Menge an Daten, die zwischen der Tiefeneinheit 16 und der Speichereinheit 18 verlaufen, bestimmt die Bandbreite, die erforderlich ist, und steuert schließlich einen Teil des Energieverbrauchs der Einheit. Somit wird bei einigen Ausführungsformen der vorliegenden Erfindung gewünscht, die Bandbreite von Speicherübertragungen zwischen der Tiefeneinheit und dem Speichersystem zu verkleinern. Bei diesen Speicherübertragungen handelt es sich generell um Lesen aus dem Speicher oder Schreiben in den Speicher.
-
Somit kann, falls nur die H-Bits eines Tiefenwerts von der Tiefeneinheit 16 durch Lesen von Zhi aus dem Speichersystem gelesen werden, die Bandbreite verkleinert werden. Durch Durchführen eines konservativen Tiefentests unter Verwendung des Zhi-Werts müssen weniger Bits zwischen der Tiefeneinheit und dem Speichersystem 18 übertragen werden. Die folgenden Resultate sind möglich, wenn dies erfolgt, wobei Zi die ankommende Tiefe ist und Zd die Tiefe aus dem Tiefenpuffer innerhalb der Tiefeneinheit 16 ist. Falls Zi kleiner ist als Zd f, ist garantiert, dass die ankommende Tiefe Zi vor dem Tiefenwert liegt, der sich bereits in dem Tiefenpuffer befindet. In diesem Fall können wesentliche Einsparungen erreicht werden, da nur H-Bits anstelle der gesamten N-Bits verwendet worden sind. Um den Tiefenpuffer zu aktualisieren, können sowohl Zi hi als auch Zi lo in den Tiefenpuffer geschrieben werden. Obwohl beim Schreiben keine Bandbreite eingespart wird, umfasst die Leseoperation weniger Bandbreite und ist somit bandbreitenkonservativ.
-
Eine weitere Möglichkeit besteht darin, dass Zi größer ist als Zd c, was bedeutet, dass der Test nicht bestanden ist, da garantiert ist, dass sich die ankommende Tiefe hinter dem aktuellen Inhalt des Tiefenpuffers befindet oder von diesem verdeckt wird. Auch hier wurde Bandbreite eingespart, da nur H-Bits anstelle von N-Bits gelesen wurden, um die Antwort zu finden.
-
In anderen Fällen ist das Ergebnis nicht eindeutig und ist die Verwendung nur des H-Satzes von Bits nicht aussagekräftig. Trotzdem muss in vielen Fällen Bandbreite eingespart werden. Wenn das Ergebnis nicht eindeutig ist, müssen die niederwertigen Bits ebenfalls gelesen werden, um den Tiefentest aufzulösen. Dann wird der Tiefentest erneut an den niederwertigen Bits durchgeführt, und falls der Tiefentest nicht bestanden wird, sind keine Speicheraktualisierungen erforderlich. Falls jedoch der Tiefentest bestanden wird, muss Zi lo in einen Cache geschrieben werden. Es ist jedoch nicht erforderlich, Zi hi zu schreiben, da bereits bekannt ist, dass dieser Wert, so wie er in dem Puffer gespeichert ist, korrekt ist.
-
Auf der Basis von Experimenten ist bei einigen Ausführungsformen bestimmt worden, dass der optimale Wert für H für die Lesebandbreite 8 Bits ist und die optimal Schreibbandbreite für H 9 Bits ist. Somit kann bei einigen Ausführungsformen H = 8 als die sinnvollste Wahl gewählt werden, da dies mit den meisten Speicher-Layouts gut zusammenpasst.
-
Die Zhi Bits für eine kleine rechteckige Region von Pixeln, wie z. B. eine Kachel, enthalten in vielen Fällen nur einige wenige Sätze von einzigartigen H-Bit-Werten. Bei einer Ausführungsform können jeweils 2k Werte von H-Bits verwendet werden. Dann benötigt jeder Abtastwert/jedes Pixel einen k-Bit-Index, um auf einen dieser 2k Werte zu zeigen. In vielen Fällen löst k = 2 eine Komprimierung in der Mehrzahl von Fällen aus und bietet eine großzügige Komprimierung. Zum Beispiel können für 8×8-Pixel-Kacheln die höchstwertigen Bits 8·8·8 = 512 Bits zur Speicherung sein, während bei der hier beschriebenen Vorgehensweise nur 160 Bits zur Speicherung benötigt würden (4·8 + 8·8·2). Verschiedene Variationen von k sind ebenfalls vorstellbar. Die komprimierten höchstwertigen Bits können bei einigen Ausführungsformen zusammen mit den Zmin- und den Zmax-Werten in einem schnellen kleinen Speicher gespeichert werden.
-
Für die Zlo Bits einer Kachel kann eine Komprimierung angewendet werden. Zum Beispiel kann die Tiefenversatz-Komprimierungstechnik angewendet werden. Siehe Jon Hasselgren und Tomas Akenine-Möller, ”Efficient Depth Buffer Compression,” Graphics Hardware, Seiten 103–110, 2006.
-
2 zeigt eine Software-, Firmware- und/oder Hardware-Ausführungsform. Bei der Software- und der Firmware-Ausführungsform kann diese durch von einem Computer ausgeführte Befehle, die in einem oder mehreren nichttransitorischen computerlesbaren Medien, wie z. B. einer magnetischen, optischen oder Halbleiter-Speichereinrichtung, gespeichert sind, implementiert werden.
-
Bei einer Ausführungsform können zwei separate Caches 30 und 32 (oder zwei separate Abschnitte desselben Speichers) zur Speicherung der H-Bits und der L-Bits verwendet werden. Bei einigen Ausführungsformen können sich diese Caches in einem gemeinsam genutzten Cache befinden, und sie können auch einen Cache der zweiten Ebene gemeinsam nutzen.
-
Die ankommenden Tiefenwerte Zi kommen zu einem Modul 20 für einen konservativen Tiefenvergleich. Es führt die drei bereits beschriebenen Tests durch. Falls Zi größer ist als Zd c, wird das Ergebnis erhalten und kann der Ablauf wie angezeigt bei 22 enden. Falls Zi kleiner als Zd f wahr ist, sollten die Werte für die Hund L-Tiefenwerte sowohl in den L-Speichercache 32 als auch in den H-Speichercache 30 geschrieben werden. Falls der konservative Tiefenvergleich unbestimmt ist, müssen die niederwertigen Werte aus der L-Speichereinrichtung 32 gelesen werden und dann zusammen mit den H- oder höherwertigen Werten in dem Vergleichsmodul 28 verglichen werden. Falls der Vergleich bestanden wird, müssen die L-Werte die aktuell in dem L-Speichercache 32 gespeicherten Werte ersetzen. Andernfalls erfolgt eine Nichtbestanden-Anzeige und endet der Ablauf.
-
3 zeigt eine Ausführungsform eines Systems 700. Bei Ausführungsformen kann das System 700 ein Mediensystem sein, obwohl das System 700 nicht auf diesen Kontext beschränkt ist. Zum Beispiel kann das System 700 in einen Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, ein Tablet, Touchpad, einen tragbaren Computer, Handheld-Computer, Palmtop-Computer, persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon/PDA, einen Fernseher, eine Smartvorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-Fernseher), mobile Internetvorrichtung (mobile internet device – MID), Benachrichtigungsvorrichtung, Datenkommunikationsvorrichtung und so weiter integriert sein.
-
Bei Ausführungsformen umfasst das System 700 eine Plattform 702, die mit einer Anzeige 720 gekoppelt ist. Die Plattform 702 kann einen Inhalt aus einer Inhaltsvorrichtung, wie z. B. Inhaltsdienstvorrichtung(en) 730 oder Inhaltsliefervorrichtung(en) 740 oder anderen im Wesentlichen gleichen Inhaltsquellen empfangen. Eine Navigationssteuerungseinrichtung 750, die ein oder mehrere Navigationsmerkmale umfasst, kann verwendet werden, um zum Beispiel mit der Plattform 702 und/oder Anzeige 720 zu interagieren. Jede dieser Komponenten wird nachstehend noch genauer beschrieben.
-
Bei Ausführungsformen kann die Plattform 702 jede Kombination aus einem Chipsatz 705, Prozessor 710, Speicher 712, einer Speichereinrichtung 714, einem Grafiksubsystem 715, Anwendungen 716, einem globalen Positionierungssystem (GPS) 721, einer Kamera 723 und/oder Funkvorrichtung 718 umfassen. Der Chipsatz 705 kann eine Wechselkommunikation zwischen Prozessor 710, Speicher 712, Speichereinrichtung 714, Grafiksubsystem 715, Anwendungen 716 und/oder Funkvorrichtung 718 bieten. Zum Beispiel kann der Chipsatz 705 einen (nicht gezeigten) Speichereinrichtungsadapter aufweisen, der in der Lage ist, eine Wechselkommunikation mit der Speichereinrichtung 714 zu bieten.
-
Des Weiteren kann die Plattform 702 ein Betriebssystem 770 aufweisen. Eine Schnittstelle zu dem Prozessor 772 kann das Betriebssystem und den Prozessor 710 verbinden.
-
Eine Firmware 790 kann vorgesehen sein, um Funktionen, wie z. B. die Bootsequenz, zu implementieren. Ein Aktualisierungsmodul, das eine Aktualisierung der Firmware von außerhalb der Plattform 702 ermöglicht, kann vorgesehen sein. Zum Beispiel kann das Aktualisierungsmodul einen Code zum Bestimmen, ob der Versuch der Aktualisierung authentisch ist, und zum Identifizieren der jüngsten Aktualisierung der Firmware 790 aufweisen, um die Bestimmung zu vereinfachen, wann Aktualisierungen erforderlich sind.
-
Bei einigen Ausführungsformen kann die Plattform 702 von einer externen Energieversorgung mit Energie versorgt werden. In einigen Fällen kann die Plattform 702 ferner eine interne Batterie 780 aufweisen, die bei Ausführungsformen, bei denen keine externe Energieversorgung verwendet wird oder bei Ausführungsformen, bei denen entweder eine Batterie als Energiequelle oder Energie aus einer externen Quelle möglich ist, als Energiequelle dient.
-
Die in 2 gezeigte Sequenz kann dadurch bei Software- und Firmware-Ausführungsformen implementiert sein, dass diese in die Speichereinrichtung 714 oder in den Speicher, in den Prozessor 710 oder das Grafiksubsystem 715, um nur einige Beispiele zu nennen, integriert sind. Bei einer Ausführungsform kann das Grafiksubsystem 715 die Grafikverarbeitungseinheit aufweisen und kann der Prozessor 710 eine zentrale Verarbeitungseinheit sein.
-
Der Prozessor 710 kann als Prozessor eines Computers mit komplexem Befehlssatz (Complex Instruction Set Computer – CISC) oder Computers mit reduziertem Befehlssatz (Reduced Instruction Set Computer – RISC), x86-Befehlsatz-kompatibler Prozessor, Multikern- oder anderer Mikroprozessor oder zentrale Verarbeitungseinheit (central processing unit – CPU) implementiert sein. Bei Ausführungsformen kann der Prozessor 710 Doppelkernprozessor(en), Doppelkern-Mobilprozessor(en) und so weiter umfassen.
-
Der Speicher 712 kann als flüchtige Speichervorrichtung, wie z. B., jedoch nicht beschränkt auf, Schreib-/Lesespeicher (Random Access Memory – RAM), dynamischer Schreib-/Lesespeicher (Dynamic Random Access Memory – DRAM) oder statischer RAM (SRAM) implementiert sein.
-
Die Speichereinrichtung 714 kann als nichtflüchtige Speicherungsvorrichtung, wie z. B., jedoch nicht beschränkt auf, Magnetplattenlaufwerk, Optikplattenlaufwerk, Bandlaufwerk, interne Speicherungsvorrichtung, verbundene Speicherungsvorrichtung, Flashspeicher, batteriegestützter SDRAM (synchroner DRAM) und/oder Speichervorrichtung mit Netzzugang implementiert sein. Bei Ausführungsformen kann die Speichereinrichtung 714 eine Technologie zum Vergrößern eines verstärkten Speicherleistungsschutzes für wertvolle digitale Medien umfassen, wenn zum Beispiel mehrere Festplattenlaufwerke vorgesehen sind.
-
Das Grafiksubsystem 715 kann eine Verarbeitung von Bildern, wie z. B. Standbildern oder Video, zur Anzeige durchführen. Das Grafiksubsystem 715 kann zum Beispiel eine Grafikverarbeitungseinheit (graphics processing unit – GPU) oder eine visuelle Verarbeitungseinheit (visual processing unit – VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafiksubsystem 715 und die Anzeige 720 kommunikativ zu koppeln. Zum Beispiel kann die Schnittstelle jede von High-Definition Multimedia Interface-, Displayfort-, Drahtlos-HDMI- und/oder Drahtlos-HD-tauglichen Techniken sein. Das Grafiksubsystem 715 kann in den Prozessor 710 oder Chipsatz 705 integriert sein. Das Grafiksubsystem 715 kann eine eigenständige Karte sein, die kommunikativ mit dem Chipsatz 705 gekoppelt ist.
-
Die hier beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert sein. Zum Beispiel kann die Grafik- und/oder Videofunktionalität in einen Chipsatz integriert sein. Alternativ kann ein diskreter Grafik- und/oder Videoprozessor verwendet werden. Bei noch einer weiteren Ausführungsform können die Grafik- und/oder Videofunktionen von einem Universalprozessor, einschließlich eines Multikernprozessors, implementiert sein. Bei einer weiteren Ausführungsform können die Funktionen in einer Verbraucherelektronikvorrichtung implementiert sein.
-
Die Funkvorrichtung 718 kann eine oder mehrere Funkvorrichtungen aufweisen, die in der Lage sind, Signale unter Anwendung verschiedener geeigneter Drahtloskommunikationstechniken zu senden und zu empfangen. Solche Techniken können Kommunikationen über ein oder mehrere drahtlose Netze umfassen. Beispielhafte drahtlose Netze umfassen (sind jedoch nicht beschränkt auf) drahtlose lokale Netze (wireless local area networks – WLANs), drahtlose persönliche Netze (wireless personal area networks – WPANs), drahtlose städtische Netze (wireless metropolitan area networks – WMANs), Funknetze und Satellitennetze. Beim Kommunizieren über solche Netze kann die Funkvorrichtung 718 entsprechend einem oder mehreren anwendbaren Standards in jeder Version arbeiten.
-
Bei Ausführungsformen kann die Anzeige 720 jeden fernsehartigen Monitor oder Anzeige umfassen. Die Anzeige 720 kann zum Beispiel einen Computeranzeigebildschirm, eine Berührungsbildschirmanzeige, einen Videomonitor, eine fernsehähnliche Vorrichtung und/oder einen Fernseher umfassen. Die Anzeige 720 kann digital und/oder analog sein. Bei Ausführungsformen kann die Anzeige 720 eine holografische Anzeige sein. Ferner kann die Anzeige 720 eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten übertragen. Zum Beispiel können solche Projektionen eine visuelle Überblendung für eine Anwendung einer mobilen erweiterten Realität (mobile augmented reality – MAR) sein. Unter der Steuerung einer oder mehrerer Software-Anwendungen 716 kann die Plattform 702 eine Benutzerschnittstelle 722 auf der Anzeige 720 anzeigen.
-
Bei Ausführungsformen kann (können) die Inhaltsdienstvorrichtung(en) 730 von jedem nationalen, internationalen und/oder unabhängigen Dienst gehostet werden, und somit kann die Plattform 702 zum Beispiel über das Internet darauf zugreifen. Die Inhaltsdienstvorrichtung(en) 730 kann (können) mit der Plattform 702 und/oder mit der Anzeige 720 gekoppelt sein. Die Plattform 702 und/oder die Inhaltsdienstvorrichtung(en) 730 können mit einem Netz 760 gekoppelt sein, um Medieninformationen zu und von einem Netz 760 zu kommunizieren (z. B. zu senden und/oder zu empfangen). Die Inhaltsliefervorrichtung(en) 740 kann (können) ebenfalls mit der Plattform 702 und/oder mit der Anzeige 720 gekoppelt sein.
-
Bei Ausführungsformen kann (können) die Inhaltsdienstvorrichtung(en) 730 eine Kabelfernsehbox, einen Personalcomputer, ein Netz, Telefon, internetfähige Vorrichtungen oder Einrichtungen, die in der Lage sind, digitale Informationen und/oder Inhalte zu liefern, und jede andere im Wesentlichen gleiche Vorrichtung umfassen, die in der Lage ist, unidirektional oder bidirektional über das Netz 760 oder direkt Inhalte zwischen Inhaltsanbietern und der Plattform 702 und/oder Anzeige 720 zu kommunizieren. Es sei darauf hingewiesen, dass der Inhalt unidirektional und/oder bidirektional über das Netz 760 zu und von jeder der Komponenten in dem System 700 und einem Inhaltsanbieter kommuniziert werden kann. Beispiele für einen Inhalt können Medieninformationen umfassen, einschließlich zum Beispiel Video, Musik, medizinische und Spielinformationen und so weiter.
-
Die Inhaltsdienstvorrichtung(en) 730 empfängt (empfangen) einen Inhalt, wie z. B. Kabelfernsehprogramme, einschließlich Medieninformationen, digitalen Informationen und/oder anderen Inhalt. Beispiele für Inhaltsanbieter können jeden Kabel- oder Satellitenfernseh- oder -radio- oder Internetinhaltsanbieter umfassen. Die dargelegten Beispiele dienen nicht zum Einschränken von Ausführungsformen.
-
Bei Ausführungsformen kann die Plattform 702 Steuersignale von der Navigationssteuerungseinrichtung 750 empfangen, die ein oder mehrere Navigationsmerkmale aufweist. Die Navigationsmerkmale der Steuerungseinrichtung 750 können verwendet werden, um zum Beispiel mit der Benutzerschnittstelle 722 zu interagieren. Bei Ausführungsformen kann die Navigationssteuerungseinrichtung 750 eine Zeigevorrichtung sein, die eine Computer-Hardware-Komponente (speziell eine Mensch-Schnittstellenvorrichtung) sein kann, welche es einem Benutzer ermöglicht, räumliche (z. B. kontinuierliche und multidimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie z. B. grafische Benutzerschnittstellen (graphical user interfaces – GUI) und Fernseher und Monitore, ermöglichen es einem Benutzer, Daten mittels physischer Gesten zu steuern und zu dem Computer oder Fernseher zu liefern.
-
Bewegungen der Navigationsmerkmale der Steuerungseinrichtung 750 können auf einer Anzeige (z. B. der Anzeige 720) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder anderer visueller Anzeiger, die auf der Anzeige angezeigt sind, wiederholt werden. Zum Beispiel können unter der Steuerung der Software-Anwendungen 716 die Navigationsmerkmale, die sich auf der Navigationssteuerungseinrichtung 750 befinden, auf virtuelle Navigationsmerkmale abgebildet werden, die zum Beispiel an der Benutzerschnittstelle 722 angezeigt sind. Bei Ausführungsformen kann die Steuerungseinrichtung 750 keine separate Komponente sein, sondern in die Plattform 702 und/oder Anzeige 720 integriert sein. Die Ausführungsformen sind jedoch nicht auf die Elemente oder in dem hier gezeigten und beschriebenen Kontext beschränkt.
-
Bei Ausführungsformen können (nicht gezeigte) Treiber eine Technologie aufweisen, die es Benutzern ermöglicht, die Plattform 702 wie einen Fernseher zum Beispiel durch Knopfdruck nach dem anfänglichen Hochfahren nach der Aktivierung sofort ein- oder auszuschalten. Eine Programmlogik kann es der Plattform 702 ermöglichen, einen Inhalt zu Medienadaptern oder (einer) anderen Inhaltsdienstvorrichtung(en) 730 oder Inhaltliefervorrichtung(en) 740 zu streamen, wenn die Plattform ”aus”geschaltet ist. Des Weiteren kann der Chipsatz 705 eine Hardware- und/oder Software-Unterstützung zum Beispiel für 5.1 Surround-Sound-Audio und/oder hochauflösendes 7.1 Surround-Sound-Audio umfassen. Die Treiber können einen Grafiktreiber für integrierte Grafikplattformen umfassen. Bei Ausführungsformen kann der Grafiktreiber eine Peripheriekomponentenverbindungs-(peripheral component interconnect – PCI-)Express-Grafikkarte umfassen.
-
Bei verschiedenen Ausführungsformen können eine oder mehrere der in dem System 700 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 702 und die Inhaltsdienstvorrichtung(en) 730 integriert sein oder können die Plattform 702 und die Inhaltsliefervorrichtung(en) 740 integriert sein oder können zum Beispiel die Plattform 702, die Inhaltsdienstvorrichtung(en) 730 und die Inhaltsliefervorrichtung(en) 740 integriert sein. Bei verschiedenen Ausführungsformen können die Plattform 702 und die Anzeige 720 eine integrierte Einheit sein. Die Anzeige 720 und die Inhaltsdienstvorrichtung(en) 730 können integriert sein, oder es können zum Beispiel die Anzeige 720 und die Inhaltsliefervorrichtung(en) 740 integriert sein. Diese Beispiele dienen nicht als Einschränkung der Erfindung.
-
Bei verschiedenen Ausführungsformen kann das System 700 als drahtloses System, drahtgebundenes System oder Kombination aus beiden implementiert sein. Wenn das System 700 als drahtloses System implementiert ist, kann es Komponenten und Schnittstellen aufweisen, die zum Kommunizieren über drahtlose gemeinsam genutzte Medien, wie z. B. eine oder mehrere Antennen, Sender, Empfänger, Sendeempfänger, Verstärker, Filter, Steuerlogik und so weiter, geeignet sind. Bei einem Beispiel für gemeinsam genutzte Medien kann es sich um Abschnitte eines drahtlosen Spektrums, wie z. B. des RF-Spektrums und so weiter, handeln. Wenn das System 700 als drahtgebundenes System implementiert ist, kann es Komponenten und Schnittstellen aufweisen, die zum Kommunizieren über drahtgebundene Kommunikationsmedien geeignet sind, wie z. B. Eingangs-/Ausgangs-(input/output – I/O-)Adapter, physikalische Verbindungsteile zum Verbinden des I/O-Adapters mit einem entsprechenden drahtgebundenen Kommunikationsmedium, einer Netzschnittstellenkarte (network interface card – NIC), Plattensteuerungseinrichtung, Videosteuerungseinrichtung, Audiosteuerungseinrichtung und so weiter. Beispiele für drahtgebundene Kommunikationsmedien können einen Draht, ein Kabel, Metallleiter, eine gedruckte Leiterplatte (printed circuit board – PCB), Rückwandplatine, Schaltmatrix, ein Halbleitermaterial, einen Twisted-Pair-Draht, ein Koaxialkabel, Glasfasern und so weiter umfassen.
-
Die Plattform 702 kann einen oder mehrere logische oder physikalische Kanäle zum Kommunizieren von Informationen bilden. Die Informationen können Medieninformationen und Steuerinformationen umfassen. Die Medieninformationen können sich auf Daten beziehen, die einen für einen Benutzer bestimmten Inhalt darstellen. Beispiele für einen Inhalt können zum Beispiel Daten von einem Gespräch, einer Videokonferenz, einem Streaming-Video, einer elektronischen Post-(”E-Mail-”)Nachricht, einer Voicemail-Nachricht, alphanumerischen Symbolen, Grafiken, einem Bild, Video, Text und so weiter umfassen. Daten aus einem Gespräch können zum Beispiel Sprachinformationen, Sprachpausen, Hintergrundrauschen, Komfortrauschen, Töne und so weiter umfassen. Steuerinformationen können sich auf Daten beziehen, die Befehle, Anweisungen oder Steuerwörter darstellen, welche für ein automatisiertes System bestimmt sind. Zum Beispiel können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu leiten oder um einen Knotenpunkt anzuweisen, die Medieninformationen auf eine vorbestimmte Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf Elemente oder in dem Kontext beschränkt, die in 3 gezeigt und beschrieben sind.
-
Wie oben beschrieben worden ist, kann das System 700 in verschiedenen physikalischen Formen oder Formfaktoren ausgebildet sein. 4 zeigt Ausführungsformen einer Vorrichtung 800 mit einem kleinen Formfaktor, in der das System 700 enthalten sein kann. Bei Ausführungsformen kann die Vorrichtung 800 zum Beispiel als mobile Rechnervorrichtung mit Drahtlosfähigkeiten implementiert sein. Eine mobile Rechnervorrichtung kann sich auf jede Vorrichtung mit einem Verarbeitungssystem und einer mobilen Energiequelle oder -versorgung, wie zum Beispiel einer oder mehreren Batterien, beziehen.
-
Wie oben beschrieben worden ist, können Beispiele für eine mobile Rechnervorrichtung einen Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, ein Tablet, Touchpad, einen tragbaren Computer, Handheld-Computer, Palmtop-Computer, persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus Mobiltelefon/PDA, einen Fernseher, eine Smart-Vorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-Fernseher), mobile Internetvorrichtung (MID), Nachrichtenübermittlungsvorrichtung, Datenkommunikationsvorrichtung und so weiter beziehen.
-
Beispiele für eine mobile Rechnervorrichtung können ferner Computer umfassen, die so ausgelegt sind, dass sie von einer Person am Körper getragen werden, wie z. B. einen Handgelenk-Computer, Finger-Computer, Ring-Computer, Brillen-Computer, Gürtelschnallen-Computer, Armband-Computer, Schuh-Computer, Kleidungs-Computer und andere am Körper tragbare Computer. Bei Ausführungsformen kann zum Beispiel eine mobile Rechnervorrichtung als Smartphone implementiert sein, das in der Lage ist, Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen auszuführen. Obwohl einige Ausführungsformen so beschrieben worden sein können, dass eine mobile Rechnervorrichtung zum Beispiel als Smartphone implementiert ist, sei darauf hingewiesen, dass auch andere Ausführungsformen mit anderen drahtlosen mobilen Rechnervorrichtungen implementiert sein können. Die Ausführungsformen sind in diesem Kontext nicht beschränkt.
-
Wie in 5 gezeigt ist, kann die Vorrichtung 800 ein Gehäuse 802, eine Anzeige 804, eine Eingangs-/Ausgangs-(I/O-)Vorrichtung 806 und eine Antenne 808 umfassen. Die Vorrichtung 800 kann ferner Navigationsmerkmale 812 umfassen. Die Anzeige 804 kann jede geeignete Anzeigeeinheit zum Anzeigen von Informationen, die für eine mobile Rechnervorrichtung zweckdienlich sind, umfassen. Die I/O-Vorrichtung 806 kann jede geeignete I/O-Vorrichtung zum Eingeben von Informationen in eine mobile Rechnervorrichtung umfassen. Beispiele für die I/O-Vorrichtung 806 können eine alphanumerische Tastatur, ein nummerisches Tastenfeld, ein Touchpad, Eingabetasten, Schaltflächen, Schalter, Kippschalter, Mikrofone, Lautsprecher, eine Spracherkennungsvorrichtung und eine Software und so weiter umfassen. Informationen können ferner mittels eines Mikrofons in die Vorrichtung 800 eingegeben werden. Solche Informationen können von einer 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 aus beiden implementiert werden. Beispiele für Hardware-Elemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (application specific integrated circuits – ASIC), programmierbare logische Vorrichtungen (programmable logic devices – PLD), Digitalsignalprozessoren (DSP), ein feldprogrammierbares Gate-Array (FPGA), logische Gates, Register, eine Halbeitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter umfassen. Beispiele für eine Software können Software-Komponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, eine Betriebssystem-Software, Middleware-, Firmware-, Software-Module, Routinen, Subroutinen, Funktionen, Verfahren, Abläufe, Software-Schnittstellen, Anwendungsprogrammschnittstellen (application program interfaces – API), Befehlssätze, einen Rechnercode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole und jede Kombination daraus umfassen. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert wird, kann entsprechend einer Anzahl von Faktoren, wie z. B. gewünschter Berechnungsrate, Leistungspegel, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und anderen Auslegungs- oder Leistungsbeschränkungen, variieren.
-
Ein oder mehrere Aspekte mindestens einer Ausführungsform können mittels charakteristischer Anweisungen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das eine unterschiedliche Logik in dem Prozessor darstellt und das, wenn es von einer Maschine gelesen wird, bewirkt, dass die Maschine eine Logik zum Durchführen der hier beschriebenen Techniken herstellt. Solche Verkörperungen, die als ”IP-Kerne” bekannt sind, können auf einem realen maschinenlesbaren Medium gespeichert werden und zu verschiedenen Kunden oder Herstellanlagen zwecks Ladens in die Fertigungsmaschinen, die die Logik oder den Prozessor tatsächlich herstellen, geliefert werden.
-
Die hier beschriebenen Grafikverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert sein. Zum Beispiel kann die Grafikfunktionalität in einen Chipsatz integriert sein. Alternativ kann ein diskreter Grafikprozessor verwendet werden. Als noch weitere Ausführungsform können die Grafikfunktionen von einem Universalprozessor, einschließlich eines Multikernprozessors, implementiert werden.
-
Bezugnahmen in der Patentschrift auf ”eine der Ausführungsformen” oder ”eine Ausführungsform” bedeutet, dass ein besonderes Merkmal, Struktur oder Charakteristikum, das/die in Verbindung mit der Ausführungsform beschrieben wird, bei mindestens einer Implementierung innerhalb der vorliegenden Erfindung enthalten ist. Somit bezieht sich das Auftreten der Formulierung ”eine der Ausführungsformen” oder ”bei einer Ausführungsform” nicht notwendigerweise auf dieselbe Ausführungsform. Ferner können die besonderen Merkmale, Strukturen oder Charakteristika in anderen geeigneten Formen als der speziellen dargestellten Ausführungsform eingesetzt sein, und sämtliche solcher Formen können in den Patentansprüchen der vorliegenden Anmeldung enthalten sein.
-
Obwohl die vorliegende Erfindung mit Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben worden ist, erkennen Fachleute auf dem Sachgebiet zahlreiche Modifikationen und Variationen derselben. Es ist vorgesehen, dass die beiliegenden Patentansprüche sämtliche solcher Modifikationen und Variationen abdecken, die in das Wesen und den Umfang dieser vorliegenden Erfindung fallen.