DE102018125472B4 - Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben - Google Patents

Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben Download PDF

Info

Publication number
DE102018125472B4
DE102018125472B4 DE102018125472.5A DE102018125472A DE102018125472B4 DE 102018125472 B4 DE102018125472 B4 DE 102018125472B4 DE 102018125472 A DE102018125472 A DE 102018125472A DE 102018125472 B4 DE102018125472 B4 DE 102018125472B4
Authority
DE
Germany
Prior art keywords
frame
scm
candidate map
fragments
processing
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.)
Active
Application number
DE102018125472.5A
Other languages
English (en)
Other versions
DE102018125472A1 (de
Inventor
Seung-Hun Jin
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018125472A1 publication Critical patent/DE102018125472A1/de
Application granted granted Critical
Publication of DE102018125472B4 publication Critical patent/DE102018125472B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • 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/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Abstract

Verfahren zum Betreiben eines Grafikprozessors (100; 200; 300; 420; 500; 620; 712), wobei das Verfahren Folgendes aufweist:ein Durchführen (S32) eines Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente eines ersten Frame (Frame_Odd) durch Verwenden einer ersten Abtast-Kandidaten-Karte (SCM_1), welche eine erste Struktur hat;ein Durchführen (S35) von Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente eines zweiten Frame (Frame_C; Frame_Even) durch ein Verwenden der ersten Abtast-Kandidaten-Karte (SCM_1), welche eine zweite Struktur hat;ein zusätzliches Abtasten anderer Fragmente des zweiten Frame (Frame_C; Frame_Even), welche basierend auf einem Vergleich eines Shading-Verarbeitungsergebnis des ersten Frame (Frame_Odd) und eines Shading-Verarbeitungsergebnis des zweiten Frame (Frame_C; Frame_Even) bestimmt werden; undein Durchführen (S38) eines End-Rendering durch eine Shading-Verarbeitung der zusätzlich abgetasteten Fragmente.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Das erfinderische Konzept bezieht sich allgemein auf Grafikverarbeitung und genauer auf einen Grafikprozessor, welcher Abtastungs-basiertes Rendering durchführt und ein Verfahren zum Betreiben desselben.
  • Diskussion des Standes der Technik
  • Ein Renderingsystem kann einen Grafikprozessor wie beispielsweise eine Grafikverarbeitungseinheit (GPU) als eine Vorrichtung zum Durchführen einer Grafikoperation aufweisen. Die GPU kann eine Fragment-Shading-Verarbeitung zum Berechnen von Fragmentwerten von Videoframes, welche zu rendern sind (wobei ein Fragment einem Pixel entsprechen kann) durchführen. Solch eine Fragment-Shading-Verarbeitung besetzt einen großen Teil der Gesamtgrafikverarbeitungsoperationen aufgrund ihrer hohen Komplexität.
  • Ein Weg, um eine Menge von Fragment-Shading-Verarbeitung für ein gegebenes Frame zu verringern, ist es, nur einige der Fragmente, welche das Frame bilden, mit Shading zu verarbeiten. Farbwerte für die verbleibenden Fragmente des Frame können durch eine Interpolation zwischen den Fragmenten, welche mit Shading verarbeitet wurden, erhalten werden, oder „Advection“, welche ein Wiederverwenden von Pixeldaten von einem vorangehenden Frame involviert. Die Verarbeitungsmenge wird auf diese Art und Weise verringert, da eine Interpolation oder Advection einfachere Verarbeitungsaufgaben sind als eine Shading-Verarbeitung. Bei diesem Verfahren sind die Fragmente, welche Shading-verarbeitet werden, Fragmente, welche als „abgetastet“ bezeichnet werden, wohingegen die anderen Fragmente als nicht-abgetastet bezeichnet werden. Während die Verarbeitung mit dieser Herangehensweise verringert wird, kann, wenn eine Abtastrate zu niedrig ist, die Rendering-Qualität leiden. Wenn die Abtastrate zu hoch ist, können die Ressourcen einer GPU nicht effizient genutzt werden.
  • Aus der Druckschrift US 2015 / 0 379 727 A1 ist eine Vorrichtung, ein System und ein Verfahren bekannt, um eine Bewegung von Pixeln in lokalen Bereichen einer Szene zu bestimmen, die Bewegung in eine Geschwindigkeitskategorie zu klassifizieren und Entscheidungen darüber zu treffen, wie Pixelblöcke gerendert werden. In einer Implementierung wird die Bewegung in einer Kachel in mindestens drei verschiedene Geschwindigkeitsbereiche eingeteilt. Wenn sich die Pixel in einer Kachel in einem quasistatischen Geschwindigkeitsbereich befinden, wird entschieden, ob ein Bruchteil der Pixel aus dem vorherigen Frame wiederverwendet werden soll oder nicht. Wenn festgestellt wird, dass sich die Pixel in einem Hochgeschwindigkeitsbereich befinden, wird entschieden, ob die Abtastrate reduziert werden kann oder nicht.
  • KURZFASSUNG
  • Das erfinderische Konzept sieht einen Grafikprozessor vor, welcher ein Fragment-Sampling-Verfahren zum Rendering implementiert, welches in der Lage ist, die Genauigkeit der Shading-Verarbeitung zu verbessern, während eine Menge von Fragment-Shading-Verarbeitung verringert wird.
  • Gemäß einem Aspekt des erfinderischen Konzepts ist ein Verfahren zum Betreiben eines Grafikprozessors vorgesehen, welches ein Durchführen von Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente eines ersten Frame durch ein Verwenden einer ersten Abtast-Kandidaten-Karte, welche eine erste Struktur hat, involviert. Ferner kann Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente eines zweiten Frame durch Nutzen einer ersten Abtast-Kandidaten-Karte, welche eine zweite Struktur hat, durchgeführt werden. Das Verfahren kann zusätzlich andere Fragmente des zweiten Frame abtasten, welche basierend auf einem Vergleichen eines Shading-Verarbeitungs-Ergebnisses des ersten Frame und eines Shadings-VerarbeitungsErgebnis des zweiten Frame bestimmt werden. Ein End-Rendering wird durch ein Shading-Verarbeiten der zusätzlich abgetasteten Fragmente durchgeführt.
  • Gemäß einem anderen Aspekt des erfinderischen Konzepts ist ein Grafikprozessor vorgesehen, der Folgendes aufweist: einen Zwischen-Rendering-Prozessor, welcher eine Shading-Verarbeitung auf einigen einer Mehrzahl von Fragmenten eines gegenwärtigen Frame gemäß einer Abtast-Information einer Abtast-Kandidaten-Karte durchführt; eine Abtast-Kandidaten-Karten-Überarbeitungsschaltung, welche konfiguriert ist, um die Abtast-Information der Abtast-Kandidaten-Karte zu ändern, um dadurch eine geänderte Abtast-Kandidaten-Karte zu erzeugen, basierend auf einem Vergleich eines Shading-Verarbeitungs-Ergebnisses eines vorangehenden Frame und eines Shading-Verarbeitungs-Ergebnisses des gegenwärtigen Frame. Ein End-Rendering-Prozessor führt eine Shading-Verarbeitung auf Fragmenten des gegenwärtigen Frame, welche durch die geänderte Abtast-Kandidaten-Karte aus den Fragmenten, welche durch den Zwischen-Rendering-Prozessor nicht Shading-verarbeitet sind, zusätzlich abgetastet werden, durch.
  • Gemäß noch einem anderen Aspekt der Erfindung ist ein Grafikprozessor vorgesehen, wobei der Grafikprozessor Folgendes aufweist: eine Abtast-Kandidaten-Karten-Überarbeitungsschaltung, welche konfiguriert ist, um eine erste Abtast-Kandidaten-Karte zum Auswählen einiger einer Mehrzahl von Fragmenten hinsichtlich eines gegebenen Frame eines Video, welches zu rendern ist, zu empfangen und um eine zweite Abtast-Kandidaten-Karte durch ein Ändern von Abtast-Information der ersten Abtast-Kandidaten-Karte basierend auf einem Vergleich von Shading-Verarbeitungsergebnissen von wenigstens zwei Frames des Videos zu erzeugen; und einen Fragment-Prozessor, welcher eine Zwischen-Rendering-Verarbeitung durch eine Shading-Verarbeitung auf Fragmenten durchführt, welche gemäß der ersten Abtast-Kandidaten-Karte abgetastet werden und eine End-Rendering-Verarbeitung durch eine Shading-Verarbeitung auf Fragmenten durchführt, welche gemäß der zweiten Abtast-Kandidaten-Karte zusätzlich abgetastet werden.
  • In noch einem anderen Aspekt speichert ein nicht vergängliches computerlesbares Aufzeichnungsmedium Befehle, welche, wenn sie durch wenigstens einen Prozessor ausgeführt werden, ein Verfahren zum Rendering von Frames eines Videos implementieren. Hier kann das Verfahren ein Zwischen-Rendering eines gegenwärtigen Frame durch eine Shading-Verarbeitung eines Unter-Satzes von Pixeln, welche das gegenwärtige Frame bilden, aufweisen. Der Unter-Satz von Pixeln wird basierend auf einer Abtast-Kandidaten-Karte ausgewählt und weist ein erstes Pixel an einem ersten Ort eines Pixelgitters und ein zweites Pixel an einem zweiten Ort des Pixelgitters auf. Das erste Pixel hat einen ersten Pixelwert und das zweite Pixel hat einen zweiten Pixelwert als ein Ergebnis des Zwischen-Rendering. Das Verfahren erlangt ferner Pixelwerte von Pixeln, welche in einem Rendering eines vorangehenden Frame für das gegenwärtige Frame berechnet werden; und bestimmt, ob eine Interpolationsverarbeitung oder eine Shading-Verarbeitung eines dritten Pixel des gegenwärtigen Frame an einem dritten Ort des Pixelgitters zwischen dem ersten Ort und dem zweiten Ort durchzuführen ist, basierend auf einem Vergleich von: (i) einem Pixelwert des vorangehenden Frame eines Pixel, welches auf einen vierten Ort des Pixelgitters abgebildet wird, benachbart zu jedem des ersten und zweiten Orts, mit (ii) dem ersten Pixelwert und/oder den zweiten Pixelwert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausführungsformen des erfinderischen Konzepts werden deutlicher aus der folgenden detaillierten Beschreibung zusammengenommen mit den beigefügten Zeichnungen verstanden werden, in welchen:
    • 1 ein Blockschaltbild ist, welches ein Rendering-System gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht;
    • 2 ein Diagramm ist, welches ein Konzept einer Abtast-Kandidaten-Karten-Überarbeitungsoperation gemäß der Ausführungsform der 1 veranschaulicht;
    • 3 ein Diagramm ist, welches einen Prozess einer Verarbeitung von Dreidimensionalen (3D)-Grafiken in einem Grafikprozessor veranschaulicht;
    • 4 ein Blockschaltbild ist, welches ein Implementierungsbeispiel eines Grafikprozessors gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht;
    • 5A, 5B und 5C Diagramme sind, welche ein Beispiel einer Shading-Verarbeitung auf Fragmenten in einem Primitiv veranschaulichen;
    • 6 ein Diagramm ist, welches ein Beispiel veranschaulicht, in welchem eine Abtast-Kandidaten-Karten-Überarbeitungsoperation auf die Ausführungsform der 5A, 5B und 5C angewandt wird;
    • 7A, 7B und 8 Diagramme sind, welche ein Beispiel zum Durchführen einer Abtast-Kandidaten-Karten-Überarbeitung durch ein Verwenden von Daten von wenigstens zwei Frames veranschaulichen;
    • 9 und 10 Flussdiagramme sind, welche Verfahren zum Betreiben eines Grafikprozessors gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulichen;
    • 11 ein Blockschaltbild ist, welches ein Implementierungsbeispiel eines Grafikprozessors gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulichen;
    • 12 ein Diagramm ist, welches eine Gesamtbetriebsprozedur eines Grafikprozessors veranschaulicht, auf welchen eine Ausführungsform des erfinderischen Konzepts angewandt wird;
    • 13, 14 und 15 Blockschaltbilder sind, welche jeweilige Rendering-Systeme gemäß verschiedenen Ausführungsformen des erfinderischen Konzepts veranschaulichen;
    • 16 ein Diagramm ist, welches ein Beispiel einer variablen Operation eines Abtast-Modus veranschaulicht;
    • 17A unterschiedliche Abtast-Kandidaten-Karten über vier Frames gemäß einer Dithering-Technik zeigt;
    • 17B ein Beispiel von Typen von Daten veranschaulicht, welche angewandt werden auf und verarbeitet werden durch eine Abtast-Kandidaten-Karten-Überarbeitungsvorrichtung; und
    • 18 ein Blockschaltbild ist, welches ein Implementierungsbeispiel einer mobilen Vorrichtung veranschaulicht, welche eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts aufweist.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Hierin nachstehend werden Ausführungsformen des erfinderischen Konzepts im Detail unter Bezugnahme auf die beigefügten Zeichnungen beschrieben werden.
  • Wenn hierin verwendet, entspricht „ein Fragment“ einer Basiseinheit der Grafikoperationsverarbeitung. Ein Fragment kann ein Pixel eines Primitiv sein. Hierin nachstehend können die Begriffe Fragment und Pixel austauschbar verwendet werden. Beispielsweise kann auf ein Fragment-Shading Bezug genommen werden als ein Pixel-Shading und auf ein Fragment-Abtasten kann Bezug genommen werden als Pixel-Abtasten.
  • 1 ist ein Blockschaltbild, welches ein Rendering-System 10 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht. Das Rendering-System 10 kann einen Grafikprozessor 100 und einen Speicher 101 aufweisen. Der Grafikprozessor 100 kann Grafikoperationen in dem Rendering-System 10 durchführen, um Rendering durchzuführen. Als ein Beispiel kann der Grafikprozessor 100 ein dreidimensionales (3D) Objekt empfangen und ein zweidimensionales (2D) gerendertes Bild als ein Rendering-Verarbeitungsergebnis davon ausgeben. Ein Grafikprozessor kann durch verschiedene Typen von Prozessoren implementiert sein, von welchen ein typisches Beispiel eine Grafikverarbeitungseinheit (GPU) ist, wie beispielhaft in 1 und anderen Beispiel untenstehend dargestellt ist.
  • Der Grafikprozessor 100 kann konfiguriert sein, um ein kachelbasiertes Rendering durchzuführen, und zu diesem Zweck kann der Grafikprozessor 100 Grafikpipelines aufweisen, welche Grafikdaten parallel verarbeiten können. Jede Grafikpipeline kann verschiedene Typen von Konfigurationen für Grafikoperationen aufweisen und kann durch Hardware und/oder Software konfiguriert sein.
  • Obwohl in 1 nicht veranschaulicht kann das Rendering-System 10 ferner eine zentrale Verarbeitungseinheit (CPU) zum Steuern eines Gesamtsystembetriebs aufweisen, und verschiedene Typen von Bussen wie beispielsweise Peripheral Component Interconnect (PCI)-Busse und PCI-Express-Busse für eine Kommunikation zwischen Komponenten. Das Rendering-System 10 kann ebenso beispielsweise einen Desktopcomputer, einen Notebookcomputer, ein Smartphone, einen persönlichen digitalen Assistenten (PDA), einen tragbaren Medienabspieler, eine Videospielekonsole, eine Fernseh (TV)-Set-Top-Box, eine Tablet-Vorrichtung, einen E-Buch-Leser oder eine tragbare Vorrichtung aufweisen, ist jedoch nicht darauf beschränkt und kann verschiedenen Typen von elektronischen Systemen entsprechen.
  • Der Grafikprozessor 100 kann Rendering-bezogene Information basierend auf verschiedenen Anwendungsprogrammschnittstellen (API)-Standards empfangen wie beispielsweise Open Graphic(s) Library (OpenGL), DirectX, und Compute Unified Device Architecture (CUDA) und kann verschiedene Grafikoperationen wie beispielsweise eine Shading-Verarbeitung und Texturier-Verarbeitung durchführen. Ebenso kann der Speicher 101 in dem gleichen Halbleiterchip wie der Grafikprozessor 100 integriert sein oder kann als ein unterschiedlicher Halbleiterchip implementiert sein und kann dem Direktzugriffsspeicher wie beispielsweise dynamischen Direktzugriffsspeicher (DRAM) oder statischem Direktzugriffspeicher (SRAM) entsprechen oder kann einer Speichervorrichtung wie beispielsweise Nur-Lese-Speicher (ROM), elektrisch löschbarem programmierbarem Nur-Lese-Speicher (EEPROM) oder einem Flashspeicher entsprechen. Der Speicher 101 kann Grafikdaten, welche durch den Grafikprozessor 100 zu verarbeiten sind, speichern oder kann Grafikdaten (beispielsweise Framedaten), welche bereits durch den Grafikprozessor 100 verarbeitet sind, speichern.
  • Als ein Operationsbeispiel kann der Grafikprozessor 100 ein Vertex oder Vertexes empfangen und ein Primitiv durch eine Operationsverarbeitung auf dem empfangenen (den empfangenen) Vertex(es) erzeugen. Der Grafikprozessor 100 kann einen Satz von Fragmenten, welche ein Primitiv repräsentieren, erzeugen. Der Grafikprozessor 100 kann eine Fragment-Shading-Verarbeitung durchführen, um die Werte von Fragmenten zu berechnen.
  • Die Fragment-Shading-Verarbeitung kann einen großen Abschnitt der Gesamtgrafikoperationsmenge aufgrund seiner hohen Komplexität besetzen. Wie voranstehend diskutiert ist, kann, um die Komplexität des Fragment-Shading zu verringern, ein Verfahren angewandt werden, um Fragmentwerte durch ein Durchführen von Abtast- und Shading-Verarbeitung auf nur einigen der Fragmente eines gegebenen Frame (oder Kachel/Primitiv) zu berechnen, und ein Durchführen einer „Advection“ oder Interpolationsoperation auf den anderen Fragmenten des Frame. Die Verarbeitungsmenge wird auf diese Art und Weise verringert, da Interpolation und Advection jeweils weniger prozessorintensiv sein können als eine Shading-Verarbeitung. In der Beschreibung hierin nachstehend sind Fragmente, welche Shading-verarbeitet sind, Fragmente, welche „abgetastete“ Fragmente genannt werden, wohingegen die Fragmente, welche Werte haben, welche durch Interpolation oder Advection bestimmt werden, nicht-abgetastete oder „abgeleitete“ Fragmente genannt werden. Wenn eine Abtastrate niedrig ist, kann der Wert eines Fragments durch Interpolation zwischen abgetasteten Fragmenten bestimmt werden, welche Werte haben, welche durch eine aktuelle Shading-Verarbeitung erlangt werden. In diesem Fall kann, da der Fragmentwert, welcher durch eine Interpolationsverarbeitung berechnet wird, in großem Maße unterschiedlich von dem tatsächlichen Wert davon sein kann (das heißt andernfalls durch Shading-Verarbeitung erhältlich), eine Bildqualitätsverschlechterung auftreten.
  • Gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts kann der Grafikprozessor 100 eine Abtast-Kandidaten-Karten (SCM)-Überarbeitungsvorrichtung 110 und einen Fragment-Prozessor 120 aufweisen. Beispielsweise kann in einer Primitiv-Einheit ein Primitiv eine Mehrzahl von Fragmenten aufweisen und der Grafikprozessor 100 kann nur einige der Mehrzahl von Fragmenten abtasten und selektiv eine Shading-Verarbeitung darauf durchführen. Als ein Beispiel kann eine Abtast-Kandidaten-Karte (beispielsweise eine erste Abtast-Kandidaten-Karte SCM_1), welche eine Struktur von Abtast-Information zum Abtasten einiger Fragmente hat, in dem Grafikprozessor 100 erzeugt werden. Shading-Verarbeitungsergebnisse (beispielsweise Fragmentwerte) der abgetasteten Fragmente, welche auf die Abtast-Information der Struktur abgebildet werden, können durch eine Shading-Verarbeitung basierend auf der ersten Abtast-Kandidaten-Karte SCM1 berechnet werden. Fragmente welche durch die Abtast-Kandidaten-Karte nicht als Fragmente, welche abzutasten sind, bezeichnet sind, können ihre Werte durch Interpolation zwischen den abgetasteten Fragmenten erlangt haben.
  • In Übereinstimmung mit dem erfinderischen Konzept kann, um das Auftreten einer Bildverschlechterung aufgrund möglicher Beispiele von ungenauer Interpolation eine Abtast-Kandidaten-Karte dynamisch modifiziert werden. Als ein Beispiel kann angenommen werden, dass ein Beispiel von ungenauer Interpolation wahrscheinlich ist, wenn Fragmente, welche benachbarten, jedoch nicht zusammenhängenden Abtast-Positionen einer Abtast-Kandidaten-Karte entsprechen, Werte haben, welche um mehr als einen Grenzwert differieren. In diesem Fall kann es wahrscheinlich sein, dass die abgetasteten Fragmente Fragmente von unterschiedlichen Objekten oder unterschiedlichen Abschnitten einer Textur (angewandt auf ein einzelnes Objekt) sind, welche signifikant unterschiedliche Farben (oder Luminanz) haben. In dieser Situation kann eine Interpolation zwischen den abgetasteten Fragmenten einen ungenauen Wert für ein abgeleitetes Fragment dazwischen ergeben. Zu diesem Zweck kann die SCM-Überarbeitungsvorrichtung 110 solch eine mögliche Bedingung erfassen und die Abtast-Kandidaten-Karte überarbeiten, um ein Abtast-Fragment an einem Ort hinzuzufügen, welcher anderweitig zu einem ungenauen interpolierten Fragment führen würde. Darüber hinaus kann anstelle von oder zusätzlich zu einem lediglichen Vergleichen von Werten von abgetasteten Fragmenten eines gegenwärtigen Frame an einer ersten Abtastposition benachbart zu einer zweiten Abtastposition die SCM-Überarbeitungsvorrichtung 110 die mögliche Bedingung durch ein Vergleichen eines Fragmentwerts eines abgetasteten Fragments in dem gegenwärtigen Frame an der ersten Position mit dem Wert eines abgetasteten Fragments eines vorangehenden Frame, welcher auf einen Ort zwischen der ersten und zweiten Position des gegenwärtigen Frame abgebildet ist (wie bei einem Advectionsverfahren) erfassen. Diese Herangehensweise, welche weiterhin untenstehend erklärt wird, kann zu einer genaueren Randerfassung für den Zweck des Auswählens zusätzlicher Abtast-Orte zum Überarbeiten der Abtast-Kandidaten-Karte führen.
  • Zu diesem Zweck kann die SCM-Überarbeitungsrichtung 110 eine zweite Abtast-Kandidaten-Karte SCM2 durch ein Überarbeiten der Abtast-Information der ersten Abtast-Kandidaten-Karte SCM_1, welche vorangehend empfangen wird, erzeugen. Als ein Implementationsbeispiel kann die erste Abtast-Kandidaten-Karte SCM_1 Abtast-Information aufweisen, welche die Position von Fragmenten (beispielsweise erste Fragmente), welche Shading-verarbeitet werden sollen, unter einer Mehrzahl von Fragmenten in einem Primitiv, einer Kachel oder einem Frame repräsentiert. Die zweite Abtast-Kandidaten-Karte SCM_2 kann Abtast-Information aufweisen, welche die Position von Fragmenten (beispielsweise zweiten Fragmenten), welche unter Fragmenten anders als den ersten Fragmenten zusätzlich Shading-zu-verarbeiten sind, repräsentiert. Als ein Beispiel kann die zweite Abtast-Kandidaten-Karte SCM_2 Information aufweisen, welche die Position von ersten Fragmenten und zweiten Fragmenten unter einer Mehrzahl von Fragmenten in einem Primitiv, einer Kachel oder einem Frame repräsentiert. Als ein anderes Beispiel kann die zweite Abtast-Kandidaten-Karte SCM_2 in einer Form implementiert sein, welche Information aufweist, welche nur die Position von zweiten Fragmenten aus der Mehrzahl von Fragmenten in dem Primitiv, der Kachel oder dem Frame repräsentiert.
  • In Ausführungsformen des erfinderischen Konzepts kann eine Shading-Verarbeitung für Rendering durch den Grafikprozessor 100 zwei oder mehrere Male nacheinander folgend auf einer Mehrzahl von Fragmenten durchgeführt werden, sodass eine Shading-Verarbeitung basierend auf der ersten Abtast-Kandidaten-Karte SCM_1 als eine Zwischen-Rendering-Verarbeitung bezeichnet werden kann, und eine Shading-Verarbeitung basierend auf der zweiten Abtast-Kandidaten-Karte SCM_2 als eine End-Rendering-Verarbeitung bezeichnet werden kann. In der folgenden Diskussion können die Begriffe „Shading-Verarbeitung“ und „Rendering-Verarbeitung“ austauschbar verwendet werden und beispielsweise kann auf eine Zwischen-Rendering-Verarbeitung Bezug genommen werden als Zwischen-Shading-Verarbeitung und auf eine End-Rendering-Verarbeitung kann Bezug genommen werden als eine End-Shading-Verarbeitung. Indes kann der Grafikprozessor 100 eine erste SCM-Erzeugungsvorrichtung (nicht veranschaulicht) zum Erzeugen einer ersten Abtast-Kandidaten-Karte SCM_1 aufweisen. Auf die SCM-Überarbeitungsvorrichtung 110 kann als eine zweite SCM-Erzeugungsvorrichtung Bezug genommen werden, da die SCM-Überarbeitungsvorrichtung 110 eine zweite Abtast-Kandidaten-Karte SCM_2 erzeugt.
  • Gemäß einer Ausführungsform kann die SCM-Überarbeitungsvorrichtung 110 eine Überarbeitungsoperation basierend auf verschiedenen Typen von Information, beispielsweise Fragmentwerten Frag_C und Frag_P durchführen. Beispielsweise kann die SCM-Überarbeitungsvorrichtung 110 den Fragmentwert Frag_C empfangen, welcher durch eine Shading-Verarbeitung in einem gegenwärtigen Frame eines Video, welches zu rendem ist, berechnet wird, und über eine Anzeigevorrichtung angezeigt wird, und den Fragmentwert Frag_P, welcher über eine Shading-Verarbeitung in einem vorangehenden Frame des Videos berechnet wird, und eine Überarbeitungsoperation durch eine Operation basierend darauf durchführen. Beispielsweise können die Werte von Frag_C und Frag_P verglichen werden, um zu bestimmen, ob ein Rand oder dergleichen zwischen benachbarten aber nicht zusammenhängenden Abtast-Positionen existiert, derart, dass eine zusätzliche Abtastung (zusätzliche Abtastungen) eingefügt werden sollten. Frag_P kann ein Fragmentwert von dem vorangehenden Frame sein, welcher möglicherweise für ein nicht abgetastetes Fragment in dem gegenwärtigen Frame durch Advection wiederverwendet werden könnte. Als ein Beispiel kann, wenn eine Inter-Framebewegung eines Objekts, welches in sowohl dem vorangehenden Frame als auch den gegenwärtigen Frame gerendert wird, minimal ist (das heißt eine im Wesentlichen statische Szenenbedingung zwischen den Frames existiert) angenommen werden, dass ein Fragment an einem gemeinsamen Ort eines Pixelgitters einen gleichen Wert Frag_P in beiden Frames haben kann. In einem komplexeren Fall kann, wenn ein Betrag von Inter-Framebewegung des Objekts signifikant und bekannt ist, ein Fragmentwert Frag_P eines Fragments an einem ersten Ort eines Pixelgitters unter Verwendung von Bewegungsvektoren auf einen zweiten Ort des Pixelgitters in dem gegenwärtigen Frame abgebildet werden. In diesem Fall kann der Fragmentwert Frag_P an dem ersten Ort, welcher in dem vorangehenden Frame bestimmt wird, bei dem zweiten Ort in dem gegenwärtigen Frame wiederverwendet werden.
  • Die Abtastinformation den ersten Abtast-Kandidaten-Karte SCM_1 kann verschiedene Typen von Strukturen haben. Beispielsweise kann die Struktur (erste Struktur) der ersten Abtast-Kandidaten-Karte SCM_1, welche in einer Zwischen-Rendering-Verarbeitung in einem gegenwärtigen Frame verwendet wird, sich von der Struktur (zweiter Struktur) der ersten Abtast-Kandidaten-Karte SCM_1 unterscheiden, welche in einer Zwischen-Rendering-Verarbeitung in einem vorangehenden Frame verwendet wird. (Der Unterschied in den Strukturen kann aufgrund einer Dithering-Technik sein, um visuelle Artefakte zu verringern, später diskutiert). Die Fragmentwerte Frag_C und Frag_P, welche in der Überarbeitungsoperation verwendet werden, können Werte sein, welche durch die Zwischen-Rendering-Verarbeitung berechnet werden, und demnach kann sich, wenn wenigstens der Fall eines im Wesentlichen statischen Zustandes zwischen Frames, welcher obenstehend angemerkt wurde, betrachtet wird, die Position eines Fragments in einem gegenwärtigen Frame, welche durch Frag_C repräsentiert wird, von der Position eines Fragments in dem vorangehenden Frame, repräsentiert durch Frag_P, verwendet in der Überarbeitungsoperation, unterscheiden.
  • Wenn die erste Abtast-Kandidaten-Karte SCM_1 eine grobe Struktur aufgrund ihrer niedrigen Abtastrate hat, kann der Abstand zwischen Fragmenten, deren Werte durch die Zwischen-Rendering-Verarbeitung berechnet werden, relativ groß sein. In diesem Fall kann, bevor die Interpolationsverarbeitung auf den Fragmenten, auf welchen Zwischen-Rendering-Verarbeitung nicht durchgeführt wird, durchgeführt wird, die obige Abtast-Kandidaten-Karten-Überarbeitungsoperation durchgeführt werden, um ferner ein Fragment auszuwählen, welches eine End-Rendering-Verarbeitung benötigt, und gemäß einer Ausführungsform des erfinderischen Konzepts können die Fragmentwerte von wenigstens zwei Frames verwendet werden, um die Auswahlgenauigkeit eines Fragments, welches eine End-Rendering-Verarbeitung benötigt, zu verbessern.
  • Beispielsweise kann gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts, auch wenn die erste Abtast-Kandidaten-Karte SCM_1 eine grobe Struktur in einem beliebigen einen Frame hat, eine Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden eines Fragmentwerts eines gegenwärtigen Frame und eines Fragmentwerts eines vorangegangenen Frame durchgeführt werden, und demnach kann eine Überarbeitungsoperation basierend auf den Fragmentwerten von Positionen durchgeführt werden, welche einen relativ kurzen Abstand haben. Beispielsweise kann, da eine Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden eines Fragmentwerts gemäß einer im Wesentlichen feinen Struktur durchgeführt werden kann, die Auswahlgenauigkeit eines Fragments, welches eine aktuelle Shading-Verarbeitung benötigt (wie beispielsweise ein Rand) verbessert werden.
  • Wenn eine zweite Abtast-Kandidaten-Karte SCM_2 gemäß der obigen Operation erzeugt wird, können die zweite Abtast-Kandidaten-Karte SCM_2 und Grafikdaten Data, welche zu verarbeiten sind, für den Fragment-Prozessor 120 vorgesehen werden. Der Fragment-Prozessor 120 kann eine Shading-Verarbeitung auf einem Fragment durchführen, welches durch die zweite Abtast-Kandidaten-Karte SCM_2 abgetastet ist und einen Fragmentwert demgemäß berechnen. Framedaten Data_Frame für das gegenwärtige Frame können durch den obigen Prozess erzeugt werden und in dem Speicher 101 gespeichert werden.
  • 2 ist ein Diagramm, welches ein Konzept der Abtast-Kandidaten-Karten-Überarbeitungsoperation gemäß der Ausführungsform der 1 veranschaulicht. Die erste Abtast-Kandidaten-Karte SCM_1 kann Abtastinformation aufweisen, welche eine vorbestimmte Struktur hat. Beispielsweise kann, wie in 2 veranschaulicht ist, ein Fragment für jede vier Fragmente in einer horizontalen Richtung hinsichtlich einer Mehrzahl von Fragmenten abgetastet werden. Ein Abtasten kann auf eine Zeile für jede zwei Zeilen in einer vertikalen Richtung angewandt werden und die Abtast-Positionen von abgetasteter Zeile zu abgetasteter Zeile können gestaffelt sein. Die erste Abtast-Kandidaten-Karte SCM_1 der 2 kann als eine Struktur des Abtastens von zwei Fragmenten für jede Vier*-Größe habend beschrieben werden. 2 veranschaulicht ebenso, dass wenigstens ein Abschnitt der Abtast-Kandidaten-Karte SCM_1 korreliert sein kann mit und angewandt werden kann auf einen Satz von Pixeln T_C (Frame_C) des gegenwärtigen Frame wie beispielsweise eine Kachel. Wenigstens ein Abschnitt der zweiten Abtast-Kandidaten-Karte SCM_2 kann ebenso mit demselben Satz von Pixeln T_C (Frame_C) korreliert sein. Demnach kann jedes schattierte beziehungsweise geschattete (shaded) und unschattierte Viereck der Abtast-Kandidaten-Karte SCM_1 als einem jeweiligen Pixel des Pixelsatzes T_C (Frame_C) überliegend angesehen werden.
  • Die SCM-Überarbeitungsvorrichtung 110 kann die zweite Abtast-Kandidaten-Karte SCM_2 durch ein Überarbeiten der Abtastinformation der ersten Abtast-Kandidaten-Karte SCM_1 erzeugen. Ebenso kann gemäß dem obigen Beispiel die SCM-Überarbeitungsvorrichtung 110 den Fragmentwert Frag_C, welcher durch die Shading-Verarbeitung in dem gegenwärtigen Frame berechnet wird, und den Fragmentwert Frag_P, welcher durch die Shading-Verarbeitung in dem vorangehenden Frame berechnet wird, empfangen.
  • Die SCM-Überarbeitungsvorrichtung 110 kann eine Operation basierend auf den Fragmentwerten Frag_C und Frag_P durchführen und die Notwendigkeit einer Shading-Verarbeitung auf den anderen Fragmenten basierend darauf bestimmen. Als ein Beispiel wird eine Beschreibung untenstehend unter Bezugnahme auf ein Fragment an einer ersten Position P0, ein Fragment an einer zweiten Position P1 und ein Fragment an einer dritten Position P2 in der horizontalen Richtung gegeben werden.
  • Der Fragmentwert Frag_C (P0) des Fragments an der ersten Position P0 und der Fragmentwert Frag_C (P1) des Fragments an der zweiten Position P1 können durch die Fragment-Shading-Verarbeitung basierend auf der ersten Abtast-Kandidaten-Karte SCM_1 in Hinsicht auf das gegenwärtige Frame berechnet werden und dann für die SCM-Überarbeitungsvorrichtung 110 vorgesehen werden. (Die Legende Frag_C kann verstanden werden, um einen Satz von Fragmentwerten an den unterschiedlichen Positionen P0, P1 etc. zu repräsentieren; und ähnlich für die Legende gilt Frag_P). Ebenso kann in dem vorangehenden Frame eine Shading-Verarbeitung auf den Fragmenten an unterschiedlichen Positionen aufgrund der Dithering-Technik durchgeführt worden sein, und als ein statisches Frame-zu-Frame-Zustandsbeispiel kann der Fragmentwert Frag_P der dritten Position P2 des vorangehenden Frame für die SCM-Überarbeitungsvorrichtung 110 vorgesehen sein. Gemäß einer Ausführungsform kann die Position von Fragmenten, welche durch die erste Abtast-Kandidaten-Karte SCM_1 abgetastet werden, von Frame zu Frame basierend auf Dithering variieren und demnach kann sich die Position von Fragmenten, welche in dem vorangegangenen Frame Zwischen-Rendering-verarbeitet wurden und die Positionen von Fragmenten, welche in dem gegenwärtigen Frame Zwischen-Rendering-verarbeitet wurden, voneinander unterscheiden. Darüber hinaus können, auch wenn eine Bewegung von Objekten zwischen Frames signifikant ist, Fragmentwerte, welche für das vorangehende Frame berechnet wurden, auf entsprechende Positionen des gegenwärtigen Frame abgebildet werden derart, dass die vorangehenden Frame-Fragmentewerte nach wie vor beim Überarbeiten der Abtast-Kandidaten-Karte nützlich sein können.
  • Die SCM-Überarbeitungsvorrichtung 110 kann eine Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden der Werte von Fragmenten der ersten bis dritten Position P0 bis P2 durchführen. Beispielsweise können der Fragmentwert Frag_C der ersten Position P0 und der Fragmentwert Frag_P der dritten Position P2 verglichen werden, und ebenso können der Fragmentwert Frag_C der zweiten Position P1 und der Fragmentwert Frag_P der dritten Position P2 verglichen werden. Die Abtast-Kandidaten Karte kann überarbeitet werden derart, dass die Fragmente zwischen der ersten Position P0 und der zweiten Position P1 gemäß den Vergleichsergebnissen abgetastet werden können.
  • Als ein Beispiel kann die Abtast-Kandidaten-Karte basierend auf dem Vergleichsergebnis zwischen dem Fragmentwert Frag_C der ersten Position P0 und dem Fragmentwert Frag_P der dritten Position P2 und/oder dem Vergleichsergebnis zwischen dem Fragmentwert Frag_C der zweiten Position P1 und dem Fragmentwert Frag_P der dritten Position P2 überarbeitet werden. Wenn die Differenz beziehungsweise der Unterschied zwischen den Fragmentwerten Frag_C und Frag P über einem vorbestimmten Grenzwert ist, kann eine Bildänderung groß sein und/oder ein Rand kann existieren. In diesem Fall kann die Abtast-Kandidaten-Karte derart überarbeitet werden, dass die Fragmente in einem Bereich Reg_1 zwischen der ersten Position P0 und der zweiten Position P1 abgetastet werden können. (Es sei angemerkt, dass der Fragmentwert Frag_P (P2) für das Fragment des gegenwärtigen Frame an der Position P2 basierend auf Advection verwendet werden kann derart, dass ein Abtasten in dem gegenwärtigen Frame für die Fragmentposition P2 vermieden werden kann). Andererseits kann, wenn die Differenzen zwischen den Fragmentwerten Frag_C (P0) und Frag_P (P2) und zwischen Frag_C (P1) und Frag_C (P2) jeweils unterhalb des Grenzwertes sind, die Bildänderung klein sein und ein Abtasten kann für all die Fragmente dazwischen in dem Bereich Reg_1 vermieden werden. Beispielsweise können basierend auf den Fragmentwerten Frag_C und Frag_P des gegenwärtigen Frame und des vorangehenden Frame die Werte der Fragmente in dem Bereich Reg_1 durch eine Shading-Verarbeitung oder eine Interpolationsverarbeitung (mit Advectionsverarbeitung optional verwendet für Position 2 wie voranstehend diskutiert) berechnet werden.
  • Indes kann in 2 durch ein Verwenden der Fragmentwerte Frag_C einer vierten Position P3 und einer fünften Position P4 des gegenwärtigen Frame und des Fragmentwerts Frag_P einer sechsten Position P5 des vorangehenden Frame bestimmt werden, ob die Fragmente in einem Bereich Reg_2 zusätzlich abzutasten sind. In einer ähnlichen Art und Weise kann bestimmt werden, ob eine zusätzliche Abtastung auf allen Fragmenten der 2 durchzuführen ist.
  • In der obigen Ausführungsform können die Fragmente, welche zusätzlich abzutasten sind, durch verschiedene Kriterien ausgewählt werden. Als ein Beispiel kann ein Randerfassungsalgorithmus basierend auf den Fragmentwerten Frag_C und Frag_P durchgeführt werden, und die Abtast-Kandidaten-Karte kann gemäß dem Randerfassungsergebnis davon überarbeitet werden.
  • Indes kann in dem Beispiel, welches in 2 veranschaulicht ist, die Abtastinformation der Fragmente zwischen der ersten Position P0 und der zweiten Position P1 in einer Ausführungsform zusammen überarbeitet werden oder kann in einer alternativen Ausführungsform getrennt überarbeitet werden. Beispielsweise kann basierend auf den Fragmentwerten Frag_C (P0) und Frag P (P2) die Abtastinformation des Fragments zwischen der ersten Position P0 und der dritten Position P2 überarbeitet werden oder kann nicht überarbeitet werden. Die Abtastinformation des Fragments zwischen der zweiten Position P1 und der dritten Position P2 jedoch kann unabhängig geändert werden.
  • 3 ist ein Diagramm, welches einen Prozess zum Verarbeiten von 3D-Grafiken in einem Grafikprozessor veranschaulicht. Der Prozess des Verarbeitens von 3D-Grafiken kann einen geometrischen Umwandlungsverarbeitungsprozess, einen Rasterisierprozess und einen Pixel-Shading-Verarbeitungsprozess aufweisen.
  • In einem System kann ein Anwendungsprogramm eine Serie von Befehlen, welche ein Rendering-Verfahren beschreiben, zusammen mit Daten, welche zu Rendern sind, für einen Grafikprozessor über einen Vorrichtungstreiber vorsehen. Der Grafikprozessor kann die Befehle empfangen und interpretieren und aktuelles Rendering durch eine fixierte Hardware oder programmierbare Hardware durchführen. Ein Renderingprozess kann verschiedene Verarbeitungsoperationen aufweisen.
  • Zuerst kann Operation S11 eine Operation zum Erzeugen von Vertices sein. Die Vertices können erzeugt werden, um Objekte zu repräsentieren, welche in den 3D-Grafiken enthalten sind. Ebenso kann Operation S12 eine Operation zum Shading der erzeugten Vertices sein und ein Shading auf den Vertices kann durchgeführt werden durch ein Benennen der Positionen der Vertices, welche in Operation S11 erzeugt werden. Ebenso kann Operation S 13 eine Operation zum Erzeugen von Primitiven sein, und die Primitive können ein Punkt, eine Linie oder ein Polygon sein, gebildet durch Verwendung wenigstens eines Vertex. Als ein Beispiel können die Primitive repräsentiert werden durch ein Dreieck, welches durch ein Verbinden von Vertices gebildet wird.
  • Operation S14 kann eine Operation zum Durchführen einer Rasterisierung auf dem erzeugten Primitiv sein und ein Rasterisieren des Primitivs kann ein Unterteilen des Primitivs in Fragmente bedeuten. Ein Fragment ist eine Basiseinheit zum Durchführen einer Grafikverarbeitung auf dem Primitiv. Da das Primitiv nur Information über das (die) zugeordnete(n) Vertex (Vertexes) aufweist, kann eine Grafikverarbeitung auf den 3D-Grafiken durch ein Erzeugen von Fragmenten zwischen Vertices in der Rasterisierungsoperation durchgeführt werden, wobei die Fragmente auf eine 2D-Ebene projiziert werden, welche einem Pixelgitter entspricht, um eine entsprechende Anzeige des 2D-Bildes auf einem flachen Anzeigebildschirm, welcher aus Pixeln besteht, zu erleichtern.
  • Operation S15 kann eine Operation zum Shading der Fragmente sein. Die Fragmente, welche das Primitiv bilden, können Pixeln entsprechen, welche eine Kachel bilden. Die Farbe eines Pixels kann in einem Pixel-Shading bestimmt werden.
  • Operation S16 kann eine Texturieroperation zum Bestimmen der Farbe eines Pixels sein. Texturieren kann ein Vorgang zum Bestimmen der Farbe eines Pixels durch Verwendung einer Textur sein, welche ein bereitgestelltes Bild ist. Da ein Berechnen und Bestimmen der Farbe jedes Pixels, um verschiedene Farben und Strukturformen der realen Welt zu repräsentieren, die Grafikverarbeitungszeit und die Datenoperationsmenge, welche für eine Grafikbearbeitung benötigt wird, erhöhen kann, kann die Farbe eines Pixels durch ein Verwenden einer bereitgestellten Textur bestimmt werden. Beispielsweise kann die Farbe eines Pixels durch ein Speichern der Oberflächenfarbe eines Objekts als ein separates 2D-Bild, auf welches als eine Textur Bezug genommen wird, und ein Vergrößern und Verkleinern der gespeicherten Textur gemäß der Position und Größe des Objekts auf einem Bildschirm oder ein Mixen von Texelwerten durch Verwendung von Texturen, welche verschiedene Auflösungen haben, bestimmt werden.
  • Operation S17 kann eine Test- und Mischoperation sein. Durch einen Prozess wie beispielsweise einen Tiefentest hinsichtlich Pixeln, welche derselben Position in einer Kachel entsprechen, können Pixelwerte, welche einer Kachel entsprechen, durch ein Bestimmen eines Pixelwerts, welcher letztendlich anzuzeigen ist, bestimmt werden. Eine Mehrzahl von Kacheln, welche durch den obigen Prozess erzeugt wird, kann gemischt werden, um 3D-Grafiken, welche einem Frame entsprechen, zu erzeugen. Operation S18 kann eine Operation zum Speichern des Frame sein, welcher durch die Operationen S11 bis S17 erzeugt wird, und zwar in einem Framepuffer und zum Anzeigen des Frame, welcher in dem Framepuffer gespeichert ist, über eine Anzeigevorrichtung.
  • Eine Abtast-Kandidaten-Karten-Überarbeitungsoperation gemäß Ausführungsformen des erfinderischen Konzepts kann in dem Grafikverarbeitungsprozess der 3 durchgeführt werden. Gemäß einer Ausführungsform kann in der Rasterisierungsoperation (S14) eine Abtast-Kandidaten-Karten-Erzeugungs- und -Überarbeitungsoperation durchgeführt werden, um ein Fragment, welches Shading-zu verarbeiten ist, auszuwählen. Beispielsweise kann in der Rasterisieroperation (S14) eine erste Abtast-Kandidaten-Karte SCM_1 gemäß einer Struktur erzeugt werden, welche von Frame zu Frame variiert; eine Abtast-Kandidaten-Karten-Überarbeitungsoperation kann durchgeführt werden durch ein Verwenden des Fragmentwerts des gegenwärtigen Frame und des Fragmentwerts des vorangehenden Frame gemäß den obigen Ausführungsformen; und ein Fragment, welches durch eine zweite Abtast-Kandidaten-Karte SCM_2 abgetastet ist, kann für eine Vorrichtung (Hardware oder Verarbeitungskern), welche eine Shading-Verarbeitung durchführt, vorgesehen sein.
  • 4 ist ein Blockschaltbild, welches ein Implementationsbeispiel eines Grafikprozessors gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht. Als ein Beispiel kann ein Grafikprozessor 200 der 4 einer GPU entsprechen.
  • Bezug nehmend auf 4 kann der Grafikprozessor 200 einen Rasterisierer 210, einen Shaderkern 220, eine Texturverarbeitungseinheit 230, eine Pixelverarbeitungseinheit 240 und einen Kachelpuffer 250 aufweisen. Der Grafikprozessor 200 kann Daten mit einem externen Speicher 201 über einen Bus austauschen. Zusätzlich kann der Grafikprozessor 200 ferner verschiedene andere Komponenten (nicht gezeigt) zum Verarbeiten von 3D-Grafiken aufweisen.
  • Als ein Beispiel kann der Grafikprozessor 200 ein kachelbasiertes Rendering (TBR)-Verfahren verwenden. Um 3D-Grafiken, welche einem Frame entsprechen, zu erzeugen, kann der Grafikprozessor 200 eine Mehrzahl von Kacheln, welche in vorbestimmte Größen unterteilt sind, durch den Rasterisierer 210, den Shaderkern 220 und die Pixelverarbeitungseinheit 240 hindurchpassieren und die Verarbeitungsergebnisse in dem Kachelpuffer 250 speichern. Der Grafikprozessor 200 kann eine parallele Verarbeitung auf allen Kacheln, welche ein Frame bilden, durch ein Verwenden einer Mehrzahl von Pipelines, welche durch den Rasterisierer 210, den Shaderkern 220 und die Pixelverarbeitungseinheit 240 konstruiert sind, durchführen. Wenn eine Mehrzahl von Kacheln, welche einem Frame entspricht, verarbeitet wird, kann der Grafikprozessor 200 die Verarbeitungsergebnisse, welche in dem Kachelpuffer 250 gespeichert sind, zu einem Framepuffer (nicht veranschaulicht) des Speichers 201 übertragen.
  • Der Rasterisierer 210 kann eine Rasterisierung auf einem Primitiv durchführen, welches durch den obigen geometrischen Umwandlungsprozess erzeugt wird. Ebenso kann der Shaderkern 220 das rasterisierte Primitiv von den Rasterisierer 210 empfangen und die obige Pixel-Shading (oder Fragment-Shading)-Verarbeitung auf den Pixeln (oder Fragmenten), welche eine Kachel bilden, durchführen. Ebenso kann in einem Pixel-Shading-Prozess der Shaderkern 220 den Pixelwert nutzen, welcher durch ein Verwenden einer Textur erzeugt wird, um stereoskopische und realistische 3D-Grafiken zu erzeugen.
  • Indes kann der Shaderkern 220 weiterhin eine Vertex-Shading-Verarbeitung zusammen mit der obigen Pixel-Shading-Verarbeitung durchführen. Als ein Beispiel kann, wenn der Shaderkern 220 eine Vertex-Shading-Verarbeitung durchführt, ein Primitiv, welches ein Objekt repräsentiert erzeugt werden und zu dem Rasterisierer 210 ausgegeben werden.
  • Ebenso kann der Shaderkern 220 die Texturverarbeitungseinheit 230 auffordern, einen Pixelwert, welcher einem Pixel entspricht auszugeben, und die Texturverarbeitungseinheit 230 kann einem Pixelwert, welcher durch ein Verarbeiten einer bereitgestellten Textur erzeugt wird, ausgeben. Die Textur kann in einem vorbestimmten Raum innerhalb oder außerhalb der Texturverarbeitungseinheit 230 oder in dem Speicher 201 außerhalb des Grafikprozessors 200 gespeichert werden. Wenn die Textur, welche verwendet wird, um den Pixelwert, welcher durch den Shaderkern 220 angefordert wird, zu erzeugen, nicht in einem vorbestimmten Raum innerhalb der Texturverarbeitungseinheit 230 ist, kann die Texturverarbeitungseinheit 230 die Textur von dem Speicher 201 oder einem Raum außerhalb der Texturverarbeitungseinheit 230 abrufen und verwenden.
  • Durch einen Prozess wie beispielsweise einen Tiefentest hinsichtlich Pixeln, welche derselben Position in einer Kachel entsprechen, kann die Pixelverarbeitungseinheit 240 alle Pixelwerte, welche einer Kachel entsprechen, durch ein Bestimmen eines Pixelwerts, welcher letztendlich anzuzeigen ist, bestimmen. Der Kachelpuffer 250 kann all die Pixelwerte, welche einer Kachel entsprechen, welche von der Pixelverarbeitungseinheit 240 empfangen werden, speichern. Wenn ein Grafikverarbeitungsprozess auf allen Kacheln, welche ein Frame bilden, vollendet ist, können die Verarbeitungsergebnisse, welche in dem Kachelpuffer 250 gespeichert sind, zu dem Framepuffer des Speichers 201 übertragen werden.
  • In der obigen Ausführungsform kann eine SCM-Überarbeitungsvorrichtung 211 in dem Rasterisierer 210 enthalten sein. Als ein Beispiel kann der Rasterisierer 210 eine erste Abtast-Kandidaten-Karte durch ein Empfangen von vorbestimmter Strukturinformation erzeugen und kann ebenso eine zweite Abtast-Kandidaten-Karte durch die Überarbeitungsoperation gemäß der obigen Ausführungsform erzeugen. Ebenso kann der Rasterisierer 210 einen Fragmentwert Frag_P eines vorangehenden Frame, welches in dem Speicher 201 gespeichert ist, empfangen und eine Überarbeitungsoperation basierend darauf durchführen. Der Rasterisierer 210 kann selektiv abgetastete Fragmente aus einer Mehrzahl von Fragmenten für den Shaderkern 220 vorsehen. Gemäß einer Ausführungsform kann der Rasterisierer 210 eine Mehrzahl von Hardwareeinheiten (beispielsweise Verarbeitungskerne) aufweisen, und eine erste Abtast-Kandidaten-Karten-Erzeugungsoperation und eine zweite Abtast-Kandidaten-Karten-Erzeugungsoperation können durch dieselbe Hardware oder durch unterschiedliche Hardwareeinheiten durchgeführt werden.
  • Indes kann der Shaderkern 220 die Zwischen-Rendering-Verarbeitung und die End-Rendering-Verarbeitung in der obigen Ausführungsform durchführen. Gemäß einer Ausführungsform kann der Shaderkern 220 eine Mehrzahl von Hardwareeinheiten (beispielsweise Verarbeitungskerne) aufweisen, und die Zwischen-Rendering-Verarbeitung und die End-Rendering-Verarbeitung können durch dieselbe Hardware oder unterschiedliche Hardwareeinheiten durchgeführt werden.
  • Hierin nachstehend werden bestimmte Beispiele des Abtastens und der Shading-Verarbeitung gemäß Ausführungsformen des erfinderischen Konzepts beschrieben werden.
  • Die 5A, 5B und 5C sind Diagramme, welche gemeinschaftlich ein Beispiel einer Shading-Verarbeitung von Fragmenten eines Primitivs veranschaulichen. Die 5A, 5B und 5C veranschaulichen ein Beispiel, in welchem eine Kandidaten-Karten-Überarbeitungsoperation nicht durchgeführt wird.
  • 5A veranschaulicht Fragmente einer 4*4-Größe als einige Fragmente eines beliebigen einen Primitivs R, wobei eine Abtastung auf den Fragmenten eines Primitivs gemäß einer vorbestimmten Abtastrate durchgeführt werden kann. Als ein Beispiel veranschaulicht 5A eine Abtastung, welche gemäß einer relativ feinen Struktur durchgeführt wird, in welcher ein Fragment für alle zwei Fragmente in der horizontalen und vertikalen Richtung abgetastet wird. Fragmente an Positionen P0 bis P3 können gemäß einer ersten Abtast-Kandidaten-Karte, welche eine feine Struktur hat, abgetastet werden, und eine Shading-Verarbeitung kann auf den abgetasteten Fragmenten durchgeführt werden. 5B veranschaulicht die Positionen von Shading-verarbeiteten Fragmenten aus Fragmenten einer 8*8-Göße, wenn eine Shading-Verarbeitung auf einem größeren Satz von Fragmenten wie beispielsweise einer Kachel basierend auf der Abtastung, welche in 5A veranschaulicht ist, durchgeführt wird.
  • Bezug nehmend auf 5C können die Werte von Fragmenten, auf welchen eine Shading-Verarbeitung nicht durchgeführt wird, durch Interpolation berechnet werden. Beispielsweise kann der Wert eines Fragments an einer Position durch eine Interpolation basierend auf den Werten von einem oder mehreren Fragmenten benachbart dazu berechnet werden. Beispielsweise kann der Wert eines Fragments, auf welchem eine Shading-Verarbeitung nicht durchgeführt wird (ein nicht-abgetastetes Fragment) mit einem ähnlichen Wert hinsichtlich des Wertes eines Fragments benachbart dazu gefüllt werden, und auf die obige Interpolationsverarbeitung kann Bezug genommen werden als ein LochFüllen. Beispielsweise kann, wie in 5C gezeigt ist, der Wert eines nicht abgetasteten Fragments mit Koordinaten in einer Zeile eines unabgetasteten Fragments und einer Spalte eines unabgetasteten Fragments auf einem Durchschnitt von vier benachbart platzierten abgetasteten Fragmenten basiert sein.
  • 6 ist ein Diagramm, welches ein Beispiel veranschaulicht, in welchem eine Abtast-Kandidaten-Karten-Überarbeitungsoperation auf die Ausführungsform der 5A, 5B und 5C angewandt wird. 6 veranschaulicht ein Beispiel des Überarbeitens einer Abtast-Kandidaten-Karte durch ein Verwenden von nur Daten eines gegenwärtigen Frame ohne Verwenden eines Rendering-Ergebnisses eines vorangehenden Frames.
  • Wie in 6 gezeigt ist, können Fragmente bei einer vorbestimmten Rate gemäß einer ersten Abtast-Kandidaten-Karte abgetastet werden und die Werte der abgetasteten Fragmente können durch Zwischen-Shading-Verarbeitung berechnet werden. Ebenso können hinsichtlich den anderen nicht abgetasteten Fragmenten durch eine Abtast-Kandidaten-Karten-Überarbeitungsoperation Fragmente, welche zusätzlich abzutasten sind, ausgewählt werden.
  • Die Abtast-Kandidaten-Karten-Überarbeitungsoperation kann durch ein Verwenden der Werte von Fragmenten, welche durch die Zwischen-Rendering-Verarbeitung des gegenwärtigen Frame berechnet werden, durchgeführt werden, und beispielsweise kann, ob die Fragmente der fünften Position P4 zusätzlich abzutasten sind, basierend auf der Differenz zwischen dem Fragmentwert der ersten Position P0 und dem Fragmentwert der zweiten Position P1 bestimmt werden. (Wenn diese Differenz über einem vorbestimmten Grenzwert ist, welcher einen Objektrand oder dergleichen zwischen den Positionen anzeigt, kann bestimmt werden, das Fragment in Position P4 zusätzlich abzutasten, jedoch nicht das Fragment an einer Position P4 abzutasten, wenn die Differenz unterhalb des Grenzwertes ist). Ähnlich kann, ob das Fragment der sechsten Position P5 zusätzlich abzutasten ist, basierend auf der Differenz zwischen dem Fragmentwert der dritten Position P2 und dem Fragmentwert der vierten Position P3 bestimmt werden. 6 veranschaulicht einen Fall, in dem alle der Fragmente einer zweiten Zeile und einer vierten Zeile in den Fragmenten einer 4*4-Größe gemäß dem obigen Verfahren abgetastet werden, und die Werte der anderen Fragmente, welche nicht Shading-verarbeitet werden, können durch Loch-Füll-Verarbeitung berechnet werden.
  • Gemäß der Ausführungsform, welche in den 5A, 5B und 5C veranschaulicht ist, kann, wenn es keine Änderung oder graduelle Änderung in den Werten von Fragmenten zwischen benachbarten jedoch nicht zusammenhängend abgetasteten Fragmenten in der Karte gibt (wie beispielsweise zwischen Fragmentpositionen P2 und P3 oder P2 und P10) der Wert, welcher durch eine Interpolationsverarbeitung berechnet wird, gleich zu oder ähnlich zu einem aktuellen Wert sein. Andererseits kann, wenn es eine große Änderung in den Werten von Fragmenten zwischen benachbart abgetasteten Fragmenten gibt, die Gültigkeit der Ergebnisse, welche durch die Interpolationsverarbeitung erhalten werden, unzuverlässig sein. Andererseits kann in der Ausführungsform, welche in 6 veranschaulicht ist, da ein Lochfüllen nicht unmittelbar nach der Zwischen-Rendering-Verarbeitung durchgeführt wird, es jedoch einmal mehr durch einen Abtast-Kandidaten-Karten-Überarbeitungsprozess bestimmt werden kann, ob die unabgetasteten Fragmente für eine Interpolationsverarbeitung geeignet sind, die Qualität der Rendering-Verarbeitung weiter im Vergleich mit den 5A, 5B und 5C verbessert werden.
  • Die 7A und 7B veranschaulichen ein Beispiel zum Durchführen einer Abtast-Kandidaten-Karten-Überarbeitung durch ein Verwenden von Daten von wenigstens zwei Frames. In den 7A und 7B werden, wenn Daten von zwei Frames verwendet werden, die Frames in einen ungeraden Frame Frame_Odd und einen geraden Frame Frame_Even klassifiziert und eine Struktur einer ersten Abtast-Kandidaten-Karte SCM_1 in jedem Frame wird veranschaulicht. Dies ist ein Beispiel des Vorsehens einer Abtast-Kandidaten-Karten-Struktur, welche mit einer repetitiven Sequenz zwischen zeitlich aufeinanderfolgenden Frames gedithert ist. In anderen Beispielen wie beispielsweise demjenigen der 17A, welches später diskutiert wird, kann eine Dithering-Struktur drei oder mehr Frames aufspannen beziehungsweise überspannen. Beispielsweise können sich, wenn Daten von drei oder mehr Frames für eine Kandidaten-Karten-Überarbeitung verwendet werden, Strukturen der ersten Abtast-Kandidaten-Karte SCM_1 der drei oder mehr Frames voneinander unterscheiden. Die Abtast-Kandidaten-Karten-Dithering-Technik kann visuelle Artefakte verringern, insbesondere wenn es eine geringe oder minimale Bewegung von Objekten zwischen Frames gibt.
  • Bezug nehmend auf 7A kann die Abtastrate der ersten Abtast-Kandidaten-Karte SCM_1 geringer sein als diejenige der Ausführungsform der 6. Als ein Beispiel können in dem Beispiel der 7A nur zwei Fragmente pro Fragment einer 4*4-Größe abgetastet werden. In der Rendering-Verarbeitung des ungeraden Frame Frame_Odd können, da die Abtastinformation der ersten Abtast-Kandidaten-Karte SCM_1 eine erste Struktur hat, Fragmente, welche in der zweiten Zeile und der dritten Spalte platziert sind, und Fragmente, welche in der vierten Zeile und der ersten Spalte platziert sind, aus den Fragmenten einer 4*4-Größe abgetastet werden. Andererseits können in der Rendering-Verarbeitung des geraden Frame Frame_Even, da die Abtastinformation der ersten Abtast-Kandidaten-Karte SCM_1 eine zweite Struktur hat, Fragmente, welche in der zweiten Zeile und der ersten Spalte platziert sind und Fragmente, welche in der vierten Zeile und der dritten Spalte platziert sind, unter den Fragmenten einer 4*4-Größe abgetastet werden. Dies ist jedoch lediglich ein Beispiel und die Strukturen der ersten Abtast-Kandidaten-Karten SCM_1 des ungeraden Frame Frame_Odd und des geraden Frame Frame_Even können gemäß verschiedenen anderen Verfahren eingestellt werden. Beispielsweise können wie in 7A die erste Abtast-Kandidaten-Karte SCM_1 des ungeraden Frame Frame_Odd und die erste Abtast-Kandidaten-Karte SCM_1 des geraden Frame Frame_Even derart eingestellt sein, dass der ungerade Frame Frame_Odd und der gerade Frame Frame_Even einander ergänzen können.
  • Hierin nachstehend wird ein Operationsbeispiel des erfinderischen Konzepts unter der Annahme beschrieben werden, dass das gegenwärtige Frame einem geraden Frame Frame_Even entspricht. Zuerst kann bei der Verarbeitung des geraden Frame Frame_Even die Zwischen-Rendering-Verarbeitung gemäß der ersten Abtast-Kandidaten-Karte SCM_1, welche die zweite Struktur hat, durchgeführt werden, und demnach können die Werte der Fragmente an den Positionen, welche der zweiten Struktur entsprechen, berechnet werden. Ebenso können beim Überarbeiten der ersten Abtast-Kandidaten-Karte SCM_1 durch ein Verwenden der vorberechneten Werte der Fragmente die Werte der Fragmente an der Position entsprechend der ersten Struktur in dem vorangehenden ungeraden Frame Frame_Odd und die Werte der Fragmente an der Position entsprechend der zweiten Struktur, welche durch die Zwischen-Rendering-Verarbeitung des gegenwärtigen geraden Frame Frame_Ewen berechnet werden, verwendet werden.
  • Ein Beispiel zum Kombinieren eines Fragmentwerts Pv des ungeraden Frame Frame_Odd und eines Fragmentwerts Pv des geraden Frame Frame_Even, welche bei einer Abtast-Kandidaten-Karten-Überarbeitung verwendet werden, sind in 7B veranschaulicht. Beispielsweise kann, auch wenn der Abstand zwischen den Fragmentwerten Pv relativ lang ist, aufgrund einer niedrigen Abtastrate davon hinsichtlich eines Frame, wenn die Fragmentwerte Pv von zwei Frames gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts verwendet werden, der Abstand zwischen Fragmentwerten Pv kurz sein. Demzufolge können die Fragmente, welche eine aktuelle Shading-Verarbeitung für eine Fragmentwertgenauigkeit benötigen können, genauer bestimmt werden, und eine End-Rendering-Verarbeitung kann auf den zusätzlich abgetasteten Fragmenten durchgeführt werden. Es sollte auch festgehalten werden, dass in 7B die Fragmentwerte von dem vorangehenden Frame, beispielsweise die Fragmentwerte F_O PV des ungeraden Frame, wenn der gegenwärtige Frame der gerade Frame ist, aktuell für die Fragmente an den entsprechenden Orten bei dem Rendering des gegenwärtigen Frame verwendet werden können. Wenn es jedoch eine Bewegung von Objekten zwischen dem vorangehenden Frame und dem gegenwärtigen Frame in dem Video, welches zu rendern ist, gibt, kann der Bewegung Rechnung getragen werden durch ein Abbilden des Fragments des vorangehenden Frame auf den gegenwärtigen Frame. Auch ohne der Bewegung Rechnung zu tragen können sich, wenn sich das Bild des vorangehenden Frame signifikant von dem gegenwärtigen Frame aufgrund einer Szenenänderung oder einer schnellen Bewegung unterscheidet, die vorangehenden Framefragmente signifikant von benachbarten Fragmenten des gegenwärtigen Frame unterscheiden, was eine Überarbeitung für die Abtast-Kandidaten-Karte gewährleisten kann.
  • 8 ist ein Diagramm, welches eine erste Abtast-Kandidaten-Karte SCM_1 und eine zweite Abtast-Kandidaten-Karte SCM_2 als eine Überarbeitung davon gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts veranschaulicht. 8 veranschaulicht ein Überarbeitungsbeispiel der Abtast-Kandidaten-Karte in dem geraden Frame Frame_Even gemäß der Ausführungsform der 7A und 7B.
  • Bezug nehmend auf 8 kann ein Grafikprozessor eine erste Abtast-Kandidaten-Karte SCM_1 erzeugen, welche eine erste Struktur hat, für eine Zwischen-Rendering-Verarbeitung auf Fragmenten. Als ein Beispiel kann eine Struktur, welche Fragmenten entspricht, welche abzutasten sind, einen Wert von „1" haben, und eine Struktur, welche Fragmenten entspricht, welche nicht abgetastet werden, kann ein Wert von „0“ haben.
  • Danach kann eine zweite Abtast-Kandidaten-Karte SCM_2 durch ein Neuauswerten der ersten Abtast-Kandidaten-Karte SCM_1 erzeugt werden. Als ein Beispiel können der Fragmentwert einer ersten Position P0 und einer zweiten Position P1 in einem gegenwärtigen Frame und der Fragmentwert in wenigstens einem vorangehenden Frame dazwischen verwendet werden, um zu bestimmen, ob die Fragmente eines Bereichs Reg_1 zwischen der ersten Position P0 und der zweiten Position P1 abzutasten sind. 8 veranschaulicht ein Beispiel in welchem eine Struktur, welche den Fragmenten des Bereichs Reg_1 zwischen der ersten Position P0 und der zweiten Position P1 entspricht, geändert wird und zusätzlich abgetastet wird. Ebenso veranschaulicht 8 ein Beispiel, in welchem die Fragmente eines Bereichs Reg_2 zwischen einer dritten Position P2 und einer vierten Position P3 nicht abgetastet werden, während die Fragmente eines Bereichs Reg_3 zwischen einer vierten Position P3 und einer fünften Position P4 zusätzlich abgetastet werden.
  • Gemäß der Ausführungsform, welche in den 7A, 7B und 8 veranschaulicht ist, kann es, da die Abtast-Kandidaten-Karte durch ein Verwenden der Fragmentwerte wenigstens zweier Frames überarbeitet wird, auch wenn die Abtastrate klein ist im Vergleich mit dem Beispiel der 6, welches obenstehend beschrieben ist, möglich sein, eine Abnahme in der Bestimmungsgenauigkeit von Fragmenten, welche eine aktuelle Shading-Verarbeitung benötigen, zu verhindern. Beispielsweise können gemäß der Ausführungsform, welche in den 7A, 7B und 8 veranschaulicht ist, die Verarbeitungsgeschwindigkeit und/oder die Nutzung von Verarbeitungsressourcen durch ein Verringern der Anzahl von Fragmenten, auf welchen Zwischen-Rendering-Verarbeitung unnötigerweise durchgeführt wird verbessert werden, während eine Verschlechterung der Rendering-Qualität minimiert werden kann.
  • Ebenso können gemäß Ausführungsformen des erfinderischen Konzepts Operationen gemäß den Ausführungsformen der 5A, 5B und 5C bis 8, welche obenstehend beschrieben sind, selektiv durchgeführt werden. Als ein Beispiel kann der Grafikprozessor die Abtastrate der ersten Abtast-Kandidaten-Karte durch die Steuerung von einem Host oder durch seine eigene Steuerung anpassen, wodurch die Menge von Fragmenten, welche Shading-zu-verarbeiten ist, angepasst wird. Beispielsweise können einige einer Mehrzahl von Rendering-verarbeiteten Frames gemäß dem Beispiel der 5A, 5B und 5C verarbeitet werden, einige andere können gemäß dem Beispiel der 6 verarbeitet werden, und einige andere können gemäß dem Beispiel der 7A, 7B und 8 verarbeitet werden. Beispielsweise kann in dem Abtastmodus die Ausführungsform der 6 angewandt werden, wenn die Abtastrate der ersten Abtast-Kandidaten-Karte größer ist als ein vorbestimmter Referenzwert, und die Ausführungsform der 7A, 7B und 8 kann angewandt werden, wenn die Abtastrate der ersten Abtast-Kandidaten-Karte geringer ist als der vorbestimmte Referenzwert.
  • Alternativ kann der Grafikprozessor das An/Aus des Abtastmodus durch die Steuerung von dem Host oder durch seine eigene Steuerung einstellen, und wenn der Abtastmodus aus ist, können alle der Fragmente in dem Frame (oder Kachel oder Primitiv) Shading-verarbeitet werden.
  • Die 9 und 10 sind Flussdiagramme, welche jeweilige Verfahren zum Betreiben eines Grafikprozessors gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulichen.
  • Bezug nehmend auf 9 kann eine Zwischen-Rendering-Verarbeitung durch ein Shading einiger einer Mehrzahl von Fragmenten eines Frame gemäß der ersten Abtast-Kandidaten-Karte SCM_1 durchgeführt werden (S21). Danach können das Rendering-Ergebnis des vorangehenden Frame (beispielsweise das Zwischen-Rendering-Ergebnis) und das Rendering-Ergebnis des gegenwärtigen Frame arbeiten, um ein Fragment auszuwählen, welches zusätzlich zu Shaden ist (S22). Ebenso kann es bestimmt werden, ob ein zusätzliches Abtasten für jeden Bereich, welcher ein oder mehrere Fragmente aufweist, gemäß dem Betriebsergebnis notwendig ist (S23).
  • Als ein Ergebnis der Bestimmung kann die Anordnung einer Struktur, welche dem Fragment entspricht, welches eine zusätzliche Abtastung benötigt, in der ersten Abtast-Kandidaten-Karte SCM_1 geändert werden (S24). Andererseits kann der Wert einer Struktur, welche dem Fragment entspricht, welches keine zusätzliche Abtastung benötigt in der ersten Abtast-Kandidaten-Karte SCM_1 aufrechterhalten werden (S25). Ebenso kann eine End-Rendering-Verarbeitung durch ein Shading zusätzlicher Fragmente gemäß der zweiten Abtast-Kandidaten-Karte SCM_2, welche durch den obigen Prozess erzeugt wird, durchgeführt werden (S26).
  • Bezug nehmend auf 10 kann eine erste Abtast-Kandidaten-Karte SCM_1, welche unterschiedliche Strukturen hat (in unterschiedlichen Arbeitsmodi oder aufgrund von Dithering-Strukturen zwischen Frames) gemäß einem Frame, welcher dem Grafikprozessor zugeführt wird, erzeugt werden, und eine erste Abtast-Kandidaten-Karte SCM_1, welche eine erste Struktur hat, kann erzeugt werden, wenn ein erster Frame empfangen wird (S31). Eine Zwischen-Rendering-Verarbeitung kann auf einigen Fragmenten durch ein Verwenden der ersten Abtast-Kandidaten-Karte SCM_1, welche die erste Struktur hat, durchgeführt werden (S32), und eine End-Rendering-Verarbeitung kann auf dem ersten Frame durch eine End-Shading- und -Interpolationsoperation durchgeführt werden (S33).
  • Wenn ein zweites Frame empfangen wird, kann eine erste Abtast-Kandidaten-Karte SCM_1, welche eine zweite Struktur hat, erzeugt werden (S34) (für Dithering). Ebenso kann eine Zwischen-Rendering-Verarbeitung auf einigen Fragmenten durch ein Verwenden der ersten Abtast-Kandidaten-Karte SCM_1, welche die zweite Struktur hat, hinsichtlich des zweiten Frame durchgeführt werden (S35), und das Zwischen-Rendering-Ergebnis eines Fragments in dem ersten Frame und das Zwischen-Rendering-Ergebnis eines benachbarten Fragments in dem zweiten Frame können miteinander verglichen werden (S36). Ebenso kann eine zweite Abtast-Kandidaten-Karte SCM_2 durch ein Ändern der Abtastinformation der ersten Abtast-Kandidaten-Karte SCM_1 basierend auf dem Vergleichsergebnis erzeugt werden (S37) und eine End-Rendering-Verarbeitung kann durch ein Verwenden der zweiten Abtast-Kandidaten-Karte SCM_2 durchgeführt werden (S38).
  • 11 ist ein Blockschaltbild, welches ein Implementationsbeispiel eines Grafikprozessors gemäß beispielhaften Ausführungsformen des erfinderischen Konzepts veranschaulicht. In 11 sind nur eine Konfiguration zum Durchführen einer Abtast-Kandidaten-Karten-Erzeugung und Änderung und eine Konfiguration zur Verarbeitung von Rendering zur Zweckmäßigkeit der Beschreibung veranschaulicht; verschiedene andere Konfigurationen jedoch für eine Grafikverarbeitung können weiterhin in dem Grafikprozessor enthalten sein.
  • Bezug nehmend auf 11 kann ein Grafikprozessor 300 einen SCM-Erzeuger 310, einen Zwischen-Rendering-Prozessor 320, eine SCM-Überarbeitungsvorrichtung 330 und einen End-Rendering-Prozessor 340 aufweisen. Gemäß einer Ausführungsform können die Komponenten, welche in 11 veranschaulicht sind, Hardware wie beispielsweise einen Verarbeitungskern aufweisen. Obwohl der Zwischen-Rendering-Prozessor 320 und der End-Rendering-Prozessor 340 als separate Hardwareeinheit in 11 veranschaulicht sind, kann eine Zwischen-Rendering-Verarbeitung und eine End-Rendering-Verarbeitung durch dieselbe Hardware gemäß anderen Ausführungsformen durchgeführt werden. Die verschiedenen Elemente 310, 320, 330, 340 können Teil einer integrierten Schaltung sein.
  • Der SCM-Erzeuger 310 kann die Strukturinformation Info_PAT empfangen und eine erste Abtast-Kandidaten-Karte SCM_1 durch ein Verwenden der Strukturinformation Info_Pat erzeugen. Die Strukturinformation Info_Pat kann Information aufweisen, welche die Positionen von Fragmenten in einer Mehrzahl von Fragmenten, welche Zwischen-Rendering-zu-verarbeiten sind, aufweist. Die Strukturinformation Info_Pat kann von einem Host für den Grafikprozessor 300 vorgesehen sein. Alternativ kann der Grafikprozessor 300 verschiedene Strukturinformation darin speichern und Strukturinformation Info_Pat kann in dem Grafikprozessor 300 gemäß einem Befehl von dem Host erzeugt werden. Alternativ kann wie in einer anderen Ausführungsform der Grafikprozessor 300 die Reihenfolge der Frames, welche gegenwärtig zu rendern sind, bestimmen und Strukturinformation Info_Pat erzeugen, welche unterschiedliche Strukturen gemäß den Frames hat (beispielsweise basierend auf einem Dithering-Schema wie obenstehend beschrieben).
  • Der Zwischen-Rendering-Prozessor 320 kann Daten einer Mehrzahl von Fragmenten und eine erste Abtast-Kandidaten-Karte SCM_1 empfangen und selektiv eine Shading-Verarbeitung auf den Fragmenten, welcher einer ersten Struktur der ersten Abtast-Kandidaten-Karte SCM_1 entsprechen, durchführen. Das Shading-Verarbeitungsergebnis Data_I des Zwischen-Rendering-Prozessors 320 kann für die SCM-Überarbeitungsvorrichtung 330 vorgesehen werden, und das Shading-Verarbeitungsergebnis Data_I von dem Zwischen-Rendering-Prozessor 320 kann Fragmentwerte von Positionen aufweisen, welche der ersten Struktur entsprechen.
  • Die SCM-Überarbeitungsvorrichtung 330 kann ferner einen Fragmentwert Frag_P eines vorangehenden Frame empfangen und der Fragmentwert Frag_P kann ein Zwischen-Rendering-Verarbeitungsergebnis basierend auf einer ersten Abtast-Kandidaten-Karte SCM_1 aufweisen welche eine zweite Struktur in dem vorangehenden Frame hat. Die SCM-Überarbeitungsvorrichtung 330 kann eine zweite Abtast-Kandidaten-Karte SCM_2 durch ein Ändern der ersten Abtast-Kandidaten-Karte SCM_1 über eine Operation basierend auf dem Fragmentwert Frag_P des vorangehenden Frame und dem Verarbeitungsergebnis von dem Zwischen-Rendering-Prozessor 320 erzeugen. Der End-Rendering-Prozessor 340 kann die zweite Abtast-Kandidaten-Karte SCM_2 und das Shading-Verarbeitungsergebnis Data_I des Zwischen-Rendering-Prozessors 320 empfangen und ein End-Rendering-Ergebnis Data_F durch ein Shading-Verarbeiten einiger der Fragmente, auf welchen Zwischen-Rendering-Verarbeitung nicht durchgeführt wird, erzeugen.
  • Wenn der obige Rasterisierer selektiv die Fragmente, welche Shading-zu-verarbeiten sind abtastet, können der SCM-Generator 310 und die SCM-Überarbeitungsvorrichtung 330 in dem Rasterisierer in der Ausführungsform, welche in 11 veranschaulicht ist, enthalten sein. Alternativ kann jeder des Zwischen-Rendering-Prozessors 320 und des End-Rendering-Prozessors 340 als eine Konfiguration zum Durchführen einer Rasterisierfunktion aufweisend definiert sein.
  • 12 ist ein Diagramm, welches eine Gesamtoperationsprozedur eines Grafikprozessors veranschaulicht, auf welchem eine Ausführungsform des erfinderischen Konzepts angewandt wird. Der Grafikprozessor kann Renderingdaten (oder Grafikdaten) und Befehle von einem Host über ein Anwendungsprogramm empfangen, wobei die Renderingdaten Primitivinformation und/oder Texturinformation aufweisen können. Der Grafikprozessor kann die Daten und Befehle in eine renderbare Form durch einen Vor-Rendering-Prozess verarbeiten (S41). Es sei festgehalten, dass der Vor-Rendering-Prozess gemäß dem Grafikprozessor ausgelassen werden kann, wenn aber kachelbasiertes Rendering durchgeführt wird, kann eine Kachelverarbeitung in dem Vor-Rendering-Prozess durchgeführt werden.
  • Danach kann ein Prozess zum Berechnen einer Tiefe basierend auf dem Ergebnis des Vor-Rendering-Prozesses durchgeführt werden (S42) und Tiefendaten können gemäß dem Berechnungsergebnis erzeugt werden. Der Tiefenberechnungsprozess kann gemäß dem Anwendungsprogramm oder dem Grafikprozessor ausgelassen werden. Wenn enthalten, können die Tiefendaten verwendet werden, um die erste Abtast-Kandidaten-Karte wie obenstehend diskutiert gemäß einer Ausführungsform zu erzeugen.
  • Abtastinformation, welche eine vorbestimmte Struktur hat, kann in dem Grafikprozessor erzeugt werden oder von dem Host übertragen werden und dann für den SCM-Generator vorgesehen werden. Als ein Implementationsbeispiel kann ein Abtaststrukturerzeuger SPG in dem Grafikprozessor vorgesehen sein, wobei der Abtaststrukturerzeuger SPG in der Lage sein kann, unterschiedliche Strukturinformation zu erzeugen. Bezug nehmend auf die Beispiele, welche in den obigen Ausführungsformen beschrieben sind, kann der Abtaststrukturerzeuger SPG alternativ den SCM-Generator mit der Strukturinformation, welche die erste Struktur hat, und der Strukturinformation, welche die zweite Struktur hat, gemäß der Reihenfolge der Frames vorsehen. Gemäß der Reihenfolge der Frames kann der Abtaststrukturerzeuger SPG eine der Strukturinformation, welche die erste Struktur hat und der Strukturinformation, welche die zweite Struktur hat, für den SCM-Erzeuger vorsehen und die andere für einen Pixelextraktor PE vorsehen.
  • Der SCM-Erzeuger kann die erste Abtast-Kandidaten-Karte erzeugen derart, dass Fragmente gemäß der empfangenen Abtaststruktur abgetastet werden können (S43) und kann die erzeugte erste Abtast-Kandidaten-Karte für den Zwischen-Rendering-Prozessor vorsehen. Gemäß einer Ausführungsform kann der SCM-Erzeuger die erste Abtast-Kandidaten-Karte durch ein weiteres Nutzen der Tiefendaten erzeugen. Beispielsweise kann, da die Fragmente, welche eine große Tiefendifferenz haben, unterschiedliche Werte in dem End-Rendering-Prozess haben können oder die Wahrscheinlichkeit eines großen Unterschieds zwischen den Werten hoch sein kann, der SCM-Erzeuger die Abtastinformation basierend auf den Tiefendaten anpassen. Beispielsweise kann, wenn die Differenz zwischen den Tiefen einer Mehrzahl von Fragmenten, welche in einem Primitiv enthalten sind, groß ist, die erste Abtast-Kandidaten-Karte erzeugt werden derart, dass alle der Mehrzahl von Fragmenten Shading-verarbeitet sein können. Alternativ kann eine Mehrzahl von Fragmenten, welche in einem Primitiv enthalten ist, in eine Mehrzahl von Bereichen klassifiziert werden, und die erste Abtast-Kandidaten-Karte kann erzeugt werden derart, dass all die Fragmente, welche in den Bereichen enthalten sind, Shading-verarbeitet sein können, basierend auf der Tiefendifferenz in jedem Bereich.
  • Eine Zwischen-Rendering-Verarbeitung kann durch ein Verwenden des Vor-Rendering-Ergebnisses, der Tiefendaten und der ersten Abtast-Kandidaten-Karte, welche durch den obigen Prozess erzeugt wird, durchgeführt werden (S44). Gemäß der ersten Abtast-Kandidaten-Karte können die Werte einer Mehrzahl von Fragmenten durch eine Shading-Verarbeitung berechnet werden, während die anderen Fragmente Löchern entsprechen können, welche nicht Shading-verarbeitet werden.
  • Indes kann gemäß Ausführungsformen des erfinderischen Konzepts eine zweite Abtast-Kandidaten-Karte durch ein Überarbeiten der ersten Abtast-Kandidaten-Karte erzeugt werden (S45). Als ein Beispiel kann die SCM-Überarbeitungsvorrichtung weiterhin den Fragmentwert, welcher von dem vorangehenden Frame extrahiert wird, empfangen, während das Zwischen-Rendering-Verarbeitungsergebnis des gegenwärtigen Frame empfangen wird. Der Pixelextrakt PE, welcher in 12 veranschaulicht ist, kann Strukturinformation und Fragmentwerte des vorangehenden Frame empfangen, Werte von Fragmenten, welche der Strukturinformation entsprechen, extrahieren und dieselben für die SCM-Überarbeitungsvorrichtung vorsehen. Die SCM-Überarbeitungsvorrichtung kann die zweite Abtast-Kandidaten-Karte durch die Operation basierend auf den Fragmentenwerten des vorangehenden Frame und des gegenwärtigen Frame gemäß den obigen Ausführungsformen erzeugen.
  • Der End-Rendering-Prozessor 340 kann die End-Rendering-Verarbeitung durch ein Verwenden der Zwischen-Renderingdaten, der Tiefendaten und der zweiten Abtast-Kandidaten-Karte durchführen (S46). Durch die End-Rendering-Verarbeitung kann eine zusätzliche Shading-Verarbeitung auf den Fragmenten durchgeführt werden. Die Daten, welche gemäß der End-Rendering-Verarbeitung erzeugt werden, können nach wie vor ein Loch aufweisen, und ein Endbild kann durch eine Lochfüll-Verarbeitung erzeugt werden (S47).
  • Gemäß Ausführungsformen, welche obenstehend beschrieben sind, kann ein Fragmentwert, welcher aus dem vorangehenden Frame extrahiert wird, in dem Abtast-Kandidaten-Karten-Überarbeitungsvorgang verwendet werden, und eine Interpolationsoperation für die Lochfüll-Verarbeitung kann durch ein Verwenden des Fragmentwerts, welcher in dem gegenwärtigen Frame Shading-verarbeitet wird, durchgeführt werden. Ebenso können die Endbilddaten des gegenwärtigen Frame, welche gemäß der obigen Prozedur erzeugt werden, in einem Abtast-Kandidaten-Mappen-Überarbeitungsprozess in einem Rendering-Verarbeitungsprozess eines nächsten Frame verwendet werden. In noch einer anderen Ausführungsform kann eine Verarbeitung eines zukünftigen (nächsten) Frame vor einem gegenwärtigen Frame durchgeführt werden derart, dass Fragmentwerte, welche in dem zukünftigen Frame berechnet werden, für denselben Zweck verwendet werden können wie obenstehend für das vorangehende Frame beschrieben (beispielsweise in einer umgekehrten Frame-Richtungsverarbeitungsausführungsform).
  • 13 ist ein Blockschaltbild, welches ein Rendering-System 400 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Das Rendering-System 400 kann einen Host 410 und einen Grafikprozessor 420 aufweisen. Der Host 410 kann eine Anwendung 411 und einen Vorrichtungstreiber 412 aufweisen. Ebenso kann der Grafikprozessor 420 eine SCM-Überarbeitungsvorrichtung 421, einen Fragment-Prozessor 422 und eine Interpolationsgenauigkeitsbestimmungsvorrichtung 423 aufweisen.
  • Als ein Anwendungsprogramm, welches auf einem computerlesbaren Medium gespeichert ist, kann die Anwendung 411 einen Befehl CMD und Grafikdaten DATA für den Grafikprozessor 420 über den Vorrichtungstreiber 412 vorsehen. Ebenso kann beispielsweise die Anwendung 411 oder der Vorrichtungstreiber 412 den Abtastmodus bezogen auf die Rendering-Verarbeitung in dem Grafikprozessor 420 steuern und kann ein Abtaststeuersignal Ctrl_C/F zu dem Grafikprozessor 420 übertragen. Die Interpolationsgenauigkeitsbestimmungsvorrichtung 423 des Grafikprozessors 420 kann die Genauigkeit von Fragmentwerten bestimmen, welche durch die Interpolationsverarbeitung erzeugt werden und eine Bestimmungsinformation Info_A für den Host 410 vorsehen.
  • Wenn das Abtaststeuersignal Ctrl_C/F einen Abtast-aus-Modus anzeigt, kann der Grafikprozessor 420 eine Shading-Verarbeitung auf allen Fragmenten durchführen ohne Durchführen einer Abtastoperation in der obigen Ausführungsform. Andererseits kann, wenn das Abtaststeuersignal Crtl_C/F einen Abtast-an-Modus anzeigt, der Grafikprozessor 420 eine Abtast-Kandidaten-Karte erzeugen, welche eine vorbestimmte Struktur hat, gemäß den obigen Ausführungsformen, die Abtast-Kandidaten-Karte überarbeiten und eine Zwischen-Rendering-Verarbeitung und eine End-Rendering-Verarbeitung durchführen.
  • Die Interpolationsgenauigkeitsbestimmungsvorrichtung 423 kann die Interpolationsgenauigkeit gemäß einer vorbestimmten Periode bestimmen. Als ein Beispiel kann die Interpolationsgenauigkeit für jedes Frame oder für eine Mehrzahl von Frames bestimmt werden. In dem letzteren Fall kann die Interpolationsgenauigkeit für jede K Frames abgetastet werden, wobei K eine vorbestimmte ganze Zahl ist. Die Interpolationsgenauigkeit kann durch verschiedene Verfahren bestimmt werden. Als ein Beispiel kann hinsichtlich den Fragmenten derselben Position die Interpolationsgenauigkeit durch ein Vergleichen des Fragmentwerts Frag_I, welcher durch eine Interpolation erzeugt wird, mit dem Fragmentwert Frag_R, welcher durch eine aktuelle Shading-Verarbeitung erzeugt wird, bestimmt werden. Wenn die Differenz zwischen dem Fragmentwert Frag_I durch die Interpolation und dem Fragment wert Frag_R durch die Shading-Verarbeitung groß ist, kann es anzeigen, dass der Wert eines Fragments, welches Shading-verarbeitet werden muss, durch Interpolation berechnet werden kann und die Rendering-Verarbeitungscharakteristiken können niedrig sein.
  • Die Bestimmungsinformation Info_A kann verschiedene Information aufweisen. Als ein Beispiel kann die Interpolationsgenauigkeitsbestimmungsvorrichtung 423 eine Vergleichsverarbeitung basierend auf den Fragmentwerten Frag_R und Frag_I durchführen und die Interpolationsgenauigkeit basierend darauf berechnen, um die Bestimmungsinformation Info_A zu erzeugen. Alternativ kann wie in einer anderen Ausführungsform die Bestimmungsinformation Info_A nur die Operationsergebnisse basierend auf den Fragmentwerten Frag_R und Frag_I aufweisen, und der Host 410 kann die Bestimmungsinformation Info_A verwenden, um die Interpolationsgenauigkeit zu bestimmen. Der Host 410 kann das Abtaststeuersignal Crtl_C/F basierend auf der Bestimmungsinformation Info_A erzeugen.
  • 14 ist ein Blockschaltbild, welches einen Grafikprozessor gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. 14 veranschaulicht ein Beispiel, in welchem ein Grafikprozessor 500 intern die Interpolationsgenauigkeit bestimmt und die Abtastrate der ersten Abtast-Kandidaten-Karte basierend darauf anpasst.
  • Bezug nehmend auf 14 kann der Grafikprozessor 500 einen Abtaststrukturzeuger 510, einen SCM-Erzeuger 520, eine SCM-Überarbeitungsvorrichtung 530, einen Fragment-Prozessor 540 und eine Interpolationsgenauigkeitsbestimmungsvorrichtung 550 aufweisen. Der Abtaststrukturerzeuger 510 kann Strukturinformation erzeugen, welche eine vorbestimmte Struktur hat, und dieselbe für den SCM-Erzeuger 520 vorsehen, und der SCM-Erzeuger 520 kann die erste Abtast-Kandidaten-Karte basierend darauf erzeugen. Ebenso kann der Grafikprozessor 500 ein Abtaststeuersignal Crtl_C/F zum Steuern des An/Aus eines Abtastmodus zusammen mit einem Befehl CMD und Grafikdaten DATA von einem Host empfangen.
  • Der Abtaststrukturerzeuger 510 kann Strukturinformation erzeugen, welche für jedes Frame eine unterschiedliche Struktur hat. Gemäß einer Ausführungsform kann der Abtaststrukturerzeuger 510 Strukturinformation erzeugen, welche eine Abtastrate hat, welche basierend auf der Bestimmungsinformation Info_A von der Interpolationsgenauigkeitsbestimmungsvorrichtung angepasst wird. Beispielsweise kann, wenn die Interpolationsgenauigkeit relativ hoch ist (oder größer als ein vorbestimmter Wert) bestimmt werden, dass die Ähnlichkeit für jedes Frame hoch ist und demnach kann der Abtaststrukturerzeuger 510 Strukturinformation mit einer verringerten Abtastrate erzeugen. Andererseits kann, wenn die Interpolationsgenauigkeit relativ hoch ist, der Abtaststrukturerzeuger 510 Strukturinformation mit einer relativ hohen Abtastrate erzeugen.
  • Gemäß einer Ausführungsform kann, wenn die Abtastrate gering ist, die Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden der Fragmentwerte einer Mehrzahl von Frames durchgeführt werden. Andererseits kann, wenn die Abtastrate hoch ist, die Lochfüll-Verarbeitung durch Interpolation ohne Durchführen der Abtast-Kandidaten-Karten-Überarbeitungsoperation durchgeführt werden oder die End-Rendering-Verarbeitung kann durch die Abtast-Kandidaten-Karten-Überarbeitungsoperation basierend auf dem Fragmentwert des gegenwärtigen Frame durchgeführt werden.
  • 15 ist ein Blockschaltbild, welches ein Rendering-System 600 gemäß einer anderen Ausführungsform des erfinderischen Konzepts veranschaulicht. Das Rendering-System 600 kann einen Host 610 und einen Grafikprozessor 620 aufweisen und der Host 610 kann eine Anwendung 611, ein Vorrichtungstreiber 612, einen Ähnlichkeitsbestimmer 613 und einen Frequenzcharakteristikbestimmer 614 aufweisen. Der Grafikprozessor 620 kann eine SCM-Überarbeitungsvorrichtung 621 und einen Fragment Prozessor 622 aufweisen.
  • Gemäß einer Ausführungsform kann der Host 610 die Charakteristiken von Frames, welche auszugeben sind, bestimmen und eine Abtastoperation des Grafikprozessors 26 basierend darauf steuern. Als ein Beispiel kann der Ähnlichkeitsbestimmer 613 die Ähnlichkeit zwischen einer Mehrzahl von Frames, welche grafisch zu verarbeiten sind, bestimmen, und der Host 610 kann ein Abtaststeuersignal Crtl_C/F für den Grafikprozessor 620 basierend auf der Ähnlichkeitsbestimmung vorsehen. Das Abtaststeuersignal Crtl_C/F kann das An oder Aus des Abtastmodus steuern und gemäß einer Ausführungsform kann das Abtaststeuersignal Crtl_C/F ferner Information zum Anpassen der Abtastrate aufweisen. Als ein Beispiel kann ein Grenzwertkriterium für den Grad von Ähnlichkeit zwischen einer Mehrzahl von Frames voreingestellt und in dem Host 610 gespeichert sein, und der Ähnlichkeitsbestimmer 613 kann basierend auf der voreingestellten Information bestimmen, ob das Frame, welches gegenwärtig Rendering-zu-verarbeiten ist, eine hohe Ähnlichkeit hinsichtlich der vorangehenden Frames hat. Beispielsweise kann das Grenzwertkriterium basiert sein auf Bewegungsvektoren zwischen einer Sequenz von Frames. Wenn es einen kleinen Bewegungsbetrag gibt, kann die Ähnlichkeit als hoch erachtet werden, wenn aber Bewegung schnell ist, kann die Ähnlichkeit als niedrig betrachtet werden.
  • Der Frequenzcharakteristikbestimmer 614 kann die Charakteristik des Frame bestimmen. Als ein Beispiel kann der Frequenzcharakteristikbestimmer 614 die Charakteristik (beispielsweise den Randverteilungsgrad) eines gegenwärtigen oder vorangehend Render-verarbeiteten Frame bestimmen. Wenn es viele Ränder in dem gegenwärtigen oder vorangehenden Frame gibt, gibt es eine hohe Wahrscheinlichkeit der Existenz von vielen Rändern in nachfolgenden Frames. In diesem Fall kann der Host 610 das Abtaststeuersignal Crtl_C/F für den Grafikprozessor 620 vorsehen, um den Abtastmodus abzuschalten oder um die Abtastrate zu erhöhen.
  • 16 ist ein Diagramm, welches ein Beispiel einer variablen Operation eines Abtastmodus veranschaulicht. In diesem Beispiel kann ein Grafikprozessor in verschiedenen Abtastmodi arbeiten und der Abtastmodus kann beim Durchführen der Rendering-Verarbeitung auf einer Mehrzahl von Frames variieren. Die Änderung des Abtastmodus kann durch den Host gesteuert werden oder kann durch den Grafikprozessor selbst durchgeführt werden. Alternativ kann als ein anderes Beispiel das An/Aus des Abtastmodus durch den Host gesteuert werden, während die Abtastrate in dem Abtastmodus durch den Grafikprozessor selbst angepasst werden kann.
  • Wenn der Inhalt des Frame sich in großem Maße ändert oder es viele Ränder in dem Frame gibt, oder wenn Unterschiede zwischen Interpolations-verarbeiteten Fragmentwerten und aktuellen Shading-verarbeiteten Fragmentwerten hoch sind (beispielsweise auf einem Durchschnitt über einem Grenzwert), kann der Grafikprozessor in einem Abtast-aus-Modus (oder Voll-Abtast-Modus) arbeiten. In diesem Fall kann eine Shading-Verarbeitung auf all den Fragmenten durchgeführt werden.
  • Danach kann der Abtastmodus gemäß verschiedenen Kriterien wie beispielsweise einer Zunahme in der Ähnlichkeit zwischen den Frames angeschaltet werden und der Grafikprozessor kann zuerst in einen Fein-Abtast-Modus arbeiten. Gemäß einer Ausführungsform können einige Fragmente Zwischen-Shading-verarbeitet sein durch eine erste Abtast-Kandidaten-Karte, welche eine große Abtastrate hat, und die Abtast-Kandidaten-Karten-Überarbeitungsoperation gemäß der obigen Ausführungsform kann auf den anderen Fragmenten durchgeführt werden. Ebenso kann in dem Fein-Abtast-Modus die Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden des Fragmentwerts des gegenwärtig Rendering-verarbeiteten Frame durchgeführt werden.
  • Ebenso kann sich der Abtastmodus in einen groben Abtastmodus ändern. In diesem Fall können einige Fragmente durch die erste Abtast-Kandidaten-Karte Zwischen-Shading-verarbeitet werden, welche ein kleines Abtastverhältnis hat, und die Abtast-Kandidaten-Überarbeitungsoperation gemäß der obigen Ausführungsform kann auf den anderen Fragmenten durchgeführt werden. Ebenso kann gemäß der obigen Ausführungsform in dem Grob-Abtast-Modus die Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden des Fragmentwerts gemäß der Shading-Verarbeitung des gegenwärtigen Frame und des vorangehenden Frame durchgeführt werden.
  • Die 17A und 17B sind Diagramme, welche ein Beispiel veranschaulichen, in welchem eine Abtast-Kandidaten-Karten-Überarbeitungsoperation durch ein Verwenden von Daten von drei oder mehr Frames durchgeführt wird. Die 17A und 17B veranschaulichen ein Beispiel, in welchem Daten von vier Frames verwendet werden; verschiedene andere Anzahlen von Frames jedoch können ebenso in Ausführungsformen des erfinderischen Konzepts verwendet werden.
  • Bezug nehmend auf 17A kann ein Fragment für jedes Fragment einer 4*4-Größe abgetastet und geshadet werden. Ebenso können die ersten Abtast-Kandidaten-Karten von vier nacheinander folgenden Frames unterschiedliche Strukturen haben, sodass ein Dithering-Schema vier Frames überspannt beziehungsweise aufspannt und visuelle Artefakte verringert. Als ein Beispiel können die ersten Abtast-Kandidaten-Karten SCM_1 des ersten bis vierten Frame Frame1 bis Frame4 derart eingestellt sein, dass ihre Strukturen einander nicht überlappen.
  • Bezug nehmend auf 17B kann eine Abtast-Kandidaten-Karten-Überarbeitungsvorrichtung eine erste Abtast-Kandidaten-Karte SCM_1 eines vierten Frame Frame4 als einem gegenwärtigen Frame empfangen und einen Zwischen-Rendering-verarbeiteten Fragmentwert Frag_F4 des vierten Frame Frame4 empfangen. Ebenso kann die Abtast-Kandidaten-Karten-Überarbeitungsvorrichtung Fragmentwerte Frag_F1 bis Frag_F3 des ersten bis dritten Frame Frame1 bis Frame3 als vorangehende Frames verwenden. Gemäß einer Ausführungsform können die Fragmentwerte Frag_F1 bis Frag_F3 des ersten bis dritten Frame Frame1 bis Frame3 in einem externen Speicher außerhalb eines Grafikprozessors gespeichert werden und die Fragmentwerte Frag_F1 bis Frag_F4 können aus dem externen Speicher gelesen werden und dann für die Abtast-Kandidaten-Karten-Überarbeitungsvorrichtung vorgesehen werden.
  • 18 ist ein Blockschaltbild, welches ein Implementationsbeispiel einer mobilen Vorrichtung veranschaulicht, welche eine Speichervorrichtung gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts aufweist.
  • Bezug nehmend auf 18 kann eine mobile Vorrichtung 700 einem Rendering-System entsprechen und kann einen Anwendungsprozessor 710 und eine Speichervorrichtung 720 aufweisen. Der Anwendungsprozessor 710 kann als ein Ein-Chip-System (SoC) implementiert sein. Das SoC kann einen Systembus (nicht veranschaulicht) aufweisen, auf welchen ein Protokoll, welches einen vorbestimmten Busstandard hat, angewandt wird, und kann verschiedene Intellectual Property (IP)-Vorrichtungen aufweisen, welche mit dem Systembus verbunden sind. Wie in 18 veranschaulicht ist, kann als Beispiele der IP-Vorrichtungen der Anwendungsprozessor 710 eine CPU 711, eine GPU 712, einen Modemprozessor 713 und eine Speichersteuereinheit 714 aufweisen. Ebenso kann, da der Anwendungsprozessor 710 eine Modemkommunikationsfunktion durchführt, auf den Anwendungsprozessor 710 Bezug genommen werden als ModAP.
  • Das Advanced Microcontroller Bus Architecture (AMBA)-Protokoll von Advanced RESC Machine (ARM) Inc. kann als der Standard des Systembusses angewandt werden. Die Bustypen des AMBA-Protokolls können Advanced High-Performance Bus (AHB), Advanced Peripheral Bus (APB), Advanced eXtensible Interface (AXI), AXI4 und AXI Coherency Extensions (ACE) aufweisen. Zusätzlich können ebenso andere Typen von Protokollen wie beispielsweise uNetwork von SONICS Inc., CoreConnect von IBM und Open Core Protocol (OCP) von Open Core Protocol International Partnership (OCP-IP) angewandt werden.
  • Die GPU 712 kann die Rendering-Verarbeitung, welche in den obigen Ausführungsformen beschrieben ist, durchführen. Demzufolge kann die GPU 712 eine Abtast-Kandidaten-Karten-Überarbeitungsvorrichtung aufweisen. Ein oder mehrere Framedaten Data_Frame können in der Speichervorrichtung 720 über die Speichersteuereinheit 714 gespeichert werden. Ebenso kann die Abtast-Kandidaten-Karten-Überarbeitungsvorrichtung die Überarbeitungsoperation in den obigen Ausführungsformen durch ein Verwenden der Daten des gegenwärtigen Frame und der Daten des vorangehenden Frame, welche aus der Speichervorrichtung 720 gelesen werden, durchführen.
  • Verschiedene Vorrichtungen, welche obenstehend beschrieben sind, können Hardwareschaltungen sein und einen Teil einer integrierten Schaltung bilden. Beispielsweise kann die Abtast-Kandidaten-Karten-(SCM)-Überarbeitungsvorrichtung 110 durch wenigstens ein Verarbeitungselement einer integrierten Schaltung implementiert sein. Demnach können die verschiedenen Vorrichtungen mit Verarbeitung oder anderer Funktionalität alternativ Schaltungen genannt werden. Beispielsweise können die SCM-Überarbeitungsvorrichtung 110, 300 oder 423 und die Interpolationsgenauigkeitsbestimmungsvorrichtung 423 jeweils alternativ eine SCM-Überarbeitungsschaltung 110, 300 oder 423 und eine Interpolationsgenauigkeitsbestimmungsschaltung 423 genannt werden. Ein beliebiger der oben diskutierten Prozessoren, Erzeuger oder Treiber kann jeweils eine Prozessorschaltung, eine Erzeugerschaltung und eine Treiberschaltung genannt werden.
  • Die obenstehend beschriebenen Verfahren gemäß dem vorliegenden erfinderischen Konzept können implementiert sein in Hardware, Firmware oder über die Nutzung von Software oder Computercode, welcher in einem Aufzeichnungsmedium wie beispielsweise einer CD-ROM, einem RAM, einer Floppy-Disk, einer Festplatte oder einer magneto-optischen Platte gespeichert sind, oder Computercode, welcher über ein Netzwerk heruntergeladen wird, der ursprünglich auf einem entfernten Aufzeichnungsmedium oder einem nichtvergänglichen maschinenlesbaren Medium gespeichert ist und auf einem lokalen Aufzeichnungsmedium zu speichern ist, sodass die Verfahren, welche hierin beschrieben sind, unter Verwendung solcher Software gerendert werden können, welche auf dem Aufzeichnungsmedium gespeichert ist, und zwar unter Verwendung eines Allgemeinzweckcomputers oder eines Spezialprozessors oder in einer programmierbaren oder dedizierten Hardware wie beispielsweise einem ASIC oder FPGA. Wie im Fachgebiet verstanden würde, weisen der Computer, der Prozessor, der Mikroprozessorcontroller oder die programmierbare Hardware Speicherkomponenten, beispielsweise RAM, ROM, Flash etc. auf, welche Software oder Computercode speichern oder empfangen können, welcher, wenn auf ihn zugegriffen wird und er durch den Computer ausgeführt wird, die Verarbeitungsverfahren, welche hierin beschrieben sind, Prozessor-implementiert oder Hardware-implementiert. Zusätzlich würde anerkannt werden, dass, wenn ein Allgemeinzweckcomputer auf Code zum Implementieren der Verarbeitung, welcher hierin gezeigt ist, zugreift, die Ausführung des Code den Allgemeinzweckcomputer in einen Spezialzweckcomputer zum Ausführen der Verarbeitung, welche hierin beschrieben ist, transformiert.

Claims (25)

  1. Verfahren zum Betreiben eines Grafikprozessors (100; 200; 300; 420; 500; 620; 712), wobei das Verfahren Folgendes aufweist: ein Durchführen (S32) eines Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente eines ersten Frame (Frame_Odd) durch Verwenden einer ersten Abtast-Kandidaten-Karte (SCM_1), welche eine erste Struktur hat; ein Durchführen (S35) von Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente eines zweiten Frame (Frame_C; Frame_Even) durch ein Verwenden der ersten Abtast-Kandidaten-Karte (SCM_1), welche eine zweite Struktur hat; ein zusätzliches Abtasten anderer Fragmente des zweiten Frame (Frame_C; Frame_Even), welche basierend auf einem Vergleich eines Shading-Verarbeitungsergebnis des ersten Frame (Frame_Odd) und eines Shading-Verarbeitungsergebnis des zweiten Frame (Frame_C; Frame_Even) bestimmt werden; und ein Durchführen (S38) eines End-Rendering durch eine Shading-Verarbeitung der zusätzlich abgetasteten Fragmente.
  2. Verfahren nach Anspruch 1, wobei das zusätzliche Abtasten ein Erzeugen einer zweiten Abtast-Kandidaten-Karte (SCM_2) durch ein Ändern (S37) von Abtastinformation der ersten Abtast-Kandidaten-Karte (SCM_1) aufweist, und das Durchführen (S38) des End-Rendering eine Shading-Verarbeitung von Fragmenten aufweist, welche durch ein Verwenden der zweiten Abtast-Kandidaten-Karte (SCM_2) abgetastet werden.
  3. Verfahren nach Anspruch 1 oder 2, ferner aufweisend ein Durchführen einer Interpolationsverarbeitung auf verbleibenden Fragmenten des zweiten Frame (Frame_C; Frame_Even), welche nicht Shading-verarbeitet sind, in dem Zwischen-Rendering (S35) und dem End-Rendering (S38) auf dem zweiten Frame (Frame_C; Frame_Even).
  4. Verfahren nach einem der Ansprüche 1 bis 3, ferner aufweisend: ein Durchführen (S33) eines End-Rendering durch eine Shading-Verarbeitung anderer Fragmente des ersten Frame (Frame_Odd) nach dem Durchführen (S32) des Zwischen-Rendering auf dem ersten Frame (Frame_Odd), und ein Durchführen einer Interpolationsverarbeitung auf verbleibenden Fragmenten des ersten Frame (Frame_Odd), welche nicht Shading-verarbeitet sind, in dem Zwischen-Rendering und dem End-Rendering auf dem ersten Frame (Frame_Odd).
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei eine Position eines Fragments in dem ersten Frame (Frame_Odd), welches durch die erste Abtast-Kandidaten-Karte (SCM_1) abgetastet wird, welche die erste Struktur hat, sich von einer Position eines Fragments in dem zweiten Frame (Frame_C; Frame_Even) unterscheidet, welches durch die erste Abtast-Kandidaten-Karte (SCM_1) abgetastet wird, welche die zweite Struktur hat.
  6. Verfahren nach einem der Ansprüche 1 bis 5, weiterhin aufweisend ein Auswählen eines beliebigen einen eines Abtast-aus-Modus, eines Fein-Abtast-Modus und eines Grob-Abtast-Modus, wobei, wenn der Grob-Abtast-Modus ausgewählt ist, die anderen Fragmente des zweiten Frame (Frame_C; Frame_Even) durch ein Verwenden der Shading-Verarbeitungsergebnisse des ersten Frame (Frame_Odd) und des zweiten Frame (Frame_C; Frame_Even) zusätzlich abgetastet werden.
  7. Verfahren nach Anspruch 6, ferner aufweisend: ein Ändern eines Operationsmodus in den Abtast-aus-Modus; ein Empfangen eines dritten Frame; und ein Durchführen von Rendering durch eine Shading-Verarbeitung aller Fragmente des dritten Frame.
  8. Verfahren nach Anspruch 6, ferner aufweisend: ein Ändern eines Operationsmodus in den Fein-Abtast-Modus; ein Empfangen eines dritten Frame; ein Durchführen eines Zwischen-Rendering durch eine Shading-Verarbeitung einiger Fragmente des dritten Frame durch ein Verwenden einer ersten Abtast-Kandidaten-Karte, welche eine dritte Struktur hat; und ein Durchführen eines End-Rendering durch ein zusätzliches Abtasten und Shading-Verarbeiten anderer Fragmente des dritten Frame durch ein Verwenden eines Shading-Verarbeitungsergebnis des dritten Frame, wobei die dritte Struktur eine höhere Abtastrate hat als die zweite Struktur.
  9. Grafikprozessor, der Folgendes aufweist: einen Zwischen-Rendering-Prozessor (320), welcher eine Shading-Verarbeitung auf einigen einer Mehrzahl von Fragmenten eines gegenwärtigen Frame (Frame_C; Frame_Even) gemäß Abtastinformation einer Abtast-Kandidaten-Karte (SCM_1) durchführt; eine Abtast-Kandidaten-Karten-Überarbeitungsschaltung (330), welche konfiguriert ist, um die Abtastinformation der Abtast-Kandidaten-Karte (SCM_1) zu ändern, um dadurch eine geänderte Abtast-Kandidaten-Karte (SCM_2) basierend auf einem Vergleich eines Shading-Verarbeitungsergebnisses eines vorangehenden Frame (Frame_Odd) und eines Shading-Verarbeitungsergebnisses des gegenwärtigen Frame (Frame_C; Frame_Even) zu erzeugen; und einen End-Rendering-Prozessor (340), welcher eine Shading-Verarbeitung auf Fragmenten des gegenwärtigen Frame (Frame_C; Frame_Even) durchführt, welche gemäß der geänderten Abtast-Kandidaten-Karte (SCM_2) zusätzlich unter den Fragmenten abgetastet werden, welche nicht durch den Zwischen-Rendering-Prozessor (320) Shading-verarbeitet sind.
  10. Grafikprozessor nach Anspruch 9, ferner aufweisend einen Interpolationsprozessor, welcher ein Lochfüllen (S47) auf einem Fragment durchführt, welches nicht durch den Zwischen-Rendering-Prozessor (320) und den End-Rendering-Prozessor (340) Shading-verarbeitet ist.
  11. Grafikprozessor nach Anspruch 9 oder 10, ferner aufweisend einen Abtast-Kandidaten-Karten-Erzeuger (310), welcher die Abtast-Kandidaten-Karte (SCM_1) gemäß einer empfangenen Strukturinformation (Info_Pat) erzeugt.
  12. Grafikprozessor nach Anspruch 11, wobei die Abtast-Kandidaten-Karte (SCM_1) eine erste Struktur in einer Rendering-Verarbeitung auf einem ungeradzahligen Frame hat, und eine zweite Struktur unterschiedlich von der ersten Struktur bei einer Rendering-Verarbeitung auf einem geradzahligen Frame hat, und das vorangehende Frame (Frame_Odd) dem ungeradzahligen Frame entspricht und das gegenwärtige Frame dem geradzahligen Frame (Frame_Even) entspricht.
  13. Grafikprozessor nach Anspruch 12, ferner aufweisend einen Abtaststrukturerzeuger (SPG), welcher Strukturinformation (Info_Pat), welche die erste Struktur oder die zweite Struktur hat, für den Abtast-Kandidaten-Karten-Erzeuger (310) gemäß einer Framereihenfolge vorsieht.
  14. Grafikprozessor nach Anspruch 13, ferner aufweisend einen Pixelextraktor (PE), welcher Fragmentwerte gemäß dem Shading-Verarbeitungsergebnis des vorangehenden Frame (Frame_Odd) empfängt, welcher die Strukturinformation (Info Pat), welche die erste Struktur hat, von dem Abtaststrukturerzeuger empfängt, wenn die Strukturinformation (Info Pat), welche die zweite Struktur hat, für den Abtast-Kandidaten-Karten-Erzeuger (310) vorgesehen ist, und welcher einen Fragmentwert (Frag_P), welcher der ersten Struktur (SCM_1) des vorangehenden Frame (Frame_Odd) entspricht, für die Abtast-Kandidaten-Karten-Überarbeitungsschaltung (330) vorsieht.
  15. Grafikprozessor nach einem der Ansprüche 11 bis 14, ferner aufweisend eine Interpolationsgenauigkeitsbestimmungsschaltung (423), welche eine Interpolationsgenauigkeitsbestimmung durchführt durch ein Vergleichen eines Werts, welcher durch eine Interpolationsverarbeitung berechnet wird, mit einem Wert, welcher durch eine Shading-Verarbeitung berechnet wird, hinsichtlich desselben Fragments des gegenwärtigen Frame, wobei der Abtast-Kandidaten- Karten-Erzeuger (310) eine Abtastrate der Abtast-Kandidaten-Karte (SCM_1) gemäß einem Ergebnis der Interpolationsgenauigkeitsbestimmung anpasst.
  16. Grafikprozessor nach einem der Ansprüche 11 bis 15, wobei der Abtast-Kandidaten-Karten-Erzeuger (310) eine Abtastrate der Abtast-Kandidaten-Karte (SCM_1) in Antwort auf einen Befehl von einem Host (410; 610) anpasst.
  17. Grafikprozessor nach einem der Ansprüche 9 bis 16, wobei die Abtast-Karten-Überarbeitungsschaltung (330) die Abtast-Kandidaten-Karte (SCM_1) durch ein Verwenden des Shading-Verarbeitungsergebnis des vorangehenden Frame (Frame_Odd) und des Shading-Verarbeitungsergebnis des gegenwärtigen Frame (Frame_Even) überarbeitet, wenn eine Abtastrate der Abtast-Kandidaten-Karte (SCM_1) geringer ist als ein Referenzwert, und die Abtast-Kandidaten-Karte (SCM_1) durch ein Verwenden des Shading-Verarbeitungsergebnis des gegenwärtigen Frame (Frame_Even) überarbeitet, wenn die Abtastrate der Abtast-Kandidaten-Karte (SCM_1) größer ist als der Referenzwert.
  18. Grafikprozessor, der Folgendes aufweist: eine Abtast-Kandidaten-Karten-Überarbeitungsschaltung (330; 421; 530; 621), welche konfiguriert ist, um eine erste Abtast-Kandidaten-Karte (SCM_1) zum Auswählen einiger einer Mehrzahl von Fragmenten hinsichtlich eines gegebenen Frame eines Videos, welches zu rendern ist, zu empfangen, und eine zweite Abtast-Kandidaten-Karte (SCM_2) durch ein Ändern von Abtastinformation der ersten Abtast-Kandidaten-Karte (SCM_1) basierend auf einem Vergleich von Shading-Verarbeitungsergebnissen wenigstens zweier Frames des Videos zu erzeugen; und einen Fragment-Prozessor (320, 340; 422; 540; 622), welcher eine Zwischen-Rendering-Verarbeitung durch eine Shading-Verarbeitung auf Fragmenten durchführt, welche gemäß der ersten Abtast-Kandidaten-Karte (SCM_1) abgetastet sind, und eine End-Rendering-Verarbeitung durch eine Shading-Verarbeitung auf Fragmenten durchführt, welche zusätzlich gemäß der zweiten Abtast-Kandidaten-Karte (SCM_2) abgetastet sind.
  19. Grafikprozessor nach Anspruch 18, wobei der Fragment-Prozessor (320, 340; 422; 540; 622) Folgendes aufweist: einen Zwischen-Rendering-Prozessor (320), welcher die Zwischen-Rendering-Verarbeitung durchführt; und einen End-Rendering-Prozessor (340), welcher die End-Rendering-Verarbeitung durchführt.
  20. Grafikprozessor nach Anspruch 18 oder 19, ferner aufweisend einen Abtast-Kandidaten-Karten-Erzeuger (310; 520), welcher eine Strukturinformation empfängt und die erste Abtast-Kandidaten-Karte (SCM_1) gemäß der Strukturinformation erzeugt, wobei die Abtast-Kandidaten-Karten-Überarbeitungsschaltung (211; 330; 421; 530; 621) die erste Abtast-Kandidaten-Karte (SCM_1) durch ein Verwenden eines Shading-Verarbeitungsergebnis eines vorangehenden Frame (Frame_Odd) und eines Shading-Verarbeitungsergebnis eines gegenwärtigen Frame (Frame_Even) überarbeitet, wenn eine Abtastrate der ersten Abtast-Kandidaten-Karte (SCM_1) geringer ist als ein Referenzwert, und die erste Abtast-Kandidaten-Karte (SCM_1) durch ein Verwenden des Shading-Verarbeitungsergebnis des gegenwärtigen Frame (Frame_Even) überarbeitet, wenn die Abtastrate der ersten Abtast-Kandidaten-Karte (SCM_1) größer ist als ein Referenzwert.
  21. Grafikprozessor nach Anspruch 20, wobei der Abtast-Kandidaten-Karten-Erzeuger (310; 520) die Abtastrate der ersten Abtast-Kandidaten-Karte (SCM_1) in Antwort auf einen Befehl von einem externen Host anpasst.
  22. Grafikprozessor nach Anspruch 20 oder 21, ferner aufweisend eine Interpolationsgenauigkeitsbestimmungsvorrichtung (423; 550), welche eine Interpolationsgenauigkeitsbestimmung durch ein Vergleichen eines Werts durchführt, welcher durch eine Interpolationsverarbeitung berechnet wird, mit einem Wert, welcher durch eine Shading-Verarbeitung berechnet wird, hinsichtlich desselben Fragments des gegenwärtigen Frame (Frame_Even), wobei der Abtast-Kandidaten-Karten-Erzeuger (310) die Abtastrate der ersten Abtast-Kandidaten-Karte (SCM_1) gemäß dem Bestimmungsergebnis anpasst.
  23. Grafikprozessor nach einem der Ansprüche 18 bis 22, wobei der Grafikprozessor ein Abtaststeuersignal (Ctrl_C/F), welches ein An/Aus eines Abtastmodus anzeigt, von einem externen Host (410; 610) empfängt, und wenn der Abtastmodus Aus entspricht, die erste Abtast-Kandidaten-Karte (SCM_1) eine Abtastinformation zum Abtasten aller Fragmente davon hat.
  24. Grafikprozessor nach einem der Ansprüche 18 bis 23, ferner aufweisend einen Rasterisierer (210), welcher einige der Mehrzahl von Fragmenten für den Fragment-Prozessor (320, 340; 422; 540; 622) vorsieht, wobei die Abtast-Kandidaten-Karten-Überarbeitungsschaltung (211) in dem Rasterisierer (210) enthalten ist.
  25. Grafikprozessor nach einem der Ansprüche 18 bis 24, wobei der Fragment-Prozessor (320, 340; 422; 540; 622) eine Mehrzahl von Verarbeitungskernen aufweist, und die Zwischen-Rendering-Verarbeitung durch einige der Mehrzahl von Verarbeitungskernen durchgeführt wird und die End-Rendering-Verarbeitung durch einige andere der Mehrzahl von Verarbeitungskernen durchgeführt wird.
DE102018125472.5A 2017-12-28 2018-10-15 Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben Active DE102018125472B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170182640A KR102545172B1 (ko) 2017-12-28 2017-12-28 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법
KR10-2017-0182640 2017-12-28

Publications (2)

Publication Number Publication Date
DE102018125472A1 DE102018125472A1 (de) 2019-07-04
DE102018125472B4 true DE102018125472B4 (de) 2023-12-07

Family

ID=66816973

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018125472.5A Active DE102018125472B4 (de) 2017-12-28 2018-10-15 Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben

Country Status (6)

Country Link
US (1) US10762696B2 (de)
JP (1) JP7221679B2 (de)
KR (1) KR102545172B1 (de)
CN (1) CN109978750A (de)
DE (1) DE102018125472B4 (de)
TW (1) TWI789452B (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102589969B1 (ko) 2018-11-05 2023-10-16 삼성전자주식회사 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법
US11089320B2 (en) * 2019-03-27 2021-08-10 Nvidia Corp. Adaptive pixel sampling order for temporally dense rendering
CN112419147B (zh) * 2020-04-14 2023-07-04 上海哔哩哔哩科技有限公司 图像渲染方法及装置
US11899588B2 (en) 2020-09-14 2024-02-13 Samsung Electronics Co., Ltd. Systems, methods, and devices for discarding inactive intermediate render targets
US11922556B2 (en) * 2021-04-12 2024-03-05 Nvidia Corporation Ray-traced light resampling using screen space visibility
US20220383573A1 (en) * 2021-05-19 2022-12-01 Disney Enterprises, Inc. Frame interpolation for rendered content

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379727A1 (en) 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Motion based adaptive rendering

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020140706A1 (en) 2001-03-30 2002-10-03 Peterson James R. Multi-sample method and system for rendering antialiased images
GB0426170D0 (en) * 2004-11-29 2004-12-29 Falanx Microsystems As Processing of computer graphics
US8044956B1 (en) * 2007-08-03 2011-10-25 Nvidia Corporation Coverage adaptive multisampling
US8203558B2 (en) * 2008-01-28 2012-06-19 Apple Inc. Dynamic shader generation
GB2469526B (en) * 2009-04-17 2015-06-24 Advanced Risc Mach Ltd Generating and resolving pixel values within a graphics processing pipeline
KR20100132605A (ko) * 2009-06-10 2010-12-20 삼성전자주식회사 하이브리드 렌더링 장치 및 방법
GB2497302B (en) * 2011-12-05 2017-04-12 Advanced Risc Mach Ltd Methods of and apparatus for processing computer graphics
US9607356B2 (en) 2013-05-02 2017-03-28 Arm Limited Graphics processing systems
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
KR102122454B1 (ko) 2013-10-02 2020-06-12 삼성전자주식회사 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치
US9495790B2 (en) * 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
GB2525223B (en) * 2014-04-16 2020-07-15 Advanced Risc Mach Ltd Graphics processing systems
KR102370617B1 (ko) 2015-04-23 2022-03-04 삼성전자주식회사 적응적 샘플링을 수행하여 영상을 처리하는 방법 및 장치.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379727A1 (en) 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Motion based adaptive rendering

Also Published As

Publication number Publication date
TWI789452B (zh) 2023-01-11
JP7221679B2 (ja) 2023-02-14
DE102018125472A1 (de) 2019-07-04
KR102545172B1 (ko) 2023-06-19
US20190206121A1 (en) 2019-07-04
KR20190080274A (ko) 2019-07-08
CN109978750A (zh) 2019-07-05
US10762696B2 (en) 2020-09-01
JP2019121381A (ja) 2019-07-22
TW201931300A (zh) 2019-08-01

Similar Documents

Publication Publication Date Title
DE102018125472B4 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
DE60311359T2 (de) Vorrichtungen und Verfahren zur kontrollierbaren Texturabtastung
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
DE60133166T2 (de) Verfahren und Vorrichtung zur Volumendarstellung
DE69636599T2 (de) Verfahren und system zur wiedergabe von grafischen objekten durch teilung in bildstücke und zusammensetzen von bildlagen zu einem wiedergabebild
DE69333379T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Videosignalen
DE60120474T2 (de) Rasterung von dreidimensionalen bildern
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE102015107869A1 (de) Vergabe von Primitiven an Primitiv-Blöcke
DE60000686T2 (de) Graphisches system mit super-abgetastetem musterpuffer mit erzeugung von ausgangpixeln unter verwendung von selektiven adjustierung der filterung zur artifaktverminderung
DE102015115232A1 (de) Verbessertes Anti-Aliasing durch räumliches und/oder zeitliches Variieren von Sample-Mustern
DE102013114373A1 (de) Konsistente Vertex-Einrastung für Rendering mit variabler Auflösung
DE112005002076T5 (de) Unterteilung von Geometriebildern in Grafikhardware
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE602004003111T2 (de) Tiefen-basiertes Antialiasing
DE19917092A1 (de) Verfahren zur Rasterisierung eines Graphikgrundelements
DE102005050846A1 (de) Perspektiveneditierwerkzeuge für 2-D Bilder
DE202012013456U1 (de) Neuordnung überlagerter digitaler Bilddaten und zugehörige Rendering-Engine für digitale Bilder
DE102016103854A1 (de) Graphikverarbeitung mit direktionalen Darstellungen der Beleuchtung an Sondenpositionen innerhalb einer Szene
DE102016109905A1 (de) Stückweise lineare unregelmäßige Rasterisierung
DE202012013450U1 (de) Beschriftungspositionierbildwiedergabesystem zur Reduzierung des Kriechens bei Zoom-Aktivitäten
DE60008867T2 (de) Antialiasingverfahren und -anordnung zur effizienten nutzung von wenigen mischeinheiten
DE102010048486A1 (de) Bildverarbeitungstechniken
DE102013222685A1 (de) System, Verfahren und Computer-Programm-Produkt zum Abtasten einer hierarchischen Tiefe-Karte

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division