DE69625561T2 - Antialiasing für Silhouetteränder - Google Patents

Antialiasing für Silhouetteränder Download PDF

Info

Publication number
DE69625561T2
DE69625561T2 DE69625561T DE69625561T DE69625561T2 DE 69625561 T2 DE69625561 T2 DE 69625561T2 DE 69625561 T DE69625561 T DE 69625561T DE 69625561 T DE69625561 T DE 69625561T DE 69625561 T2 DE69625561 T2 DE 69625561T2
Authority
DE
Germany
Prior art keywords
value
color
polygon
foreground
pixel
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
DE69625561T
Other languages
English (en)
Other versions
DE69625561D1 (de
Inventor
Carroll Philip Mountain View Gossett
Timothy J. Atherton Van Hook
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.)
Nintendo Co Ltd
Graphics Properties Holdings Inc
Original Assignee
Nintendo Co Ltd
Silicon Graphics Inc
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 Nintendo Co Ltd, Silicon Graphics Inc filed Critical Nintendo Co Ltd
Publication of DE69625561D1 publication Critical patent/DE69625561D1/de
Application granted granted Critical
Publication of DE69625561T2 publication Critical patent/DE69625561T2/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
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/403Edge-driven scaling
    • 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
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Computergraphik und spezieller Antialiasing von Silhouetten- oder Umrissrändern.
  • Stand der Technik
  • In der Computergraphik werden Bilder durch selektives Kombinieren von Polygonen gebildet. Diese Polygone werden auf einem Pixelgitter einer Anzeigeeinheit dargestellt.
  • Zum Beispiel zeigt 1 ein Polygon 106, welches auf einem Pixelgitter 102 dargestellt ist, das eine Mehrzahl von Pixeln 104 umfasst. Jedes Pixel 104 enthält einen einzigen Abtastpunkt 103. Wenn ein Abtastpunkt 103 eines Pixels innerhalb des Polygons 106 enthalten ist, dann wird die Farbe des Pixels 104 der Farbe des Polygons 106 gleichgesetzt. Diese Pixel 104, die Abtastpunkte 103 aufweisen, welche sich innerhalb des Polygons 106 befinden, stellen gemeinsam ein aufbereitetes Polygon 107 dar (diese Pixel sind in 1 schraffiert). Das aufbereitete Polygon 107 ist eine Darstellung des Polygons 106 im Pixelgitter 102.
  • Das in 1 dargestellte Polygon 106 enthält drei Ränder, einschließlich eines augenblicklich betrachteten Polygonrandes 108. Das aufbereitete Polygon 107 enthält einen aufbereiteten Polygonrand 105, der den augenblicklich betrachteten Polygonrand 108 darstellt. Der aufbereitete Polygonrand 105 gibt den augenblicklich betrachteten Polygonrand 108 nicht genau wieder, da der aufbereitete Polygonrand 105 gezackt ist, während der augenblicklich betrachtete Polygonrand 108 geradlinig ist. Dementsprechend stellt der aufbereitete Polygonrand 105 keine genaue Wiedergabe des Polygons 106 dar.
  • Die Unterschiede zwischen dem Polygon 106 und dem aufbereiteten Polygon 107 sind die Folge einer nicht ausreichenden Pixelabtastung. Wie oben erläutert, wird jedes Pixel 104 an einem einzigen Abtastpunkt 103 abgetastet, um festzustellen, ob das Pixel innerhalb des Polygons 106 oder außerhalb des Polygons 106 liegt. Dieses Abtastverfahren führt zu Fehlern. Zum Beispiel wird als Ergebnis dieses Abtastverfahrens das Pixel 104A als vollständig außerhalb des Polygons 106 befindlich angesehen, obwohl ein Teil des Pixels 104A vom Polygon 106 überdeckt wird. Entsprechend wird das Pixel 104B als vollständig innerhalb des Polygons 106 befindlich angesehen, obwohl sich ein Teil des Pixels 104B außerhalb des Polygons 106 befindet. Dieser Effekt wird Aliasing genannt, vergleiche z. B. Foley, van Dam et al.: ”Computergraphics, Principles and Practice”. Addison-Wesley, 1990, Kapitel 3.17.
  • Ein derartiges Aliasing wird üblicherweise durch Überabtastung gemildert. Dieser Antialiasing-Ansatz ist in 2 dargestellt, die das Polygon 106 und das Pixelgitter 102 zeigt. Ein zweites Polygon 202 ist ebenfalls dargestellt. Dieses zweite Polygon 202 befindet sich unterhalb des ersten Polygons 106 (mit anderen Worten befindet sich das erste Polygon 106 in einer ersten Oberfläche, und das zweite Polygon 202 befindet sich in einer zweiten Oberfläche). Dementsprechend stellt das erste Polygon 106 den Vordergrund (d. h. diejenige Oberfläche, die einem Betrachter am Nächsten liegt) dar, und das zweite Polygon 202 stellt den Hintergrund dar.
  • In dem Beispiel aus 2 enthält jedes Pixel 104 des Pixelgitters 102 eine Mehrzahl von Überabtastpunkten 130 (speziell enthält jedes Pixel 104 vier Überabtastpunkte 130). Der Beitrag, den das erste Polygon 106 zur Farbe jedes Pixels 104 leistet, ist proportional zur Anzahl von Überabtastpunkten 130 des Pixels 104, die im ersten Polygon 106 enthalten sind. Zum Beispiel ist beim Pixel 104A einer von vier Abtastpunkten im ersten Polygon 106 enthalten. Dementsprechend leistet das erste Polygon 106 einen 25%-igen Beitrag zur Farbe des Pixels 104A.
  • Bei dem Pixel 104A sind die restlichen drei Abtastpunkte im zweiten Polygon 202 enthalten. Dementsprechend leistet das zweite Polygon 202 einen 75%-igen Beitrag zur Farbe des Pixels 104A.
  • Dementsprechend kann die Farbe des Pixels 104A wie folgt dargestellt werden: Farbe Pixel 104A = 0,25·Farbe des ersten Polygons 106 + 0,75·Farbe des zweiten Polygons 202 Gleichung 1
  • Allgemeiner kann die Farbe jedes Pixels 104 wie folgt dargestellt werden: Pixelfarbe = (Prozentanteil des Pixels im Vordergrund)· (Vordergrundfarbe) + (Prozentanteil des Pixels im Hintergrund)·(Hintergrundfarbe) Gleichung 2
  • Diese Beziehung in Gleichung 2 kann leicht auf Fälle erweitert werden, wo ein Pixel von mehr als zwei Polygonen überdeckt wird.
  • Ein Beispiel für Überabtastung oder Teilpixelabtastung wird in der US-5,123,085 gegeben.
  • Um eine Überabtastung zu erzielen, wie oben beschrieben, ist es notwendig, für jeden Überabtastpunkt einen Farbwert zu speichern. Mit anderen Worten ist es notwendig, für jedes Pixel 104 mehrere Farbwerte zu speichern (dies steht im Gegensatz zu dem Ansatz aus 1, wo für jedes Pixel 104 nur ein einziger Farbwert gespeichert werden braucht). Man nehme zum Beispiel an, dass die Farbe des ersten Polygons 106 rot ist, und die Farbe des zweiten Polygons 202 grün ist. Bei diesem Beispiel würden die Überabtastpunkte 204, 206 und 208 im Pixel 104A jeweils einen Farbwert aufweisen, der gleich grün ist. Der Überabtastpunkt 210 würde einen Farbwert aufweisen, der gleich rot ist. Wenn diese Farbwerte der Überabtastpunkte nicht gespeichert werden, dann kann Gleichung 2 nicht gelöst werden.
  • Teuere Computergraphiksysteme der oberen Preisklasse haben das Speichervermögen, um für jeden Überabtastpunkt einen Farbwert zu speichern, d. h. für jedes Pixel mehrere Farbwerte zu speichern. Preiswertere Computergraphiksysteme der unteren Preisklasse haben hingegen nicht das Speichervermögen, um für jedes Pixel mehrere Farbwerte zu speichern. Bei diesen preiswerteren Computergraphiksystemen ist das Speichervermögen typischerweise ausreichend, um nur einen einzigen Farbwert pro Pixel zu speichern.
  • Somit können preiswertere Computergraphiksysteme keine Überabtasttechniken benutzen, um ein Aliasing zu mildern. Statt dessen benutzen derartige preiswertere Computergraphiksysteme typischerweise Techniken ohne eine Überabtastung, wie zum Beispiel in 1 dargestellt. Dementsprechend ist die Bildqualität von preiswerteren Computergraphiksystemen der unteren Preisklasse verhältnismäßig gering.
  • Zusammenfassung der Erfindung
  • Kurz gesagt, ist die vorliegende Erfindung in einem ersten Aspekt auf ein Computergraphiksystem gerichtet, das eine Mischeinheit, einen Bild- oder Graphikspeicher und eine Videoschnittstelle (sowie andere Komponenten) einschließt. Die Mischeinheit führt ein Innenrand-Antialiasing aus. Insbesondere stellt die Mischeinheit fest, ob sich ein neues Polygon, das gerade aufbereitet wird, und ein im Bildspeicher gespeichertes vorhandenes Polygon in derselben Oberfläche befinden. Wenn sich das neue Polygon und das vorhandene Polygon in derselben Oberfläche befinden, dann nimmt die Mischeinheit für jedes Randpixel des neuen Polygons, das auf einen Rand des neuen Polygons fällt, ein Antialiasing vor.
  • Ein solches Innenrand-Antialiasing wird wie folgt ausgeführt. Ein Überdeckungswert des Randpixels wird zu einem Überdeckungswert eines entsprechenden Pixels des vorhandenen Polygons, wie in einem Bildspeichereintrag des Bildspeichers gespeichert, addiert. Diese Summe stellt einen neuen Überdeckungswert dar. Der neue Überdeckungswert wird im Bildspeichereintrag gespeichert. Ein neuer Farbwert wird erzeugt, indem man einen Farbwert des Randpixels und einen Farbwert des entsprechenden Pixels proportional zu jeweiligen Überdeckungswerten des Randpixels und des entsprechenden Pixels mittelt. Der neue Farbwert wird ebenfalls im Bildspeichereintrag gespeichert.
  • In einem zweiten Aspekt ist die vorliegende Erfindung auf ein Graphiksystem gerichtet, das eine Videoschnittstelle einschließt, die ein Antialiasing von Silhouettenrändern ausführt. Die Videoschnittstelle funktioniert wie folgt. Die Videoschnittstelle greift auf den Bildspeicher zu, um eine Vordergrundfarbe eines Randpixels auszulesen, das auf den Silhouettenrand fällt. Die Videoschnittstelle schätzt eine Hintergrundfarbe des Randpixels, und zwar auf der Grundlage von Vordergrundfarben von benachbarten Pixeln, die sich in der Nähe des Randpixels befinden. Dann interpoliert die Videoschnittstelle zwischen der Vordergrundfarbe und der geschätzten Hintergrundfarbe, um eine Ausgabefarbe des Randpixels festzulegen.
  • Weitere Merkmale und Vorteile der Erfindung, sowie der Aufbau und die Wirkungsweise von verschiedenen Ausführungsformen der Erfindung sind unten unter Bezugnahme auf die begleitenden Zeichnungen ausführlich beschrieben. In den Zeichnungen bezeichnen gleiche Bezugszeichen im Allgemeinen identische, funktional gleichartige und/oder strukturell gleichartige Elemente. Die Zeichnung, in der ein Element zum ersten Mal erscheint, wird durch die Ziffer(n) links von den zwei am weitesten rechts gelegenen Ziffern in dem entsprechenden Bezugszeichen angezeigt.
  • Kurze Beschreibung der Figuren
  • Die vorliegende Erfindung wird unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, in denen:
  • Die 1 und 2 beispielhafte Pixelgitter sind, die verwendet werden, um die von der Erfindung gelösten Probleme zu beschreiben;
  • Die 3A und 3B zusätzliche beispielhafte Pixelgitter sind, die verwendet werden, um die von der Erfindung ausgeführten Funktionen zu beschreiben;
  • 4 ein Blockdiagramm eines Computergraphiksystems gemäß einer bevorzugten Ausführungsform der Erfindung ist;
  • 5 den bevorzugten Aufbau eines Bildspeichereintrags veranschaulicht;
  • Die 6, 7 und 10 Fließbilder sind, welche die bevorzugte Wirkungsweise der Erfindung zeigen;
  • 8 verwendet wird, um die Unterschiede zwischen Außen- und Innenrändern zu beschreiben;
  • 9 verwendet wird, um die Art und Weise zu beschreiben, in der die Erfindung zwischen Außen- und Innenrändern unterscheidet; und
  • 11 die räumliche Beziehung eines zentralen Pixels und seiner Nachbarpixel veranschaulicht.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Die vorliegende Erfindung ist auf ein System und Verfahren zum Antialiasing von Silhouettenrändern, wie beispielsweise eines Außenrandes einer Oberfläche, gerichtet. Die vorliegende Erfindung kann zusammen mit einer Mehrzahl von graphischen Konstrukten verwendet werden, wie beispielsweise undurchsichtigen Oberflächen, durchsichtigen Oberflächen, Abziehpolygonen, Linien, Texturrändern, imitierten Partikelsystemen, Nebel usw..
  • Die vorliegende Erfindung macht keine Speicherung von mehreren Farbwerten pro Pixel erforderlich, um ein Silhouettenrand-Antialiasing auszuführen. Dementsprechend erzielt die vorliegende Erfindung ein Silhouettenrand-Antialiasing mit einem Bildspeicher minimaler Größe.
  • 3A zeigt ein erstes Polygon 302 (in einer ersten Oberfläche) und ein zweites Polygon 304 (in einer zweiten Oberfläche). Das erste Polygon 302 befindet sich über dem zweiten Polygon 304 (aus der Perspektive eines Betrachters). Dementsprechend stellt das erste Polygon 302 den Vordergrund dar, und das zweite Polygon 304 stellt den Hintergrund dar.
  • Das erste Polygon 302 enthält einen Rand 310. Das Pixel 306 fällt auf diesen Rand. Zu Bezugszwecken werden Pixel, die (wie das Pixel 306) auf Polygonränder fallen, Randpixel genannt.
  • Der Rand 310 ist nicht nur ein Rand eines Polygons (d. h. des ersten Polygons 302), sondern er ist auch ein Rand einer Oberfläche (d. h. der im vorangehenden Absatz erwähnten ersten Oberfläche). Zu Bezugszwecken werden Randpixel, die wie das Pixel 306 auf Oberflächen (d. h. Silhouetten)ränder fallen, Außen- oder Silhouettenrandpixel genannt.
  • 3B zeigt das Szenario aus 3A ausführlicher. Das Außenrandpixel 306 enthält einen Teil 306A, der innerhalb des ersten Polygons 302 enthalten ist, und einen anderen Teil 306B, der innerhalb des zweiten Polygons 304 enthalten ist. Mit anderen Worten stellt der Teil 306A denjenigen Teil des Außenrandpixels 306 innerhalb des Vordergrundes dar, und der Teil 306B stellt denjenigen Teil des Außenrandpixels 306 innerhalb des Hintergrundes dar.
  • In 3B ebenfalls dargestellt sind Pixel 320, die sich in der Nähe (und in einigen Fällen unmittelbar benachbart) vom Außenrandpixel 306 befinden.
  • Gemäß der vorliegenden Erfindung wird die Farbe jedes Außenrandpixels (wie des Außenrandpixels 306) durch die Vordergrundfarbe und die Hintergrundfarbe beeinflusst. Der Beitrag des Vordergrunds zur Farbe eines Außenrandpixels ist proportional zur Menge des Außenrandpixels, die sich im Vordergrund befindet. Entsprechend ist der Beitrag des Hintergrundes zur Farbe des Außenrandpixels proportional zur Menge des Außenrandpixels, die sich im Hintergrund befindet. In äquivalenter Weise kann die Farbe eines Außenrandpixels wie folgt dargestellt werden: Außenrandpixelfarbe = (Prozentanteil des Pixels im Vordergrund·Vordergrundfarbe + (Prozentanteil des Pixels im Hintergrund)·(Hintergrundfarbe) Gleichung 3
  • Wie oben angezeigt, werden bei der vorliegenden Erfindung nicht mehrere Farbwerte pro Pixel gespeichert. Statt dessen wird bei der Erfindung ein einziger Farbwert pro Pixel gespeichert. Ein Vorteil der Erfindung ist ihre Fähigkeit, die Gleichung 3 mit dieser begrenzten Menge an gespeicherten Informationen zu lösen.
  • Die Erfindung schließt einen Bildspeicher 408 ein (in 4 dargestellt, die weiter unten beschrieben wird), der einen Bildspeichereintrag für jedes Pixel der Videoanzeigevorrichtung 412 enthält. Der bevorzugte Aufbau eines beispielhaften Bildspeichereintrags 502 ist in 5 dargestellt. Der Bildspeichereintrag 502 enthält ein Farbwert-Feld 504, ein Überdeckungswert-Feld 506, ein Z-Wert-Feld 508 und ein Delta-Z-Wert-Feld 510. Vorzugsweise sind das Farbwert-Feld 504 und das Überdeckungswert-Feld 506 doppelt gespeichert (Vorder- und Rückseite). Das Z-Wert-Feld 508 und das Delta-Z-Wert-Feld 510 sind einfach gespeichert (nur Vorderseite).
  • Im Farbwert-Feld 504 ist ein Farbwert (vorzugsweise ein Rot-Wert, ein Grün-Wert und ein Blau-Wert) gespeichert, der die Farbe des Vordergrundes angibt. Im Überdeckungswert-Feld 506 ist ein Prozentwert gespeichert, der den Prozentanteil angibt, zu dem das fragliche Pixel (d. h. das dem Bildspeichereintrag 502 entsprechende Pixel) in den Vordergrund fällt.
  • Man nehme zum Beispiel an, dass die Farbe des Vordergrundes (d. h. des ersten Polygons 302) rot ist, und dass der Teil 306A 57% des Randpixels 306 darstellt. Im Bildspeichereintrag 502 des Außenrandpixels 306 wird der Farbwert 504 einem Wert gleichgesetzt, der rot anzeigt, und der Überdeckungswert 506 wird einem Wert gleichgesetzt, der 57% anzeigt.
  • Es wird angemerkt, dass der Bildspeichereintrag 502 des Außenrandpixels 306 keinen Farb- oder Überdeckungswert für den Hintergrund (d. h. das zweite Polygon 304) speichert.
  • Das Z-Wert-Feld 508 und das Delta-Z-Wert-Feld 510 werden unten beschrieben.
  • Struktur der Erfindung
  • 4 ist ein Blockdiagramm eines Computergraphiksystems 402 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Das System 402 schließt einen Bildspeicher 408 mit einem Bildspeichereintrag 502 für jedes Pixel einer Videoanzeigevorrichtung 412 ein, wie oben beschrieben. In den Bildspeichereinträgen 502 gespeicherte Daten werden vom Bildspeicher 408 aus einer Mischeinheit 406 empfangen, die dahingehend wirkt: (1) im Fall einer neuen Oberfläche, die sich deutlich vor der vorhandenen (d. h. bereits im Bildspeicher 408 befindlichen) Oberfläche befindet, einen neuen Pixelwert bereitzustellen; (2) das neue Pixel mit dem alten Pixel zu mischen, und zwar proportional zu ihren jeweiligen Überdeckungen, wenn berechnet wird, dass sie sich innerhalb derselben Oberfläche befinden; oder (3) das neue Pixel zu verwerfen, falls es sich deutlich hinter der vorhandenen Oberfläche befindet. Die Mischeinheit 406 empfängt Daten von anderen Graphikverarbeitungsvorrichtungen 404. Derartige Graphikverarbeitungsvorrichtungen 404 sind wohlbekannt.
  • Daten aus den Bildspeichereinträgen 502 des Bildspeichers 408 werden zu einer Videoschnittstelle 410 übertragen. Die Videoschnittstelle 410 verarbeitet diese Daten und überträgt sie dann zur Videoanzeigevorrichtung 412 zur Wiedergabe an Betrachter.
  • Konventionell wird ein Antialiasing von Silhouettenrändern von der Mischeinheit 406 ausgeführt. Gemäß der vorliegenden Erfindung können Polygone in einer beliebigen Reihenfolge aufbereitet werden. Mit anderen Worten werden Polygone nicht notwendigerweise von hinten nach vorne (aus der Perspektive des Betrachters) aufbereitet (mit anderen Worten werden Polygone nicht notwendigerweise in nach Tiefe geordneter Reihenfolge aufbereitet). Unter diesen Umständen können unerwünschte Artefakte erzeugt werden, wenn das Silhouettenrand-Antialiasing von der Mischeinheit 406 durchgeführt wird.
  • Die Erörterung oben konzentrierte sich auf äußere Oberflächenränder, d. h. Polygonränder, welche die Ränder (auch Silhouetten genannt) von Oberflächen darstellen. Wie ersichtlich ist, kann eine Oberfläche aus mehreren Polygonen zusammengesetzt sein. Ränder dieser Polygone, die keine Ränder der Oberflächen darstellen, werden Innenränder genannt.
  • Man betrachte einen Innenrand einer Oberfläche, der von zwei Polygonen der Oberfläche gebildet wird. Man nehme an, dass das von der Mischeinheit 406 ein Silhouettenrand-Antialiasing ausgeführt wird. Wenn das erste dieser beiden Polygone aufbereitet wird, weiß die Mischeinheit 406 nicht, ob der Rand ein Außen(Silhouetten)rand ist (und somit mit dem Hintergrund gemischt werden muss), oder ein Innenrand (und somit nicht mit dem Hintergrund gemischt werden sollte). Wenn ein Innenrand mit dem Hintergrund gemischt wird, dann wird entlang des Randes eine Linie gebildet, sobald das zweite Polygon mit dem ersten gemischt wird. Es gibt keinen Weg, diese Linie zu beseitigen.
  • Gemäß der vorliegenden Erfindung wird somit das Silhouettenrand-Antialiasing vorzugsweise aufgeschoben, bis nachdem die Mischeinheit 406 die gesamte Szene aufbereitet hat. Vorzugsweise wird das endgültige Mischen der Silhouettenränder (d. h. die Ausführung des Silhouettenrand-Antialiasing) zum Zeitpunkt der Anzeige durch die Videoschnittstelle 410 ausgeführt.
  • Es wird angemerkt, dass Mischeinheiten, Bildspeicher, Videoschnittstellen und Videoanzeigevorrichtungen sämtlich allgemein wohlbekannte Vorrichtungen sind. Dementsprechend ist die nachfolgende Erörterung auf Aspekte der Mischeinheit 406, des Bildspeichers 408, der Videoschnittstelle 410 und der Videoanzeigevorrichtung 412 begrenzt, die für die vorliegende Erfindung relevant sind.
  • Verfahren der Erfindung
  • Die Erfindung ermittelt vorzugsweise einen Farbwert von jedem Außen(Silhouetten)Randpixel durch Interpolieren zwischen der Vordergrundfarbe und der Hintergrundfarbe. Diese Interpolation ist in Gleichung 3 oben dargestellt. Man rufe sich ins Gedächtnis zurück, dass der Bildspeicher 408 nur einen Überdeckungswert und einen Farbwert für den Vordergrund speichert. Gleichung 3 kann wie folgt umgeschrieben werden, um diese gespeicherten Informationen am Besten auszunutzen: Außenrandpixelfarbe = cvg·Vordergrundfarbe + (1 – cvg)·(Hintergrundfarbe) Gleichung 4
  • In dieser Gleichung ist cvg gleich dem Vordergrundüberdeckungswert (d. h. dem Prozentanteil, zu dem das Außenrandpixel in den Vordergrund fällt).
  • Die Hintergrundfarbe ist nicht im Bildspeicher 408 gespeichert. Dementsprechend bestand die Herausforderung, der die Erfinder gegenüberstanden, darin, einen Ansatz zu entwickeln, um eine Darstellung der Hintergrundfarbe zu ermitteln (der Hintergrund wurde während des von der Mischeinheit 406 ausgeführten Aufbereitungsvorgangs überschrieben).
  • Die vorliegende Erfindung analysiert die Nachbarpixel des fraglichen Außenrandpixels (d. h. des Außenrandpixels, dessen Farbe gerade in Übereinstimmung mit Gleichung 4 ermittelt wird), um eine Darstellung der Hintergrundfarbe zu ermitteln.
  • Ein Ansatz besteht darin, den Z-Pufferspeicher anzusehen (unter der Annahme, dass das Bild mit eingeschaltetem Z-Pufferbetrieb aufbereitet wurde), um zwischen Vorder- und Hintergrundpixeln zu unterscheiden (vielleicht unter Verwendung des Nachbarpixels mit dem größten Z als repräsentativ für den Hintergrund). Wenn dies jedoch gemacht wird, dann müsste die Videoschnittstelle 410 den Z-Pufferspeicher lesen, was die erforderliche Speicherbandbreite vergrößern würde. Noch schlimmer ist, dass dies eine doppelte Pufferspeicherung von Z erforderlich machen würde, da, wenn es zum Zeitpunkt der Anzeige verwendet wird, man nicht zulassen kann, dass es durch die Aufbereitung des nächsten Bildes überschrieben wird. Vorausgesetzt, dass der für den Bildspeicher 408 verwendete Speicherplatz klein ist, wäre dies jedoch prohibitiv. Somit besteht das Problem wiederum darin, einen repräsentativen Wert für den Hintergrund zu finden, ohne Tiefeninformationen zu verwenden, indem nur die Vordergrund-Farb- und Überdeckungswerte für jedes Pixel und seine Nachbarn verwendet werden.
  • Die Erfinder haben festgestellt, dass die ausschließliche Verwendung von Vordergrund-Farb- und Überdeckungswerten für jedes Pixel und seine Nachbarn, um eine Darstellung des Hintergrundes des Pixels zu ermitteln, in einer vernünftigen Nährung erfolgen kann, und zwar unter der Annahme einer relativen Farbkonstanz innerhalb von benachbarten Pixeln des Vordergrundes und einer relativen Farbkonstanz innerhalb von benachbarten Pixeln des Hintergrundes. Es sei angemerkt, dass dies für den Hintergrund angenommen werden muss, da der wahre Hintergrund für ein Vordergrundpixel bereits überschrieben worden ist. Fehler bei dieser Näherung sind gewöhnlich nicht feststellbar, da sie mit ”Randeffekten” (Beugung, usw.) zusammenfallen. Es sei auch angemerkt, dass diese Annahme einer Farbkonstanz für Vordergrundobjekte gewöhnlich gültig ist, selbst für Objekte mit Textur, da durch Mipmapping Pixel in der Nähe der Silhouette oder des Umrisses eines Objekts (welches die einzigen Pixel sind, die durch das Antialiasing zum Anzeigezeitpunkt in der Videoschnittstelle verändert werden) die Tendenz aufweisen, dass sie tangential ebenso wie radial frei von hohen Raumfrequenzen sind (weil Mipmapping dem Detailmaß keine Direktionalität verleiht).
  • Wirkungsweise der Erfindung
  • Die Funktions- oder Wirkungsweise der vorliegenden Erfindung wird nun unter Bezugnahme auf ein in 6 dargestelltes Fließbild 602 ausführlich beschrieben. Das Fließbild 602 stellt die Wirkungsweise der Erfindung dar, wenn ein Antialiasing von Silhouettenrändern vorgenommen wird. Spezieller stellt das Fließbild 602 die Wirkungsweise der Erfindung dar, wenn die Farbe eines Außen(Silhouetten)randpixels bestimmt wird (zu Zwecken der Bezugnahme wird dieses Außenrandpixel das ”zentrale Pixel” genannt). Vorzugsweise führt die Videoschnittstelle 410 die Schritte aus dem Fließbild 602 durch. Das Fließbild 602 beginnt mit dem Schritt 604, von wo aus die Steuerung unmittelbar zum Schritt 606 gelangt.
  • Im Schritt 606 greift die Videoschnittstelle 410 auf den Bildspeicher 408 zu, um die Vordergrundfarbe und die Vordergrundüberdeckung des zentralen Pixels festzustellen. Der Schritt 606 wird durch Abrufen der im FarbwertFeld 504 und im Überdeckungswert-Feld 506 im Bildspeichereintrag 502 gespeicherten, dem zentralen Pixel entsprechenden Werte ausgeführt.
  • Im Schritt 608 schätzt die Videoschnittstelle 410 die Hintergrundfarbe des zentralen Pixels basierend auf den Nachbarpixeln. Das Fließbild 702 in 7 stellt die Art und Weise dar, in welcher der Schritt 608 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung ausgeführt wird. Das Fließbild 702 beginnt mit dem Schritt 704, von wo aus die Steuerung unmittelbar zum Schritt 706 gelangt.
  • Es ist anzumerken, dass es viele mögliche Wege gibt, um die Hintergrundfarbe basierend auf den Nachbarpixeln zu schätzen. Die unten beschriebene Technik ist nur eine Methode, um dies zu tun. Viele alternative Techniken sind möglich, einschließlich, aber nicht beschränkt auf, die Verwendung verschiedener Nachbarschaften und/oder verschiedener Abschätzungsfunktionen.
  • Im Schritt 706 identifiziert die Videoschnittstelle 410 die Nachbarpixel des zentralen Pixels. Die ”Nachbarpixel” sind eine Untergruppe der Pixel in der Nähe des zentralen Pixels. Was ein Nachbarpixel darstellt, wird unten näher erörtert.
  • Im Schritt 707 werden sämtliche teilweise überdeckten Nachbarn verworfen. Ein ”teilweise überdeckter Nachbar” ist ein Pixel, das sich teilweise im Vordergrund und teilweise im Hintergrund befindet. Für die übrige Erörterung des Fließbildes 702 in 7 enthält der Begriff ”Nachbarn” nur vollständig überdeckte Nachbarn (d. h. in der nachfolgenden Erörterung schließt ”Nachbarn” nicht die im Schritt 707 verworfenen Nachbarn ein).
  • Im Schritt 708 sortiert die Videoschnittstelle 410 die Nachbarpixel unabhängig voneinander mittels ihrer Vordergrund-RGB(Rot/Grün/Blau)-Farbkomponente. Mit anderen Worten erzeugt die Videoschnittstelle 410 drei logische Listen der Nachbarpixel, wobei die erste anhand der Rot-Farbkomponente des Vordergrunds sortiert wird, die zweite anhand der Grün- Farbkomponente des Vordergrunds sortiert wird, und die dritte anhand der Blau-Farbkomponente des Vordergrunds sortiert wird.
  • Im Schritt 710 verwirft die Videoschnittstelle 410 die größten und kleinsten Werte von jeder Farbkomponente. Die verbleibenden größten und kleinsten Werte jeder Farbkomponente werden der zweitgrößte und zweitkleinste Wert genannt. Zum Beispiel sei angenommen, die sortierte Liste für die Farbe rot wäre wie folgt (diese Liste ergab sich aus der Durchführung des Schritts 708): {79, 101, 152, 205, 233, 244}. Im Schritt 710 verwirft die Videoschnittstelle 410 79 (den kleinsten Wert für rot) und 244 (den größten Wert für rot) und wählt 101 (den verbleibenden kleinsten Wert für rot) und 233 (den verbleibenden größten Wert für rot) als den zweitkleinsten und zweitgrößten Wert für rot.
  • Im Schritt 712 erzeugt die Videoschnittstelle 410 unter Verwendung des Vordergrundfarbwerts des zentralen Pixels (im Schritt 606 ermittelt) und des zweitgrößten und zweitkleinsten Rot-, Grün- und Blau-Werts für die Nachbarpixel des zentralen Pixels einen geschätzten Hintergrundfarbwert. Der Schritt 712 wird wie folgt ausgeführt.
  • Als erstes wird für jede Farbkomponente der größte Wert von dem Vordergrundfarbwert des zentralen Pixels und dem zweitgrößten Wert bestimmt. Wenn zum Beispiel der Rot-Wert des zentralen Pixels gleich 241 ist, dann wird in den folgenden Operationen der Rot-Wert des zentralen Pixels verwendet (weil 241 größer ist als 233, welches im obigen Beispiel der zweitgrößte Wert für rot ist).
  • Als zweites wird für jede Farbkomponente der kleinste Wert von dem Vordergrundfarbwert des zentralen Pixels und dem zweitkleinsten Wert bestimmt. Wenn zum Beispiel der Rot-Wert des zentralen Pixels gleich 241 ist, dann wird in den folgenden Operationen der zweitkleinste Wert für rot verwendet (weil 241 größer ist als 101, welches im obigen Beispiel der zweitkleinste Wert für rot ist).
  • Als drittes werden der größte Wert und der kleinste Wert (wie in den beiden vorangehenden Schritten festgestellt) für jede Farbkomponente gemittelt. Im obigen Beispiel werden 241 und 101 gemittelt, um einen mittleren Rot-Komponenten-Wert von 171 zu erhalten. Als Ergebnis dieses Schritts erhält man einen mittleren Rot-Wert, einen mittleren Grün-Wert und einen mittleren Blau-Wert. Diese Mittelwerte stellen eine Farbe halbwegs zwischen dem Vordergrund und Hintergrund dar.
  • Als viertes subtrahiert die Videoschnittstelle 410 die Mittelwertfarbe von der Vordergrundfarbe des zentralen Pixels (auf der Grundlage Farbkomponente um Farbkomponente). Dies stellt die Hälfte der Größe der Differenz zwischen der Vordergrund- und Hintergrundfarbe dar. Im obigen Beispiel ist die Mittelwertfarbe von rot 171, und der Rot-Farbwert des Vordergrunds des zentralen Pixels ist 241. Somit wird in diesem Schritt 171 von 241 subtrahiert und ein Wert von 70 erhalten, der die Hälfte der Größe der Differenz zwischen der roten Vordergrund- und Hintergrundfarbe darstellt.
  • Als fünftes verdoppelt die Videoschnittstelle 410 diese Differenz und subtrahiert sie von der Vordergrundfarbe des zentralen Pixels (auf der Grundlage Farbkomponente um Farbkomponente). Dieser Wert ist der bevorzugte Schätzwert der Hintergrundfarbe. Somit wird in diesem Schritt der Rot-Differenzwert von 70 verdoppelt und 140 erhalten. Dieser Wert von 140 wird von 241 (dem Rot-Farbwert des Vordergrunds des zentralen Pixels) subtrahiert und ein Wert von 101 erhalten, was den bevorzugten Schätzwert der roten Hintergrundfarbe darstellt.
  • Der Schritt 712 wird entsprechend wie folgt ausgeführt. Als erstes werden der zweitkleinste und zweitgrößte Wert für jede Farbe addiert. Diese Summe stellt eine geschätzte Summe der Vordergrundfarbe und der Hintergrundfarbe dar. Als zweites wird die Vordergrundfarbe des zentralen Pixels von dieser Summe subtrahiert, um dadurch den Schätzwert der Hintergrundfarbe zu erhalten. Für das obige Beispiel werden 101 (der zweitkleinste Wert für rot) und 233 (der zweitgrößte Wert für rot) addiert und 334 erhalten, was eine geschätzte Summe der roten Vordergrundfarbe und der roten Hintergrundfarbe darstellt. Dann wird ein Wert von 241 (die Vordergrundfarbe des zentralen Pixels) von dieser Summe subtrahiert und dadurch ein Wert von 93 erhalten, der einen Schätzwert der roten Hintergrundfarbe darstellt.
  • Wieder Bezug nehmend auf 6, interpoliert im Schritt 610 die Videoschnittstelle 410 zwischen der Vordergrundfarbe (im Schritt 606 erhalten) und der geschätzten Hintergrundfarbe (im Schritt 608 geschätzt), um die Farbe des zentralen Pixels zu bestimmen (diese wird auch die ”Ausgabefarbe” des zentralen Pixels genannt). Der Schritt 610 wird ausgeführt, indem man die Gleichung 4 löst, wobei cvg (der Vordergrundüberdeckungswert) zuvor im Schritt 606 erhalten wurde.
  • Im Schritt 612 gibt die Videoschnittstelle 410 die Farbe des zentralen Pixels in einer wohlbekannten Weise an die Videoanzeigevorrichtung aus.
  • Das Fließbild 602 ist abgeschlossen, nachdem der Schritt 612 ausgeführt ist, wie durch den Schritt 614 angezeigt. Es wird angemerkt, dass das Fließbild 602 für jedes Außenrandpixel ausgeführt wird.
  • Es sollte angemerkt werden, dass sämtliche der oben erörterten Operationen (größter Wert, kleinster Wert, Mittelwertbildung, usw.) kontinuierlich und monoton (jedoch nichtlinear) ablaufen. Diese Eigenschaften stellen sicher, dass es nicht zu einem übermäßigen ”Hervorspringen” von was auch immer für Artefakten kommt, während sich Objekte über das Pixelgitter bewegen.
  • Nachbarpixel
  • Der oben diskutierte Algorithmus ist etwas empfindlich, was die Wahl einer Nachbarschaft angeht. In kleinen Nachbarschaften (4 Nachbarn oder weniger) sind nicht genug Abtastungen vorhanden, um sicherzustellen zu können, dass stets ein vollständig überdecktes Pixel in der Nachbarschaft vertreten sein wird. Andererseits führt in den stärker verbundenen Nachbarschaften (wie beispielsweise 3 mal 3 mit 8 Nachbarn) die Tatsache, dass einige (orthogonale) Nachbarn bedeutend näher liegen als die anderen (diagonalen) Nachbarn, zum Einbringen einer Vorspannung, die inakzeptable Artefakte erzeugt.
  • Der Idealfall ist es, ein dreieckiges Gitter zu haben, wobei jedes Pixel allgemein 6 Nachbarn aufweist, die alle gleich weit entfernt sind (somit keine Vorspannung). Diese ideale Situation ist jedoch nicht möglich in Fällen, wo die Aufbereitung auf einem quadratischen (oder zumindest rechteckigen) Gitter vorgenommen wird.
  • Die Erfinder haben festgestellt, dass ein dreieckiges Gitter durch eine ”Schachbrettmusterung” der Pixel angenähert werden kann. Wenn man nur diejenigen benachbarten Quadrate auf einem Schachbrett betrachtet, die von derselben Farbe sind, kann man ein leicht verformtes dreieckiges Gitter erhalten. (Diese Verformung stellt sich als unproblematisch heraus, da alles, was auf einem rechteckigen Gitter für ein richtiges Antialiasing von etwas sorgt, auch auf einem anderen rechteckigen Gitter mit einem anderen Seitenverhältnis funktionieren sollte.)
  • Die bevorzugte Nachbarschaft ist in 11 dargestellt, die das zentrale Pixel und die Nachbarpixel (in 11 als ”Nachbar” bezeichnet) zeigt. Es ist anzumerken, dass im Fall eines Zeilensprungs, da wir immer nur ein Feld gleichzeitig aufbereiten, die Reihen von Nachbarn oberhalb und unterhalb tatsächlich 2 Zeilen entfernt sind. Es ist anzumerken, dass dies einfach das dreieckige Gitter auf andere Weise verformt und so nicht wirklich etwas anderes ist.
  • Verarbeitung von Innenrändern
  • 8 veranschaulicht eine aus zwei Polygonen 802, 804 zusammengesetzte erste Oberfläche 811 und eine aus einem einzigen Polygon 806 zusammengesetzte zweite Oberfläche 812. Die erste Oberfläche 811 ist der Vordergrund, und die zweite Oberfläche 812 ist der Hintergrund. Das Polygon 802 hat zwei Außen(Silhouetten)ränder 808, 809 und mit dem Polygon 804 gemeinsam einen Innenrand 810. Aus den oben erörterten Gründen sollten Außenränder (wie beispielsweise die Ränder 808, 809) in der oben erörterten Weise einem Antialiasing unterzogen werden, jedoch sollten die Innenränder (wie zum Beispiel der Rand 810) keinem Antialiasing unterzogen werden.
  • Um zwischen Außen- und Innenrändern zu unterscheiden, wird bei der Erfindung im Z-Wert-Feld 508 jedes Bildspeichereintrags 502 ein Z-Wert gespeichert (5). Bei der Erfindung wird auch im Delta-Z-Wert-Feld 510 jedes Bildspeichereintrags 502 ein Delta-Z-Wert gespeichert.
  • Ein Z-Wert eines Pixels stellt den senkrechten Abstand vom Pixel bis zu einer Bildebene dar, wie zum Beispiel dem Anzeigeschirm eines Monitors. Ein Delta-Z-Wert eines Pixels ist ein Maß für den Bereich, in dem sich der Z-Wert in der Nachbarschaft des Pixels verändert.
  • Man betrachtet zum Beispiel ein in 9 dargestelltes beispielhaftes Szenario. Ein erstes Pixel 906 und ein zweites Pixel 908 sind dargestellt. Der Z-Wert des ersten Pixels 906, mit Z1 bezeichnet, ist gleich 2. Es soll angemerkt werden, dass Z vorzugsweise von der Mitte jedes Pixels aus gemessen wird. Der Delta-Z-Wert des ersten Pixels, mit ΔZ1 bezeichnet, ist gleich 4, was anzeigt, dass sich der Wert von Z über die Länge des ersten Pixels 906 um 4 verändert.
  • Somit ist es möglich, die Z-Werte für die beiden Enden des ersten Pixels 906 zu bestimmen. Speziell ist der Z-Wert von einem Ende, mit Z1B bezeichnet, gleich 0, während der Z-Wert des anderen Endes, mit Z1A bezeichnet, gleich 4 ist.
  • Folglich ist es durch einfache Manipulation des Z-Werts und des Delta-Z-Werts eines Pixels möglich, den Bereich zu bestimmen, über den das Pixel in Z reicht. Zum Beispiel beträgt der Z-Bereich des Pixels 906 0 bis 4. Der Z-Bereich des Pixels 908 beträgt 4 bis 8.
  • Gemäß der vorliegenden Erfindung werden zwei Polygone als in derselben Oberfläche befindlich angesehen, wenn sie sich überlappen. Die Erfindung stellt durch Bezugnahme auf Z-Werte und Delta-Z-Werte fest, ob sich zwei Polygone überlappen. Speziell werden die Polygone als in derselben Oberfläche befindlich angesehen, wenn sich die Z-Bereiche von Randpixeln in den beiden Polygonen überlappen.
  • Man betrachte das Szenario aus 9. Man nehme an, das Pixel 906 befinde sich in einem Polygon, und das Pixel 908 befinde sich in einem anderen Polygon. Wie oben angemerkt, beträgt der Z-Bereich des Pixels 906 0 bis 4, und der Z-Bereich des Pixels 908 beträgt 4 bis 8. Somit überlappen sich die Z-Bereiche dieser beiden Pixel 906, 908. Dementsprechend überlappen sich die Oberflächen, in denen diese Pixel 906, 908 vorhanden sind. Weil sie sich überlappen, stellt der Rand zwischen den Pixeln 906 und 908 einen Innenrand, keinen Außenrand dar.
  • Um ein Mischen von Oberflächen zu verhindern, die sich in Z nahe kommen, jedoch einander nicht berühren, wird eine zusätzliche Qualifizierung vorgenommen. Wenn die Summe der Überdeckungswerte des alten und des neuen Pixels größer als Eins ist, dann wird das neue Pixel (wenn es sich vorne befindet) als Teil einer neuen zusammenhängenden Oberfläche angesehen und überschreibt das alte Pixel vollständig.
  • 10 zeigt ein Fließbild 1002 das die Wirkungsweise der Erfindung beim Antialiasing von Innenrändern darstellt. Es wird angemerkt, dass die Schritte des Fließbilds 1002 vorzugsweise von der Mischeinheit 406 ausgeführt werden. Die Mischeinheit 406 führt die Schritte des Fließbilds 1002 aus, bevor die Videoschnittstelle 410 ein Antialiasing von Außenrändern vornimmt. Beim Ausführen der Schritte des Fließbilds 1002 bestimmt und speichert die Mischeinheit 406 Farb- und Überdeckungswerte im Bildspeicher 408. Diese Farb- und Überdeckungswerte werden später von der Videoschnittstelle 410 benutzt, wenn in der oben beschriebenen Weise ein Antialiasing von Außenrändern vorgenommen wird. (Es wird angemerkt, dass Überdeckungswerte im Bildspeicher 408 so eingeleitet werden, dass jedes Pixel als vollständig vom Vordergrund überdeckt angesehen wird.)
  • Die beiden im Fließbild 1002 verarbeiteten Polygone sind: (1) das Polygon, das bereits im Bildspeicher 408 gespeichert ist (d. h. im Bildspeicher 408 vor der Ausführung des Schritts 1006 gespeichert ist); dieses Polygon wird zu Bezugszwecken das ”vorhandene” Polygon genannt; und (2) das Polygon (das ”neue Polygon” genannt), das für mindestens einen Teil des Speicherbereichs im Bildspeicher 408 aufbereitet wird, der bereits vom vorhandenen Polygon besetzt wird.
  • Nunmehr Bezug nehmend auf 10, bestimmt die Mischeinheit 406 im Schritt 1006, ob sich das neue Polygon und das vorhandene Polygon in derselben Oberfläche befinden. Dies wird vorgenommen, indem (in der oben erörterten Weise) festgestellt wird, ob sich die jeweiligen Z-Bereiche des vorhandenen und des neuen Polygons überlappen. Spezieller bestimmt die Mischeinheit 406 im Schritt 1006, ob sich das Pixel des neuen Polygons, das augenblicklich aufbereitet wird, mit dem entsprechenden Pixel des vorhandenen Polygons, wie im Bildspeicher 408 gespeichert, überlappt.
  • Wenn sie sich überlappen, dann befinden sich diese beiden Pixel entlang von einem zwischen dem neuen Polygon und dem vorhandenen Polygon gebildeten Innenrand. In diesem Fall wird im Schritt 1010 ein Antialiasing dieses Innenrandes vorgenommen, indem der Überdeckungs-Wert des Pixels des neuen Polygons und der Überdeckungs-Wert des entsprechenden Pixels des vorhandenen Polygons addiert werden. Dieser neue Überdeckungswert wird im Überdeckungswert-Feld 506 des zugehörigen Bildspeichereintrags 502 gespeichert (d. h. des Bildspeichereintrags 502, der dem Pixel des vorhandenen Polygons entspricht).
  • Auch wird ein neuer Farbwert erzeugt, indem die Farbwerte der beiden Pixel proportional zu den Überdeckungswerten der beiden Pixel gemittelt werden. Dieser neue Farbwert wird im Farbwert-Feld 504 dieses Bildspeichereintrags 502 gespeichert. Speziell wird der neue Farbwert wie folgt erzeugt: Neuer Farbwert = (Farbwert des Pixels des vorhandenen Polygons)·(Oberdeckungswert des Pixels des vorhandenen Polygons) + (Farbwert des Pixels des neuen Polygons)·(Überdeckungswert des Pixels des neuen Polygons)
  • Jegliche Randpixel, die letztendlich durch diesen iterativen Prozess nicht vollständig abgedeckt werden, stellen Silhouettenränder dar und werden von der Videoschnittstelle 410 in der oben erörterten Weise einem Antialiasing unterzogen.
  • Wenn im Schritt 1006 festgestellt wird, dass sich die beiden Polygone nicht in derselben Oberfläche befinden, dann wird der Schritt 1014 ausgeführt. Die Mischeinheit 406 stellt im Schritt 1014 fest, ob sich das neue Polygon in einer Oberfläche befindet, die sich vor der Oberfläche befindet, welche das vorhandene Polygon enthält (durch Bezugnahme auf ihre Z-Werte). Wenn sich die Oberfläche des neuen Polygons vor der Oberfläche des vorhandenen Polygons befindet, dann wird der Schritt 1016 ausgeführt.
  • Im Schritt 1016 werden der Farbwert und der Überdeckungswert des Pixels des neuen Polygons, das gerade aufbereitet wird, im Farbwert-Feld 504 und im Überdeckungswert-Feld 506 des zugehörigen Bildspeichereintrags 502 gespeichert (d. h. des Bildspeichereintrags 502, der dem Pixel des vorhandenen Polygons entspricht). Tatsächlich ist das Pixel des vorhandenen Polygons überschrieben worden.
  • Wenn die Mischeinheit 406 im Schritt 1014 feststellt, dass sich die Oberfläche des neuen Polygons hinter der Oberfläche befindet, welche das vorhandene Polygon enthält, dann wird das Pixel des neuen Polygons verworfen (d. h. es wird nicht benutzt, um den Bildspeicher 408 zu aktualisieren).
  • Die Operationen der Schritte 1006, 1010, 1014, 1016 und 1018 werden für jedes Pixel in jedem Polygon ausgeführt, das von der Mischeinheit 406 aufbereitet wird. Nach einer solchen Operation der Mischeinheit 406 wird das Antialiasing von Außenrändern von der Videoschnittstelle 410 in der oben beschriebenen Weise ausgeführt. Dies ist in 10 durch den Schritt 1011 dargestellt.
  • Vor einer endgültigen Verarbeitung wird eine weitere Operation (wahlweise) an den Pixeln vorgenommen, die einem Antialiasing unterzogen worden sind, um einige mögliche leichte Artefakte des Algorithmus in Ordnung zu bringen. Für jegliche Pixel auf oder benachbart zu einem Silhouettenrand nimmt die Videoschnittstelle 410 den Median von drei benachbarten Pixeln als die Farbe, die an Stelle des zentralen Pixels dargestellt werden soll. Für jegliche Einzelsilhouette wird dies immer die Pixel im Wesentlichen ungestört lassen, während die ”Divots” (Ein-Pixel-Löcher) infolge mehrfach überlappender Silhouetten herausgefiltert werden. Diese einfache Schaltung beseitigt tatsächlich die meisten der Divot-Artefakte. Es wird angemerkt, dass dieser Median-Filter nicht in Bereichen mit einer vollständigen Überdeckung benutzt wird, so dass Texturen mit hoher Raumfrequenz innerhalb einer Oberfläche durch diese Operation nicht gestört werden.
  • Während oben verschiedene Ausführungsformen der vorliegenden Erfindung beschrieben worden sind, versteht sich, dass sie nur als Beispiel und nicht zur Einschränkung vorgestellt worden sind. Somit sollte die Breite und der Umfang der vorliegenden Erfindung nicht durch irgendeine der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern sollte nur entsprechend den nachfolgenden Patentansprüchen definiert werden.

Claims (20)

  1. Verfahren zum Antialiasing eines Silhouettenrandes, d. h. eines Außenrandes einer Oberfläche, umfassend die Schritte: (1) Zugreifen auf einen Bildspeicher, um die Vordergrundfarbe eines Randpixels auszulesen, das auf den Silhouettenrand fällt; (2) Schätzen der Hintergrundfarbe des Randpixels basierend auf Vordergrundfarben von Nachbarpixeln, die sich in der Nähe des Randpixels befinden; (3) Interpolieren zwischen der Vordergrundfarbe und der geschätzten Hintergrundfarbe, um eine Ausgabefarbe des Randpixels zu bestimmen; und (4) Ausgeben der Ausgabefarbe an eine Anzeigevorrichtung.
  2. Verfahren nach Anspruch 1, bei dem der Bildspeicher nur Vordergrundinformationen speichert und keine Hintergrundinformationen speichert.
  3. Verfahren nach Anspruch 1, bei dem der Schritt (2) die Schritte umfasst: (a) Identifizieren von Nachbarpixeln des Randpixels; (b) Verwerfen von jeglichen der Nachbarpixel, die teilweise von Vordergrund überdeckt und teilweise von Hintergrund überdeckt sind; (c) Identifizieren eines zweitgrößten Werts und eines zweitkleinsten Werts für jede Vordergrundfarbkomponente der Nachbarpixel, die im Schritt (b) nicht verworfen wurden; und (d) Schätzen der Hintergrundfarbe des Randpixels basierend auf der Vordergrundfarbe des Randpixels und des zweitgrößten Werts und des zweitkleinsten Werts für jede besagte Vordergrundfarbkomponente der nicht verworfenen Nachbarpixel.
  4. Verfahren nach Anspruch 3, bei dem Schritt (c) die Schritte umfasst: Erzeugen einer Liste von Farbwerten für jede Vordergrundfarbkomponente der Nachbarpixel, die im Schritt (b) nicht verworfen wurden; Verwerfen eines größten Farbwerts und eines kleinsten Farbwerts, die in jeder Liste enthalten sind; und für jede Liste Festlegen eines zweitgrößten Werts gleich einem verbleibenden größten Wert in jeder Liste, und Festlegen eines zweitkleinsten Werts gleich einem verbleibenden kleinsten Wert in jeder Liste.
  5. Verfahren nach Anspruch 4, bei dem der Schritt (d) die Schritte umfasst: Addieren des zweitgrößten Werts zum zweitkleinsten Wert für jede Vordergrundfarbkomponente der nicht verworfenen Nachbarpixel, um eine Farbwertsumme für jede Vordergrundfarbkomponente zu erhalten; und Subtrahieren eines Farbwerts einer entsprechenden Vordergrundfarbkomponente des Randpixels von der Farbwertsumme, um einen Differenzwert für jede Vordergrundfarbkomponente zu erhalten, wobei der Differenzwert als Schätzwert eines Farbwerts für eine entsprechende Hintergrundfarbkomponente des Randpixels verwendet wird.
  6. Verfahren nach Anspruch 1, weiter umfassend den Schritt: (4) Zugreifen auf den Bildspeicher, um einen Vordergrundüberdeckungswert des Randpixels auszulesen; wobei der Schritt (3) den Schritt umfasst: Bestimmen der Ausgabefarbe des Randpixels wie folgt: (Vordergrundüberdeckungswert·Vordergrundfarbe) + (1 – Vordergrundüberdeckungswert)·geschätzte Hintergrundfarbe.
  7. Antialiasing-Verfahren, umfassend die Schritte: (1) Feststellen, ob sich ein neues Polygon, das gerade aufbereitet wird, und ein in einem Bildspeicher gespeichertes vorhandenes Polygon in einer gemeinsamen Oberfläche befinden; und (2) wenn das neue Polygon und das vorhandene Polygon in einer gemeinsamen Oberfläche liegen, dann Vornehmen von Antialiasing bei einem Randpixel des neuen Polygons, das auf einen Rand des vorhandenen Polygons fällt; wobei der Schritt (2) die Schritte umfasst: (a) Addieren des Überdeckungswerts des Randpixels des neuen Polygons und des Überdeckungswerts eines entsprechenden Randpixels des vorhandenen Polygons, wie in einem Bildspeichereintrag des Bildspeichers gespeichert, um einen neuen Überdeckungswert zu erhalten; (b) Speichern des neuen Überdeckungswerts im Bildspeichereintrag; (c) Erzeugen eines neuen Farbwerts durch Mittelung des Farbwerts des Randpixels des neuen Polygons und des Farbwerts des entsprechenden Pixels des vorhandenen Polygons proportional zu den jeweiligen Überdeckungswerten der Randpixel des neuen und des vorhandenen Polygons; und (d) Speichern des neuen Farbwerts im Bildspeichereintrag.
  8. Verfahren nach Anspruch 7, bei dem der Schritt (1) die Schritte umfasst: Bestimmen eines Z-Bereichs des Randpixels durch Bezugnahme auf einen Z-Wert und einen Delta-Z-Wert, die mit dem Randpixel verknüpft sind; Bestimmen eines Z-Bereichs des entsprechenden Pixels durch Bezugnahme auf einen Z-Wert und einen Delta-Z-Wert, die mit dem entsprechenden Pixel verknüpft sind; und Festlegen, dass das neue Polygon und das vorhandene Polygon in der besagten Oberfläche liegen, wenn sich der Z-Bereich des Randpixels mit dem Z-Bereich des entsprechenden Pixels überlappt.
  9. Verfahren nach Anspruch 7, weiter umfassend die Schritte: (3) wenn im Schritt (1) festgestellt wird, dass sich das neue Polygon und das vorhandene Polygon nicht in der besagten Oberfläche befinden, dann Ermitteln, ob sich das neue Polygon in einer Oberfläche befindet, die sich vor einer Oberfläche befindet, welche das vorhandene Polygon enthält; (4) wenn sich das neue Polygon in einer Oberfläche befindet, wie sich vor einer Oberfläche befindet, welche das vorhandene Polygon enthält, dann Speichern eines Überdeckungswerts und eines Farbwerts des Randpixels im Bildspeichereintrag; und (5) wenn sich das neue Polygon nicht in einer Oberfläche befindet, die sich vor einer Oberfläche befindet, welche das vorhandene Polygon enthält, dann Verwerfen des Randpixels.
  10. Verfahren nach Anspruch 7, weiter umfassend die Schritte: (3) Auslesen einer Vordergrundfarbe eines Silhouettenrandpixels, das auf einen Silhouettenrand fällt, aus dem Bildspeicher; (4) Schätzen einer Hintergrundfarbe des Silhouettenrandpixels basierend auf Vordergrundfarben von Nachbarpixeln, die in der Nähe des Silhouettenrandpixels liegen; und (5) Interpolieren zwischen der Vordergrundfarbe und der geschätzten Hintergrundfarbe, um eine Ausgabefarbe des Silhouettenrandpixels zu bestimmen.
  11. System zum Antialiasing eines Silhouettenrandes, d. h. eines Außenrandes einer Oberfläche, umfassend: einen Bildspeicher; und eine Videoschnittstelle, umfassend: eine Bildspeicherzugriffseinrichtung zum Zugreifen auf den Bildspeicher, um die Vordergrundfarbe eines Randpixels auszulesen, das auf den Silhouettenrand fällt; eine Hintergrundfarbeschätzeinrichtung zum Schätzen der Hintergrundfarbe des Randpixels basierend auf Vordergrundfarben von Nachbarpixeln, die in der Nähe des Randpixels liegen; und eine Interpoliereinrichtung zum Interpolieren zwischen der Vordergrundfarbe und der geschätzten Hintergrundfarbe, um eine Ausgabefarbe des Randpixels zu ermitteln sowie zum Ausgeben der Ausgabefarbe an eine Anzeigevorrichtung.
  12. System nach Anspruch 11, bei dem der Bildspeicher nur Vordergrundinformationen speichert und keine Hintergrundinformationen speichert.
  13. System nach Anspruch 11, bei dem die Hintergrundfarbeschätzeinrichtung umfasst: eine Einrichtung zum Identifizieren von Nachbarpixeln des Randpixels; eine Einrichtung zum Verwerfen von jeglichem der Randpixel, die teilweise von Vordergrund überdeckt und teilweise von Hintergrund überdeckt sind; eine Vorletztenidentifikationseinrichtung zum Identifizieren eines zweitgrößten Werts und eines zweitkleinsten Werts für jede Vordergrundfarbkomponente der Nachbarpixel, die nicht verworfen wurden; und eine Schätzeinrichtung zum Schätzen der Hintergrundfarbe des Randpixels basierend auf der Vordergrundfarbe des Randpixels und dem zweitgrößten Wert und dem zweitkleinsten Wert für jede Vordergrundfarbkomponente der nicht verworfenen Nachbarpixel.
  14. System nach Anspruch 13, bei dem die Vorletztenidentifikationseinrichtung umfasst: eine Einrichtung zum Erzeugen einer Liste von Farbwerten für jede Vordergrundfarbkomponente der Nachbarpixel, die nicht verworfen wurden; eine Einrichtung zum Verwerfen eines größten Farbwerts und eines kleinsten Farbwerts, die in jeder Liste enthalten sind; und eine Einrichtung, um für jede Liste einen zweitgrößten Wert gleich einem verbleibenden größten Wert in jeder Liste festzulegen und einen zweitkleinsten Wert gleich einem verbleibenden kleinsten Wert in jeder Liste festzulegen.
  15. System nach Anspruch 14, bei dem die Schätzeinrichtung umfasst: eine Einrichtung zum Addieren des zweitgrößten Werts zum zweitkleinsten Wert für jede Vordergrundfarbkomponente der nicht verworfenen Nachbarpixel, um eine Farbwertsumme für jede Vordergrundfarbkomponente zu erhalten; und eine Einrichtung zum Subtrahieren eines Farbwerts einer entsprechenden Vordergrundfarbkomponente des Randpixels von der besagten Farbwertsumme, um einen Differenzwert für jede Vordergrundfarbkomponente zu erhalten, wobei der Differenzwert als Schätzwert eines Farbwerts einer entsprechenden Hintergrundfarbkomponente des Randpixels verwendet wird.
  16. System nach Anspruch 11, weiter umfassend: eine Einrichtung zum Zugreifen auf den Bildspeicher, um einen Vordergrundüberdeckungswert des Randpixels auszulesen; wobei die Interpolationseinrichtung die Ausgabefarbe des Randpixels wie folgt bestimmt: (Vordergrundüberdeckungswert·Vordergrundfarbe) + (1 – Vordergrundüberdeckungswert)·geschätzte Hintergrundfarbe.
  17. Antialiasing-System, umfassend: einen Bildspeicher; eine Mischeinheit, umfassend: eine Selbe-Oberflächen-Feststelleinrichtung zum Feststellen, ob sich ein neues Polygon, das gerade aufbereitet wird, und ein im Bildspeicher gespeichertes vorhandenes Polygon in einer gemeinsamen Oberfläche befinden; und eine Innenrand-Antialiasingeinrichtung zum Antialiasing eines Randpixels des neuen Polygons, das auf einen Rand des neuen Polygons fällt, wenn das neue Polygon und das vorhandene Polygon in der gemeinsamen Oberfläche liegen; wobei die Innenrand-Antialiasingeinrichtung umfasst: eine Einrichtung zum Addieren des Überdeckungswerts des Randpixels des neuen Polygons und des Überdeckungswerts eines entsprechenden Randpixels des vorhandenen Polygons, wie in einem Bildspeichereintrag des Bildspeichers gespeichert, um einen neuen Überdeckungswert zu erhalten; eine Einrichtung zum Speichern des neuen Überdeckungswerts im Bildspeichereintrag; eine Einrichtung zum Erzeugen eines neuen Farbwerts durch Mittelurig des Farbwerts des Randpixels des neuen Polygons und des Farbwerts des entsprechenden Pixels des vorhandenen Polygons proportional zu den jeweiligen Überdeckungswerten der Randpixel des neuen und des vorhandenen Polygons; und eine Einrichtung zum Speichern des neuen Farbwerts im Bildspeichereintrag.
  18. System nach Anspruch 17, bei dem die Selbe-Oberflächen-Feststelleinrichtung umfasst: eine Einrichtung zum Bestimmen eines Z-Bereichs des Randpixels durch Bezugnahme auf einen Z-Wert und einen Delta-Z-Wert, die mit dem Randpixel verknüpft sind; eine Einrichtung zum Bestimmen eines Z-Bereichs des entsprechenden Pixels durch Bezugnahme auf einen Z-Wert und einen Delta-Z-Wert, die mit dem entsprechenden Pixel verknüpft sind; und eine Einrichtung zum Feststellen, dass sich das neue Polygon und das vorhandene Polygon in der besagten Oberfläche befinden, wenn sich der Z-Bereich des Randpixels mit dem Z-Bereich des entsprechenden Pixels überlappt.
  19. System nach Anspruch 17, bei dem die Mischeinheit weiter umfasst: eine Einrichtung zum Feststellen, ob sich das neue Polygon in einer Oberfläche befindet, die sich vor einer Oberfläche befindet, welche das vorhandene Polygon enthält, wenn festgestellt wird, dass sich das neue Polygon und das vorhandene Polygon nicht in der besagten Oberfläche befinden; eine Einrichtung zum Speichern eines Überdeckungswerts und eines Farbwerts des Randpixels im Bildspeichereintrag, wenn sich das neue Polygon in einer Oberfläche befindet, die sich vor einer Oberfläche befindet, welche das vorhandene Polygon enthält; und eine Einrichtung zum Verwerfen des Randpixels, wenn sich das neue Polygon nicht in einer Oberfläche befindet, die sich vor einer Oberfläche befindet, welche das vorhandene Polygon enthält.
  20. System nach Anspruch 17, weiter umfassend eine Videoschnittstelle, umfassend: eine Einrichtung zum Auslesen einer Vordergrundfarbe eines Silhouettenrandpixels, das auf einen Silhouettenrand fällt, aus dem Bildspeicher; eine Einrichtung zum Schätzen einer Hintergrundfarbe des Silhouettenrandpixels basierend auf Vordergrundfarben von Nachbarpixeln, die sich in der Nähe des Silhouettenrandpixels befinden; und eine Einrichtung zum Interpolieren zwischen der Vordergrundfarbe und der geschätzten Hintergrundfarbe, um eine Ausgabefarbe des Silhouettenrandpixels zu bestimmen.
DE69625561T 1995-10-06 1996-10-07 Antialiasing für Silhouetteränder Expired - Lifetime DE69625561T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/539,956 US5742277A (en) 1995-10-06 1995-10-06 Antialiasing of silhouette edges
US539956 1995-10-06

Publications (2)

Publication Number Publication Date
DE69625561D1 DE69625561D1 (de) 2003-02-06
DE69625561T2 true DE69625561T2 (de) 2009-09-17

Family

ID=24153358

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69625561T Expired - Lifetime DE69625561T2 (de) 1995-10-06 1996-10-07 Antialiasing für Silhouetteränder

Country Status (6)

Country Link
US (1) US5742277A (de)
EP (1) EP0767444B1 (de)
JP (1) JPH09179544A (de)
CN (1) CN1129091C (de)
DE (1) DE69625561T2 (de)
TW (1) TW378311B (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6459428B1 (en) * 1998-02-17 2002-10-01 Sun Microsystems, Inc. Programmable sample filtering for image rendering
US6496186B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for reduced artifacts
US6424343B1 (en) * 1998-02-17 2002-07-23 Sun Microsystems, Inc. Graphics system with programmable real-time sample filtering
US6489956B1 (en) * 1998-02-17 2002-12-03 Sun Microsystems, Inc. Graphics system having a super-sampled sample buffer with generation of output pixels using selective adjustment of filtering for implementation of display effects
US6483504B1 (en) * 1998-02-17 2002-11-19 Sun Microsystems, Inc. Graphics system having a super sampled-sample buffer with efficient storage of sample position information
US6496187B1 (en) * 1998-02-17 2002-12-17 Sun Microsystems, Inc. Graphics system configured to perform parallel sample to pixel calculation
US6525723B1 (en) * 1998-02-17 2003-02-25 Sun Microsystems, Inc. Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates
US6115050A (en) * 1998-04-08 2000-09-05 Webtv Networks, Inc. Object-based anti-aliasing
US6163269A (en) * 1998-05-05 2000-12-19 Magellan Dis, Inc. Navigation system with anti-alias map display
DE59911685D1 (de) * 1998-08-30 2005-04-07 Gmd Gmbh Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
WO2000030033A2 (en) * 1998-11-17 2000-05-25 Quantum3D, Inc. Device and method for antialiasing high resolution pixel data for lower resolution display
US6377274B1 (en) * 1999-07-15 2002-04-23 Intel Corporation S-buffer anti-aliasing method
US6429877B1 (en) 1999-07-30 2002-08-06 Hewlett-Packard Company System and method for reducing the effects of aliasing in a computer graphics system
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6701424B1 (en) 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
JP2002140722A (ja) * 2000-08-23 2002-05-17 Sony Computer Entertainment Inc エイリアシングを除去した画像を描画する装置及び方法
US7061507B1 (en) 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
US7286138B2 (en) * 2001-05-08 2007-10-23 Microsoft Corporation Discontinuity edge overdraw
US6919906B2 (en) * 2001-05-08 2005-07-19 Microsoft Corporation Discontinuity edge overdraw
US6844878B2 (en) * 2001-12-04 2005-01-18 Koninklijke Philips Electronics N.V. Media processing reduction in hidden areas
US7120311B2 (en) * 2002-06-28 2006-10-10 Microsoft Corporation Systems and methods for providing forward mapping with visibility for and resolution of accumulated samples
US20040174379A1 (en) * 2003-03-03 2004-09-09 Collodi David J. Method and system for real-time anti-aliasing
US7006108B2 (en) * 2003-03-25 2006-02-28 Mitsubishi Electric Research Laboratories, Inc. Method for generating a composite glyph and rendering a region of the composite glyph in image-order
US7274831B2 (en) * 2003-04-03 2007-09-25 Microsoft Corporation High quality anti-aliasing
US7006110B2 (en) * 2003-04-15 2006-02-28 Nokia Corporation Determining a coverage mask for a pixel
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
JP4183082B2 (ja) * 2003-09-26 2008-11-19 シャープ株式会社 3次元画像描画装置および3次元画像描画方法
TWI228240B (en) * 2003-11-25 2005-02-21 Benq Corp Image processing method for reducing jaggy-effect
US7317829B2 (en) * 2003-12-12 2008-01-08 Microsoft Corporation Background color estimation for scanned images
US20060250414A1 (en) * 2005-05-03 2006-11-09 Vladimir Golovin System and method of anti-aliasing computer images
CN100354894C (zh) * 2005-11-10 2007-12-12 北京航空航天大学 基于图形处理单元gpu的粒子系统实现方法
CN100437642C (zh) * 2006-03-27 2008-11-26 腾讯科技(深圳)有限公司 一种模型几何空间轮廓线查找的预处理方法
US20080062204A1 (en) * 2006-09-08 2008-03-13 Microsoft Corporation Automated pixel snapping for anti-aliased rendering
US20090033671A1 (en) * 2007-08-02 2009-02-05 Ati Technologies Ulc Multi-sample rendering of 2d vector images
US8554475B2 (en) 2007-10-01 2013-10-08 Mitac International Corporation Static and dynamic contours
EP2274725A1 (de) * 2008-04-04 2011-01-19 Advanced Micro Devices, Inc. Filterungsverfahren und vorrichtung zum anti-aliasing
CN102044235B (zh) * 2009-10-09 2012-11-28 奇景光电股份有限公司 字体反锯齿方法
WO2013058740A1 (en) * 2011-10-18 2013-04-25 Intel Corporation Surface based graphics processing
KR101488343B1 (ko) * 2012-11-13 2015-01-30 에스엘 주식회사 차량용 디스플레이 패널의 이미지 처리 장치
JP6230268B2 (ja) * 2013-05-23 2017-11-15 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
CN104750889B (zh) * 2013-12-30 2017-08-29 北京华大九天软件有限公司 一种图形排列模拟打孔方法
JP6540099B2 (ja) * 2015-03-02 2019-07-10 セイコーエプソン株式会社 画像処理装置、表示装置、及び、画像処理方法
CN113837955A (zh) * 2021-08-17 2021-12-24 每平每屋(上海)科技有限公司 图像抗锯齿处理方法及电子设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3816726A (en) * 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
IL72685A (en) * 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
US4843380A (en) * 1987-07-13 1989-06-27 Megatek Corporation Anti-aliasing raster scan display system
DE68926702T2 (de) * 1988-09-08 1996-12-19 Sony Corp Bildverarbeitungsgerät
US5040130A (en) * 1988-09-20 1991-08-13 International Business Machines Corporation Computer graphics boundary--defined area clippping and extraneous edge deletion method
US5060172A (en) * 1989-07-06 1991-10-22 Digital Equipment Corporation Method and apparatus for displaying smooth-shaded objects
EP0440786A1 (de) * 1989-08-28 1991-08-14 Eastman Kodak Company Auf rechner basierendes verfahren zur rauschverringerung numerischer bilder durch überlagernde ebenennäherung
US5206628A (en) * 1989-11-17 1993-04-27 Digital Equipment Corporation Method and apparatus for drawing lines in a graphics system
US5245700A (en) * 1989-11-21 1993-09-14 International Business Machines Corporation Adjustment of z-buffer values for lines on the surface of a polygon
US5299300A (en) * 1990-02-22 1994-03-29 Harris Corporation Interpolation processing of digital map imagery data
US5123085A (en) * 1990-03-19 1992-06-16 Sun Microsystems, Inc. Method and apparatus for rendering anti-aliased polygons
US5343558A (en) * 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
US5379129A (en) * 1992-05-08 1995-01-03 Apple Computer, Inc. Method for compositing a source and destination image using a mask image
JPH05346953A (ja) * 1992-06-15 1993-12-27 Matsushita Electric Ind Co Ltd 画像データ処理装置
JP3505199B2 (ja) * 1992-06-30 2004-03-08 株式会社リコー ビデオカメラジッタ補正装置、データ圧縮装置、データ伸長装置、データ圧縮方法及びデータ伸長方法
GB2275584B (en) * 1993-02-25 1997-05-14 Quantel Ltd An image processing system
US5583974A (en) * 1993-05-10 1996-12-10 Apple Computer, Inc. Computer graphics system having high performance multiple layer Z-buffer
US5528738A (en) * 1993-10-06 1996-06-18 Silicon Graphics, Inc. Method and apparatus for antialiasing raster scanned, polygonal shaped images
US5581680A (en) * 1993-10-06 1996-12-03 Silicon Graphics, Inc. Method and apparatus for antialiasing raster scanned images
US5416893A (en) * 1993-10-26 1995-05-16 Hewlett-Packard Co. Method for displaying edging or decaling of an object in a graphics display
US5590254A (en) * 1994-09-30 1996-12-31 Intel Corporation Displaying multiple video streams using a bit map and a single frame buffer

Also Published As

Publication number Publication date
TW378311B (en) 2000-01-01
JPH09179544A (ja) 1997-07-11
US5742277A (en) 1998-04-21
DE69625561D1 (de) 2003-02-06
EP0767444A2 (de) 1997-04-09
CN1155715A (zh) 1997-07-30
EP0767444A3 (de) 1998-02-11
EP0767444B1 (de) 2003-01-02
CN1129091C (zh) 2003-11-26

Similar Documents

Publication Publication Date Title
DE69625561T2 (de) Antialiasing für Silhouetteränder
DE69724512T2 (de) Texturabbildungssystem -medium und -verfahren
EP0984397B1 (de) Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster
DE60221757T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Entfernung des Mosaikeffekts und Grössenänderung von Rohbilddaten
DE69835408T2 (de) Verfahren und Vorrichtung zur Komposition von Bildfarben unter Speicherbeschränkungen
DE102008046398B4 (de) Vorrichtung zum Erzeugen eines zusammengesetzten Bildes und computerlesbares Medium zum Speichern eines Programmes, um zu bewirken, dass ein Computer als Vorrichtung zum Erzeugen eines zusammengesetzten Bildes wirkt
DE69733882T2 (de) Kamera mit einem einzigen bildaufnehmer
DE69833531T2 (de) Vollszenen-Antialiasing mit verbesserten Überabtastungstechniken
DE69932059T2 (de) Trilineare texturfilterung mit optimiertem speicherzugriff
DE69816824T2 (de) Texturabbildung in 3-d-rechnergraphik
DE602005004694T2 (de) Verfahren und Vorrichtung für lokal adaptive Bildverarbeitungsfilter
DE10053439B4 (de) Grafik-Beschleuniger mit Interpolationsfunktion
DE602004009702T2 (de) Verfahren und System zur automatischen Reduzierung von Aliasing-Artefakten
EP2929503B1 (de) Verfahren und vorrichtung zur erzeugung eines verbesserten farbbildes mit einem sensor mit farbfilter
DE102015111787A1 (de) Entschachteln eines verschachtelten Hoch-Dynamik-Bereich-Bildes mittels eines Benutzens von YUV-Interpolation
EP2052550A2 (de) Bildverarbeitungsvorrichtung für farb-bilddaten und verfahren zur bildverarbeitung von farb-bilddaten
DE60008867T2 (de) Antialiasingverfahren und -anordnung zur effizienten nutzung von wenigen mischeinheiten
DE102016112968B4 (de) Bestimmung von Farbwerten für Pixel an Zwischenpositionen
DE102014008686B4 (de) Verfahren und Vorrichtung zur Farbinterpolation
DE102011087852A1 (de) System, Verfahren und Computerprogrammprodukt zum Reduzieren von Rauschen in einem Bild unter Verwendung von tiefenbasiertem Entlangstreichen über Bildabtastwerte
DE602004009714T2 (de) Verfahren zur wiedergabe graphischer objekte
DE10240313B4 (de) Bildverarbeitungsvorrichtung mit einem Verarbeitungsvorgang Koordinatenberechung
DE602004011234T2 (de) Verfahren und Vorrichtung zur Erzeugung dreidimensionaler Bilder
DE69814482T2 (de) Verfahren und Vorrichtung zur Darstellung von Oberflächen aus volumetrischen Daten
DE69817633T2 (de) Faltung von Zeilenrasterdarstellungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition