DE112013003714T5 - Stochastische Tiefenpufferkompression mittels verallgemeinerter Ebenencodierung - Google Patents

Stochastische Tiefenpufferkompression mittels verallgemeinerter Ebenencodierung Download PDF

Info

Publication number
DE112013003714T5
DE112013003714T5 DE201311003714 DE112013003714T DE112013003714T5 DE 112013003714 T5 DE112013003714 T5 DE 112013003714T5 DE 201311003714 DE201311003714 DE 201311003714 DE 112013003714 T DE112013003714 T DE 112013003714T DE 112013003714 T5 DE112013003714 T5 DE 112013003714T5
Authority
DE
Germany
Prior art keywords
depth
tile
coefficients
rasterizer
function
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
DE201311003714
Other languages
English (en)
Inventor
Magnus Andersson
Carl J. Munkberg
Thomas G. Akenine-Möller
Jon N. Hasselgren
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 DE112013003714T5 publication Critical patent/DE112013003714T5/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/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding

Abstract

Im Gegensatz zu einem statischen Primitiv, wo die Tiefenfunktion eben ist, ist die Tiefenfunktion für ein sich bewegendes und defokussiertes Dreieck eine rationale Funktion der Zeit und der Linsenparameter. Kompakte Tiefenfunktionen können zur Erstellung eines effizienten Tiefenpuffer-Kompressor/Dekompressors verwendet werden, wodurch die Tiefenpuffergesamtbandbreitenutzung wesentlich verringert wird. Zusätzlich ist dieser Kompressor/Dekompressor im Hinblick auf die auszuführende Anzahl von Befehlen wesentlich einfacher, wodurch er zugänglicher als frühere Verfahren für eine Hardware-Implementierung wird.

Description

  • Querverweis auf eine verwandte Anmeldung
  • Diese Anmeldung beansprucht die Priorität der vorläufigen Anmeldung mit der Seriennummer 61/706,177, die am 27. September 2012 eingereicht wurde und ausdrücklich hierin durch Bezugnahme aufgenommen ist.
  • Hintergrund
  • Das Tiefenpuffern ist die übliche Technik, die verwendet wird, um Sichtbarkeit zwischen Objekten in einer Rasterisierungspipeline zu lösen. Ein Tiefenpuffer erhält einen Tiefenwert für jedes Sample, der die aktuell geringste Tiefe aller zuvor gerenderter Dreiecke, die das Sample überlappen, repräsentiert. Der Tiefenwert, d, kann auf verschiedene Weisen definiert werden.
  • In einem stochastischen Rasterisierer mit vielen Samples pro Pixel benötigt der Tiefenpuffer viel mehr Bandbreite als üblich und die Tiefendaten sollten, wenn möglich, komprimiert werden. Die Tatsache, dass die Tiefenwerte eines Dreiecks durch eine Ebene repräsentiert werden können, wird von den meisten Tiefenpuffer-Kompressionsschemen ausgenützt. Leider gilt dies nicht für bewegende und defokussierte Dreiecke.
  • In einem statischen (2D) Rasterisierer kann die Tiefenfunktion als Ebene ausgedrückt werden. Diese Tatsache wird von vielen Tiefenkompressionsschemen ausgenützt. Die Ebenencodierung unterscheidet sich von anderen Algorithmen, da sie Informationen, die direkt vom Rasterisierer kommen, ausnützt und daher im Kompressor genau die gleiche Ebenengleichung-Darstellung wie der Rasterisierer verwendet. Die Tiefeninformation wird für jede Kachel als Satz von Ebenen und eine Ebenenauswahlmaske pro Sample gespeichert. Wenn nur wenige Dreiecke eine Kachel überlappen, ist es kompakter, die Ebenengleichungen und Auswahlmasken zu speichern als einfach nur die Tiefe pro Sample. Überlappen jedoch zu viele Dreiecke über eine Kachel übersteigen die Speicherkosten mehrerer Tiefenebenen das direkte Speichern der Tiefenwerte pro Sample. Dann kann für jede Kachel die Tiefenkompression deaktiviert werden oder ein anderer Kompressionsalgorithmus (dessen Kompression normalerweise der Kompression der Ebenencodierung unterlegen ist) kann angewandt werden.
  • Während die Ebenencodierung sehr nützlich für eine statische, zweidimensionale Rasterisierung ist, ist die Verwendung von statischen Ebenen bei Rasterisierungen höherer Ordnung, wo die Tiefenfunktion komplexer ist, ungenügend.
  • Kurze Beschreibung der Zeichnungen
  • Manche Ausführungsformen werden mit Bezug auf die folgenden Figuren beschrieben:
  • 1 ist eine schematische Abbildung einer Ausführungsform;
  • 2 ist ein Flussdiagramm für eine Abfolge gemäß einer Ausführungsform;
  • 3 ist ein Abbild einer Bewegungsunschärfe für 4×4 Pixels mit vier Samples pro Pixel, was durch vier Schichten dargestellt wird;
  • 4 ist ein Abbild für eine Defokusunschärfe;
  • 5 ist ein Systemabbild einer Ausführungsform; und
  • 6 ist eine Vorderansicht einer Ausführungsform.
  • Ausführliche Beschreibung
  • Die Ebenencodierung kann verallgemeinert werden, um stochastische Effekte, wie z. B. Bewegungsunschärfe und Tiefenschärfe, zu enthalten. Die Tiefenfunktion-Koeffizienten werden im Rasterisierer berechnet und an den Kompressor weitergeleitet. Eine normale Ebenencodierung verwendet drei Koeffizienten pro Tiefenfunktion (d. h., eine Ebene) in der Form d = A*x + B*Y + C, um die Tiefe eines Dreiecks darzustellen. Wenn das Dreieck einem stochastischen Effekt, wie z. B. Bewegungsunschärfe und Tiefenschärfe, ausgesetzt ist, ist die Tiefenfunktion keine Ebene mehr. Es ist jedoch noch immer möglich, eine Tiefenfunktion der Form d = f(x, y, u, v, t) abzuleiten, indem mehr Koeffizienten pro Dreieck gespeichert werden.
  • Ein Kompressionsalgorithmus, der wesentlich effizienter als frühere Verfahren ist, ist in manchen Ausführungsformen einer der Vorteile dieses Verfahrens. Dieser wird ermöglicht, indem eine analytische Darstellung der Tiefenfunktion direkt vom Rasterisierer-Aufbau bereitgestellt wird, wodurch die mit dem Auffinden einer Darstellung niederer Ordnung im Kompressor zusammenhängenden Kosten früherer Verfahren vermieden werden. Im Gegensatz zu früheren Ebenenkompressionsverfahren ist dieses Verfahren gut für Bewegungsunschärfe- und Tiefenschärfe-Effekte geeignet und bricht in diesen Fällen nicht zusammen. Ferner kann dieses Verfahren in manchen Ausführungsformen gleich gut bei Gleitkommapräzision-Tiefenpuffern funktionieren, da dieses Verfahren auf der Grundlage einer analytischen Darstellung arbeitet.
  • Der mathematische Ausdruck für die Tiefenfunktionen kann im Fall von Bewegungsunschärfe und Tiefenschärfe analysiert werden. Obwohl die Ausdrücke recht kompliziert erscheinen, können diese effektiv vereinfacht werden und kompakte Formen für die Tiefenfunktionen können verwendet werden, um Algorithmen mit wesentlich besseren durchschnittlichen Kompressionsverhältnissen für eine stochastische Rasterisierung zu entwerfen.
  • Im Allgemeinen existieren die Kompressoren und Dekompressoren in einem Tiefensystem. Kompression/Dekompression wird auf einer Kachel (tile), die typischerweise der Satz von Tiefensamples innerhalb eines rechteckigen Bildschirm-Raumbereichs ist, angewandt.
  • Es sei ein Dreieck mit Clip-Raum-Vertexpositionen
    Figure DE112013003714T5_0002
    k ∊ {0, 1, 2} angenommen. In einer homogenen Rasterisierung entspricht die zweidimensionale homogene (2DH) Kantengleichung ek = nk·x einer Entfernungsberechnung zwischen einer Bildebenenposition x = (x, y, 1) und der Kantenebene, die durch den Ursprung verläuft, wobei z. B. n2 = p0 × p1.
  • Ein beliebiges pro Vertex Attribut Ak kann über das Dreieck interpoliert werden. Jede baryzentrische Koordinate B0, B1, B2 des Dreiecks kann gefunden werden, indem die entsprechende 2DH Kantengleichung bewertet und normalisiert wird, sodass
    Figure DE112013003714T5_0003
  • Das interpolierte Attribut A für einen gegebenen Samplepunkt x kann dann durch normale baryzentrische Interpolation gefunden werden:
    Figure DE112013003714T5_0004
  • Der Tiefenwert d wird gebildet, indem z und w einzeln interpoliert werden und indem dann eine Division durchgeführt wird:
    Figure DE112013003714T5_0005
  • Wenn man den Nenner betrachtet, sieht man, dass:
    Figure DE112013003714T5_0006
    was unabhängig von (x, y) ist. Es ist sechs mal das vorzeichenbehaftete Volumen des Tetraeders, das von dem Ursprung und dem Dreieck gespannt wird, und das verwendet werden kann, um zu erkennen, ob ein Dreieck rückseitig ist.
  • Wenn eine Standardschutzmatrix verwendet wird, sodass die Transformation von (zcam, 1) zum Clip-Raum (z, w) als z = azcam + b, w = zcam, (4) (d. h., die normale Direct3D-Projektionsmatrix) ausgedrückt werden kann, dann kann die Tiefenfunktion vereinfacht werden. Die Koeffizienten a und b hängen nur von znear und zfar ab. Indem Gleichung 2 und 4 kombiniert und vereinfacht werden, erhält man:
    Figure DE112013003714T5_0007
  • Hier wurde nun die 2D-Tiefenfunktion, die heutzutage häufig in Rendersystemen eingesetzt wird, abgeleitet. Jedoch kann Gleichung 5 erweitert werden, sodass sie für eine Tiefe, die in höheren Dimensionen abgetastet wurde, gilt. Zum Beispiel bedeutet das Hinzufügen von Bewegungsunschärfe und Tiefenschärfe, dass z, w und die Kantengleichungen Funktionen einer Blendenzeit t und Linsenposition (u, ν) sind. Daher kann die Tiefenfunktion allgemeiner ausgedrückt werden, wie folgt:
    Figure DE112013003714T5_0008
    wobei ... durch die neuen, hinzugefügten Dimensionen ersetzt werden soll.
  • Statische Ebenengleichungen sind für eine Rasterisierung höherer Ordnung, die Bewegungsunschärfe und Defokusunschärfe enthält, ungeeignet, da die Tiefenfunktionen in derartigen Fällen viel komplexer sind. Zum Beispiel ist die Tiefenfunktion für die Bewegungsschärfe ein rationales kubisches Polynom. Daher wird das Ebenencodierungsverfahren verallgemeinert, um auch Bewegungsunschärfe und Defokusunschärfe zu bearbeiten.
  • Der verallgemeinerte Ebenencodierung-Algorithmus (generalized plane encoding (GPE) algorithm) ist fast identisch mit dem statischen Ebenencodieren, bis auf die Tatsache, dass die Ebenengleichungen für Bewegungsunschärfe und/oder die defokussierten Ebenengleichungen mehr Speicherplatz benötigen, und dass es teuerer ist, die Tiefenfunktionen zu bewerten. Dies ist in Gleichung 6 zu sehen, der die komplizierteren Kantengleichungen, ek, und wk-Komponenten zugrunde liegen. Jedoch können in bestimmten Fällen die benötigte Anzahl von Koeffizienten wesentlich verringert werden, wodurch mehr Ebenen in die komprimierte Darstellung passen. Dies wiederum ermöglicht höhere Kompressionsverhältnisse und eine schnellere Tiefenbewertung.
  • Ähnlich wie die statische Ebenencodierung, enthält die Kompressionsdarstellung für verallgemeinerte Tiefe (z. B. Bewegung und Defokusunschärfe) eine variable Anzahl von verallgemeinerten Ebenengleichungen und eine Ebenenauswahlbitmaske pro Sample. Gibt es höchstens n Ebenengleichungen in der komprimierten Darstellung, braucht jedes Sample [logn]-Bits für die Ebenenauswahlbitmaske. Als Nächstes werden die Tiefenfunktionen für Rasterisierungen höherer Ordnung vereinfacht.
  • Man beginne die Tiefenfunktionsableitung für Bewegungsunschärfe, indem eine zeitabhängige Attributinterpolation in Matrixform erstellt wird. Dann widme man sich der Reduktion der Anzahl der Koeffizienten, die gebraucht werden, um die interpolierte Tiefe eines Dreiecks genau darzustellen.
  • Ein Ansatz zum Speichern der Tiefenfunktionen für ein bewegungsunscharfes Dreieck liegt in der Beibehaltung aller Vertexpositionen bei t = 0 und t = 1, was insgesamt 4 × 3 × 2 = 24 (z. B. Gleitkomma-)Koordinatenwerte umfasst. Wenn die Projektionsmatrix bekannt ist und global gespeichert werden kann, sind nur 3 × 3 × 2 = 18 Koordinatenwerte gebraucht, da z dann von w abgeleitet werden kann, z. B. mittels Gleichung 4. In der folgenden Erörterung wird gezeigt, wie die Tiefenfunktion umgeschrieben und vereinfacht werden kann, um nur noch 13 Werte zu enthalten, was effizienteres Speichern ermöglicht.
  • In der folgenden Ableitung wird die Annahme gemacht, dass sich Vertices linear im Clip-Raum innerhalb jedes Bildes bewegen. Daher wird die Vertexposition pk eine Funktion der Zeit: pk(t) = qk + tdk, (7) wobei dk der entsprechende Bewegungsvektor für Vertex k ist. Da die Vertices zeitabhängig sind, bilden die 2DH Kantengleichungen Polynome zweiten Grades in t: ek(x, y, t) = (pi(t) × pj(t))·x = (fkt2 + gkt + hk)·x, (8) wobei hk = qi × qj, gk = qi × dj + di × qj, fk= di × dj. (9)
  • Zweckdienlicherweise formuliert man die Kantengleichung in Matrixform um:
    Figure DE112013003714T5_0009
    und t2 = (1, t, t2), x = (x, y, 1), und Ck eine 3×3 Matrix ist, wie zuvor gezeigt.
  • Indem man die Matrixdarstellung und Gleichung 1 kombiniert, erhält man einen allgemeinen Ausdruck, der beschreibt, wie ein Vertexattribut Ak über ein bewegungsunscharfes Dreieck interpoliert wird:
    Figure DE112013003714T5_0010
  • Wenn jedoch das Attribut selbst mit t variiert, z. B. Ak(t) = A 0 / k + tA d / k , erhält man einen allgemeinen Ausdruck für die Interpolation eines zeitabhängigen Attributs über dem Dreieck mit einem Zähler kubischer Ordnung:
    Figure DE112013003714T5_0011
    wobei t = (1, t, t2, t3) ist und die Vertexattribute Ak mit jedem Ck multipliziert sowie summiert werden, um die 4×3-Koeffizientenmatrix CA zu bilden. Diese Form kann dazu verwendet werden, das wclip-Attribut am Pixelmittelpunkt zu interpolieren.
  • Um die Tiefenfunktion d = z / w zu berechnen, wird eine baryzentrische Interpolation der z- und w-Komponenten der Clip-Raum-Vertexpositionen, die nun lineare Funktionen von t sind, z. B. z(t) = qz + tdz und w(t) = qw + tdw, durchgeführt.
  • Man betrachte die Tiefenfunktion d(x, y, t):
    Figure DE112013003714T5_0012
    wobei die 4×3-Matrix:
    Figure DE112013003714T5_0013
    und die 4×3-Matrix Cw entsprechend definiert ist. Zwar ist die Tiefenfunktion jetzt in einer zweckmäßigen Form, die Anzahl der gebrauchten Koeffizienten ist jedoch nicht kleiner als bei direkter Speicherung der Vertexpositionen. Man betrachte nun den Inhalt der Koeffizientenmatrizen Cz und Cw, um deren Ausdrücke zu vereinfachen.
  • Mittels Gleichung 14 und der Definition von Ck, kann man die erste und letzte Zeile von Cw wie folgt ausdrücken:
    Figure DE112013003714T5_0014
    wobei im letzten Schritt die Terme für die x- und y-Komponenten sich aufheben, um null zu ergeben. Die zwei verbleibenden Reihen sehen ein wenig komplexer aus, aber Folgendes wird erhalten, wenn eine ähnliche Ableitung und Vereinfachung durchgeführt wird:
    Figure DE112013003714T5_0015
  • Mit diesen Ausdrücken kann tCwxT als quadratische Funktion in t und unabhängig von (x, y) umgeschrieben werden: tCwxT = Δ0 + Δ1t + Δ2t2 + Δ3t3, (16) wobei: Δ0 = det(qk, qi, qj), Δ1 = Σdet(dk, qi, qj) Δ2 = Σdet(qk, di, dj) Δ3 = det(dk, di, dj).
  • Anders ausgedrückt ist der Nenner tCwxT der Backface-Status für das sich bewegende Dreieck, z. B. det(p0(t), p1(t), p2(t)), der unabhängig von (x, y) ist.
  • Aufgrund dieser Vereinfachung wird gezeigt, dass tCwxT keine Abhängigkeit von x und y aufweist und auf ein kubisches Polynom in t, das nur 4 Koeffizienten braucht, reduziert wurde. Diese Analyse zeigt daher, dass die Tiefenfunktion mittels 12 (für Cz) + 4 (für Cw) = 16 Koeffizienten dargestellt werden kann, was mit 24 Koeffizienten, die gebraucht werden, um alle Vertexpositionen zu speichern, verglichen werden soll. Dieser Ansatz ist wesentlich kompakter.
  • Wenn man eine Standardprojektionsmatrix gemäß Gleichung 4 verwendet, kann man die Tiefenfunktion weiter vereinfachen. Wenn man zu Gleichung 14 zurückkehrt und die Nebenbedingung von der Projektionsmatrix, d. h. qz = aqw + b und
    Figure DE112013003714T5_0016
    einfügt, erhält man:
    Figure DE112013003714T5_0017
  • Man kombiniere dieses Resultat mit Gleichung 13, um schlussendlich Folgendes zu erhalten:
    Figure DE112013003714T5_0018
  • Aus dem Vorherstehenden wird deutlich, dass die Darstellung einer Tiefenfunktion von 24 Skalaren auf 13 reduziert wurde (wobei die Annahme gemacht wurde, dass a und b von der Grafik-Programmierschnittstelle (API) bereitgestellt werden).
  • Als Nächstes wird eine zusätzliche Optimierung für den besonderen Fall, wo alle drei Dreiecksvertices einen gemeinsamen Bewegungsvektor, d. h. eine reine Translation, aufweisen, betrachtet. In den folgenden Beispielen wird die Annahme gemacht, dass eine Standardprojektionsmatrix (d. h., Gleichung 4) verwendet wird. Die transformierte Clip-Raum-Position p' = (p'x, p'y, p'w) jeder Dreiecksvertex ist: p' = p + d, wobei d = (dx, dy, dw) ein Vektor im Clip-Raum (xyw) ist.
  • Da alle Bewegungsvektoren für die drei Vertices eines Dreiecks gleich sind, kann man eine vereinfachte Tiefenfunktion ableiten. Man bemerke, dass die Koeffizienten fk = 0 sowie det(di, dj, dk) = det(d, d, d) = 0 det(qi, dj, dk) = det(qi, d, d) = 0.
  • Ferner gilt Folgendes: Σgk = Σd × (qj – qi) = d × Σ(qj – qi) = 0. (19)
  • Die Tiefenfunktion kann dann wie folgt vereinfacht werden:
    Figure DE112013003714T5_0019
  • Die Darstellung der Tiefenfunktion wurde damit von 18 Skalare auf 5 reduziert (wieder unter der Annahme, dass a und b durch die Grafik-API bereitgestellt werden).
  • Für die Defokusunschärfe gibt es nicht so viele Möglichkeiten, die Tiefenfunktion zu vereinfachen, wie für die Bewegungsunschärfe. Wenn einfach alle Vertexpositionen gespeichert werden, dann werden 4 × 3 = 12 Koordinatenwerte gebraucht. Ist jedoch die Projektionsmatrix bekannt, wird die Anzahl auf 3 × 3 = 9 reduziert. Es wird die Annahme gemacht, dass die Kamerabrennweite und Objektivlage global bekannt sind. Im folgenden Abschnitt wird gezeigt, wie der benötigte Speicherplatz der Tiefenfunktion auf 8 Skalare für ein defokussiertes Dreieck reduzierbar ist.
  • Wenn die Tiefenschärfe aktiviert ist, wird eine Clip-Raum-Vertexposition in xy als Funktion der Objektivkoordinaten (u, ν) geschert. Die Vertexposition wird wie folgt ausgedrückt: p = q + cu', (21) wobei c der vorzeichenbehaftete Radius des Zerstreuungskreises im Clip-Raum, u' = (u, ξν, 0), und ξ ein Skalarkoeffizient, der das Objektivquerschnittsverhältnis einstellt, ist. Man verwende diese Vertices, um die Kantengleichungen zu erstellen: ek(x, y, u, ν) = (pi(u, ν) × pj(u, ν))·x = (qi × qj + u' × (ciqj – cjqi))·x = (hk + u' × mk)·x, wobei mk = (ciqj – cjqi) und hk = qi × qj eingeführt wurden, um die Darstellung zu vereinfachen. Mit u = (u, kν, 1), kann die Kantengleichung in Matrixform wie folgt geschrieben werden: ek(x, y, u, ν) = uCkxT, (22) wobei:
    Figure DE112013003714T5_0020
  • Analog zum Fall der Bewegungsunschärfe kann man die Tiefenfunktion als eine rationale Funktion in (x, y, u, ν) wie folgt ausdrücken:
    Figure DE112013003714T5_0021
    wobei
    Figure DE112013003714T5_0022
    Indem die Feststellung, dass
    Figure DE112013003714T5_0023
    mit der obersten Reihe in Gleichung 15 kombiniert wird, wird Cw zu einer einzigen Spalte reduziert, ähnlich dem Fall der Bewegungsunschärfe. Daher kann der Nenner wie folgt geschrieben werden:
    Figure DE112013003714T5_0024
  • Dies gleicht wieder det(p0(u, ν), p1(u, ν), p2(u, ν)), was auch der Backface-Status für ein defokussiertes Dreieck ist.
  • Wenn nun die Einschränkungen auf die Projektionsmatrix wie in Gleichung 4 eingeführt werden, kann Cz wie folgt ausgedrückt werden:
    Figure DE112013003714T5_0025
  • Wird ferner die Annahme gemacht, dass der Radius des Zerstreuungskreises im Clip-Raum dem Objektivmodell folgt, kann er als ck =
    Figure DE112013003714T5_0026
    + β geschrieben werden. Damit sieht man, dass:
    Figure DE112013003714T5_0027
    und ΣCk nimmt die folgende Form:
    Figure DE112013003714T5_0028
  • Damit wurde gezeigt, dass:
    Figure DE112013003714T5_0029
    was durch 8 Skalarkoeffizienten dargestellt werden kann (vorausgesetzt, dass a und b bekannt sind). Der Nenner ist in jeder Größe linear.
  • Die Algorithmen können in einem Software- oder Hardware-Rasterisierer, der um ein Tiefensystem, das Tiefencodecs (Kompressoren und Dekompressoren), einen Tiefencache, Cullingdaten und eine Kachelliste enthält, erweitert wurde, implementiert werden. Um den Designraum zu reduzieren, wurde eine Cache-Line-Größe von 512 Bit, d. h. 64 Bytes, gewählt, was eine vertretbare und realistische Größe für diese Zwecke ist. Die Auswirkung dieser Auswahl ist, dass eine Kachel, die mittels 512·n Bit gespeichert wird, auf 512·m Bit komprimiert werden kann, wo 1 ≤ m < n, um eine Bandbreitennutzung zu erlangen. Es ist festzustellen, dass jede praktische Cache-Line-Größe verwendet werden kann, und 512 Bit nur als Beispiel verwendet wird.
  • Daher kann in manchen Ausführungsformen eine Grafik-Pipeline 10, wie sie in 1 gezeigt ist, zumindest einen Rasterisierer 12, der software- oder hardwarebasiert sein kann, enthalten. Er stellt einem Kompressor 14 Tiefenfunktion-Koeffizienten bereit. Der Kompressor 14 erhält Tiefendaten von einem Tiefencache 16 und Kachelinformationen von einer Kachelliste 18. In manchen Ausführungsformen können der Kompressor 14 und Rasterisierer 12 von einer Steuerung 11 gesteuert werden. Die Steuerung kann z. B. ein Prozessor oder Controller sein.
  • Obwohl die Bewegungsunschärfe dreidimensional ist und eine Defokusunschärfe vier Dimensionen verwendet, kann die gleiche Kacheldarstellung in diesen beiden Fällen verwendet werden, um die Diskussion zu vereinfachen. Eine Erklärung für die diesseitige Schreibweise bzw. Darstellung kann in 3 und 4 gefunden werden. In 3 wird Bewegungsunschärfe für 4 × 4 Pixel gezeigt, wobei es, wie durch die vier verschiedenen Schichten angedeutet, vier Samples pro Pixel gibt. Insgesamt gibt es 4 × 4 × 4 Samples. Wenn n Schichten als die Kachelgröße für die Kompression verwendet werden, dann wird so eine Kachel als 4 × 4 × n bezeichnet. Wird zum Beispiel jede Schicht als eine separate Kachel komprimiert, dann werden diese Kacheln als 4 × 4 × 1 bezeichnet.
  • In 4 wird die gleiche Schreibweise für die Defokusunschärfe verwendet, allerdings hat sie hier eine andere Bedeutung. Hier wurde das Objektiv in 2 × 2 kleinere Objektivgebiete geteilt und es gibt, wie zuvor, vier Samples pro Pixel, was wieder durch die vier Schichten angedeutet ist. Jedoch bedeutet 4 × 4 × n für die Defokusunschärfe, dass n Schichtregionen zusammen als eine Kachel komprimiert sind.
  • Mit Bezug auf 2 kann die Abfolge 20 in Software, Firmware und/oder Hardware implementiert werden. In Software- und Firmware-Ausführungsformen kann sie durch computerausgeführte Befehle implementiert werden, wobei die Befehle in einem oder mehreren nichtflüchtigen computerlesbaren Medien, wie z. B. magnetischen, optischen oder Halbleiter-Speichern, gespeichert sind. Zum Beispiel kann in manchen Ausführungsformen die in 1 gezeigte Steuerung zu diesem Zweck verwendet werden.
  • Die Abfolge 20 beginnt, indem einem Rasterisierer ein Dreieck bereitgestellt wird, wie bei Block 22 angedeutet. Der Rasterisierer-Aufbau berechnet Tiefenfunktion-Koeffizienten, die direkt an den Kacheltiefenkompressor weitergeleitet werden, wie in Block 24 angedeutet. Für jede Kachel berechnet der stochastische Rasterisierer die Abdeckung pro Sample mit Bezug auf Tiefe, wie bei Block 26 angedeutet. Dann nimmt der Kacheltiefenkompressor die Abdeckungsmaske, die Tiefe pro Sample und die Tiefenfunktion-Koeffizienten als Eingaben. Wenn die Sampletiefen durch eine Tiefenfunktion dargestellt werden können, wird die Kachel in komprimierter Form gespeichert, wie in Block 28 angedeutet.
  • Für das Culling pro 8 × 8 × 1 Kachel werden zmin und zmax der Kachel unter Verwendung von jeweils 30 Bit gespeichert, um das Z-max-Culling und Z-min-Culling durchzuführen. Zusätzlich zu den min- und max-Werten wurde auch 1 Bit pro Gruppe von 16 Samples, d. h. der Wert einer Cache-Line von nichtkomprimierten Samples, zugewiesen, um anzuzeigen, ob alle freigegeben sind. Das addiert sich zur 4 Freigabebit pro 8 × 8 × 1 Kachel, sodass insgesamt 64 Bit pro 8 × 8 × 1 Kachel für Culling- und Freigabebits gebraucht werden.
  • Die Kachelliste, auf die durch ein kleines Cache zugegriffen wird oder die in einem On-Chip-Arbeitsspeicher gespeichert wird, speichert einen Kachelheader für jede Kachel. In einer Ausführungsform kann der Kachelheader 4 Bits speichern, wobei eine Kombination (0000b) anzeigt, dass die Kachel im nichtkomprimierten Zustand gespeichert ist, während die restlichen 15 Kombinationen verwendet werden, um verschiedene Kompressionsmoden anzuzeigen. Diese 4 Bits können im Vergleich zu der Culling-Kachelgröße eine andere Kachelgröße verwenden, da die Algorithmen normalerweise eine ganz schön verschiedene Leistung aufweisen, je nachdem, welche Kachelgröße verwendet wird. Zum Beispiel ist eine kleinere Kachelgröße für Tiefen-Offset-Kompressionsalgorithmen vorteilhaft, während größere Kachelgrößen für die verallgemeinerte Ebenencodierung (GPE, generalized plane encoding), die das Verfahren, das in dieser Patentanmeldung dargestellt wird, ist, besser sein können.
  • Eine Implementierung des verallgemeinerten Ebenencodierers ist wie folgt. Für den Bewegungsunschärfecodierer kann der Rasterisierer Information über die Art der Bewegung, die auf jedes Dreieck angewandt wird, weiterleiten. Die drei verschiedenen, unterstützten Arten von Bewegung sind ein statischer Zustand (keine Bewegung), nur Translationen und irgendeine lineare Bewegung pro Vertex. Zusätzlich leitet der Rasterisierer eine Abdeckungsmaske, die angezeigt, welche Samplepositionen innerhalb des Dreiecks sind, weiter. Die Tiefe wird für diese Samples ausgewertet und Tiefentesten wird durchgeführt. Die Tiefenfunktionen von irgendwelchen zuvor gezeichneten Dreiecken werden entfernt, wenn deren Sampleindexe von der Abdeckungsmaske des eingehenden Dreiecks überdeckt werden. Der Tiefenschärfecodierer arbeitet in genau der gleichen Weise, bis auf die Tatsache, dass es keine speziellen Typen für Defokusunschärfe gibt, die weitergeleitet werden. Es ist festzustellen, dass dieses Verfahren auch für gleichzeitige Bewegungsunschärfe und Tiefenschärfe funktioniert. Jedoch ist in diesem Fall die kompakteste Darstellung einfach (x, y, w) pro Vertex zu sowohl Zeit 0 als auch Zeit 1 für alle drei Vertices eines Dreiecks zu speichern. Obwohl die Darstellung nicht optimiert ist, funktioniert der Algorithmus und stellt die gleichen Vorteile, wie zuvor beschrieben, bereit.
  • Ein neues Dreieck kann wie folgt zur komprimierten Darstellung hinzugefügt werden. Ein Dreieck kann zu jeder abgedeckten Kachel am Bildschirm gerastert werden, um dessen Abdeckungs- und Tiefenwert pro Sample zu erhalten. Innerhalb jeder Kachel wird der Tiefentest durchgeführt, indem die kompakte Darstellung dekomprimiert wird (um die gespeicherten Tiefenwerte für jedes abgedeckte Sample zu erhalten). Wenn irgendein Sample den Tiefentest besteht, wird die komprimierte Darstellung aktualisiert, indem der Tiefenfunktion-Koeffizient für das aktuelle Dreieck hinzugefügt wird, und die Bitmaske wird aktualisiert. Wenn kein Sample den Tiefentest besteht, werden die aktuelle komprimierte Darstellung und Bitmaske nicht aktualisiert.
  • Im Folgenden wird der Fall von Tiefenfunktionen für den Fall von gleichzeitiger Bewegungsunschärfe und Tiefenschärfe besprochen. Im Gegensatz zum Fall mit nur Bewegungsunschärfe oder nur Tiefenschärfe ist die Anzahl von Koeffizienten zum Speichern der Tiefenfunktion als Funktion von (x, y, u, ν, t) größer, als wenn einfach die drei Dreiecksvertices bei t = 0 und t = 1 gespeichert werden. Deshalb wird in diesem Fall die Tiefenfunktion in dieser Form nicht explizit abgeleitet und vereinfacht, sondern die Arbeit wird direkt mit den Vertexdaten durchgeführt.
  • Ein Weg, die Tiefenfunktion im Fall von gleichzeitiger Bewegungsunschärfe und Tiefenschärfe darzustellen, liegt darin, einfach die drei Dreiecksvertices bei t = 0, die durch qi bezeichnet werden, und bei t = 1, die durch ri bezeichnet werden, zu speichern. Wenn eine Kachel aufgesucht wird, kann der Tiefenwert für ein gegebenes Sample von diesen Daten erhalten werden, wie folgt:
    • 1. Zunächst werden die Vertexpositionen der (u, ν, t)-Position des Samples ausgewertet, z. B. pi(u, ν, t) = (1 – t)qi + tdi + ci(t)(u, ξν, 0)
    • 2. Diese Vertexpositionen werden dazu verwendet, eine statische Tiefenebenengleichung der Form d(x, y) = Ax + By + C abzuleiten
    • 3. Die Tiefenebenengleichung für die (x, y)-Position des Samples wird ausgewertet.
  • Die Speicherkosten für diese Tiefenfunktionsdarstellung sind 2 × 3 × 4 = 24 Skalare, die auf 2 × 3 × 3 = 18 Skalare reduziert werden können, wenn das Z-Mapping der Protektionsmatrix bekannt ist, d. h. zclip = azcam + b, wclip = zcam. Wie zuvor gezeigt wurde, kann die Tiefenfunktion durch 25 Skalare dargestellt werden, wenn diese im Fall gleichzeitiger Bewegungsunschärfe und Tiefenschärfe abgeleitet und vereinfacht wird, was teuerer im Hinblick auf Speichern ist.
  • 5 zeigt eine Ausführungsform eines Systems 300. Gemäß Ausführungsformen kann das System 300 ein Mediensystem sein, wenngleich es nicht auf diesen Zusammenhang beschränkt ist. Beispielsweise kann das System 300 in einen Personal Computer (PC), einen Laptopcomputer, einen Ultra-Laptopcomputer, ein Tablett, einen Touchpad, einen tragbaren Computer, einen handgehaltenen Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus einem Mobiltelefon und einem PDA, ein Fernsehgerät, eine intelligente Vorrichtung (beispielsweise ein Smartphone, ein Smart-Tablett oder ein Smart-Fernsehgerät), eine mobile Internetvorrichtung (MID), eine Nachrichtenaustauschvorrichtung, eine Datenkommunikationsvorrichtung und dergleichen eingebaut sein.
  • Gemäß Ausführungsformen umfasst das System 300 eine Plattform 302, die mit einer Anzeige 320 gekoppelt ist. Die Plattform 302 kann Inhalt von einer Inhaltsvorrichtung in der Art einer Inhaltsdienstvorrichtung (von Inhaltsdienstvorrichtungen) 330 oder einer Inhaltsauslieferungsvorrichtung (von Inhaltsauslieferungsvorrichtungen) 340 oder anderen ähnlichen Inhaltsquellen empfangen. Eine Navigationssteuereinrichtung 350, die ein oder mehrere Navigationsmerkmale aufweist, kann verwendet werden, um beispielsweise mit der Plattform 302 und/oder der Anzeige 320 zusammenzuarbeiten. Jede dieser Komponenten wird nachstehend in weiteren Einzelheiten beschrieben.
  • Gemäß Ausführungsformen kann die Plattform 302 eine beliebige Kombination eines Chipsatzes 305, eines Prozessors 310, eines Speichers 312, einer Speichervorrichtung 314, eines Grafikuntersystems 315, von Anwendungen 316 und/oder eines Radios 318 aufweisen. Der Chipsatz 305 kann eine Kommunikation zwischen dem Prozessor 310, dem Speicher 312, der Speichervorrichtung 314, dem Grafikuntersystem 315, Anwendungen 316 und/oder dem Radio 318 bereitstellen. Beispielsweise kann der Chipsatz 305 einen Speichervorrichtungsadapter (nicht dargestellt) aufweisen, der eine Kommunikation mit der Speichervorrichtung 314 bereitstellen kann.
  • Der Prozessor 310 kann als Computerprozessor mit einem komplexen Befehlssatz (CISC) oder Computerprozessor mit einem reduzierten Befehlssatz (RISC), mit dem x86-Befehlssatz kompatible Prozessoren, Mehrkernprozessoren oder als irgendein anderer Mikroprozessor oder irgendeine andere Zentralverarbeitungseinheit (CPU) implementiert sein. Gemäß Ausführungsformen kann der Prozessor 310 einen Zweikernprozessor (Zweikernprozessoren), einen Zweikern-Mobilprozessor (Zweikern-Mobilprozessoren) usw. umfassen.
  • Der Arbeitsspeicher 312 kann als eine flüchtige Arbeitsspeichervorrichtung in der Art eines Direktzugriffsspeichers (RAM), eines dynamischen Direktzugriffsspeichers (DRAM) oder eines statischen RAM (SRAM) implementiert sein, ist jedoch nicht auf diese beschränkt.
  • Die Speichervorrichtung 314 kann als eine nicht flüchtige Speichervorrichtung in der Art eines Magnetplattenlaufwerks, eines optischen Plattenlaufwerks, eines Bandlaufwerks, einer internen Speichervorrichtung, einer angebrachten Speichervorrichtung, eines Flash-Speichers, eines batteriegestützten SDRAM (synchronen DRAM) und/oder einer über ein Netz zugänglichen Speichervorrichtung implementiert sein, ist jedoch nicht darauf beschränkt. Gemäß Ausführungsformen kann die Speichervorrichtung 314 eine Technologie zum Erhöhen der Schutzwirkung für die Speichervorrichtung 314 für wertvolle digitale Medien aufweisen, beispielsweise wenn mehrere Festplattenlaufwerke aufgenommen sind.
  • Das Grafikuntersystem 315 kann eine Verarbeitung von Bildern in der Art stehender Bilder oder von Video für die Anzeige ausführen. Das Grafikuntersystem 315 kann beispielsweise eine Grafikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafikuntersystem 315 und die Anzeige 320 kommunikativ zu koppeln. Beispielsweise kann die Schnittstelle eine Multimediaschnittstelle hoher Definition, ein Displayport, eine drahtlose HDMI-Schnittstelle sein und/oder durch drahtlose HD-kompatible Techniken gegeben sein. Das Grafikuntersystem 315 könnte in den Prozessor 310 oder den Chipsatz 305 integriert sein. Das Grafikuntersystem 315 könnte eine autonome Karte sein, die mit dem Chipsatz 305 kommunikativ gekoppelt ist.
  • Die hier beschriebenen Grafik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert werden. Beispielsweise kann Grafik- und/oder Videofunktionalität in einen Chipsatz integriert werden. Alternativ kann ein diskreter Grafik- und/oder Videoprozessor verwendet werden. Gemäß einer weiteren Ausführungsform können die Grafik- und/oder Videofunktionen durch einen Prozessor für allgemeine Zwecke, einschließlich eines Mehrkernprozessors, implementiert werden. Gemäß einer weiteren Ausführungsform können die Funktionen in einer elektronischen Endkundenvorrichtung implementiert werden.
  • Das Radio 318 kann ein oder mehrere Radios einschließen, die in der Lage sind, Signale unter Verwendung verschiedener geeigneter Drahtloskommunikationstechniken zu senden und zu empfangen. Solche Techniken können Kommunikationen über ein oder mehrere Drahtlosnetze einschließen. Als Beispiel dienende Drahtlosnetze umfassen (sind jedoch nicht darauf beschränkt) drahtlose lokale Netze (WLAN), drahtlose persönliche Netze (WPAN), drahtlose Großstadtnetze (WMAN), Mobilfunknetze und Satellitennetze. Bei der Kommunikation über solche Netze kann das Radio 318 nach einem oder mehreren anwendbaren Standards in einer beliebigen Version arbeiten.
  • Gemäß Ausführungsformen kann die Anzeige 320 einen beliebigen Fernsehbildschirm oder eine beliebige Fernsehanzeige umfassen. Die Anzeige 320 kann beispielsweise einen Computeranzeigebildschirm, eine Berührungsbildschirmanzeige, einen Videobildschirm, eine fernsehartige Vorrichtung und/oder ein Fernsehgerät umfassen. Die Anzeige 320 kann digital und/oder analog sein. Gemäß Ausführungsformen kann die Anzeige 320 eine holografische Anzeige sein. Auch kann die Anzeige 320 eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Informationsformen, Bilder und/oder Objekte übermitteln. Beispielsweise können diese Projektionen eine sichtbare Überlagerung für eine mobile Erweiterte-Realität-(MAR)-Anwendung sein. Unter der Kontrolle einer oder mehrerer Softwareanwendungen 316 kann die Plattform 302 eine Benutzerschnittstelle 322 auf der Anzeige 320 anzeigen.
  • Gemäß Ausführungsformen kann die Inhaltsdienstvorrichtung (können die Inhaltsdienstvorrichtungen) 330 durch einen beliebigen nationalen, internationalen und/oder unabhängigen Dienst, der demgemäß beispielsweise über das Internet für die Plattform 302 zugänglich ist, gehostet werden. Die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 330 kann (können) mit der Plattform 302 und/oder der Anzeige 320 gekoppelt sein. Die Plattform 302 und/oder die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 330 können mit einem Netz 360 gekoppelt sein, um Medieninformationen zum Netz 360 und von diesem zu übermitteln (beispielsweise zu senden und/oder zu empfangen). Die Inhaltsauslieferungsvorrichtung (Inhaltsauslieferungsvorrichtungen) 340 können auch mit der Plattform 302 und/oder der Anzeige 320 gekoppelt sein.
  • Gemäß Ausführungsformen kann die Inhaltsdienstvorrichtung (können die Inhaltsdienstvorrichtungen) 330 einen Kabelfernsehkasten, einen Personal Computer, ein Netz, ein Telefon, internetfähige Vorrichtungen oder ein Gerät, das in der Lage ist, digitale Informationen und/oder digitalen Inhalt auszuliefern, und eine beliebige andere ähnliche Vorrichtung, die in der Lage ist, Inhalt zwischen Inhaltsanbietern und der Plattform 302 und der Anzeige 320 über das Netz 360 oder direkt unidirektional oder bidirektional zu übermitteln, umfassen. Es sei bemerkt, dass der Inhalt unidirektional und/oder bidirektional zu einer der Komponenten im System 300 und einem Inhaltsanbieter und von diesen über das Netz 360 übermittelt werden kann. Beispiele von Inhalt können beliebige Medieninformationen einschließen, einschließlich beispielsweise Video-, Musik-, medizinischer und Spielinformationen usw.
  • Die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 330 empfängt (empfangen) Inhalt in der Art eines Kabelfernsehprogramms, einschließlich Medieninformationen, digitaler Informationen und/oder anderen Inhalts. Beispiele von Inhaltsanbietern können beliebige Kabel- oder Satellitenfernseh- oder Radio- oder Internetinhaltsanbieter einschließen. Die bereitgestellten Beispiele sollen Ausführungsformen der Erfindung nicht einschränken.
  • Gemäß Ausführungsformen kann die Plattform 302 Steuersignale von der Navigationssteuereinrichtung 350 mit einem oder mehreren Navigationsmerkmalen empfangen. Die Navigationsmerkmale der Steuereinrichtung 350 können beispielsweise verwendet werden, um mit der Benutzerschnittstelle 322 zu interagieren. Gemäß Ausführungsformen kann die Navigationssteuereinrichtung 350 eine Zeigevorrichtung sein, die eine Computerhardwarekomponente (insbesondere eine Human-Interface-Vorrichtung) sein kann, die es einem Benutzer ermöglicht, räumliche (beispielsweise kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie grafische Benutzerschnittstellen (GUI) und Fernsehgeräte und Bildschirme, ermöglichen es dem Benutzer, den Computer oder das Fernsehgerät unter Verwendung physikalischer Gesten zu steuern und ihm dadurch Daten bereitzustellen.
  • Bewegungen der Navigationsmerkmale der Steuereinrichtung 350 können auf einer Anzeige (beispielsweise einer Anzeige 320) durch Bewegungen eines Zeigers, eines Cursors, eines Fokusrings oder anderer Sichtindikatoren, die auf der Anzeige angezeigt werden, echoartig wiedergegeben werden. Beispielsweise können, durch Softwareanwendungen 316 gesteuert, die Navigationsmerkmale, die sich auf der Navigationssteuereinrichtung 350 befinden, auf virtuelle Navigationsmerkmale abgebildet werden, die beispielsweise auf der Benutzerschnittstelle 322 angezeigt werden. Gemäß Ausführungsformen kann die Steuereinrichtung 350 keine getrennte Komponente sein, sondern in die Plattform 302 und/oder die Anzeige 320 integriert sein. Ausführungsformen sind jedoch nicht auf die Elemente oder auf den Zusammenhang, der hier dargestellt oder beschrieben ist, beschränkt.
  • Gemäß Ausführungsformen können Treiber (nicht dargestellt) eine Technologie aufweisen, um es Benutzern zu ermöglichen, die Plattform 302 beispielsweise in der Art eines Fernsehgeräts mit der Berührung einer Taste nach dem anfänglichen Hochfahren, sofern dies ermöglicht es, sofort ein- und auszuschalten. Eine Programmlogik kann es der Plattform 302 ermöglichen, Inhalt zu Medienadaptern oder einer anderen Inhaltsdienstvorrichtung (anderen Inhaltsdienstvorrichtungen) 330 oder einer anderen Inhaltsauslieferungsvorrichtung (anderen Inhaltsauslieferungsvorrichtungen) 340 zu streamen, wenn die Plattform ”ausgeschaltet” ist. Zusätzlich kann der Chipsatz 305 eine Hardware- und/oder Softwareunterstützung beispielsweise für 5.1-Surround-Sound-Audio und/oder High-Definition-7.1-Surround-Sound-Audio aufweisen. Treiber können einen Grafiktreiber für integrierte Grafikplattformen einschließen. Gemäß Ausführungsformen kann der Grafiktreiber eine Peripheriekomponentenverbindungs-(PCI)-Express-Grafikkarte aufweisen.
  • Gemäß verschiedenen Ausführungsformen können eine oder mehrere der im System 300 dargestellten Komponenten integriert werden. Beispielsweise können die Plattform 302 und die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 330 integriert werden oder können die Plattform 302 und die Inhaltsauslieferungsvorrichtung (die Inhaltsauslieferungsvorrichtungen) 340 integriert werden oder können beispielsweise die Plattform 302, die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 330 und die Inhaltsauslieferungsvorrichtung (Inhaltsauslieferungsvorrichtungen) 340 integriert werden. Gemäß verschiedenen Ausführungsformen können die Plattform 302 und die Anzeige 320 eine integrierte Einheit sein. Die Anzeige 320 und die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 330 können integriert werden, oder die Anzeige 320 und die Inhaltsauslieferungsvorrichtung (Inhaltsauslieferungsvorrichtungen) 340 können beispielsweise integriert werden. Diese Beispiele sollen die Erfindung nicht einschränken.
  • Gemäß verschiedenen Ausführungsformen kann das System 300 als ein drahtloses System, ein verdrahtetes System oder eine Kombination von beiden implementiert werden. Wenn es als ein drahtloses System implementiert wird, kann das System 300 Komponenten oder Schnittstellen aufweisen, die für die Kommunikation über ein drahtloses geteiltes Medium geeignet sind, wie eine oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogik und dergleichen. Ein Beispiel eines drahtlosen geteilten Mediums kann Abschnitte eines Drahtlosspektrums in der Art des HF-Spektrums usw. einschließen. Wenn es als ein verdrahtetes System implementiert wird, kann das System 300 Komponenten und Schnittstellen aufweisen, die für die Kommunikation über verdrahtete Kommunikationsmedien geeignet sind, wie Ein-/Ausgabe-(I/O)-Adapter, physikalische Verbinder zum Verbinden des I/O-Adapters mit einem entsprechenden verdrahteten Kommunikationsmedium, eine Netzschnittstellenkarte (NIC), eine Plattensteuereinrichtung, eine Videosteuereinrichtung, eine Audiosteuereinrichtung usw. Beispiele verdrahteter Kommunikationsmedien können einen Draht, ein Kabel, Metallleitungen, eine gedruckte Leiterplatte (PCB), eine rückseitige Ebene, ein Schaltnetz, ein Halbleitermaterial, einen Twisted-Pair-Draht, ein Koaxialkabel, eine Faseroptik usw. einschließen.
  • Die Plattform 302 kann einen oder mehrere logische oder physikalische Kanäle zur Übermittlung von Informationen einrichten. Die Informationen können Medieninformationen und Steuerinformationen einschließen. Medieninformationen können sich auf beliebige Daten beziehen, die Inhalt darstellen, der für einen Benutzer bestimmt ist. Beispiele von Inhalt können beispielsweise Daten von einem Gespräch, einer Videokonferenz, Streaming-Video, einer elektronischen Nachricht (”E-Mail”), einer Sprachnachricht, alphanumerische Symbole, Grafiken, Bilddaten, Videodaten, Textdaten usw. einschließen. Daten von einem Gespräch können beispielsweise Sprachinformationen, Ruheperioden, Hintergrundgeräusche, Annehmlichkeitsgeräusche, Töne usw. einschließen. Steuerinformationen können sich auf jegliche Daten beziehen, die Befehle, Anweisungen oder Steuerwörter darstellen, die für ein automatisches System bestimmt sind. Beispielsweise können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen in einer vorgegebenen Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die Elemente oder den Zusammenhang beschränkt, die oder der in 5 dargestellt oder beschrieben sind.
  • Wie vorstehend beschrieben, kann das System 300 in verschiedenen physikalischen Stilen oder Formfaktoren verwirklicht werden. 6 zeigt Ausführungsformen einer Vorrichtung 400 mit einem kleinen Formfaktor, worin das System 300 verwirklicht werden kann. Gemäß Ausführungsformen kann beispielsweise die Vorrichtung 400 als eine mobile Rechenvorrichtung implementiert werden, welche drahtlose Fähigkeiten aufweist. Eine mobile Rechenvorrichtung kann sich auf eine beliebige Vorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Leistungsquelle oder -versorgung, beispielsweise in der Art einer oder mehrerer Batterien, aufweist.
  • Wie vorstehend beschrieben, können Beispiele einer mobilen Rechenvorrichtung einen Personal Computer (PC), einen Laptopcomputer, einen Ultra-Laptopcomputer, ein Tablett, einen Touchpad, einen tragbaren Computer, einen handgehaltenen Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus einem Mobiltelefon und einem PDA, ein Fernsehgerät, eine intelligente Vorrichtung (beispielsweise ein Smartphone, ein Smart-Tablett oder ein Smart-Fernsehgerät), eine mobile Internetvorrichtung (MID), eine Nachrichtenaustauschvorrichtung, eine Datenkommunikationsvorrichtung und dergleichen einschließen.
  • Beispiele einer mobilen Rechenvorrichtung können auch Computer einschließen, die dafür eingerichtet sind, von einer Person getragen zu werden, wie einen Armbandcomputer, einen Fingercomputer, einen Ringcomputer, einen Brillencomputer, einen Gürtelklammercomputer, einen Armbandcomputer, Schuhcomputer, Kleidungscomputer und andere tragbare Computer. Gemäß Ausführungsformen kann eine mobile Rechenvorrichtung beispielsweise als ein Smartphone implementiert werden, das in der Lage ist, Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen auszuführen. Wenngleich einige Ausführungsformen als Beispiel mit einer als Smartphone implementierten mobilen Rechenvorrichtung beschrieben werden können, ist zu verstehen, dass andere Ausführungsformen auch unter Verwendung anderer drahtloser mobiler Rechenvorrichtungen implementiert werden können. Die Ausführungsformen sind nicht auf diesen Zusammenhang beschränkt.
  • Der Prozessor 310 kann gemäß einigen Ausführungsformen mit einer Kamera 322 und einem Sensor 320 des globalen Positionsbestimmungssystems kommunizieren. Ein Speicher 312, der mit dem Prozessor 310 gekoppelt ist, kann computerlesbare Befehle zum Implementieren der in den 1 und 2 dargestellten Sequenzen in Software- und/oder Firmwareausführungsformen speichern. Insbesondere die Abfolgen können mittels einer oder mehrerer computerimplementierte Befehle speichernder nichtflüchtiger Speichervorrichtungen implementiert werden.
  • Wie in 6 dargestellt ist, kann die Vorrichtung 400 ein Gehäuse 402, eine Anzeige 404, eine Ein-/Ausgabe-(I/O)-Vorrichtung 406 und eine Antenne 408 aufweisen. Die Vorrichtung 400 kann auch Navigationsmerkmale 412 aufweisen. Die Anzeige 404 kann eine beliebige geeignete Anzeigeeinheit zum Anzeigen von Informationen, die für eine mobile Rechenvorrichtung geeignet sind, aufweisen. Die I/O-Vorrichtung 406 kann eine beliebige geeignete I/O-Vorrichtung zum Eingeben von Informationen in eine mobile Rechenvorrichtung aufweisen. Beispiele für die I/O-Vorrichtung 406 können eine alphanumerische Tastatur, eine numerische Tastatur, ein Berührungsfeld, Eingabetasten, Tastenknöpfe, Schalter, Wippschalter, Mikrofone, Lautsprecher, eine Spracherkennungsvorrichtung und -software usw. einschließen. Informationen können auch durch ein Mikrofon in die Vorrichtung 400 eingegeben werden. Solche Informationen können durch eine Spracherkennungsvorrichtung digitalisiert werden. Die Ausführungsformen sind nicht auf diesen Zusammenhang beschränkt.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert werden. Beispiele von Hardwareelementen können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (beispielsweise Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), ein feldprogrammierbares Gate-Array (FPGA), Logikgatter, Register, eine Halbleitervorrichtung, Chips, Mikrochips, Chipsätze usw. einschließen. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Methoden, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination davon einschließen. Die Bestimmung, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann von einer beliebigen Anzahl von Faktoren abhängen, in der Art der gewünschten Rechengeschwindigkeit, Leistungsniveaus, Wärmetoleranzen, des Verarbeitungszyklusbudgets, Dateneingaberaten, Datenausgaberaten, Speicherressourcen, Datenbusgeschwindigkeiten und anderer Entwurfs- und Leistungsrandbedingungen.
  • Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch repräsentative auf einem maschinenlesbaren Medium gespeicherte Anweisungen implementiert werden, wodurch verschiedene Logik in dem Prozessor dargestellt wird, die, wenn sie durch eine Maschine gelesen wird, bewirkt, dass die Maschine Logik zum Ausführen der hier beschriebenen Techniken fabriziert. Solche Repräsentationen, die als ”IP-Kerne” bekannt sind, können auf einem greifbaren maschinenlesbaren Medium gespeichert und verschiedenen Kunden oder Herstellungsanlagen geliefert werden, um in die Herstellungsmaschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Die obige Beschreibung einer oder mehrerer Implementierungen stellt Veranschaulichung und Beschreibung bereit, soll aber den Schutzumfang der Erfindung nicht erschöpfen oder auf die genaue offengelegte Form beschränken. Im Hinblick auf die obigen Lehren sind Modifikationen und Varianten möglich oder können aus einer Ausübung verschiedener Implementierungen der Erfindung beschafft werden.
  • Die hier beschriebenen Grafikverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert werden. Beispielsweise kann eine Grafikfunktionalität in einen Chipsatz integriert werden. Alternativ kann ein diskreter Grafikprozessor verwendet werden. Gemäß einer anderen Ausführungsform können die Grafikfunktionen durch einen Prozessor für allgemeine Zwecke, einschließlich eines Mehrkernprozessors, implementiert werden.
  • In dieser Patentschrift gemachte Bezüge auf ”eine einzige Ausführungsform” oder ”eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Zusammenhang mit der Ausführungsform beschrieben wird, in wenigstens einer Implementation enthalten ist, die von der vorliegenden Erfindung eingeschlossen wird. Demgemäß beziehen sich Instanzen des Begriffs ”eine einzige Ausführungsform” oder ”gemäß einer Ausführungsform” nicht notwendigerweise auf dieselbe Ausführungsform. Ferner können die bestimmten Merkmale, Strukturen oder Eigenschaften in anderen geeigneten Formen als der erläuterten speziellen Ausführungsform verwirklicht werden, und all diese Formen können von den Ansprüchen der vorliegenden Anmeldung abgedeckt werden.
  • Wenngleich die vorliegende Erfindung mit Bezug auf eine beschränkte Anzahl von Ausführungsformen beschrieben wurde, werden Fachleuten zahlreiche Modifikationen und Variationen davon einfallen. Es ist vorgesehen, dass die anliegenden Ansprüche all diese Modifikationen und Variationen abdecken, die in den wahren Gedanken und den Schutzumfang dieser vorliegenden Erfindung fallen.

Claims (30)

  1. Computerausgeführtes Verfahren, umfassend: Berechnen von Tiefenfunktion-Koeffizienten für Dreiecke, die eine Bewegungsunschärfe und/oder Tiefenschärfe aufweisen; Berechnen der Abdeckung und Tiefe pro Sample für jedes einer Mehrzahl von Kacheln; und Verwenden der Koeffizienten, Abdeckung und Tiefe pro Sample in einem Kachel-Tiefenkompressor zum Speichern komprimierter Tiefen für Samples einer Kachel.
  2. Verfahren nach Anspruch 1, aufweisend das Berechnen mittels eines Rasterisierers.
  3. Verfahren nach Anspruch 2, aufweisend das Berechnen mittels eines Software-Rasterisierers.
  4. Verfahren nach Anspruch 2, aufweisend das Bereitstellen einer Darstellung einer Tiefenfunktion direkt von einem Rasterisierer-Aufbau.
  5. Verfahren nach Anspruch 1, aufweisend das Darstellen der Tiefenfunktion mit nur 16 Koeffizienten für die Bewegungsunschärfe.
  6. Verfahren nach Anspruch 1, aufweisend das Darstellen der Tiefenfunktion mit nur 13 Koeffizienten für die Tiefenschärfe.
  7. Verfahren nach Anspruch 1, aufweisend das Reduzieren der Anzahl von Tiefenfunktion-Koeffizienten mittels einer Projektionsmatrix.
  8. Verfahren nach Anspruch 1, aufweisend das Speichern eines Kachel-Headers in einer Kachelliste, der einen Kompressionsmodus anzeigt.
  9. Verfahren nach Anspruch 2, aufweisend das Weiterleiten von die Bewegungsart betreffenden Informationen vom Rasterisierer zum Kompressor.
  10. Verfahren nach Anspruch 1, aufweisend das Hinzufügen eines Dreiecks zu einer komprimierten Darstellung, indem das Dreieck auf jeder abgedeckten Kachel gerastert wird, um dessen Abdeckung-pro-Sample- und Tiefe-pro-Sample-Werte zu erhalten, das Durchführen eines Tiefentests innerhalb jeder Kachel und, wenn irgendein Sample den tiefen Test besteht, das Aktualisieren der komprimierten Darstellung, indem ein Tiefenfunktion-Koeffizient hinzugefügt wird.
  11. Ein oder mehrere computerlesbare Medien, die Befehle zum Ausführen einer Abfolge speichern, Folgendes umfassend: Berechnen von Tiefenfunktion-Koeffizienten für Dreiecke, die eine Bewegungsunschärfe und/oder Tiefenschärfe aufweisen; Berechnen der Abdeckung und Tiefe pro Sample für jede einer Mehrzahl von Kacheln; und Verwenden der Koeffizienten, Abdeckung und Tiefe pro Sample in einem Kachel-Tiefenkompressor zum Speichern komprimierter Tiefen für Samples einer Kachel.
  12. Medium bzw. Medien nach Anspruch 11, wobei die Abfolge ferner das Berechnen mittels eines Rasterisierers aufweist.
  13. Medium bzw. Medien nach Anspruch 12, wobei die Abfolge ferner das Berechnen mittels eines Software-Rasterisierers aufweist.
  14. Medium bzw. Medien nach Anspruch 12, wobei die Abfolge ferner das Bereitstellen einer Darstellung einer Tiefenfunktion direkt von einem Rasterisierer-Aufbau aufweist.
  15. Medium bzw. Medien nach Anspruch 11, wobei die Abfolge ferner das Darstellen der Tiefenfunktion mit nur 16 Koeffizienten für die Bewegungsunschärfe aufweist.
  16. Medium bzw. Medien nach Anspruch 11, wobei die Abfolge ferner das Darstellen der Tiefenfunktion mit nur 13 Koeffizienten für die Tiefenschärfe aufweist.
  17. Medium bzw. Medien nach Anspruch 11, wobei die Abfolge ferner das Reduzieren der Anzahl von Tiefenfunktion-Koeffizienten mittels einer Projektionsmatrix umfasst.
  18. Medium bzw. Medien nach Anspruch 11, wobei die Abfolge ferner das Speichern eines Kachel-Headers in einer Kachelliste, der einen Kompressionsmodus anzeigt, aufweist.
  19. Medium bzw. Medien nach Anspruch 12, wobei die Abfolge ferner das Weiterleiten von die Bewegungsart betreffenden Informationen vom Rasterisierer zum Kompressor aufweist.
  20. Einrichtung, umfassend: eine Steuerung zum Berechnen von Tiefenfunktion-Koeffizienten für Dreiecke, die eine Bewegungsunschärfe und/oder Tiefenschärfe aufweisen, zum Berechnen der Abdeckung und Tiefe pro Sample für jede einer Mehrzahl von Kacheln und zum Verwenden der Koeffizienten, Abdeckung und Tiefe pro Sample in einem Kachel-Tiefenkompressor zum Speichern komprimierter Tiefen für Samples einer Kachel; einen Rasterisierer, der mit der Steuerung gekoppelt ist; und einen Kompressor, der mit der Steuerung gekoppelt ist.
  21. Einrichtung nach Anspruch 20, wobei der Rasterisierer ein Software-Rasterisierer ist.
  22. Einrichtung nach Anspruch 20, wobei die Steuerung eine Darstellung einer Tiefenfunktion direkt von einem Rasterisierer-Aufbau bereitstellt.
  23. Einrichtung nach Anspruch 20, wobei der Rasterisierer die Tiefenfunktion mit nur 16 Koeffizienten für die Bewegungsunschärfe darstellt.
  24. Einrichtung nach Anspruch 20, wobei der Rasterisierer die Tiefenfunktion mit nur 13 Koeffizienten für die Tiefenschärfe darstellt.
  25. Einrichtung nach Anspruch 20, wobei der Rasterisierer die Anzahl von Tiefenfunktion-Koeffizienten mittels einer Projektionsmatrix reduziert.
  26. Einrichtung nach Anspruch 20, wobei die Steuerung einen Kachel-Header in einer Kachelliste, der einen Kompressionsmodus anzeigt, speichert.
  27. Einrichtung nach Anspruch 20, ein Betriebssystem aufweisend.
  28. Einrichtung nach Anspruch 20, eine Batterie aufweisend.
  29. Einrichtung nach Anspruch 20, umfassend Firmware und ein Modul zur Aktualisierung der Firmware.
  30. Verfahren, umfassend: Speichern der Dreieck-Vertexpositionen, die das Dreieck zu zwei verschiedenen Zeiten darstellen, für ein überlappendes Dreieck, das eine Bewegungsunschärfe und Tiefenschärfe aufweist, für jede einer Mehrzahl von Kacheln; und Benutzen dieser Vertexpositionen zum Berechnen der Abdeckung und Tiefe pro Sample in einem Kachel-Tiefenkompressor zum Speichern von komprimierten Tiefen für Samples einer Kachel.
DE201311003714 2012-09-27 2013-06-27 Stochastische Tiefenpufferkompression mittels verallgemeinerter Ebenencodierung Withdrawn DE112013003714T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261706177P 2012-09-27 2012-09-27
US61/706,177 2012-09-27
US13/721,163 2012-12-20
US13/721,163 US9111392B2 (en) 2012-09-27 2012-12-20 Stochastic depth buffer compression using generalized plane encoding
PCT/US2013/048034 WO2014051793A1 (en) 2012-09-27 2013-06-27 Stochastic depth buffer compression using generalized plane encoding

Publications (1)

Publication Number Publication Date
DE112013003714T5 true DE112013003714T5 (de) 2015-04-16

Family

ID=50338396

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201311003714 Withdrawn DE112013003714T5 (de) 2012-09-27 2013-06-27 Stochastische Tiefenpufferkompression mittels verallgemeinerter Ebenencodierung

Country Status (5)

Country Link
US (1) US9111392B2 (de)
KR (1) KR101713041B1 (de)
CN (1) CN104584544B (de)
DE (1) DE112013003714T5 (de)
WO (1) WO2014051793A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552620B2 (en) 2014-06-30 2017-01-24 Intel Corporation Depth offset compression
US9799091B2 (en) * 2014-11-20 2017-10-24 Intel Corporation Apparatus and method for efficient frame-to-frame coherency exploitation for sort-last architectures
GB2539509B (en) * 2015-06-19 2017-06-14 Advanced Risc Mach Ltd Method of and apparatus for processing graphics
US10282889B2 (en) 2016-11-29 2019-05-07 Samsung Electronics Co., Ltd. Vertex attribute compression and decompression in hardware
WO2019094474A1 (en) * 2017-11-07 2019-05-16 Total E&P Research And Technology Usa Llc Measurement of flow properties in pipelines
GB2574361B (en) 2017-12-18 2021-03-24 Advanced Risc Mach Ltd Graphics Processing
US10726610B2 (en) 2018-08-29 2020-07-28 Arm Limited Efficient graphics processing using metadata

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6956576B1 (en) 2000-05-16 2005-10-18 Sun Microsystems, Inc. Graphics system using sample masks for motion blur, depth of field, and transparency
US8089486B2 (en) * 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
US9082228B2 (en) * 2011-01-12 2015-07-14 Intel Corporation Analytical motion blur rasterization with compression
GB2487421A (en) 2011-01-21 2012-07-25 Imagination Tech Ltd Tile Based Depth Buffer Compression

Also Published As

Publication number Publication date
CN104584544A (zh) 2015-04-29
US9111392B2 (en) 2015-08-18
CN104584544B (zh) 2016-12-07
US20140085300A1 (en) 2014-03-27
KR20150038428A (ko) 2015-04-08
WO2014051793A1 (en) 2014-04-03
KR101713041B1 (ko) 2017-03-07

Similar Documents

Publication Publication Date Title
DE112013003714T5 (de) Stochastische Tiefenpufferkompression mittels verallgemeinerter Ebenencodierung
DE102015113797B4 (de) Relative Kodierung für eine blockbasierte Begrenzungsvolumenhierarchie
US9483869B2 (en) Layered reconstruction for defocus and motion blur
DE102015002218B4 (de) Vermeiden des Sendens unveränderlicher Gebiete zur Anzeige
DE112017004246T5 (de) Cache- und komprimierungsinteroperabilität in einer grafikprozessorpipeline
DE102015002023B4 (de) Kompakte Tiefenebenendarstellung zum Sortieren letzter Architekturen
DE102015001814A1 (de) Farbkomprimierung unter Verwendung einer selektiven Farbtransformation
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE102019120661A1 (de) Videoverfeinerungsmechanismus
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
DE112016006081T5 (de) Automatische Echtzeit-Fahrzeugkamerakalibrierung
DE112013004778T5 (de) Kodierung von Bildern unter Verwendung eines 3D-Netzes von Polygonen und entsprechenden Strukturen
DE112014002469T5 (de) System, Verfahren und Computerprogrammprodukt zur Erzeugung von Bildern für eine augennaheLichtfeldanzeige
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE102013114090A1 (de) Konservative Rasterung von Primitiven unter Benutzung eines Fehler-Terms
DE102013114373A1 (de) Konsistente Vertex-Einrastung für Rendering mit variabler Auflösung
DE112013004618T5 (de) Tiefenpufferung
DE102019119102A1 (de) Spärliche repräsentation für voxel
DE102018114286A1 (de) Durchführen einer Traversierungs-Stack-Komprimierung
DE102019119085A1 (de) Punktbasiertes rendern und entfernung von projektionsrauschen
DE102013017640A1 (de) Verteilte gekachelte Zwischenspeicherung
DE102013017639A1 (de) Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichen L2-Cache-Speicher mit Oberflächenkomprimierung
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE112017000864T5 (de) Strahlenkomprimierung für effizientes Verarbeiten von Grafikdaten bei Rechenvorrichtungen
US9934604B2 (en) Culling using masked depths for MSAA

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: H04N0013000000

Ipc: G06T0015000000

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