DE112013004618T5 - Tiefenpufferung - Google Patents

Tiefenpufferung Download PDF

Info

Publication number
DE112013004618T5
DE112013004618T5 DE112013004618.0T DE112013004618T DE112013004618T5 DE 112013004618 T5 DE112013004618 T5 DE 112013004618T5 DE 112013004618 T DE112013004618 T DE 112013004618T DE 112013004618 T5 DE112013004618 T5 DE 112013004618T5
Authority
DE
Germany
Prior art keywords
bits
depth
media
order bits
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112013004618.0T
Other languages
English (en)
Inventor
Jim K. Nilsson
Thomas G. Akenine-Möller
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112013004618T5 publication Critical patent/DE112013004618T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

Bei einigen Ausführungsformen können Tiefenwerte in höher- und niederwertige Bits aufgeteilt werden. Dabei kann eine gewisse Verarbeitung auf der Basis nur der höherwertigen Bits durchgeführt werden. Wenn die Anzahl von höherwertigen Bits wesentlich niedriger ist als die Gesamtanzahl von Bits, kann eine gewisse Bandbreite erhalten werden. Mit anderen Worten kann durch Verwenden nur der höherwertigen Bits für einige der Tiefenpufferungs-Operationen eine Speicherbandbreiten-Nutzung verringert werden, wodurch die Effizienz verbessert wird.

Description

  • 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.

Claims (27)

  1. Verfahren, das umfasst: Aufteilen von Bits, die einen Tiefenwert in einer Grafikverarbeitungseinheit bilden, in höher- und niederwertige Bits; und anfängliches Durchführen einer Tiefenpufferungs-Analyse nur unter Verwendung der höherwertigen Bits.
  2. Verfahren nach Anspruch 1, das das Verwenden nur der niederwertigen Bits umfasst, falls die Tiefenanalyse mit den höherwertigen Bits unbestimmt ist.
  3. Verfahren nach Anspruch 1, das das Durchführen eines kleiner-als-Tiefentests umfasst.
  4. Verfahren nach Anspruch 1, das das Detektieren, ob der Tiefentest determinierend ist, unter Verwendung der niederwertigen Bits umfasst.
  5. Verfahren nach Anspruch 4, das, falls nicht, kein Durchführen einer Speicheraktualisierung umfasst.
  6. Verfahren nach Anspruch 4, das, falls ja, das Schreiben der niederwertigen Bits in einen Cache umfasst.
  7. Verfahren nach Anspruch 6, das das Nichtspeichern der höherwertigen Bits umfasst.
  8. Verfahren nach Anspruch 1, das das Verwenden von acht Bits des Tiefenwerts als die höherwertigen Bits umfasst.
  9. Ein oder mehr nichttransitorische computerlesbare Medien, die Befehle speichern, welche von einem Prozessor ausgeführt werden, um eine Sequenz durchzuführen, die umfasst: Aufteilen von Bits, die einen Tiefenwert in einer Grafikverarbeitungseinheit bilden, in höher- und niederwertige Bits; und anfängliches Durchführen einer Tiefenpufferungs-Analyse nur unter Verwendung der höhenwertigen Bits.
  10. Medien nach Anspruch 9, die ferner Befehle zum Durchführen der Sequenz, einschließlich des Verwendens nur der niederwertigen Bits, falls die Tiefenanalyse mit den höherwertigen Bits unbestimmt ist, speichern.
  11. Medien nach Anspruch 9, die ferner Befehle zum Durchführen der Sequenz, einschließlich des Durchführens eines kleiner-als-Tiefentests, speichern.
  12. Medien nach Anspruch 9, die ferner Befehle zum Durchführen der Sequenz, einschließlich des Detektierens unter Verwendung der niederwertigen Bits, ob der Tiefentest determinierend ist, speichern.
  13. Medien nach Anspruch 12, die ferner Befehle zum Durchführen der Sequenz, einschließlich, falls nicht, des Durchführens keiner Speicheraktualisierung, speichern.
  14. Medien nach Anspruch 9, die ferner Befehle zum Durchführen der Sequenz, einschließlich, falls ja, des Schreibens der niederwertigen Bits in einen Cache, speichern.
  15. Medien nach Anspruch 14, die ferner Befehle zum Durchführen der Sequenz, einschließlich des Nichtspeicherns der höherwertigen Bits, speichern.
  16. Medien nach Anspruch 9, die ferner Befehle zum Durchführen der Sequenz, einschließlich der Verwendung von acht Bits des Tiefenwerts als die höherwertigen Bits, speichern.
  17. Grafikverarbeitungseinheit, die umfasst: einen Kern zum Aufteilen von Tiefenwertbits in eine erste Gruppe von höherwertigen Bits und eine zweite Gruppe von niederwertigen Bits und dann zum Analysieren einer Tiefenpufferung unter Verwendung nur der ersten Gruppe; und einen Speicher, der mit dem Kern gekoppelt ist.
  18. Einheit nach Anspruch 17, wobei der Kern die niederwertigen Bits der Tiefenanalyse verwendet, wenn die höherwertigen Bits unbestimmt sind.
  19. Einheit nach Anspruch 17, wobei der Kern unter Verwendung der niederwertigen Bits detektiert, ob der Tiefentest determinierend ist.
  20. Einheit nach Anspruch 19, wobei, falls nicht, der Kern keine Speicheraktualisierung durchführt.
  21. Einheit nach Anspruch 19, wobei, falls ja, der Kern die niederwertigen Bits in einen Cache schreibt.
  22. Einheit nach Anspruch 21, wobei der Kern die höherwertigen Bits nicht speichert.
  23. Einheit nach Anspruch 17, wobei der Kern acht Bits des Tiefenwerts als die höherwertigen Bits verwendet.
  24. Einheit nach Anspruch 17, wobei der Kern einen kleiner-als-Tiefentest durchführt.
  25. Einheit nach Anspruch 17, die ein Betriebssystem aufweist.
  26. Einheit nach Anspruch 17, die eine Batterie aufweist.
  27. Einheit nach Anspruch 17, die eine Firmware und ein Modul zum Aktualisieren der Firmware aufweist.
DE112013004618.0T 2012-11-20 2013-06-27 Tiefenpufferung Withdrawn DE112013004618T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/681,614 US9665973B2 (en) 2012-11-20 2012-11-20 Depth buffering
US13/681,614 2012-11-20
PCT/US2013/048058 WO2014081473A1 (en) 2012-11-20 2013-06-27 Depth buffering

Publications (1)

Publication Number Publication Date
DE112013004618T5 true DE112013004618T5 (de) 2015-06-03

Family

ID=50727500

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013004618.0T Withdrawn DE112013004618T5 (de) 2012-11-20 2013-06-27 Tiefenpufferung

Country Status (5)

Country Link
US (1) US9665973B2 (de)
CN (1) CN104756150B (de)
DE (1) DE112013004618T5 (de)
TW (1) TWI535277B (de)
WO (1) WO2014081473A1 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164281B2 (en) 2013-03-15 2015-10-20 Honda Motor Co., Ltd. Volumetric heads-up display with dynamic focal plane
US20160054563A9 (en) * 2013-03-14 2016-02-25 Honda Motor Co., Ltd. 3-dimensional (3-d) navigation
US9393870B2 (en) 2013-03-15 2016-07-19 Honda Motor Co., Ltd. Volumetric heads-up display with dynamic focal plane
US10339711B2 (en) 2013-03-15 2019-07-02 Honda Motor Co., Ltd. System and method for providing augmented reality based directions based on verbal and gestural cues
US9378644B2 (en) 2013-03-15 2016-06-28 Honda Motor Co., Ltd. System and method for warning a driver of a potential rear end collision
US9747898B2 (en) 2013-03-15 2017-08-29 Honda Motor Co., Ltd. Interpretation of ambiguous vehicle instructions
US10215583B2 (en) 2013-03-15 2019-02-26 Honda Motor Co., Ltd. Multi-level navigation monitoring and control
US9251715B2 (en) 2013-03-15 2016-02-02 Honda Motor Co., Ltd. Driver training system using heads-up display augmented reality graphics elements
US9552620B2 (en) * 2014-06-30 2017-01-24 Intel Corporation Depth offset compression
US10380789B2 (en) * 2016-09-16 2019-08-13 Intel Corporation Method and apparatus for efficient depth prepass
US11417065B2 (en) 2019-10-29 2022-08-16 Magic Leap, Inc. Methods and systems for reprojection in augmented-reality displays

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844571A (en) * 1996-06-10 1998-12-01 International Business Machines Corporation Z buffer bandwidth reductions via split transactions
US6633298B2 (en) * 1999-07-31 2003-10-14 Hewlett-Packard Development Company, L.P. Creating column coherency for burst building in a memory access command stream
US6498605B2 (en) 1999-11-18 2002-12-24 Intel Corporation Pixel span depth buffer
US6677945B2 (en) 2001-04-20 2004-01-13 Xgi Cayman, Ltd. Multi-resolution depth buffer
JP2003099250A (ja) * 2001-09-20 2003-04-04 Oki Electric Ind Co Ltd レジスタ読み出し回路及びマイクロプロセッサ
FR2841013B1 (fr) * 2002-06-12 2004-09-03 Mbda France Procede et systeme de gestion des evenements
US7202867B1 (en) * 2003-01-31 2007-04-10 Microsoft Corporation Generation of glow effect
ATE383627T1 (de) 2004-11-19 2008-01-15 Ericsson Telefon Ab L M Verfahren und vorrichtung zur erzeugung dreidimensionaler bilder
CN100551021C (zh) * 2007-09-24 2009-10-14 威盛电子股份有限公司 像素色彩值数据决定装置与方法
US8106914B2 (en) * 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit
US8878849B2 (en) 2007-12-14 2014-11-04 Nvidia Corporation Horizon split ambient occlusion
WO2010064312A1 (ja) * 2008-12-04 2010-06-10 富士通株式会社 記憶装置および故障診断方法
CN101729919B (zh) * 2009-10-30 2011-09-07 无锡景象数字技术有限公司 基于fpga的全自动平面视频转立体视频系统
WO2011073710A1 (en) * 2009-12-16 2011-06-23 Sandisk Il Ltd Auxiliary parity bits for data written in multi-level cells
US8547394B2 (en) * 2010-05-21 2013-10-01 Seiko Epson Corporation Arranging and processing color sub-pixels
WO2012149084A2 (en) 2011-04-28 2012-11-01 Intel Corporation Depth buffer compression for stochastic motion blur rasterization
AU2011203169C1 (en) * 2011-06-29 2014-07-17 Canon Kabushiki Kaisha Compression of high bit-depth images
US10019353B2 (en) * 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium

Also Published As

Publication number Publication date
US9665973B2 (en) 2017-05-30
CN104756150B (zh) 2018-07-24
WO2014081473A1 (en) 2014-05-30
US20140139524A1 (en) 2014-05-22
CN104756150A (zh) 2015-07-01
TWI535277B (zh) 2016-05-21
TW201424356A (zh) 2014-06-16

Similar Documents

Publication Publication Date Title
DE112013004618T5 (de) Tiefenpufferung
DE102015002218B4 (de) Vermeiden des Sendens unveränderlicher Gebiete zur Anzeige
DE112013004778T5 (de) Kodierung von Bildern unter Verwendung eines 3D-Netzes von Polygonen und entsprechenden Strukturen
DE102015002023B4 (de) Kompakte Tiefenebenendarstellung zum Sortieren letzter Architekturen
DE112013007658B4 (de) Gemeinsame Speichernutzung über eine vereinheitlichte Speicherarchitektur
DE112014002469B4 (de) System und Verfahren zur Erzeugung von Bildern für eine augennaheLichtfeldanzeige
DE102015001814A1 (de) Farbkomprimierung unter Verwendung einer selektiven Farbtransformation
DE102015002364A1 (de) Mipmap-komprimierung
DE112017004246T5 (de) Cache- und komprimierungsinteroperabilität in einer grafikprozessorpipeline
DE112016006081T5 (de) Automatische Echtzeit-Fahrzeugkamerakalibrierung
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE112013004079T5 (de) Gemeinsam genutzter virtueller Speicher
DE112012007037T5 (de) Verarbeiten von Videoinhalt
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE112016004109T5 (de) Echtzeit-mehrfach-fahrzeugdetektion und -tracking
US9934604B2 (en) Culling using masked depths for MSAA
DE112013003714T5 (de) Stochastische Tiefenpufferkompression mittels verallgemeinerter Ebenencodierung
DE102019127726A1 (de) Für fernarbeitsplatz-anwendungen geeignetes streaming individueller anwendungsfenster
DE112013005204T5 (de) Verringern des mit Frequenzänderungen von Prozessoren verbundenen Aufwands
DE112011105927T5 (de) Grafik-Renderingverfahren für autostereoskopisches dreidimensionales Display
DE102015002365A1 (de) Prioritätsbasierte kontextpräemption
DE112015006587T5 (de) Adaptive Batch-Codierung für Slow-Motion-Videoaufzeichnung
DE102019216979A1 (de) Oberflächenrekonstruktion für interaktive augmented reality
DE112012005223T5 (de) Energiemanagement des Displaycontrollers

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06T0001000000

Ipc: G06T0015400000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee