DE60126967T2 - Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung - Google Patents

Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung Download PDF

Info

Publication number
DE60126967T2
DE60126967T2 DE60126967T DE60126967T DE60126967T2 DE 60126967 T2 DE60126967 T2 DE 60126967T2 DE 60126967 T DE60126967 T DE 60126967T DE 60126967 T DE60126967 T DE 60126967T DE 60126967 T2 DE60126967 T2 DE 60126967T2
Authority
DE
Germany
Prior art keywords
graphics
cache
cpu
core
tile
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.)
Expired - Lifetime
Application number
DE60126967T
Other languages
English (en)
Other versions
DE60126967D1 (de
Inventor
Hsin-Chu Folsom TSAI
Subramania Gold River MAIYURAN
Chung-Chi Rancho Cordova WANG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE60126967D1 publication Critical patent/DE60126967D1/de
Application granted granted Critical
Publication of DE60126967T2 publication Critical patent/DE60126967T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Computersysteme. Im Besonderen betrifft die vorliegende Erfindung die Verarbeitung von dreidimensionalen Grafiken.
  • STAND DER TECHNIK
  • Mittels Computer erzeugte Grafiken werden für gewöhnlich in verschiedenen Bereichen der Industrie, der Wirtschaft, dem Bildungswesen und in der Unterhaltungsindustrie eingesetzt. Computergrafiken werden durch Pixel bzw. Bildpunkte auf einem Anzeigemonitor dargestellt. Da die Anzeige jedoch eine begrenzte Anzahl von Pixeln aufweist, kann häufig ein Aliasing bzw. Treppeneffekt auftreten. Treppeneffekte aufgrund der Notwendigkeit zur Darstellung analoger Daten in einem digitalen Format führen zu einem angezeigten Bild mit unscharfen Kanten bzw. Rändern bzw. Treppchen an den Rändern.
  • Die Anwendung von Techniken zur Reduzierung des Treppeneffekts wird häufig als Antialiasing bezeichnet. Eine Technik für, die für das Full-Scene-Antialiasing eingesetzt wird, ist als Supersampling bekannt. Supersampling ist ein Ansatz, bei dem die ursprüngliche Grafikszene mit einer hohen Auflösung gerendert und in der Folge auf die ursprüngliche Anzeigeauflösung heruntergefiltert wird. Somit verschiebt das Supersampling effektiv den Treppeneffekt auf eine höhere räumliche Frequenz.
  • Beim Einsatz der Supersampling-Technik durch ein Computersystem treten jedoch Nachteile in Bezug auf die Performance bzw. die Leistung auf. Das Problem beim Supersampling ist es, dass es eine zusätzliche Verarbeitung und Speicherplatz sowie Bandbreite erfordert, um ein Bild mit der höheren Auflösung zu rendern und um es später herunterzufiltern. Zum Beispiel erfordert das zweifache (2×) Supersampling in eine X- und Y-Richtung der Anzeige den vierfache (4×) Speicherplatz und die vierfache Bandbreite. Benötigt wird somit eine effiziente Anwendung von Supersampling, ohne dass zusätzlicher Speicherbedarf und zusätzliche Bandbreite erforderlich sind.
  • Ein Artikel mit dem Titel "An Advanced Graphics Chip with bump-mapped Phong shading" von T. Ikedo et al. (IEEE Comput. Soc., 23. Juni 1997, Seiten 156 bis 165, XP010232314, ISBN 0-8186-7825-9) beschreibt neue Hardware-Technologien, bei denen Phong-, Bump-, Reflexions- und Refraktions-Mapping-Prozessoren in Verbindung mit einem Texturabbildungsprozessor alle in einem einzigen LSI-Chip (LSI als englische Abkürzung von Large Scale Integration) eingebettet sind. Diese Arten von Chips sind als anwendungsspezifische integrierte Schaltungen (ASICs) bekannt und werden allgemein unabhängig implementiert unter Verwendung einer MIMD-Architektur (MIMD als englische Abkürzung von Multiple Instruction, Multiple Data), um die Performance bzw. Leistung zu erhalten, während gleichzeitig die verschiedenen Funktionen verarbeitet werden, welche die verschiedenen unabhängigen Prozessoren ausführen können.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen sind gemäß der vorliegenden Erfindung eine Zentraleinheit (CPU), ein Computersystem und ein Verfahren zum Supersampling eines Bilds gemäß den anhängigen gegenständlichen Ansprüchen 1, 5 und 6.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird anhand der nachstehenden genauen Beschreibung sowie der beigefügten Zeichnungen verschiedener Ausführungsbeispiele der vorliegenden Erfindung besser verständlich. Die Zeichnungen sind jedoch nicht so auszulegen, dass sie die Erfindung mit den besonderen Ausführungsbeispielen verknüpfen, vielmehr dienen sie ausschließlich den Zwecken der Erläuterung und der Vermittlung des Verständnisses. Es zeigen:
  • 1 ein Blockdiagramm eines Ausführungsbeispiels eines Computersystems;
  • 2 ein Blockdiagramm eines Ausführungsbeispiels eines Prozessors;
  • 3 ein Blockdiagramm eines Grafik-Caches; und
  • 4 ein Flussdiagramm eines Ausführungsbeispiels der während dem Supersampling fließenden Daten.
  • GENAUE BESCHREIBUNG
  • Beschrieben werden ein Verfahren und eine Vorrichtung für die effiziente Implementierung von Supersampling. In der folgenden genauen Beschreibung der vorliegenden Erfindung sind zahlreiche besondere Einzelheiten ausgeführt, um ein umfassendes Verständnis der vorliegenden Erfindung zu vermitteln. Für den Fachmann auf dem Gebiet ist es jedoch ersichtlich, dass die vorliegende Erfindung auch ohne diese besonderen Einzelheiten ausgeführt werden kann. In anderen Fällen sind allgemein bekannte Strukturen und Vorrichtungen in Blockdiagrammform und nicht im Detail dargestellt, um die vorliegende Erfindung nicht unnötig zu verschleiern.
  • Verweise in der Beschreibung auf "ein Ausführungsbeispiel" bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die beschrieben werden in Verbindung mit den Ausführungsbeispielen, in mindestens einem Ausführungsbeispiel der vorliegenden Erfindung enthalten ist. Das Vorkommen der Phrase "in einem Ausführungsbeispiel" an verschiedenen Stellen in der Beschreibung bezieht sich nicht unbedingt in allen Fällen auf das gleiche Ausführungsbeispiel.
  • Die Abbildung aus 1 zeigt ein Blockdiagramm eines Computersystems 100. Das Computersystem 100 weist eine Zentraleinheit (Prozessor) 105 auf, die mit einem Prozessorbus 110 gekoppelt ist. In einem Beispiel handelt es sich bei dem Prozessor 105 um einen Prozessor der Pentium® Familie, zu der die Prozessoren der Pentium® II Familie und mobile Pentium® und Pentium® II Prozessoren zählen, die von der Intel Corporation, Santa Clara, Kalifornien, USA, erhältlich sind. Alternativ können auch andere Prozessoren eingesetzt werden.
  • Der Chipsatz 120 ist ebenfalls mit dem Prozessorbus 110 gekoppelt. Der Chipsatz 120 kann eine Speichersteuereinheit zur Steuerung eines Hauptspeichers 113 aufweisen. Ferner kann der Chipsatz 120 auch eine Schnittstelle gemäß Accelerated Graphics Port (AGP) Specification Revision 2.0 aufweisen, entwickelt von der Intel Corporation, Santa Clara, Kalifornien, USA. Der Chipsatz 120 ist mit einer Videovorrichtung 125 gekoppelt und behandelt Videodatenanforderungen für einen Zugriff auf den Hauptspeicher 113.
  • Der Hauptspeicher 113 ist über den Chipsatz 120 mit dem Prozessorbus 110 gekoppelt. Der Hauptspeicher 113 speichert Befehlsfolgen, die durch den Prozessor 105 ausgeführt werden. In einem Ausführungsbeispiel weist der Hauptspeicher 113 ein dynamisches Direktzugriffsspeichersystem (DRAM) auf; wobei der Hauptspeicher 113 auch andere Konfigurationen aufweisen kann. Die durch den Prozessor 104 ausgeführten Befehlsfolgen können aus dem Hauptspeicher 113 oder jeder anderen Speichervorrichtung abgerufen werden. Weitere Vorrichtungen können ebenfalls mit dem Prozessorbus 110 gekoppelt werden, wie etwa mehrere Prozessoren und/oder mehrere Hauptspeichervorrichtungen. Das Computersystem 100 wird in Bezug auf einen einzelnen Prozessor beschrieben; wobei jedoch auch mehrere Prozessoren mit dem Prozessorbus 110 gekoppelt werden können. Die Videovorrichtung 125 ist ebenfalls mit dem Chipsatz 120 gekoppelt. In einem Ausführungsbeispiel weist die Videovorrichtung einen Videomonitor auf, wie etwa eine Kathodenstrahlröhrenanzeige (CRT) oder eine Flüssigkristallanzeige (LCD) sowie die erforderliche unterstützende Schaltkreisanordnung.
  • Der Prozessorbus 110 ist über den Chipsatz 120 mit dem Systembus 130 gekoppelt. In einem Ausführungsbeispiel handelt es sich bei dem Systembus 130 um einen PCI (Peripheral Component Interconnect) Bus gemäß dem Standard Specification Revision 2.1, entwickelt von der Intel Corporation, Santa Clara, Kalifornien, USA; wobei aber auch andere Busstandards eingesetzt werden können. Mehrere Vorrichtungen, wie etwa eine Audiovorrichtung 127, können mit dem Systembus 130 gekoppelt werden.
  • Die Busbrücke 140 koppelt den Systembus 130 mit dem sekundären Bus 150. In einem Beispiel handelt es sich bei dem sekundären Bus 150 um einen ISA-Bus (Industry Standard Architecture Bus), Specification Revision 1.0, entwickelt von International Business Machines, Armonk, New York, USA. Es können aber auch andere Busstandards eingesetzt werden, wie zum Beispiel ein EISA-Bus (Extended Industry Standard Architecture Bus), Specification Revision 3.12, entwickelt von Compaq Computer, et al. Mehrere Vorrichtungen, wie etwa ein Festplattenlaufwerk 153 und ein Disk-Laufwerk 154, können mit dem sekundären Bus 150 gekoppelt werden. Andere Vorrichtungen, wie etwa Cursor-Steuervorrichtungen (in der Abbildung aus 1 nicht abgebildet) können ebenfalls mit dem sekundären Bus 150 gekoppelt werden.
  • Die Abbildung aus 2 zeigt ein Blockdiagramm eines Ausführungsbeispiels des Prozessors 105. Der Prozessor 105 weist einen CPU-Kern 210, einen CPU-Cache 220, einen Grafikkern 230, einen Grafik-Cache 240 und eine Busschnittstelle 250 auf. Der CPU-Kern 210 führt nicht grafikbezogene Befehle aus, die an dem Computersystem 100 empfangen werden. Der CPU-Cache 220 ist mit dem CPU-Kern 210 gekoppelt. Gemäß einem Ausführungsbeispiel handelt es sich bei dem CPU-Cache 220 um einen Hochgeschwindigkeits-Speichermechanismus zum Speichern von Daten und Befehlsfolgen, die durch den CPU-Kern 210 ausgeführt werden.
  • Die Busschnittstelle 250 ist mit dem CPU-Cache 220 gekoppelt. Die Busschnittstelle 250 verbindet den CPU-Cache 220 und den Grafik-Cache 240 mit dem Prozessorbus 110, so dass Daten zu und von dem Prozessor 105 verteilt werden können.
  • Der Grafikkern 230 weist einen Grafikbeschleuniger auf, der speziell für die Berechnung grafischer Transformationen gestaltet ist. Der Grafikkern 230 ermöglicht es dem CPU-Kern 210 effizient nicht grafikbezogene Befehle auszuführen, während der Grafik-Kern 230 Grafikberechnungen bearbeitet. Gemäß einem Ausführungsbeispiel arbeitet der Grafikkern gemäß einer Kachel-basierten Rendering-Architektur. Das Rendering ist die Aktion der Berechnung unterschiedlicher Farb- und Positionsinformationen auf Pixelbasis. Im Ergebnis kann ein Betrachter Tiefe auf einem 2D-Monitor der Videovorrichtung 125 wahrnehmen.
  • Das Rendering füllt die Punkte auf der Oberfläche eines Objekts, die vorher nur als eine Reihe von Eckpunkten gespeichert worden sind. Auf diese Weise wird ein Flächenobjekt, das für einen 3D-Effekt schattiert ist, auf dem Bildschirm gezeichnet bzw. gezogen. Zum Rendern eines Objekts ist es erforderlich, Farb- und Positionsinformationen zu bestimmen. Um dies auf effiziente Weise zu realisieren, sind die Eckpunkte des Objekts in Dreiecke segmentiert, und diese Dreiecke (Gruppe von drei Eckpunkten) werden danach nacheinander an dem Grafikkern 230 verarbeitet.
  • Beim Kachel-basierten Rendering konstruiert der Grafikkern 230 Polygone in einer bestimmten Grafikszene (oder einem Bild) in einem Dreieck in der Dreiecksmethode, bis die Szene fertig gestellt ist. Vor dem Rendering einer Szene teilt der Grafikkern 230 eine Szene jedoch in eine Reihe von Dreiecken auf. In der Folge werden die Dreiecke sortiert (oder in Gruppen zusammengefasst) in Kacheln, indem das Begrenzungskästchen jedes Dreiecks geprüft wird. Das Sortieren in Kacheln bestimmt, in welcher bzw. welchen Kachel(n) sich ein Dreieck befindet. Gemäß einem Ausführungsbeispiel weist der Grafik-Cache 240 einen Puffer für jede Kachel in einer Szene auf. Die Puffer weisen Zeiger auf bestimmte Dreiecke auf, die in den Puffern enthalten sind. Nachdem jedes Dreieck zusammengefasst worden ist, wird jede Kachel der Szene nacheinander gerendert.
  • Der Grafik-Cache 240 ist mit dem Grafikkern 230 und der Busschnittstelle 250 gekoppelt. Gemäß einem Ausführungsbeispiel handelt es sich bei dem Grafik-Cache 240 um einen Unified Grafik-Cache, der eine Kachelgröße von 128×64 Pixeln bearbeiten kann, wobei jedes Pixel 32-Bit Farb- und Tiefenwerte aufweist. In einem anderen Ausführungsbeispiel speichert der Grafik-Cache 240 Texturdaten zusätzlich zu Farb- und Tiefendaten. In einem weiteren Ausführungsbeispiel handelt es sich bei dem Grafik-Cache 240 um einen statischen Direktzugriffsspeicher mit 64 Kilobyte für die Behandlung einer Kachelgröße von 128×64. Der Durchschnittsfachmann auf dem Gebiet erkennt jedoch, dass auch andere Größen und Arten von Speichervorrichtungen eingesetzt werden können, um den Grafik-Cache 240 zu implementieren.
  • Die Abbildung aus 3 zeigt ein Blockdiagramm eines Ausführungsbeispiels des Grafik-Caches 240. Der Grafik-Cache 240 weist einen Grafik-Textur-Cache 320 und einen Grafik-Farb/Z-Kachelpuffer 340 auf. Der Grafik-Textur-Cache 320 speichert Texturdaten, die für eine Texturabbildung eines Objekts verwendet werden. Die Texturabbildung umfasst das Codieren einer Textur mit dreidimensionalen Eigenschaften (z.B. wie transparent und reflektierend das Objekt ist), zusätzlich zu den zweidimensionalen Eigenschaften, wie etwa der Farbe und der Helligkeit. Nachdem eine Textur definiert worden ist, kann sie um ein dreidimensionales Objekt gewickelt werden.
  • Der Grafik-Farb/Z-Kachelpuffer 340 speichert Farb- und Tiefendaten für Pixel in jeder Kachel einer oder mehrer Grafikszenen. Die Kachelgröße kann auf der Basis der Farb- und Tiefenformate und der Größe des Grafik-Farb/Z-Kachelpuffers 340 bestimmt werden. Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist der Grafik-Farb/Z-Kachelpuffer 340 somit groß genug, um intermediäre Farb- und Tiefendatenzugriffe für alle Dreiecke zu erfüllen, die in einer bestimmten Kachel liegen. Gemäß einem weiteren Ausführungsbeispiel werden die Farb- und Tiefendaten in den Speicher 113 geschrieben, nachdem das Rendering des letzten Dreiecks in einer Kachel abgeschlossen worden ist.
  • Gemäß einem Ausführungsbeispiel ermöglicht es der Einsatz des Grafik-Cache 240, dass der Grafikkern 230 effizient das Supersampling implementiert, indem die Anforderungen für zusätzlichen Speicherbedarf und zusätzliche Bandbreite eliminiert werden. Die Abbildung aus 4 zeigt ein Flussdiagramm eines Ausführungsbeispiels des Datenflusses während dem Supersampling durch den Grafikkern 230. Zu Veranschaulichungszwecken wird ein Wert von k = 4 angenommen durch das zweifache (2×) Supersampling in die X- und Y-Richtungen. Ferner wird von einer Kachelgröße von 128×64 ausgegangen, und die Polygone werden in eine virtuelle Kachelgröße von 64×32 zusammengefasst. Der Durchschnittsfachmann auf dem Gebiet erkennt jedoch, dass der Prozess auch unter Verwendung anderer Werte von k und anderer Kachelgrößen implementiert werden kann.
  • In Bezug auf die Abbildung aus 4 werden Polygone für eine Kachel an dem Grafikkern 230 von dem Speicher 113 über den AGP-Port in dem Chipsatz 120 in dem Verfahrensblock 410 empfangen. In dem Verfahrensblock 420 werden die Polygone an dem Grafikkern 230 verstärkt. Da in dem vorliegenden Beispiel k = 4 gilt, werden die Polygone um ein Vierfaches (4×) der ursprünglichen Größe verstärkt. Die Verstärkung wird erreicht unter Verwendung einer durch den Grafikkern 230 unterstützten Viewport-Transformation bzw. Darstellungsfeld-Transformation. Bei der Viewport-Transformation werden Wortkoordinaten auf Anzeigeschirmkoordinaten durch den Grafikkern 230 abgebildet. In der Folge beschleunigt der Grafikkern 230 die Transformation. Durch Anwenden der Viewport-Transformation können die Abmessungen des Viewport manipuliert werden, um es zu bewirken, dass das letztendliche Bild für das Rendering in Kacheln vergrößert wird.
  • In dem Verfahrensblock 420 werden die vergrößerten Polygone angeordnet bzw. eingerichtet. Gemäß einem Ausführungsbeispiel verwendet die Einrichtungsstufe Eingabedaten, die jedem Eckpunkt zugeordnet sind und berechnet verschiedene Parameter, die für die Abtastumwandlung erforderlich sind. Gemäß einem weiteren Ausführungsbeispiel werden ferner Gradienten berechnet, die zum Interpolieren der verschiedenen Eckpunktattribute an dem Polygon erforderlich sind.
  • In dem Verfahrensblock 440 werden Texturdaten für die Polygon-Rasterisierung und Texturierung an dem Grafikkern 230 ausgeführt. Während der Rasterisierung werden Pixel in den Polygonen verarbeitet. Ferner wird auf die Pixel Textur angewandt, wenn die Texturierung freigegeben ist. In dem Verfahrensblock 450 wird das Rendering der Kachel abgeschlossen. Nach dem Abschluss des Rendering des letzten Dreiecks in der Kachel weist der Grafik-Farb/Z-Kachelpuffer 340 das vollständige Bild der Kachel in der 4×-Ursprungsgröße auf. In dem Verfahrensblock 460 wird ein Stretch Bit Aligned Block Transfer (BLT) ausgeführt. Ein BLT ist ein Prozess, in dem Pixel oder andere Daten von einem Speicherplatz an einen anderen kopiert werden. Der Stretch-BLT wird ausgeführt, um das Bild von der physikalischen Kachelgröße auf die virtuelle Kachelgröße abwärts abgetastet.
  • Der Stretch-BLT wird erreicht, indem ein Rechteck (bestehend aus zwei Polygonen) in der Größe, die der physikalischen Kachelgröße entspricht, gerendert. Das Bild nach Supersampling in der physikalischen Kachel (d.h. in dem Grafik-Farb/Z-Kachelpuffer 340) gilt als die Quelle des Stretch-BLT, während das Ziel in dem Speicher 113 zugeordnet wird. Gemäß einem Ausführungsbeispiel behandelt der Grafikkern 230 die Quelle des Stretch-BLT als eine Texturabbildung für das Ziel des Zielrechtecks. Im Ergebnis wird der Grafik-Textur-Cache 320 ungestört erhalten, um eine gute Nutzung der Texturdaten über die Kacheln aufrecht zu erhalten.
  • In dem Verfahrensblock 470 wird bestimmt, ob weitere Kacheln in dem Grafik-Farb/Z-Kachelpuffer 340 gerendert werden müssen. Wenn bestimmt wird, dass weitere Kacheln gerendert werden müssen, kehrt die Steuerung zurück zu dem Verfahrensblock 410, in dem Polygone für eine weitere Kachel an dem Grafikkern 230 von dem Grafik-Farb/Z-Kachelpuffer 340 empfangen werden. Gemäß einem Ausführungsbeispiel weist der Grafikkern 230 eine Pipeline-Engine auf. Im Ergebnis kann das Rendering der nächsten Kachel an dem Grafikkern 230 beginnen, während der Stretch-BLT der vorherigen Kachel ausgeführt wird.
  • Wie dies vorstehend im Text beschrieben worden ist, ermöglicht es der Einsatz eines Unified Grafik-Caches für das Kachel-basierte Rendering die Erzeugung effizient einem Supersampling unterzogener Bilder, ohne die Anforderungen für den externen Speicherbedarf und die Bandbreite zu erhöhen.
  • Für gewöhnlich muss eine Grafik-Engine, die ein Rendering einsetzt, das nicht auf Kacheln basiert, für gewöhnlich zuerst ein ganzes einem Supersampling unterzogenes Bild an einen Speicherplatz rendern, der die k-fache Größe der ursprünglichen Anzeigeauflösung aufweist, bevor ein Downsampling erfolgen kann. Dieser Speicher ist für gewöhnlich zu groß, um auf dem gleichen Halbleiterbaustein wie die Grafik-Engine implementiert zu werden. Somit sind eine Erhöhung des Speicherbedarfs und der Bandbreite in dem Hauptspeicher erforderlich.
  • Wie dies vorstehend im Text beschrieben worden ist, sorgt der Unified Grafik-Cache für eine temporäre Speicherung für das einem Supersampling unterzogene Bild, das später heruntergefiltert wird (z.B. durch Stretch-BLT). Im Ergebnis muss nur das letztendliche Bild der ursprünglichen Größe herausgeschrieben und in dem Hauptspeicher, wie etwa dem Speicher 113, gespeichert werden. Somit wurde eine effiziente Implementierung des Supersampling beschrieben, ohne dass zusätzlicher Speicherbedarf und zusätzliche Bandbreite erforderlich sind.

Claims (10)

  1. Zentraleinheit (CPU) (105), die folgendes umfasst: einen CPU-Kern (210), der so angeordnet ist, dass er nicht-grafische Befehle ausführt; einen Grafikkern (230), der so angeordnet ist, dass er grafische Transformationen durch Supersampling-Techniken berechnet; und einen Grafik-Cache (240), der mit dem Grafikkern (230) und dem CPU-Kern gekoppelt ist, wobei der Grafik-Cache so angeordnet ist, dass er Texturdaten, Farbdaten und Tiefendaten speichert.
  2. CPU (105) nach Anspruch 1, wobei der Grafik-Cache (240) folgendes umfasst: einen Textur-Cache (320) zum Speichern von Textur-Daten; und eine Farb- und Tiefepuffer (340) zum Speichern der Farbdaten und der Tiefendaten.
  3. CPU (105) nach Anspruch 1, wobei diese ferner folgendes umfasst: eine Busschnittstelle (250), die mit dem CPU-Cache (20) und dem Grafik-Cache (240) gekoppelt ist; und wobei der Grafikkern (230) ein Rendering gemäß einer Kachel-basierten Rendering-Architektur ausführt.
  4. CPU (105) nach Anspruch 1, wobei diese ferner folgendes umfasst: einen CPU-Cache (220), der mit dem CPU-Kern (210) gekoppelt ist.
  5. Computersystem (100) mit einer CPU gemäß einem der vorstehenden Ansprüche.
  6. Verfahren zum Supersampling eines Bilds, wobei das Verfahren folgendes umfasst: das Empfangen von Polygonen einer ersten Kachel des Bilds an einem Grafikkern (230); und das Supersampling der Polygone an dem Grafikkern (230); das Rendering der Polygone der ersten Kachel in einen Grafik-Cache (240), wobei der Grafik-Cache (240) Texturdaten, Farbdaten und Tiefendaten des Bilds speichert.
  7. Verfahren nach Anspruch 6, wobei dieses ferner die Ausführung einer Blockübertragung mit ausgerichtetem Stretch an dem Grafikkern (230) nach dem Rendering der Polygone umfasst.
  8. Verfahren nach Anspruch 6, wobei die Polygone mit einem Faktor von Zwei skaliert werden.
  9. Computerprogramm, das eine Computerprogramm-Codeeinrichtung umfasst, die in der Lage ist, alle Schritte der Ansprüche 6 bis 8 ausführen, wenn sie auf einem Computer ausgeführt wird.
  10. Computerlesbares Medium nach Anspruch 9, auf dem ein Computerprogramm gespeichert ist.
DE60126967T 2000-09-28 2001-09-26 Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung Expired - Lifetime DE60126967T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US675096 2000-09-28
US09/675,096 US6885378B1 (en) 2000-09-28 2000-09-28 Method and apparatus for the implementation of full-scene anti-aliasing supersampling
PCT/US2001/030360 WO2002027661A2 (en) 2000-09-28 2001-09-26 Method and apparatus for the anti-aliasing supersampling

Publications (2)

Publication Number Publication Date
DE60126967D1 DE60126967D1 (de) 2007-04-12
DE60126967T2 true DE60126967T2 (de) 2007-10-31

Family

ID=24709035

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60126967T Expired - Lifetime DE60126967T2 (de) 2000-09-28 2001-09-26 Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung

Country Status (12)

Country Link
US (1) US6885378B1 (de)
EP (1) EP1323131B1 (de)
JP (1) JP2004510270A (de)
KR (1) KR100547258B1 (de)
CN (1) CN1251155C (de)
AT (1) ATE355569T1 (de)
AU (1) AU2001293158A1 (de)
CA (1) CA2423497C (de)
DE (1) DE60126967T2 (de)
HK (1) HK1054110B (de)
TW (1) TW591547B (de)
WO (1) WO2002027661A2 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3543942B2 (ja) * 2000-03-02 2004-07-21 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
US20030210267A1 (en) * 2002-05-13 2003-11-13 Kylberg Robert Lee Systems and methods for providing asynchronous client rendering in a graphical user interface (GUI) environment
TW569097B (en) * 2002-09-11 2004-01-01 Via Tech Inc Personal computer system and core logic chip applied to same
JP2004164618A (ja) * 2002-10-14 2004-06-10 Oce Technol Bv 携帯端末における選択メカニズム
US7307667B1 (en) * 2003-06-27 2007-12-11 Zoran Corporation Method and apparatus for an integrated high definition television controller
US7812844B2 (en) * 2004-01-28 2010-10-12 Lucid Information Technology, Ltd. PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application
US9098943B1 (en) * 2003-12-31 2015-08-04 Ziilabs Inc., Ltd. Multiple simultaneous bin sizes
US7460175B2 (en) * 2004-04-02 2008-12-02 Nvidia Corporation Supersampling of digital video output for multiple analog display formats
JP4656862B2 (ja) * 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 半導体装置
US8089486B2 (en) 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
US7348988B2 (en) * 2005-05-06 2008-03-25 Via Technologies, Inc. Texture cache control using an adaptive missing data table in a multiple cache computer graphics environment
KR101177125B1 (ko) * 2005-06-11 2012-08-24 엘지전자 주식회사 멀티-코어 프로세서의 합성모드 구현 방법 및 장치
US7737988B1 (en) * 2005-11-14 2010-06-15 Nvidia Corporation Using font filtering engines for texture blitting
KR100762811B1 (ko) * 2006-07-20 2007-10-02 삼성전자주식회사 하프 플레인 에지 함수를 이용한 타일 비닝 방법 및 시스템
US8009172B2 (en) * 2006-08-03 2011-08-30 Qualcomm Incorporated Graphics processing unit with shared arithmetic logic unit
JP2008090673A (ja) * 2006-10-03 2008-04-17 Mitsubishi Electric Corp キャッシュメモリ制御装置
CN101252687B (zh) * 2008-03-20 2010-06-02 上海交通大学 实现多通道联合的感兴趣区域视频编码及传输的方法
EP2422316B1 (de) 2009-04-20 2018-07-04 Barco, Inc. Verwendung einer gpu zur netzwerkpaketerstellung
US8988443B2 (en) 2009-09-25 2015-03-24 Arm Limited Methods of and apparatus for controlling the reading of arrays of data from memory
GB2474114B (en) * 2009-09-25 2012-02-15 Advanced Risc Mach Ltd Graphics processing systems
US9406155B2 (en) 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
US9349156B2 (en) 2009-09-25 2016-05-24 Arm Limited Adaptive frame buffer compression
GB0916924D0 (en) 2009-09-25 2009-11-11 Advanced Risc Mach Ltd Graphics processing systems
KR101609266B1 (ko) * 2009-10-20 2016-04-21 삼성전자주식회사 타일 기반의 랜더링 장치 및 방법
KR101683556B1 (ko) * 2010-01-06 2016-12-08 삼성전자주식회사 타일 기반의 렌더링 장치 및 렌더링 방법
GB201105716D0 (en) 2011-04-04 2011-05-18 Advanced Risc Mach Ltd Method of and apparatus for displaying windows on a display
US8884963B2 (en) * 2011-05-04 2014-11-11 Qualcomm Incorporated Low resolution buffer based pixel culling
CN102208112B (zh) * 2011-05-25 2015-08-05 威盛电子股份有限公司 景深消隐方法、三维图形处理方法及其装置
US9098938B2 (en) * 2011-11-10 2015-08-04 The Directv Group, Inc. System and method for drawing anti-aliased lines in any direction
CN103164838B (zh) * 2011-12-12 2015-11-04 扬智科技股份有限公司 图形数据处理方法
US9734548B2 (en) * 2012-10-26 2017-08-15 Nvidia Corporation Caching of adaptively sized cache tiles in a unified L2 cache with surface compression
US9720858B2 (en) 2012-12-19 2017-08-01 Nvidia Corporation Technique for performing memory access operations via texture hardware
US9697006B2 (en) 2012-12-19 2017-07-04 Nvidia Corporation Technique for performing memory access operations via texture hardware
US9195426B2 (en) 2013-09-20 2015-11-24 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
US9595075B2 (en) * 2013-09-26 2017-03-14 Nvidia Corporation Load/store operations in texture hardware
GB2524467B (en) 2014-02-07 2020-05-27 Advanced Risc Mach Ltd Method of and apparatus for generating an overdrive frame for a display
GB2528265B (en) 2014-07-15 2021-03-10 Advanced Risc Mach Ltd Method of and apparatus for generating an output frame
US10163180B2 (en) * 2015-04-29 2018-12-25 Qualcomm Incorporated Adaptive memory address scanning based on surface format for graphics processing
GB2540562B (en) 2015-07-21 2019-09-04 Advanced Risc Mach Ltd Method of and apparatus for generating a signature representative of the content of an array of data
US10262456B2 (en) * 2015-12-19 2019-04-16 Intel Corporation Method and apparatus for extracting and using path shading coherence in a ray tracing architecture
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10262393B2 (en) * 2016-12-29 2019-04-16 Intel Corporation Multi-sample anti-aliasing (MSAA) memory bandwidth reduction for sparse sample per pixel utilization
US10510133B2 (en) * 2017-06-20 2019-12-17 Think Silicon Sa Asymmetric multi-core heterogeneous parallel processing system
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication
US10902265B2 (en) * 2019-03-27 2021-01-26 Lenovo (Singapore) Pte. Ltd. Imaging effect based on object depth information

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2030022A1 (en) * 1989-11-17 1991-05-18 Brian M. Kelleher System and method for drawing antialiased polygons
US5307451A (en) 1992-05-12 1994-04-26 Apple Computer, Inc. Method and apparatus for generating and manipulating graphical data for display on a computer output device
US5388206A (en) * 1992-11-13 1995-02-07 The University Of North Carolina Architecture and apparatus for image generation
KR100277803B1 (ko) * 1995-03-10 2001-01-15 가나이 쓰도무 3차원 그래픽 표시장치
US5651104A (en) * 1995-04-25 1997-07-22 Evans & Sutherland Computer Corporation Computer graphics system and process for adaptive supersampling
US5682522A (en) * 1995-07-18 1997-10-28 Silicon Integrated Systems Corp. Shared memory architecture of graphics frame buffer and hard disk cache
US5977977A (en) 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US5960213A (en) 1995-12-18 1999-09-28 3D Labs Inc. Ltd Dynamically reconfigurable multi-function PCI adapter device
US6111584A (en) 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
JPH09245179A (ja) * 1996-03-08 1997-09-19 Mitsubishi Electric Corp コンピュータグラフィックス装置
EP0821324A3 (de) 1996-07-26 1999-05-06 International Business Machines Corporation Cachespeicher für Z-Puffer
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
US6104417A (en) * 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
US5860060A (en) * 1997-05-02 1999-01-12 Texas Instruments Incorporated Method for left/right channel self-alignment
US6094203A (en) * 1997-09-17 2000-07-25 Hewlett-Packard Company Architecture for a graphics processing unit using main memory
US5986677A (en) * 1997-09-30 1999-11-16 Compaq Computer Corporation Accelerated graphics port read transaction merging
US6496187B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
JP3497988B2 (ja) * 1998-04-15 2004-02-16 株式会社ルネサステクノロジ 図形処理装置及び図形処理方法
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
US6448968B1 (en) * 1999-01-29 2002-09-10 Mitsubishi Electric Research Laboratories, Inc. Method for rendering graphical objects represented as surface elements
GB9915012D0 (en) * 1999-06-29 1999-08-25 Koninkl Philips Electronics Nv Z-buffering graphics system

Also Published As

Publication number Publication date
CA2423497C (en) 2009-07-28
TW591547B (en) 2004-06-11
EP1323131A2 (de) 2003-07-02
CN1251155C (zh) 2006-04-12
HK1054110B (zh) 2007-08-31
JP2004510270A (ja) 2004-04-02
KR20030046474A (ko) 2003-06-12
AU2001293158A1 (en) 2002-04-08
WO2002027661A2 (en) 2002-04-04
DE60126967D1 (de) 2007-04-12
HK1054110A1 (en) 2003-11-14
CN1466738A (zh) 2004-01-07
EP1323131B1 (de) 2007-02-28
US6885378B1 (en) 2005-04-26
CA2423497A1 (en) 2002-04-04
WO2002027661A3 (en) 2002-06-13
KR100547258B1 (ko) 2006-01-26
ATE355569T1 (de) 2006-03-15

Similar Documents

Publication Publication Date Title
DE60126967T2 (de) Verfahren und Vorrichtung für Anti-Aliasing durch Überabtastung
DE69635403T2 (de) Grafikbibliothek auf geteilten Ebenen
DE69122557T2 (de) Bilderzeugung
DE102008026431B4 (de) Extrapolation von nicht residenten Mipmap-Daten unter Verwendung residenter Mipmap-Daten
EP1175663B1 (de) Verfahren zur rasterisierung eines graphikgrundelements
DE69333379T2 (de) Vorrichtung und Verfahren zur Verarbeitung von Videosignalen
DE60310720T2 (de) Verfahren und vorrichtung zur kodierung von texturinformation
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
US8044955B1 (en) Dynamic tessellation spreading for resolution-independent GPU anti-aliasing and rendering
DE102018113845A1 (de) Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE69917799T2 (de) Texturierungssysteme zur verwendung in drei-dimensionalen abbildungssystemen
DE102016109905A1 (de) Stückweise lineare unregelmäßige Rasterisierung
DE102013222685B4 (de) System, Verfahren und Computer-Programm-Produkt zum Abtasten einer hierarchischen Tiefe-Karte
DE102013114090A1 (de) Konservative Rasterung von Primitiven unter Benutzung eines Fehler-Terms
DE3851680T2 (de) Einrichtung zur Änderung der Bildelementdaten, die in einem Direktzugriffsspeicher gespeichert sind.
DE112018004343T5 (de) Mehrraum-rendering mit konfigurierbaren transformationsparametern
DE19709227B4 (de) Verfahren zum schnellen Herunterladen von Texturen auf eine Hardware für beschleunigte Graphiken und zur Beseitigung von zusätzlichen Softwarekopien von Texeln
DE102013020613A1 (de) Umgehung der Pixel-Schattierung für die grafische Bilderzeugung mit geringer Leistung
DE102013017639A1 (de) Zwischenspeicherung von adaptiv dimensionierten Cache-Kacheln in einem vereinheitlichen L2-Cache-Speicher mit Oberflächenkomprimierung
DE3619420A1 (de) Computer-displayeinrichtung
DE102019101871A1 (de) Verfahren und Vorrichtung zum Gewinnen von Abtastpositionen von Textuieroperationen
DE102020108526A1 (de) Adaptive pixelabtastreihenfolge für zeitlich dichtes rendern
DE102018125472A1 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben
DE60118222T2 (de) Skalieren von bildern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806