DE69325739T2 - Grafisches System mit Anwendung von quadratischen Polynomelementen - Google Patents
Grafisches System mit Anwendung von quadratischen PolynomelementenInfo
- Publication number
- DE69325739T2 DE69325739T2 DE69325739T DE69325739T DE69325739T2 DE 69325739 T2 DE69325739 T2 DE 69325739T2 DE 69325739 T DE69325739 T DE 69325739T DE 69325739 T DE69325739 T DE 69325739T DE 69325739 T2 DE69325739 T2 DE 69325739T2
- Authority
- DE
- Germany
- Prior art keywords
- row
- image
- curve
- line
- value
- 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
Links
- 239000012634 fragment Substances 0.000 claims description 21
- 238000009877 rendering Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 17
- 238000007792 addition Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
Description
- Die vorliegende Erfindung betrifft ein Graphiksystem beispielsweise mit einer Einrichtung, durch die Objekte beschrieben und manipuliert werden können, indem jedes Objekt in eine Anzahl von Fragmenten geteilt wird, und jedes Fragment durch ein quadratisches Polynom mathematisch beschrieben wird.
- Die meisten Objektgraphiksysteme verwenden einen Vollbildspeicher, um ein auf Bildelementen basierendes Bild der Seite oder des Bildschirms zu halten. Die Umrisse von einzelnen Objekten werden berechnet, gefüllt und in den Vollbildspeicher geschrieben. Für zweidimensionale Graphiken werden Objekte, die vor anderen Objekten erscheinen, einfach nach dem Hintergrundobjekt in den Vollbildspeicher geschrieben, wodurch der Hintergrund Bildelement für Bildelement ersetzt wird. Derartige Systeme sind normalerweise hinsichtlich der Hardware und der Zeit zum Erzeugen eines ganzseitigen Bildes kostspielig.
- Eine Echtzeit-Bilderzeugung für Rasteranzeigen kann durch Berechnen des Bildes in Rasterordnung erreicht werden. Dieses bedeutet, daß jede Abtastzeile berechnet werden muß, wenn sie angetroffen wird. Dieses erfordert, daß die Kreuzungspunkte jeder Abtastzeile mit jedem Objektumriß berechnet und dann gefüllt werden.
- Üblicherweise wird die Berechnung von Kreuzungen von Umrissen unter Verwendung von geraden Linien oder Splineformaten durchgeführt. Die populärsten Splineformate sind verschiedene Formen von parametrischen, kubischen Polynomen wie Bezier-Kurven.
- Wenn kubische Bezier-Splines verwendet werden, beinhaltet eine Kreuzungsberechnung ein Berechnen der Wurzeln von kubischen Polynomen bei einer speziellen Abtastzeile, um die parametrischen Positionen der Kreuzungen zu erhalten, und Einsetzen dieser in das Polynom, um die aktuellen Bildelementkreuzungen zu erhalten. Obwohl es möglich ist, Hardware zu bauen, um diese Funktionen in Echtzeit durchzuführen, ist eine derartige Hardware hoch komplex und ungeeignet für kostengünstige Ausrüstungen für Verbraucher.
- "Automatic Curve Fitting with Quadratic B-Spline Functions and its Applications to Computer-Assisted Animation" von Yang et al. in Computer Vision, Graphics, and Image Processing 33, Seiten 346 bis 363 (1986) offenbart ein Verfahren zum automatischen Anpassen von quadratischen B- Splinefunktionen an digitalisierte Kurven, wobei eine Anzahl von Parabeln an eine Kurve angepaßt werden. Die Gleichung für jede angepaßte Parabel ist durch folgende Gleichung gegeben:
- (x + By)² + Dx + Ex + F = 0
- Die Druckschrift DE-A-40 00 021 offenbart ein Verfahren und ein Gerät für die Darstellung einer Kurve der Form F(x,y) = 0 in einem zweidimensionalen Array von Bildelementen. Gemäß dem offenbarten Verfahren werden Koordinaten x&sub0;, y&sub0; so gewählt, daß:
- F: = F(x&sub0;,y&sub0;)
- und
- d(x)id(y)j: = d(x)i(y)j(x&sub0;,y&sub0;) ist.
- Es ist eine Aufgabe der vorliegenden Erfindung, eine Alternative zu dem Vorstehenden durch Bereitstellung eines anderen Formats zur Darstellung von Objektumrißdaten bereitzustellen, die in einem objektbasierten Graphiksystem manipuliert werden können.
- Gemäß der vorliegenden Erfindung wird ein rechnergesteuertes, objektbasiertes Graphikgerät bereitgestellt, wie es in Anspruch 1 dargelegt ist.
- Die Erfindung stellt ebenfalls ein Verfahren zur objektbasierten Graphikbildverarbeitung bereit, wie es in Anspruch 8 dargelegt ist.
- Zusätzliche Merkmale sind in Ansprüchen 2 bis 7 und 9 bis 14 dargelegt.
- Ein Ausführungsbeispiel der vorliegenden Erfindung umfaßt ein objektbasiertes Graphiksystem, in dem jedes Objekt in eine Vielzahl von Kurvenfragmenten geteilt wird, wobei jedes durch einen Startbildelement-Ort, einen ΔBildelement-Wert, einen ΔΔBildelement-Wert, eine Startzeile und eine Endzeile definiert ist, wobei der Bildelementort des Kurvenfragments auf jeder Zeile(n) des angezeigten Bildes gegeben ist durch:
- Bildelement (Zeile n+1) = Bildelement (Zeile n) + ΔBildelement(Zeile n)
- Bildelement(Zeile n+1) = ΔBildelement(Zeile n) + ΔBildelement,
- mit
- Bildelement(Zeile n = Startzeile) = Startbildelement, und ΔBildelement(Zeilen n = Startzeile) ΔBildelement
- In einem Ausführungsbeispiel der vorliegenden Erfindung wird ein objektbasiertes Graphiksystem bereitgestellt, in dem jede Kreuzung zwischen einem Objektumriß und einer Abtastzeile durch zwei mathematische Operationen berech net werden kann, wenn die vorherige Kreuzung bekannt ist. Vorzugsweise sind die mathematischen Operationen Additionen.
- Ausführungsbeispiele der vorliegenden Erfindung sind nachstehend unter Bezugnahme auf die Zeichnung beschrieben.
- Es zeigen:
- Fig. 1 ein einziges quadratisches Polynomfragment (QPF),
- Fig. 2 ein Objekt, das aus zwei QPFs ausgebildet ist,
- Fig. 3 ein Objekt, das aus vier QPFs ausgebildet ist,
- Fig. 4 ein Objekt, das auf sechs QPFs ausgebildet ist,
- Fig. 5 ein Objekt, das aus fünf QPFs ausgebildet ist,
- Fig. 6 ein Objekt, das aus acht QPFs ausgebildet,
- Fig. 7 ein Objekt, das aus acht QPFs ausgebildet ist,
- Fig. 8 eine schematische Blockschaltbilddarstellung eines objektbasierten Graphiksystems, das QPFS verwendet,
- Fig. 9 ein Datenflußdiagramm des Echtzeitobjekt- Prozessors (RTO-Prozessors) von Fig. 8, der die an den QPFs auftretenden Operationen anzeigt,
- Fig. 10 eine Objektliste und die Anordnung von QPFs für jedes Objekt in der Liste,
- Fig. 11 und 12 das Objekt und QPF-Datenwortformate der Liste von Fig. 10,
- Fig. 13 die Organisation des QPF-Speichers von Fig. 8 und 9,
- Fig. 14 das Datenformat eines einzelnen QPFs in dem QPF- Speicher von Fig. 8 und 9, und
- Fig. 15 und 19 Beispiele einer QPF-Ausbildung für ein einzelnes Objekt,
- In Fig. 1 ist ein quadratisches Polynomfragment QPF veranschaulicht, das einen Teil eines Objektumrisses ausbildet und sich von einer Anfangszeile zu einer Endzeile in einer Rasteranzeige erstreckt. Das QPF ist eine Kurve, die durch eine konstante Änderung der Steigung der Linie gekennzeichnet ist, und auf diese Weise kann jedes Fragment jedes Objektumrisses unter Verwendung eines quadratischen Polynoms beschrieben werden.
- Weil jedes QPF seine Steigung auf eine konstante Weise entlang seiner Länge ändert, kann jedes QPF durch eine Anzahl von Parametern leicht definiert werden.
- Der erste dieser Parameter ist die Startzeile, die die erste Zeile in Rasterordnung bestimmt, worauf das QPF erscheint.
- Der nächste Parameter ist das Startbildelement, das den Bildelementwert (d. h. den Ort) des QPFs auf der Startzeile bestimmt.
- Der nächste Parameter ist ΔBildelement, der die Steigung der Linie bestimmt. ΔBildelement wird zu dem Startbildelement für jede Rasterzeile auf der Anzeige addiert.
- Der nächste Parameter ist ΔΔBildelement, der die Krümmung der Linie bestimmt. ΔΔBildelement wird zu ΔBildelement für jede Rasterzeile addiert.
- Der letzte Parameter ist die Endzeile, die die letzte Zeile bestimmt, worauf das QPF erscheint.
- Die Bildelementorte auf jeder der Abtastzeilen (Rasterzeilen) des QPFs können mit den vorstehenden Parametern auf die folgende Weise bestimmt werden:
- Bildelement (Zeile n+1) = Bildelement (Zeile n) + ΔBildelement(Zeile n)
- ΔBildelement(Zeile n+1) = ΔBildelement(Zeile n) + ΔΔBildelement
- mit
- Bildelement (Zeile n = Startzeile) = Startbildelement, und ΔBildelement (Zeilen = Startzeile) = ΔBildelement.
- In Fig. 2 bis 7 sind eine Anzahl von einzelnen Objekten gezeigt, von denen jedes durch eine Vielzahl von QPFs definiert ist.
- In Fig. 2 ist eine quadratisches Objekt gezeigt, das durch zwei QPFs definiert ist, die jeweils die linken und rechten Seiten des Quadrats definieren. Jedes QPF beginnt auf einer gemeinsamen Startzeile und endet auf einer gemeinsam Endzeile. Auf diese Weise definieren die QPFs des Quadrats die Grenzen, bei denen ein spezieller Bildelementwert (wie ein Farbe) erklärt werden kann, um das Quadrat anzuzeigen.
- In Fig. 3 ist ein rautenförmiges Objekt gezeigt, das durch vier QPFs definiert ist, wobei die Endzeile für ein QPF die Startzeile des nächsten, benachbarten QPFs darstellt.
- Es ist anhand von Fig. 2 und 3 offenbar, das es für ein QPF nicht möglich ist, an einer Abtastzeile ausgerichtet zu sein, was beispielsweise in dem in Fig. 1 gezeigten Ausführungsbeispiel eine unendliche Steigung implizieren würde.
- Fig. 4 zeigt ein alternatives Objekt, das aus sechs QPFs ausgebildet ist. Diejenigen Objekte, die vertikal (senkrecht zu den Abtastzeilen) erscheinen, weisen ΔBildelement = 0 und ΔΔBildelement = 0 auf. Wo ein QPF eine konstante (lineare) Steigung aufweist, ist ΔBildelement ungleich null und ΔΔBildelement gleich 0.
- Das hierin beschriebene QPF-Format hat eine spezielle Anwendung bei Echtzeit-Objektgraphiken und ist in einem System wie demjenigen nützlich, das in der Druckschrift EP-A-1568359 offenbart ist.
- In Fig. 8 ist ein derartiges Echtzeitobjekt-Graphiksystem (RTO-Graphiksystem) gezeigt, das einen steuernden Prozessor 11 aufweist, der über einen Prozessorbus 17 mit einem Prozessorspeicher 12 verbunden ist, der ein ROM und ein RAM aufweist. Der Prozessor 11 arbeitet, um eine Seitenanzeigeliste von Objekten auszubilden, die zur Ausbildung eines Bildes verwendet werden. Die Seitenanzeigeliste ist in dem RAM-Abschnitt des Prozessorspeichers 12 gespeichert, in dem die Objekte von dem ROM-Abschnitt des Prozessorspeichers 12 hergeleitet werden können oder alternativ über eine bekannte, externe Einrichtung wie ein Laufwerk, ein Digitalisiertablett einer Graphikarbeitsstation oder dergleichen in das System 10 eingegeben werden können.
- Mit dem Prozessorbus 17 ist ein RTO-Prozessor 13 verbunden, der QPFs von Objekten in der Seitenanzeigeliste manipuliert, um gerasterte Bilddaten zu einer Farbnachschlagetabelle 15 auszugeben, um auf einer Anzeige 16 wie einer Videoanzeigeeinheit oder einem Drucker wiedergegeben bzw. reproduziert zu werden. Der RTO-Prozessor 13 ist auch über einen QPF-Bus 18 mit einem QPF-Speicher 14 verbunden, der aus einem statischen RAM ausgebildet ist, der zur Speicherung von QPFs verwendet wird, während der Prozessor 13 die Bilddaten berechnet.
- Weil der Prozessor 13 nur QPFs akzeptieren kann, müssen dementsprechend die Objekte, die die von dem Prozessor 11 erzeugte Seitenanzeigeliste ausbilden, als QPFs beschrieben werden.
- Wo der Prozessor 11 und vorformatierte Objekte unter Verwendung kubischer Polynome wie Bezier-Splines konfiguriert werden, können diese Polynome auf dieselbe Weise in QPFs umgewandelt werden, die in der veröffentlichten Australischen Patentanmeldung AU-A-38239/93 beschrieben ist.
- In Fig. 9 zeigt das Datenflußdiagramm des RTO-Prozessors 13 eine Bildholeinheit 20, die über den Bus 17 mit dem Prozessorspeicher 12 verbunden ist. Objekte und ihre QPFs werden von der Einheit 20 von dem Speicher 12 geholt und zu einem QPF-FIFO-Register (engl. QPF First In First Out Register) 21 ausgegeben, das vier Worte tief ist. Daten in dem FIFO 21 sind als Objekt oder QPF-Daten bezüglich der Formate von Fig. 11 und 12 gekennzeichnet, was später zu beschreiben ist. Das FIFO 21 wird zur Entkopplung des Holens von einer Datenverarbeitung verwendet, um die Zugriffseffizienz zu dem Prozessorbus 17 und die berechnete Effizienz zu verbessern.
- Daten werden von dem FIFO 21 in eine vorverarbeitende Pipeline 22 ausgegeben, die eine Serie von Berechnungen an den Daten durchführt, bevor sie in dem QPF-RAM 14 gespeichert werden. Diese Operationen sind:
- - (23) Anwenden von Skalierungs- und Translationsfaktoren für das aktuelle Objekt auf jedes QPF,
- - (24) Filtern von QPFs, die die Anzeige nicht beeinflussen werden,
- - (25) iterativ Wiederberechnen der Werte in einem QPF, die vor der ersten Zeile der Anzeige anfangen, um ein auf der ersten Zeile der Anzeige anfangendes QPF hervorzubringen, und
- - (26) Anwenden einer Korrektur auf das QPF- Rendering, wenn das Bild zu verschachteln ist (wie beispielsweise bei einer Fernsehanzeige).
- Die QPFs von der vorverarbeitenden Pipeline 22 werden in dem QPF-Speicher 14 gespeichert. Die QPF-Daten werden als eine Reihe von verknüpften Listen, einer für jede Zeile in dem auszubildenden Bild, gespeichert. Nachdem alle QPFs in dem Bild geholt und in dem Speicher 14 gespeichert worden sind, wird die verknüpfte Liste für jede Zeile von dem Sortierer 28 in der Ordnung der Bildelementwerte (d. h. Position) sortiert, um ein Rendering des Bildes auf der Anzeige 16 vorzubereiten.
- Bei Videoanwendungen tritt eine Bildvorbereitung des neuen Bildes in einer Hälfte eines doppelt gepufferten QPF-Speichers auf, während die andere Hälfte zum Rendering verwendet wird. Der QPF-Speicher 14 weist jedoch einen einzelnen Anschluß auf, so daß die Bildvorbereitungs- und Bildrenderingabschnitte des Prozessors 13 um den Zugriff auf den Bus 18 konkurrieren müssen.
- Ein Bildrendering wird in Synchronisation mit der Anzeige 16 begonnen. Ein Rendering umfaßt ein Berechnen der Kreuzung von QPFs mit jeder Zeile auf der Anzeige 16, wo diese Kreuzungen die Kanten von Objekten definieren. Jede Kante (oder Kreuzung) wird bei der Berechnung des Niveaus verwendet, das an einer speziellen Bildelementposition auf der Abtastzeile anzuzeigen ist.
- Für jede Zeile in dem Bild, schreitet die Renderingverarbeitung durch die Liste von QPFs für diese Zeile und führt die folgenden Schritte durch:
- Kopieren der Bildelementwerte (Ort), Bildelementniveaus (Farbe) und Bringen von Informationen in ein Bildelement-FIFO 30, um zur Füllerzeugung und Berechnung geholt zu werden,
- Berechnen der Werte der QPF-Kreuzung für die nächste Zeile, oder verwerfen von QPFs, die auf der nächsten Zeile enden, und
- Aufgeben des wiederberechneten QPFs in die Liste der QPFs angefangen mit der nächsten Zeile.
- Rendering und Wiederberechnung haben die höchste Priorität auf dem QPF-Bus 18, der Bus 18 ist jedoch vom Speichern oder Sortierzugriff befreit, jedesmal wenn das Bildelement-FIFO 30 gefüllt ist oder alle QPFs für die aktuelle Zeile verarbeitet worden sind.
- Daten werden aus dem Bildelement-FIFO 30, das sechzehn Worte tief ist, gesteuert von eine Bildelementzähler sequentiell angeordnet, der von jedem, von der Anzeige 16 hergeleiteten Bildelement-Taktzyklus inkrementiert wird. Die Füllerzeugungseinrichtung 31 entscheidet die Prioritätsniveaus der Objekte in der Anzeige und gibt das höchste sichtbare Niveau an jeder Bildelementposition an die Farbnachschlagetabelle 15 vor der Anzeige aus. Die Füllerzeugungseinrichtung kann durch einen Effektblock 32 modifiziert werden, um visuelle Effekte wie Transparenz zu implementieren.
- Die Organisation der Daten, die ein Bild ausmachen, in dem Prozessorspeicher 12 ist in Fig. 10 gezeigt. Diese zeigt eine Objektliste, obwohl es viele derartiger Listen geben kann, die jeweils in dem gezeigten Format sind.
- In dem vorliegenden Ausführungsbeispiel des Graphiksystems 10 werden die Objekte in der Liste in dem Speicher angrenzend untergebracht, wobei jedes Objekt (Objekt 1, Objekt 2, ...) neun 16-Bit-Orte besetzt. Die letzten zwei Worte jedes Objekts sind *Qliste(tief) und *Qliste(hoch), die einen Zeiger zu dem Start der QPF-Liste für dieses spezielle Objekt bilden. Die QPF-Liste kann irgendwo in dem Speicher 12 sein. Der Rest der Objektbeschreibung besteht aus Skalierungs- und Translationsfaktoren (LSkala, PSkala, ΔPSkala, ΔΔPSkala, LOffset und POffset), den Objektniveaus (6 Bits) und Effektbits (2 Bits) (Niveau) und einer Acht-Bit-Objektidentifizierung (Id).
- LOffsets stellt eine Palette von Farben dar, deren Niveau die tatsächliche Farbe des Objekts auswählt. Auf diese Weise können Niveau und LOffset 24-Bitfarbdaten adressieren, was über 16 Millionen anzuzeigende Farben unter Verwendung des Systems 10 erlaubt. Obwohl der RTO- Prozessor nur ein Niveau manipuliert, hat die Farbnachschlagetabelle 15 auch Zugriff auf den Prozessorbus 17, wodurch der Prozessor 11 die spezielle Palette anpassen kann, indem in die Farbnachschlagetabelle 15 geschrieben wird, um die geeignete Farbe für das Objekt anzuzeigen.
- POffset stellt einen Bildelement-Translationsbetrag (X- Translation für eine Videoanzeige) dar.
- LOffset stellt einen Zeilentranslationsbetrag (Y- Translation für Video) dar.
- LScale stellt einen Zeilenskalierungsfaktor (bezogen auf die Y-Größe) dar.
- PScale stellt einen Bildelement-Skalierungsfaktor (bezogen auf die X-Größe) dar.
- ΔPScale stellt einen vorberechneten Faktor zur Skalierung von ΔBildelement dar, um eine äquivalente X-Größe als PSCale zu geben.
- ΔΔPSkala stellt einen vorberechneten Faktor zur Skalierung von ΔΔBildelement dar, um eine äquivalente X-Größe als PScale zu geben.
- Für jedes Objekt werden die QPFs in dem Speicher angrenzend aufgelistet, wobei jedes QPF aus 16-Bit-Worten besteht. Diese sind wie vorstehend beschrieben (in Reihenfolge) die Startzeile, die Endzeile, das Startbildelement, das ΔBildelement und das ΔΔBildelement. Sowohl Objekt- als auch QPF-Listen in dem Prozessorspeicher 12 müssen zumindest einen Gegenstand enthalten, da es keine Bereitstellung für eine Null-Liste gibt.
- Die Datentypen der unterschiedlichen Objekte und QPF- Komponenten sind angezeigt, und ihre genauen Formate sind in Fig. 11 und 12 gezeigt. Zusätzlich zu den Bilddaten enthalten einige der Objekte und QPF-Komponenten Prüfbits und Beendigungsbits.
- Prüfbits besetzten das oberste Bit der vier Skalenfaktoren (LScale, PScale, ΔPScale, ΔΔPScale) in einer Objektbeschreibung und die Startzeile-Komponente einer QPF- Beschreibung. In der Objektliste muß das Prüfbit auf null gesetzt sein. In dem Startzeilen-Feld muß das Prüfbit gleich dem Vorzeichenbit sein. Wenn eines dieser Bits inkorrekt ist, wird der RTO-Prozessor 13 dieses erfassen und die Bilderzeugung abbrechen.
- Das unterste Bit des *Qlist(tief)-Wortes jedes Objekts wird als Beendigungsmarkierung für die Objektliste verwendet. Dieses Bit wird nur für das letzte Objekt in der Liste auf 1 gesetzt. Das oberste Bit des Endzeilenwortes jedes QPFs wird als Beendigungsmarkierung für die QPF-Liste verwendet. Für alle QPFs außer dem letzten muß es dasselbe wie das Endzeilen-Vorzeichenbit sein. Für das letzte QPF muß es das Gegenteil des Vorzeichenbits sein.
- Die durch Fig. 10, 11 und 12 bereitgestellten Formatierungen erlauben dem RTO-Prozessor 13, QPFs für ein Bild erfolgreich zu lesen und diejenigen in der vorverarbeitenden Pipeline 22 zu manipulieren. Nach dem Vorverarbeiten ist es für die QPFs notwendig, im dem Speicher 14 gespeichert zu werden, wodurch unter Verwendung der Speicherschnittstelle 27 der Fig. 9 ein Zugriff erhalten wird.
- Der QPF-Speicher 14 ist auf die in Fig. 13 gezeigte Weise organisiert. Fig. 13 zeigt eine Bank 33 des QPF-Speichers 14 und zeigt, ob mehr als eine Bank verwendet wird, wobei jede Bank auf eine identische Art organisiert ist. Die Bank 33 ist in vier Bereiche geteilt, die eine Zeilentabelle 34 und eine Bildelementtabelle 35, eine Bittabelle 36 und einen QPF-Bereich 37 aufweisen. Die Zeilentabelle 34, die ein Wort für jede Zeile der Anzeige aufweist, wird zur Speicherung des Starts der Zeilenzeiger verwendet und besetzt immer den untersten Teil des QPF- Speichers 14. Die Bildelementtabelle 35 ist ein temporärer Speicherbereich, der zur Sortierung von Bildelementen verwendet wird, die von der Sortiereinheit 28 durchgeführt wird. Der Basisort wird durch ein Register PTBA gesetzt, und die Größe ist ein Wort für jedes in einer Zeile angezeigte Bildelement plus zwei zusätzliche Worte. Die Bittabelle 36 ist ein weiterer, temporärer Speicherbereich, der bei der Bildelementsortierung verwendet wird. Der Basisort wird von einem Register PTBA gesetzt, und die Größe der Bittabelle 36 ist die Größe der Bildelementtabelle 35 geteilt durch 32 und auf das nächste, ganze Wort aufgerundet. Der QPF-Bereich 37 enthält alle QPF-Daten. Dieser besetzt immer den obersten Teil des QPF-Speichers 14, in dem die unterste Adresse von einem Register QRBA gesetzt wird, während die oberste Adresse, die auch die oberste Adresse der Bank 33 ist, von einem Register MBTA gesetzt wird.
- Das Format der in der Speicherbank 33 gespeicherten QPF- Komponenten ist in Fig. 14 gezeigt. In der vorverarbeitenden Pipeline 22 sind die Objektskala und Offsetfaktoren auf jedes QPF angewendet worden, woraus Bildelement-, ΔBildelement- und ΔΔBildelement-Werte resultieren, die einen größeren Bereich und/oder größere Präzision im Vergleich zu den Originalformaten in dem Prozessorspeicher 12 aufweisen. Auch das Objektniveau, Effekte und Identifizierungsbits wurden vereinigt und mit jedem QPF gespeichert. Das Startzeilenfeld muß nicht mehr mit dem QPF gespeichert werden, da die QPF-Listen auf der Startzeile basieren. Es gibt keine Prüfbits und das Ende jeder verknüpften Liste ist durch einen Nullzeiger angezeigt.
- Dieser Aufbau ist in Fig. 13 gezeigt, in der zwei verknüpfte Listen für Linien null und eins des Bildes in dem QPF-Bereich 37 gezeigt sind. Die verknüpfte Liste für Linie null beginnt mit einem QPF 40, das auf ein QPF 41 zeigt, das in Folge auf ein QPF 42 am Ende der Liste zeigt. Die verknüpfte Liste für Linie 1 des Bildes beginnt mit einem QPF 43, der auf ein End-QPF 44 zeigt.
- Die tatsächliche Ausbildung und Berechnung von QPF-Daten kann nun beispielhaft unter Verwendung eines einfachen Objekts beschrieben werden.
- Fig. 15 zeigt ein Objekt mit der Form des Buchstabens "B". Dieses Objekt kann durch QPFs auf die in Fig. 16 gezeigte Weise dargestellt werden.
- Fig. 17 zeigt ein Bezier-Objekt für den Buchstaben "B", das unter Verwendung des in der veröffentlichten Australischen Patentanmeldung AU-A-38239/93 offenbarten Verfahrens in ein QPF-Objekt umgewandelt werden kann.
- In Fig. 18 ist eine spezielle Bezier-Kurve des Objekts in Fig. 17 in einem 4-Punkt-Format gezeigt. Diese wird in zwei QPFs umgewandelt, wie es in Fig. 19 gezeigt ist.
Claims (14)
1. Rechnergesteuertes objektbasiertes Graphikgerät mit
einer Renderingeinrichtung (13, 14) zur Verarbeitung von
den Umriß eines Graphikobjekts definierenden Signalen auf
einer Abtastzeilenbasis, um Daten zu erzeugen, die beim
Anzeigen eines Bildes des Objekts verwendet werden,
dadurch gekennzeichnet, daß
die Renderingeinrichtung (13, 14) angeordnet ist, den
Umriß als Vielzahl von Kurvenfragmenten zu verarbeiten,
wobei jedes Kurvenfragment durch ein quadratisches
Polynom mit einer Konstanten Änderungsrate der Steigung
hinsichtlich einer fixierten Abtastrichtung der
Renderingeinrichtung definiert ist.
2. Gerät nach Anspruch 1, wobei die Renderingeinrichtung
angeordnet ist, die Kurvenfragmente zu verarbeiten, um
Daten zur Verwendung in einer gerasterten Anzeige des
Bildes auf einer Anzeigevorrichtung (16) mit einer
Vielzahl von Abtastzeilen zu erzeugen, auf denen jeweils
eine Vielzahl von Bildelementen reproduzierbar sind, und
wobei die Renderingeinrichtung (13, 14, 15) angeordnet
ist, jede nachfolgende Kreuzung zwischen dem Umriß und
einer der Abtastzeilen unter Verwendung zweier
mathematischer Operationen zu berechnen, wenn eine erste Kreuzung
zwischen dem Umriß und einer der Abtastzeilen bekannt
ist.
3. Gerät nach Anspruch 2, wobei die mathematischen
Operationen Additionen aufweisen.
4. Gerät nach Anspruch 3, wobei jedes Kurvenfragment
durch einen Anfangsbildelement-Ortswert, Start-
Bildelement, einen Steigungswert in der fixierten
Abtastrichtung der Renderingeinrichtung, ΔBildelement, einen
Steigungsveränderungswert, ΔΔBildelement, einen
Anfangsabtastzeilenwert, Startzeile, und einen
Endabtastzeilenwert, Endzeile, definiert ist, und wobei die
Renderingeinrichtung angeordnet ist, den Bildelementort eines
Kurvenfragmentes auf jeder Abtastzeile, Zeile n+1, eines
gerasterten Bildes durch eine Berechnung zu bestimmen:
Bildelement (Zeile n+1) = Bildelement (Zeile n) +
ΔBildelement (Zeile)
ΔBildelement (Zeile n+1) = ΔBildelement (Zeile n) +
ΔΔBildelement,
mit
Bildelement (Zeile n = Startzeile) = Startbildelement, und
ΔBildelement (Zeile n = Startzeile) = ΔBildelement.
5. Gerät nach einem der vorstehenden Ansprüche, wobei die
Renderingeinrichtung angeordnet ist, jedes Kurvenfragment
gemäß einem Skalierungsfaktor, einem Translationsfaktor,
oder einem Skalierungsfaktor und einem Translationsfaktor
zu verarbeiten.
6. Gerät nach einem der vorstehenden Ansprüche, wobei die
Renderingeinrichtung angeordnet ist, jedes Kurvenfragment
gemäß einem Farbniveauwert und Versatzinformationen zu
verarbeiten.
7. Gerät nach einem der vorstehenden Ansprüche, das
ferner eine Anzeigevorrichtung (16) zum Anzeigen eines
Bildes des Objektes unter Verwendung der Daten von der
Renderingeinrichtung aufweist.
8. Verfahren zur objektbasierten Graphikbildverarbeitung
mit dem Schritt eines Verarbeitens von den Umriß eines
Graphikobjektes definierenden Signalen auf einer
Abtastzeilenbasis, um Daten zur Verwendung beim Anzeigen
eines Bildes des Objektes zu erzeugen,
dadurch gekennzeichnet, daß
der Umriß als Vielzahl von Kurvenfragmenten verarbeitet
wird, wobei jedes Kurvenfragment durch ein quadratisches
Polynom mit einer konstanten Änderungsrate der Steigung
hinsichtlich einer fixierten Abtastrichtung definiert
ist.
9. Verfahren nach Anspruch 8, wobei die Kurvenfragmente
verarbeitet werden, um Daten zur Verwendung in einer
gerasterten Anzeige des Bildes auf einer
Anzeigevorrichtung (16) mit einer Vielzahl von Abtastzeilen zu
erzeugen, auf denen jeweils ein Vielzahl von Bildelementen
reproduzierbar sind, und wobei jede nachfolgende Kreuzung
zwischen dem Umriß und einer der Abtastzeilen unter
Verwendung zweier mathematischer Operationen berechnet
wird, wenn eine erste Kreuzung zwischen dem Umriß und
einer der Abtastzeilen bekannt ist.
10. Verfahren nach Anspruch 9, wobei die mathematischen
Operationen Additionen aufweisen.
11. Verfahren nach Anspruch 10, wobei jedes
Kurvenfragment durch einen Anfangsbildelement-Ortswert, Start-
Bildelement, einen Steigungswert in der fixierten
Abtastrichtung, ΔBildelement, einen
Steigungsveränderungswert, ΔΔBildelement, einen Anfangsabtastzeilenwert,
Anfangszeile, und einen Endabtastzeilenwert, Endzeile,
definiert ist, und wobei der Bildelementort eines
Kurvenfragmentes auf jeder Abtastzeile, Zeile n+1, eines
gerasterten Bildes durch eine Berechnung bestimmt wird:
Bildelement (Zeile n+1) = Bildelement (Zeile n) +
ΔBildelement (Zeilen)
ΔBildelement (Zeile n+1) = ΔBildelement (Zeile n) +
ΔΔBildelement,
mit
Bildelement (Zeile n = Startzeile) = Startbildelement, und
ΔBildelement (Zeile n = Startzeile) ΔBildelement.
12. Verfahren nach einem der Ansprüche 8 bis 11, wobei
jedes Kurvenfragment gemäß einem Skalierungsfaktor, einem
Translationsfaktor, oder einem Skalierungsfaktor und
einem Translationsfaktor verarbeitet wird.
13. Verfahren nach einem der Ansprüche 8 bis 12, wobei
jedes Kurvenfragment gemäß einem Farbniveauwert und
Versatzinformationen verarbeitet wird.
14. Verfahren nach einem der Ansprüche 8 bis 13, das
ferner den Schritt eines Anzeigens eines Bildes des
Objektes unter Verwendung der erzeugten Daten aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPL215092 | 1992-04-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69325739D1 DE69325739D1 (de) | 1999-09-02 |
DE69325739T2 true DE69325739T2 (de) | 1999-12-23 |
Family
ID=3776126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69325739T Expired - Lifetime DE69325739T2 (de) | 1992-04-29 | 1993-04-28 | Grafisches System mit Anwendung von quadratischen Polynomelementen |
Country Status (6)
Country | Link |
---|---|
US (1) | US6124863A (de) |
EP (1) | EP0568360B1 (de) |
JP (1) | JPH06203169A (de) |
DE (1) | DE69325739T2 (de) |
HK (1) | HK1013694A1 (de) |
SG (1) | SG49154A1 (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4244462A1 (de) * | 1992-12-24 | 1994-06-30 | Equicon Software Gmbh Jena | Verfahren zur Generierung von ebenen technischen Kurven oder Konturen |
JP4343344B2 (ja) | 1998-09-11 | 2009-10-14 | キヤノン株式会社 | ラスタ形式のグラフィックオブジェクトを用いたイメージの高速レンダリング方法 |
JP3966832B2 (ja) | 2003-04-28 | 2007-08-29 | 株式会社東芝 | 描画処理装置、及び、描画処理方法 |
AU2005200948B2 (en) * | 2004-03-09 | 2008-03-06 | Canon Kabushiki Kaisha | Compositing list caching for a raster image processor |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949281A (en) * | 1987-04-23 | 1990-08-14 | H. Berthold Ag | Method and apparatus for generating and producing two-dimensional graphic object by polynominal parametric curves |
JP2790815B2 (ja) * | 1988-08-10 | 1998-08-27 | 株式会社リコー | 画像データ圧縮方法 |
DE4000021A1 (de) * | 1990-01-02 | 1991-07-04 | Computer Applic Technics Ag | Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen |
-
1993
- 1993-04-28 EP EP93303342A patent/EP0568360B1/de not_active Expired - Lifetime
- 1993-04-28 SG SG1996006971A patent/SG49154A1/en unknown
- 1993-04-28 DE DE69325739T patent/DE69325739T2/de not_active Expired - Lifetime
- 1993-04-28 US US08/053,219 patent/US6124863A/en not_active Expired - Lifetime
- 1993-04-28 JP JP5103235A patent/JPH06203169A/ja active Pending
-
1998
- 1998-12-22 HK HK98114912A patent/HK1013694A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE69325739D1 (de) | 1999-09-02 |
HK1013694A1 (en) | 1999-09-03 |
EP0568360A2 (de) | 1993-11-03 |
US6124863A (en) | 2000-09-26 |
SG49154A1 (en) | 1998-05-18 |
EP0568360B1 (de) | 1999-07-28 |
JPH06203169A (ja) | 1994-07-22 |
EP0568360A3 (en) | 1994-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3854543T2 (de) | Prioritätsverwaltung eines Tiefendatenpuffers für Echtzeitrechnersysteme zur Bilderzeugung. | |
DE3855231T2 (de) | Prioritätsauflösungssystem zwischen Polygonen mit Antialiasing | |
DE68919024T2 (de) | Verfahren und Prozessor zur Abtastumsetzung. | |
DE3750784T2 (de) | Generation eines intrapolierten charakteristischen Wertes zur Anzeige. | |
DE69122557T2 (de) | Bilderzeugung | |
DE68927471T2 (de) | Verfahren zur Schattierung eines graphischen Bildes | |
DE69130123T2 (de) | Anzeigegerät und Verfahren zum Betreiben eines solchen Geräts | |
DE3650129T2 (de) | Verfahren zur Kantenglättung für Rechnerbilderzeugungssystem. | |
DE69534331T2 (de) | Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur | |
DE3689271T2 (de) | Verfahren zur Bildanzeige. | |
DE10053439B4 (de) | Grafik-Beschleuniger mit Interpolationsfunktion | |
DE69128731T2 (de) | Schaltungsanordnung für die Konvertierung von pyramidenförmigen Texturkoordinaten und diese enthaltendes Anzeigegerät | |
DE69428491T2 (de) | Bildlinse | |
EP0984397B1 (de) | Verfahren und Vorrichtung zum Eliminieren unerwünschter Stufungen an Kanten bei Bilddarstellungen im Zeilenraster | |
DE69413035T2 (de) | Antialiasing-verfahren und -vorrichtung mit automatischer justierung von horizontalen und vertikalen rändern an einem zielgitter | |
DE3315148C2 (de) | ||
DE19917092A1 (de) | Verfahren zur Rasterisierung eines Graphikgrundelements | |
DE102005050846A1 (de) | Perspektiveneditierwerkzeuge für 2-D Bilder | |
DE69330900T2 (de) | Verfahren zum Ausfüllen der Bildpunkte innerhalb eines Polygons | |
DE3518416A1 (de) | Speicher- und prozessorsystem mit schnellem zugriff zur rasteranzeige | |
DE19619288A1 (de) | System und Verfahren zur Dreieck-Rasterung mit in zwei Dimensionen verschachtelten Rahmenpuffern | |
DE69329940T2 (de) | Grafisches System | |
DE69606177T2 (de) | Verfahren und gerät zur texturabbildung | |
DE60122333T2 (de) | Verfahren und System zur kachelweisen Bildwiedergabe | |
EP0862141A2 (de) | Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: CANON INFORMATION SYSTEMS RESEARCH AUSTRALIA PTY. |