DE3815374C2 - Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung von rationalen kubischen Funktionen für die Bilderzeugung auf einem Sichtgerät und Anordnung zur Durchführung des Verfahrens - Google Patents

Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung von rationalen kubischen Funktionen für die Bilderzeugung auf einem Sichtgerät und Anordnung zur Durchführung des Verfahrens

Info

Publication number
DE3815374C2
DE3815374C2 DE3815374A DE3815374A DE3815374C2 DE 3815374 C2 DE3815374 C2 DE 3815374C2 DE 3815374 A DE3815374 A DE 3815374A DE 3815374 A DE3815374 A DE 3815374A DE 3815374 C2 DE3815374 C2 DE 3815374C2
Authority
DE
Germany
Prior art keywords
coordinate
value
register
reciprocal
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 - Fee Related
Application number
DE3815374A
Other languages
English (en)
Other versions
DE3815374A1 (de
Inventor
Sheue-Ling Lien
Jerald R Evans
Susan E Carrie
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE3815374A1 publication Critical patent/DE3815374A1/de
Application granted granted Critical
Publication of DE3815374C2 publication Critical patent/DE3815374C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/035Reduction of table size
    • G06F1/0356Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2101/00Indexing scheme relating to the type of digital function generated
    • G06F2101/12Reciprocal functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5354Using table lookup, e.g. for digit selection in division by digit recurrence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5356Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Image Generation (AREA)

Description

Die Erfindung bezieht sich auch ein Verfahren nach dem Ober­ begriff des Patentanspruchs 1 sowie auf eine Anordnung zur Durchfüh­ rung dieses Verfahrens.
Bei vielen Computersystemen ist es üblich, einem Benutzer Informationen durch digitale Bilder darzustellen und zu übertragen. Diese Bilder können viele Formen annehmen, beispielsweise alphanumerische Zeichen, kartesische Graphiken und andere Bilddarstellungen. Bei vielen Anwendungen werden die digitalen Bilder auf einem Display, z. B. einem Rasterabtast- Videomonitor, einem Drucker o. dgl. an einen Benutzer übermittelt. Typischerweise werden die wiederzugebenden Bilder in digitaler Form gespeichert, verarbeitet und danach zur Anzeige gebracht.
Parametrische Kurven und gekrümmte Flächen sind gewöhnliche Funktionen, die bei der Computererzeugung von Flächen und Ob­ jekten auf einem Display beispielsweise bei mechanischen compu­ tergestützten Konstruktionsarbeiten ("CAD") benutzt werden. Seitdem Hochgeschwindigkeitshardware bekannt ist, die Vektoren und Polygone zu erzeugen vermag, erfolgt die Hochgeschwindig­ keitserzeugung von gekrümmten Linien und Flächen gewöhnlich durch deren Unterteilen und Abbilden auf einer CRT als Vielzahl von geraden Linien oder ebenen Polygonen. (Zur Erzielung eines besseren Verständnisses der bekannten Methoden zur Erzeugung von Kurven und/oder Oberflächen wird verwiesen auf: Bishop, G. und Weimer, D., "Fast Phong Shading", Seiten 103 bis 106, in Computer Graphics, Band 20, Nr. 4, August 1986; Foley, J.D. und Van Dam, A., 1983 in Fundamentals of Interactive Computer Graphics, Addison Wesley, Reading, MA.; Gouraud, H., Juni 1971 "Continuous Shading of Curved Surfaces" in IEEE Transactions on Computers, Band 20, Nr. 6, Seiten 623-628; Swanson, R. und Thayer, L. "A Fast Shaded-Polygon Renderer" in Computer Graphics, Band 20, Nr. 4, Seiten 95-101, August 1986).
Bei der Erzeugung bzw. Abbildung von Kurven und Flächen höherer Ordnung verwenden bekannte Systeme jedoch rekursive Un­ terteilungsmethoden, deren Implementierung in Computerhardware wegen der Hochgeschwindigkeitsstapelspeicheranforderung teuer ist.
Aufgabe der Erfindung ist es, ein Verfahren der angegebenen Art zur Erzeugung von Kurven und gekrümmten Flächen höherer Ordnung auf einem Sichtgerät sowie eine Anordnung zur Durchführung des Verfahrens zu schaffen, das bzw. die mit einfachen Mitteln schnell, genau und effizient arbeitet, wobei insbesondere auf die bei herkömm­ lichen rekursiven Unterteilungsmethoden erforderlichen aufwen­ digen Speicherschaltungen verzichtet werden kann.
Diese Aufgabe wird erfindungsgemäß gelöst durch die Merkmale des Anspruchs 1 bzw. 7.
Die Erfindung verwendet eine adaptive Vorwärtsdifferenz ("AFD")-Methode, welche die mit dem Stande der Technik verbundenen Probleme überwindet und nur relativ einfache und preiswerte Schaltungen unter Verwendung gewöhnlicher Vorwärtsdiffe­ renzbildung (forward differencing) benötigt (Bewegung entlang einer parametrischen Kurve oder Fläche mit konstanten Parameter­ schritten), sowie eine neue adaptive Methode, die überlegen ist den bekannten adaptiven Unterteilungsmethoden der rekursiven Unterteilung des Objekts bis hin zu Teilen, die kleiner als ein Pixel (Bildelement) sind. Die Erfindung paßt das Vorwärtspara­ meterdifferenzinkrement derart an, daß das Verrücken entlang der Kurve oder Fläche bei einer Schrittgröße (d. h. einer Di­ stanz zwischen dem zuvor gezeichneten Pixelort und dem gegenwärtigen Pixelort der zu erzeugenden Kurve oder Fläche) erfolgt, die angenähert gleich dem Abstand zwischen zwei benachbarten Pixeln ist (im folgenden als ein "Einzelpixel"- oder "Ein-Pixel-Inkrement" bezeichnet). Diese Anpassung wird durchgeführt durch Transformieren der Gleichung der Kurve in eine identische Kurve mit anderer Parameterisierung derart, daß die Schrittgröße erhöht oder vermindert wird, so daß die Kurve im wesentlichen in einheitlichen Inkrementen von einem Pixel zum nächsten fortschreitet. AFD unterscheidet sich von den bekannten rekursiven Unterteilungsmethoden zur Erzeugung von Kurven dadurch, daß sie keine Manipulation der komplizierten bekannten Stapelspeicherschaltung bedingt und daher einfacher und effizienter ist. Außerdem ist die Erzeugung (rende­ ring) der Kurve, der gekrümmten Fläche oder des Objekts bei der Erfindung genauer als bei der Erzeugung mit einer bekann­ ten, üblicherweise verwendeten Vorwärtsdifferenzbildungsme­ thode mit stückweise geradliniger oder planarer Polygonappro­ ximation.
Die Erfindung überwindet die Schwierigkeiten und Nachteile bekannter Methoden durch ein adaptives Vorwärtsdifferenzbil­ dungsgerät zur Erzeugung einer Kurve auf einem Display (bei­ spielsweise einer CRT) durch Betätigung von Displayelementen, welche die Kurve definieren. Das erfindungsgemäße Gerät ent­ hält eine Einrichtung zur Aufnahme einer Vielzahl von für die Displayelemente repräsentativen Datenpunkten, welche die Bil­ der definieren, und ein Mittel zum inkrementellen Erzeugen der Kurve in praktisch einheitlichen Einzelpixel-Schritten.
Das Mittel zum inkrementellen Erzeugen des Bildes in praktisch einheitlichen Einzelpixel-Schritten weist X, Y, Z und W adap­ tive Vorwärtsdifferenzbildungseinheit(AFDU)-Schaltungen zur Berechnung von x, y, z und w für einen Punkt in homogenen Koordinaten auf. Die W-AFDU-Schaltung ist mit einer 1/w-Schal­ tung gekoppelt, welche den Reziprokwert 1/w der homogenen Koordinate w erzeugt. Das Ausgangssignal der 1/w-Schaltung wird mit den x, y, z-Koordinaten multipliziert, um die ratio­ nalen Kuben x/w, y/w und z/w zu gewinnen. Die AFDU-Schaltungen sind außerdem mit einer Pixel-Filterschaltung gekoppelt, die im Zusammenwirken mit den AFDU-Schaltungen die erfindungsge­ mäße AFD-Methode implementiert, indem die x, y, z und w-kubi­ schen Funktionen derart reparameterisiert werden, daß eine Kurve in praktisch gleichmäßigen ein-Pixel-großen Inkrementen erzeugt wird.
Die Pixel-Filterschaltung nach der Erfindung vergleicht den aktuellen Pixelort mit dem vorhergehenden Pixelort, berechnet von den AFDU-Schaltungen, und befiehlt dann, wenn der aktuelle x, y-Pixelort der Displayeinrichtung mehr als ein Ein-Pixel- Inkrement von dem zuvor definierten x, y-Pixelort entfernt ist, den X, Y, Z und W-AFDU-Schaltungen, die Schrittlänge bei der zu erzeugenden Kurve zu reduzieren.
Wenn die berechneten x und y-Inkremente der gerade erzeugten Kurve kleiner als ein vorgegebener Teil (d. h. 0,5 Pixel) sind, befiehlt das Pixelfilter den X, Y, Z und W-AFDU-Schaltungen, die Schrittweite der zu erzeugenden Kurve zu vergrößern.
Bei der Vektorerzeugung implementiert die AFDU-Schaltung nach der Erfindung den Bresenham-Algorithmus unter Verwendung einer Vielzahl derselben Schaltungskomponenten, wie sie bei der adaptiven, Vorwärtsdifferenzmethode verwendet werden. In Wei­ terbildung der Erfindung sind auch eine Einrichtung zum Defi­ nieren von Abschneidezonen (clipping regions) auf einem CRT-Display, eine Einrichtung zum Abbilden von imaginären Struktu­ ren (imagery) auf gekrümmten Flächen und auf Kurven und eine Einrichtung zur Schattenbildung (shading) und Trimmen gekrümm­ ter Flächen vorgesehen. Andere Merkmale und Vorteile der Er­ findung ergeben sich aus der nachfolgenden Figurenbeschrei­ bung.
In der Zeichnung zeigen:
Fig. 1 ein Gesamt-Blockschaltbild zur Erläuterung der Erfindung;
Fig. 2 ein Blockschaltbild der 1/w-Schaltung aus Fig. 1;
Fig. 3 ein detaillierteres Blockschaltbild der X-AFDU-Schal­ tung aus Fig. 1;
Fig. 4 einen Teil der in Fig. 3 dargestellten Schaltung zur Erzeugung von Vektoren;
Fig. 5 ein Ablaufdiagramm, das eine Operationsfolge bei der Schaltung gemäß Fig. 4 veranschaulicht;
Fig. 6 und 6a die Darstellung eines Aspekts der Erfindung, der sich auf die Aktivierung von Pixeln auf einem Display bezieht; und
Fig. 7 eine genauere Ansicht der Pixel-Filterschaltung gemäß Fig. 1.
Beschrieben wird eine Einrichtung und ein Verfahren zur gra­ phischen Wiedergabe von Bildern, deren bevorzugtes Anwendungs­ gebiet in einem Computersystem liegt. Obwohl die Erfindung unter Bezugnahme auf spezielle Schaltungen, Blockschaltbilder, Signale, Algorithmen usw. beschrieben wird, ist es für den Fachmann klar, daß derartige Einzelheiten einfach zur Erleich­ terung des Verständnisses der Erfindung angegeben werden. Es ist daher für den Fachmann klar, daß die Erfindung auch ohne diese besonderen Einzelheiten realisiert werden kann. In ande­ ren Fällen werden bekannte Schaltungen nur in Form eines Blockschaltbildes gezeigt, um die Beschreibung der Erfindung nicht mit unnötigen Einzelheiten zu belasten.
In der Fig. 1 ist ein Gesamtblockschaltbild zur Erläuterung der Erfindung gezeigt. Um Bilder auf einem CRT-Display oder einer anderen Wiedergabeeinrichtung zu definieren, ist es notwendig, die Daten mit hoher Geschwindigkeit zu bearbeiten, um diejenigen Pixel eines CRT-Displays auszuwählen, welche die Kurve, ge­ krümmte Fläche, den Vektor oder das wiederzugebende Bild defi­ nieren. Es ist bekannt, daß der Ort jedes auf einer CRT wie­ derzugebenden Punktes häufig durch in einer Speichervorrich­ tung gespeicherte Digitalwerte dargestellt wird, die x, y, z und w homogenen Koordinaten entsprechen.
Die Koeffizienten der Gleichungen, welche die von der Schal­ tung gemäß Fig. 1 zu erzeugenden Kurven beschreiben, werden von einer CPU 9 berechnet und zugeführt und zu den W, X, Y und Z adaptiven Vorwärtsdifferenzbildungsein­ heit("AFDU")-Schaltungen 10, 12, 14 und 16 übertragen, die jeweils x, y, w und z-Koordinaten für jedes auf dem Display zu zeichnende Pixel ausgeben. Die von der W-AFDU-Schaltung 10 ausgegebene w-Koordinate wird zu einer 1/w-Schaltung 18 über­ tragen, die ihrerseits den aktuellen Wert von 1/w ausgibt. Die x, y und z-Koordinaten werden durch die homogene Koordinate w geteilt (d. h. mit dem aktuellen 1/w-Wert multipliziert, um das Verhältnis von zwei kubischen Funktionen zu gewinnen), und zwar von der 1/w-Schaltung 18 und den drei Multiplizierern 20, 22 und 24.
Genauer gesagt, gibt die X-AFDU-Schaltung 12 die aktuelle x-Koordinate an einen Multiplizierer 20 aus, in welchem sie mit dem entsprechenden 1/w-Wert multipliziert wird, der von der 1/w-Schaltung 18 geliefert wird, so daß ein aktueller x/w-Wert an das Pixelfilter 30 angelegt wird. In ähnlicher Weise werden y/w und z/w jeweils von den W, Y und Z-AFDU-Schal­ tungen 10, 14 und 16, der 1/w-Schaltung 18 und den Multi­ plizierern 22 und 24 dem Pixelfilter 30 zugeführt. Auf diese Weise werden x, y und z-Koordinaten der rationalen kubischen Funktionen dem Pixelfilter 30 eingegeben und zur Auswahl der die Bilder der rationalen kubischen Funktionen auf einer CRT definierenden Pixel verwendet.
Das Pixelfilter 30 der Fig. 1 vergleicht die aktuellen x, y und z-Pixelkoordinaten, welche ihm von den Multiplizierern 20, 22 und 24 zugeführt werden, mit den x, y und z-Pixelkoordina­ ten, welche dem Pixelfilter 30 einen Taktzyklus zuvor zuge­ führt wurden, und befiehlt den W, X, Y und Z-AFDU-Schaltungen ein "Hochstellen" (d. h. Vorrücken der Kurve oder gekrümmten Fläche in größeren Inkrementen) durch Multiplizierung des Parameters t mit zwei, oder eine "Herunterjustierung" (d. h. ein Vorrücken der Kurve oder gekrümmten Fläche in kleineren Inkrementen) durch Division des Parameters t durch zwei, oder ein "Vorrücken" zum nächsten Pixel derart, daß die x, y und Z-Koordinaten, die vom Pixelfilter ausgegeben werden, auf der Kurve, die auf der CRT wiederzugeben ist, im wesentlichen mit Einzel-Pixel-Inkrementen vorrücken. Diese Einstellmethode wird weiter unten genauer beschrieben.
Das Pixelfilter 30 bestimmt und ersetzt auch "Ellenbogen" (wobei ein Kurvenabschnitt mit beispielsweise den Koordinaten (x₀, y₀), (x₀, y₁) und (x₁, y₁) (siehe Fig. 6), durch einen Kurvenabschnitt mit den Koordinaten (x₀, y₀) und (x₁, y₁) ersetzt wird (siehe Fig. 6a). Dies geschieht zur Verbesserung des Erscheinungsbildes der erzeugten Kurve durch Eliminierung der Eckpixel (d. h. Pixel x₀, y₁ in Fig. 6).
Das Pixelfilter 30 ist an Ausgängen 33, 35 und 37 mit einem in der Zeichnung nicht gezeigten Rahmenpuffer gekoppelt, der seinerseits mit einem CRT-Display (ebenfalls nicht gezeigt) oder einem anderen geeigneten Displaygerät gekoppelt ist, um Bilder zu definieren durch Aktivierung oder Schreiben eines Farbwerts an denjenigen Pixeln, die von den Pixelkoordinaten, ausgegeben vom Pixelfilter 30 an Ausgängen 33, 35 und 37, definiert sind.
Ein Bogenlängen-Ausgang 31 des Pixelfilters 30 ist mit einem Zeichnungsabschnitt 150 (nicht gezeigt) gekoppelt, der Pixel entsprechend dem vom Pixelfilter 30 am Ausgang 31 ausgegebenen Bogenlängen bezeichnet. Der Bogenlängenwert dient zum Zeichnen von strukturierten (textured), beispielsweise gestrichelten, gepunkteten usw. Linien und Flächen. Das Zeichnen von gestri­ chelten Linien und Oberflächen bildet jedoch keinen wesentli­ chen Teil der hier beschriebenen und beanspruchten Erfindung, so daß eine genauere Erläuterung hierzu nicht erforderlich ist.
In Fig. 2 ist eine ausführlichere Ansicht der 1/w-Schaltung 18 aus Fig. 1 gezeigt. Die 1/w-Schaltung 18 gemäß Fig. 1 hat gegenüber bekannten Schaltungen zur Gewinnung des Reziprok­ werts von w den Vorteil, daß sie den Reziprokwert von w ra­ scher, mit weniger Berechnungsschritten und geringerer Latenz als vergleichbare bekannte Schaltungen ergibt.
Bekannte 1/w-Schaltungen verwenden in typischer Ausführung einen Newton-Iterationsalgorithmus unter Verwendung einer einzigen Nachschlagetabelle für die Anfangsapproximation des Reziprokwerts von w. Diese früheren Methoden bedingten eine große Multiplizierschaltung und benötigten einige Taktzyklen zur Gewinnung eines Ergebnisses. In direktem Gegensatz hierzu bedingt die Erfindung nur einen Taktzyklus für die Iterations­ berechnung, wodurch die Latenz im Vergleich zu bekannten Me­ thoden wesentlich verringert wird (zu bekannten Methoden zur Teilung mittels Divisor-Reziprokbildung wird verwiesen auf: "Computer Arithmetic", Kai Hwang, Seiten 259-264, Johny Wiley & Sons, New York, N.Y., 1979). Um die oben beschriebenen über­ legenen Ergebnisse zu erzielen, benutzt die Erfindung eine abgebrochene Taylorreihenannäherung unter Verwendung von zwei kleinen Nachschlagetabellen 76 und 78 (d. h. bei dem bevorzug­ ten Ausführungsbeispiel hat Tabelle 76 8K Eingänge und 20 Bit Ausgang, während Tabelle 78 8 Bit Ausgang 8k Eingänge und kleinere Rechenhardware zum Implementieren derselben hat, um eine Approximation von 1/w zu gewinnen, und zwar ohne die kostspieligen, langsameren Rechenvorgänge, wie sie beim Stande der Technik erforderlich sind).
Bekanntlich dient die Taylor-Reihen-Approximation zur Ablei­ tung des Reziprokwerts der homogenen Koordinate w. Nach der Taylor-Reihen-Approximation gilt:
1/w ≈ (1/w₀) [1-d/w₀+(d/w₀²)-(d/w₀)³+(d/w₀)⁴+(d/w₀)⁵ . . . ]
wobei w₀ eine vorgegebene Größe der am höchsten bewerteten Bits des w-Werts und d eine vorgegebene Größe der am niedrig­ stens bewerteten Bits des w-Werts darstellen. Es wurde festge­ stellt, daß der Abbruch der oben aufgeführten Taylor-Reihen- Approximation nach nur den ersten beiden Termen (d. h. 1/w₀-d (1/w₀²) einen 1/w-Wert ergibt, der zum Zwecke der Gewin­ nung der rationalen kubischen Funktionen x/w, y/w und z/w zur Erzeugung von Bildern ausreichend genau ist.
Der von W AFDU-Schaltung 10 ausgegebene w-Wert enthält bei dem beschriebenen Ausführungsbeispiel der Erfindung 21 Bits. Die 13 am höchsten bewerteten Bits (hier als "w₀" bezeichnet) dieses 21-Bit-Werts werden den Nachschlagetabellen 76 und 78 zugeführt. Die Nachschlagetabelle 76 gibt den Reziprokwert (1/w₀) des 13-Bit-Werts aus, der in das Register 80 eingege­ ben wurde. In ähnlicher Weise gibt die Nachschlagetabelle 78 einen (1/w₀)²-Wert entsprechend den 13 am höchsten bewer­ teten eingegebenen Bits an das Register 82 aus. Die 8 am nie­ drigsten bewerteten Bits des 21-Bit-w-Werts werden einem 8-Bit Verzögerungsregister 84 zugeführt. Letzteres verzögert ledig­ lich die 8 am niedrigsten bewerteten Bits über eine Zeit, die ausreicht, um die Ausgabe von (1/w₀)² durch das Register 82 zu ermöglichen, so daß der Multiplizierer 87 die 8 am nie­ drigsten bewerteten Bits (hier als "d" bezeichnet) mit dem Inhalt des Registers 82 multipliziert und d(1/w₀)² an eine Subtraktionseinrichtung 89 ausgibt, wo d(1/w₀)² von (1/w₀) subtrahiert wird, um am Register 90 1/w₀-d(1/w₀)² zu erzeugen. Wie oben gesagt, ist 1/w₀-d(1/w₀)² ≈ 1/w. Register 90 gibt seinerseits den Wert 1/w an die Multiplizierer 20, 22 und 24 aus, wie zuvor unter Bezugnahme auf Fig. 1 erläutert wurde. Verzögerungs­ schaltungen 13, 11 und 15 sind vorhanden, um sicherzustellen, daß die x, y und z-Koordinaten, die jeweils von den X, Y und Z-AFDU-Schaltungen 12, 13 bzw. 16 ausgegeben werden, an den Multiplizierern 20, 22 und 24 im wesentlichen gleichzeitig mit dem berechneten entsprechenden 1/w-Wert ankommen, der vom Register 90 ausgegeben wird.
Der Multiplizierer 87 ist ein 8 Bit mal 8 Bit-Multiplizierer. (1/w₀)² und d sind 8 Bit Terme und werden daher zur Sub­ traktionseinrichtung 89 und damit zum Register 90 in nur einem Taktzyklus übertragen.
Es wurde gefunden, daß der Fehler bei der oben beschriebenen Approximation von 1/w am größten ist, wenn w₀ klein und d groß ist (unter der Annahme, daß w stets positiv ist). Insbe­ sondere ist der Fehler über das w-Intervall von 0,25 bis 1,0 am größten, wenn w=0,25 und wenn d auf dem Maximalwert ist.
Der bei der Berechnung einer Annäherung von 1/w gefundene Fehler kann dadurch reduziert werden, daß man gewisse Werte, die durch die folgenden Gleichungen beschrieben sind, in Nach­ schlagetabellen 76 und 78 speichert. Diese Werte sind:
für Nachschlagetabelle 76:
1/w₀-[0,5/(w₀+dmax)+0,5/w₀-[w₀(w₀+dmax)]² (-1/2)];
und für Nachschlagtabelle 78:
(1/(w₀+dmax) 1/w₀)/[w₀+dmax)-w₀]=-1/w₀ (w₀+dmax).
Hierbei ist dmax die Differenz zwischen einem Wert von w₀ und dem nächstgrößten Wert von w₀.
Da es außerdem nicht erwünscht ist, 1/w für w-Werte zu berech­ nen, wenn die beiden am höchsten bewerteten Bits 00 sind, wird ein Teil der Speicherkapazität jeder Nachschlagetabelle nicht gebraucht. Auch in der Praxis wurde gefunden, daß der Fehler größer wird, wenn die am höchsten bewerteten beiden Bits "01" sind.
Wenn das am höchsten bewertete Bit von w "1" ist, wird die zuerst beschriebene Methode zum Ableiten einer Approximation von 1/w verwendet.
Umgekehrt, wenn die beiden am höchsten bewerteten Bits von w "01" sind, ist diejenige Adresse, welche zu den beiden Nach­ schlagetabellen geschickt wird, die Verkettung des höchsten Bits von w und des dritthöchsten Bits bis zum vierzehnthöch­ sten Bit von w. Im letzteren Falle werden die sieben am nied­ rigsten bewerteten Bits von w für d verwendet. Diese Technik halbiert das von einer Eingabe in die Nachschlagetabelle abge­ deckte Intervall, wenn die beiden am höchsten bewerteten Bits von w "01" sind. Es leuchtet ein, daß auch der Approximations­ fehler verringert wird, da die Maximalgröße von d reduziert ist.
Aus der obigen Erläuterung wird klar, daß durch Verwendung der beiden Nachschlagetabellen 76 und 78, die 1/w₀ und (1/w₀)² ergeben, und Berechnung dieser Werte zur Erzeugung von 1/w erfindungsgemäß die lange Latenz bewirkenden Berech­ nungen vermieden werden, welche bei den eingangs beschriebenen bekannten Einrichtungen erforderlich waren, wodurch die Ge­ schwindigkeit bei der Berechnung von 1/w erhöht wird. Bei dem bevorzugten Ausführungsbeispiel der 1/w-Schaltung 18 wird ein 1/w-Wert erzeugt, der 20 bewertete Bits hat; es ist jedoch klar, daß mehr oder weniger Bits verwendet werden können, solange die in den Nachschlagetabellen gespeicherten Werte entsprechend eingestellt werden.
In Fig. 3 ist eine detaillierter Ansicht der X-AFDU-Schaltung 12 aus Fig. 1 gezeigt. Y, Z und W-AFDU-Schaltungen 14, 16 und 10 sind schaltungsmäßig identisch mit der X-AFDU-Schaltung 12, so daß die Erläuterung der X-AFDU-Schaltung 12 auch die Schal­ tung und Funktionsweise der Y, Z und W-AFDU-Schaltungen 10, 14 und 16 verständlich machen.
Jede AFDU-Schaltung berechnet eine parametrische kubische Funktion f(t) die dargestellt wird als:
f(t)=aB₃(t)+bB₂(t)+cB₁(t)+dB₀(t) (1).
Für jede x, y, z und w-Koordinate ist die parametrische kubi­ sche Funktion f:
x(t)=axB₃+bxB₂+cxB₁+dxB₀
y(t)=ayB₃+byB₂+cyB₁+dyB₀
z(t)=azB₃+bzB₂+czB₁+dzB₀
w(t)=awB₃+bwB₂+cwB₁+dwB₀.
Die obigen Funktionen B₃(t), B₂(t), B₁(t) und B₀(t) sind Vorwärtsdifferenz-Basisfunktionen, welche sich voneinan­ der unterscheiden, wenn t sich von 0 bis 1 entlang einer Kurve ändert. Die dt-Schritt-Größe für t wird automatisch derart eingestellt, daß die Kurve angenähert in Ein-Pixel-Schritten in der oben beschriebenen Weise inkrementiert. Die 4 Vorwärts­ differenz-Basisfunktionen B₃, B₂, B₁ und B₀ sind unten aufgeführt:
B₁(t)=t (4)
B₀(t)=1 (5).
Die oben genannten kubischen Funktionen x(t), y(t), z(t) und w(t) werden von jeder AFDU-Schaltung getrennt berechnet. Die 4 Koeffizienten a, b, c und d, welche eine kubische Kurve be­ schreiben, werden in die 4 Koeffizientenregister 34, 50, 62 und 72 jeder AFDU-Schaltung bei Initialisierung durch die CPU 9 geladen. Bei jedem Taktzyklus nimmt der Parameter t um dt zu, und die 4 Koeffizienten werden zu a′, b′, c′, d′ aktuali­ siert, während die vier AFDU-Schaltungen 10, 12, 14 und 16 die einem besonderen Pixel auf dem CRT-Display entsprechenden Koordinaten erzeugen.
Wenn die gerade von den X und Y-AFDU-Schaltungen 12 und 14 berechneten x, y-Koordinaten einen Pixelort auf dem CRT-Dis­ play definieren, der um mehr als einen einzigen Pixelschritt vom zuvor definierten Pixel entfernt ist, so befiehlt das Pixelfilter 30 jeder AFDU-Schaltung, dt durch 2 zu teilen (herunterzujustieren), wodurch die x, y-Inkremente reduziert werden, so daß bei jedem Taktzyklus jede AFDU-Schaltung Koor­ dinaten ausgibt, welche Pixel entlang der Kurve im wesentli­ chen entsprechend Einzelpixelinkrementen definieren. Wenn der x,y-Adreßschritt kleiner als 1/2 Pixel-Inkrement entfernt vom zuvor definierten Pixel ist, so wird dt verdoppelt (hochge­ stellt) um die Änderung in den x, y-Koordinaten derart zu erhöhen, daß wieder praktisch um einen Pixel-Schritt bei jedem Taktzyklus inkrementiert wird. Um dt auf die Hälfte zu redu­ zieren, werden die kubischen Funktionen x(t), y(t), z(t) und w(t) wie folgt transformiert:
x′(t)=x(t/2)=a′xB₃+b′xB₂+c′xB₁+d′xB₀
y′(t)=y(t/2)=a′yB₃+b′yB₂+c′yB₁+d′yB₀
z′(t)=z(t/2)=a′zB₃+b′zB₂+c′zB₁+d′zB₀
w′(t)=w(t/2)=a′wB₃+b′wB₂+c′wB₁+d′wB₀.
Die Koeffizienten des transformierten Satzes kubischer Funk­ tionen sind gegeben durch:
a′=a/8
b′=b/4-a/8
c′=c/2-b/8+a/16
d′=d.
Um dt zu verdoppeln, werden die koordinierten kubischen Funk­ tionen transformiert durch:
x′(t)=x(2t)
y′(t)=y(2t)
z′(t)=z(2t)
w′(t)=w(2t).
Im Falle der Verdoppelung von dt benutzt die Erfindung die folgende Koeffiziententransformation:
a′=8a
b′=4b+4a
c′=2c+b
d′=d.
Wenn die aktuelle Schrittgröße, die von AFDU-Schaltungen be­ nutzt wird, richtig ist, (d. h. im wesentlichen ein Ein-Pixel- Inkrement ), so erzeugen die AFDU-Schaltungen Koordinaten entsprechend einem neuen Pixel und rücken vor zu dem Pixel durch Berechnung der folgenden Transformation:
x′(t)=x(t+1)
y′(t)=y(t+1)
z′(t)=z(t+1)
w′(t)=w(t+1).
Die entsprechende Koeffiziententransformation für ein Inkre­ ment eines Pixels ist:
a′=a
b′=b+a
c′=c+b
d′=d+c.
Im folgenden wird auf Fig. 3 erneut Bezug genommen. Um die obigen Transformationen (Hochjustieren, Herunterjustieren oder Vorrücken) zu implementieren, gibt das Pixelfilter 30 Steuer­ signale an Multiplexer 32, 44, 46, 54, 56 und 70. Dadurch wird ein geeigneter Eingang jeweils in Addier/Substrahierschaltun­ gen 45, 58 und 66 ausgewählt. Die Multiplexer selektieren die geeigneten transformierten Werte für die a′, b′, c′ und d′-Ko­ effizienten. Wie gesagt, werden die Werte a, b, c und d an­ fänglich von der CPU 9 in Register 34, 50, 62 und 72 geladen. Neue Koeffizientenwerte entsprechend der gewünschten Pixelstel­ le werden aktualisiert und bei jedem Taktzyklus in Register 34, 50, 62 und 72 geladen. Dadurch wird die parametrische Funktion x(t=axB₃+bxB₂+cxB₁+dxB₀ schrittweise berechnet. Wenn die x, y und w-Koordinaten, die von AFDU-Schal­ tungen 12, 10 und 14 ausgegeben werden, einem Pixelort entsprechen, der mehr als einen Pixelschritt vom zuvor defi­ nierten Pixel entfernt ist, werden die Koeffizienten von a′, b′, c′ und d′ ausgewählt als a′=a/8, b′=b/4-a/8, c′=c/2-b/8+a/16 und d′=d. Der 8a-Eingang zum Multiplexer 32 ist verdrahtet mit einer Linksverschiebung von 3 Bits, um den Wert 8a zur Verwendung in den oben angegebenen Gleichungen zu erzeugen. In ähnlicher Weise wird der Eingang a/8 um drei Bits nach rechts verschoben, um den Wert a/8 zu gewinnen.
Generell erfolgt das Teilen durch oder Multiplizieren mit einer ganzzahligen Potenz von 2 durch eine festverdrahtete Rechts- oder Linksverschiebung. Die Koeffizienten für eine Herunterjustier- bzw. Verkürzungsoperation werden in zwei Taktzyklen wie folgt gewonnen: Erster Taktzyklus, Pixelfilter 30 legt Steuersignale an Bus 51 und bewirkt dadurch, daß Mul­ tiplexer 32 A/8, Multiplexer 4 A/8, Multiplexer 46 B/4, Multi­ plexer 56 0 und Multiplexer 54 C/2 auswählt. Am Ende dieses Taktzyklus ergeben sich A′=A/8, B′=B/4-A/8 und C′=C/2. Während des zweiten Taktzyklus legt das Pixelfilter 30 Steuersignale an Bus 51, wodurch bewirkt wird, daß Multiplexer 32 a, Multi­ plexer 44 0, Multiplexer 46 b, Multiplexer 56 b/2 und Multi­ plexer 54 c wählt. Am Ende dieses Taktzyklus ist das Ergebnis der beiden Taktzyklusoperationen A′=A/8, B′=B/4-A/8, C′=C/2-(B/4-A/8)/2. Addierer/Subtrahierer 45 und 58 sowie Addierer 66 werden vom Pixelfilter 30 gesteuert, um die für die oben beschriebenen Transformationen notwendigen Additions- oder Subtraktionsoperationen auszuführen.
Wenn ein von der X AFDU-Schaltung 12 berechnetes Pixelinkre­ ment kleiner als 0,5 eines Pixelschritts ist, werden die Koef­ fizienten a, b, c und d transformiert durch: a′=8a, b′=4b+4a, c′=2c+b und d′=d. Um diese Transformationen durchzuführen, werden geeignete Steuersignale vom Pixelfilter 30 an Multiple­ xer 32, 44, 46, 54, 56 und 70 angelegt, so daß die 8a, 4a, 4b und 2c in die entsprechenden Register in Verbindung mit Addie­ rer/Subtrahierern 45, 58 und 66 eingetaktet werden.
Wenn andererseits die AFDU-Schaltung ein x-Inkrement zwischen 0,5 und 1 und ein y-Inkrement zwischen 0,5 und 1 berechnet, so werden die a, b, c und d-Koeffizienten von Multiplexern 32, 44, 46, 54, 56 und 70 durch geeignete Steuersignale ausge­ wählt, die vom Pixelfilter 30 angelegt werden, so daß Register 50 durch b′=b+a, Register 62 durch c′=c+b, d-Register 72 durch d′=d+c aktualisiert werden und ein Register 34 ungeän­ dert bleibt. Es ist verständlich, daß nur die Ausgangssignale aus den AFDU-Schaltungen X, Y und W vom Pixelfilter zur Steue­ rung der Nachstellung aller vier AFDU-Schaltungen benutzt werden, da die x/w und y/w-Koordinaten den Pixelort aus­ reichend definieren. Auf diese Weise stellen die AFDU-Schal­ tungen 10, 12 und 14 im Zusammenwirken mit der 1/w-Schaltung 18, den Multiplizierern 20, 22 und 24 und dem Pixelfilter 30 sicher, daß die erzeugten Kurven in Inkrementen von etwa einem Pixel inkrementiert werden.
Speicherpuffer 48, 60 und 68 dienen zur Speicherung einer Folge von wenigstens N b, c und d-Werten, damit die geeignet verzögerten d-Koordinatenwerte in Zuordnung zu dem Pixelfil­ ter-Steuersignal verwendet werden. Dies ist notwendig, da das Pixelfilter 30 Steuerentscheidungen einige Takte nach der Erzeugung der Pixeladressen durch die AFDU trifft. Speicher­ puffer 48, 60 und 68 speichern eine Folge von Werten derart, daß der b-Wert mit einer Verzögerung gleich der Anzahl von Takten zwischen der AFDU und dem Pixelfilter zum Berechnen von b′ verwendet wird. Kein Speicherpuffer ist für das Register 34 notwendig, da sich "a" während einer Vorwärtsschritt-AFDU-Ope­ ration nicht ändert.
Im folgenden wird ein anderer wichtiger Aspekt der vorliegen­ den Erfindung beschrieben.
Ein kritisches Problem, das typischerweise bei bekannten Vor­ wärtsdifferenzbildungsmethoden zur Gewinnung von Kurven auf­ tritt, ist der Überlauf oder ein Überladen der Register, die zur Speicherung der ganzzahligen Koeffizientenwerte der para­ metrischen kubischen Funktion zur Berechnung der Kurve verwen­ det werden. Wenn ein zur Speicherung eines Koeffizienten ver­ wendetes Register die Kapazitätsgrenze erreicht und überläuft, wird natürlich eine genaue Berechnung der parametrischen kubi­ schen Funktion unmöglich. Die Erfindung stellt eine besondere Methode und ein Gerät zur Verhinderung des Auftretens eines solchen Überlaufens zur Verfügung, wodurch gewährleistet wird, daß die parametrische kubische Funktion zur Erzeugung der Kurve fortlaufend genau implementiert wird. Im folgenden wird dieser Aspekt der Erfindung näher erläutert.
Bei dem beschriebenen Ausführungsbeispiel haben die Register 34 und 50 der Schaltung gemäß Fig. 3 eine Speicherkapazität von drei ganzzahligen Bits, die zweckmäßiger Weise hier mit a₁, a₂, a₃ und b₁, b₂ und b₃ bezeichnet werden. a₁ und b₁ sind die am höchsten bewerteten ganzzahligen Bits. Das am höchsten bewertete fraktionelle Bit des Registers 34 wird hier mit a₄ bezeichnet. Da Register 62 den Inhalt von Register 50 bei einem Vorwärtsschritt akkumuliert, hat es bei dem beschriebenen Ausführungsbeispiel eine Speicherkapazi­ tät von mehr als drei ganzzahligen Bits. Das am höchsten be­ wertete ganzzahlige Bit des Registers 62 wird hier als c₁ bezeichnet. Register 34, 50 und 62 sind mit einer Steuerschal­ tung 92 in Fig. 7 (eine Detailbeschreibung der Operationswei­ se des Pixelfilters 30 und der Steuerschaltung 92 gemäß Fig. 7 wird weiter unten gegeben) innerhalb des Pixelfilters 30 verbunden und geben dorthin Bits aus, die der Steuerschaltung 92 angeben, daß die ganzzahlige Speicherkapazität der Register 34, 50 und/oder 62 am Überlaufen ist oder möglicherweise mit der nächsten Berechnung überläuft. Unten sind die Bedingungen aufgeführt, bei denen Register 34 und 50 ein Bit (hier als "Warnbit" bezeichnet) ausgeben, das die Steuerschaltung 92 des Pixelfilters 30 davon unterrichtet, daß das nächste Hochju­ stieren bzw. Vergrößern zu einem Überlaufen der ganzzahligen Speicherkapazität der Register 34 und 50 führt.
Ein Warnbit wird angelegt, wenn:
a₁ ≠ Vorzeichenbit (sb) von Register 34 oder
a₂ ≠ Vorzeichenbit von Register 34 oder
a₃ ≠ Vorzeichenbit von Register 34 oder
a₄ ≠ Vorzeichenbit von Register 34 oder
b₁ ≠ Vorzeichenbit von Register 50 oder
b₂ ≠ Vorzeichenbit von Register 50 oder
b₃ ≠ Vorzeichenbit von Register 50.
Das Pixelfilter sendet, wie gesagt, Steuersignale an Multiple­ xer 32, 44, 46, 54 und 70, welche jeder AFDU-Schaltung ein Hochstellen bzw. Vergrößern, Herunterstellen bzw. Verkürzen oder ein Vorrücken zum nächsten Pixel befehlen. Wenn ein Warn­ bit an der Steuerschaltung 92 des Pixelfilters 30 ansteht, befiehlt das Pixelfilter 30 jeder AFDU-Schaltung, zum nächsten Pixel vorzurücken (anstelle einer Hochstellung), wenn ein Hochstellen nach den durch das Pixelfilter 30 durchgeführten Berechnungen annonciert wird. Ein Herunterstellen bzw. Verkür­ zen und Vorwärtsrücken werden durch Anlegen von Warnbits nicht berührt. Der jeder AFDU-Schaltung erreichende Befehl zum Vor­ rücken bewirkt keinen Überlauf der Register 34 und 50, da ein Vorrücken keine Multiplikation des Koeffizienten "a"-Terms mit 8 oder eine Multiplikation des "b"-Terms mit 4 erforderlich macht. Die AFDU-Schaltungen werden daher solange vor einem Hochstellen geschützt, bis die Kurve komplettiert ist oder bis das Warnbit abgenommen wird.
In ähnlicher Weise wird dasjenige Bit, welches das Pixelfilter 30 darüber unterrichtet, daß die ganzzahlige Speicherkapazität der Register 34, 50 und 62 mit dem nächsten Hochstell- bzw. Vergrößerungsschritt oder Vorwärtsschritt überläuft (hier als "Überlaufbit") bezeichnet, immer dann angelegt, wenn a₁ ≠ Vorzeichenbit von a; b₁ ≠ Vorzeichenbit von b oder c₁ ≠ Vorzeichenbit von c. Wenn das Überlaufbit angelegt ist, be­ fiehlt es der Steuerschaltung 92, Steuersignale an die AFDU-Multi­ plexer anzulegen, die jeder AFDU-Schaltung ein Herunter­ stellen befehlen, und zwar unabhängig davon, ob ein Hochstell- oder ein Vorrücken von den durch das Pixelfilter 30 durchge­ führten Berechnungen indiziert ist. Ein Herunterstellen erlei­ chtert das Überlaufproblem in Registern 34, 50 und 62 und bewirkt dadurch die Unterbrechung des Überlaufbits. Das Vor­ zeichenbit von Registern 34, 50 und 62 wird dazu benutzt, das Warnbit und Überlaufbits anzulegen, wenn der ganzzahlige Teil der dort gespeicherten Zahl in positiver Richtung zu groß oder in negativer Richtung zu klein in Zweierkomplementdarstellung wird.
Für den Fachmann ist verständlich, daß Register, die eine Speicherkapazität für mehr oder weniger ganzzahlige Werte haben, anstelle der Register 34 und 50 verwendet werden kön­ nen, ohne dadurch von den hier beschriebenen Konzepten der vorliegenden Erfindung abzuweichen.
Es ist auch verständlich aus der obigen Beschreibung, daß ein kritisches Problem, das aus bekannten Vorwärtsdifferenzbil­ dungsschaltungen erwächst (d. h. Überlauf der die Kurve erzeu­ genden Einheiten), mit Hilfe der oben beschriebenen Merkmale der Erfindung ausgeräumt werden kann.
Die oben beschriebenen Funktionen der AFDU-Schaltung beziehen sich auf das Zeichnen von Kurven. Fig. 4 zeigt ein verein­ fachtes Schaltbild des X-AFDU-Chip 12 (in Fig. 3 gezeigt), wobei nur die zum Zeichnen von Vektoren verwendeten Komponen­ ten dargestellt sind. Fig. 5 ist ein Ablaufdiagramm, das die Operationsweise der in Fig. 4 gezeigten Schaltung veranschau­ licht, wobei als Beispiel die Operation des Zeichnens eines x-Hauptvektors unter Verwendung des bekannten Bresenham-Algo­ rithmus durchgeführt wird.
Wenn die Vektorerzeugung eingeleitet wird, werden die Bresen­ ham-Algorithmus-Parameter dx (die Änderung von x), dy (die Änderung von y), Err (das Bresenham-Fehlerterm), Inc 1 (ein erstes Inkrement) und Inc 2 (ein zweites Inkrement), die wei­ ter unten unter Bezugnahme auf Fig. 5 noch genauer erläutert werden, von der CPU 9 berechnet. Die CPU 9 lädt Register 34, 38 und 50 mit Inc 1, Inc 2 und Err. Die CPU 9 lädt auch Regi­ ster 72 mit dem Vektor-Endpunktwert x₀ und lädt das c-Regi­ ster 62 mit dem Wert 0. Die Operation der Schaltung gemäß Fig. 4 bei der Erzeugung eines x-Hauptvektors in Verbindung mit dem Ablaufdiagramm gemäß Fig. 5 wird im folgenden erläu­ tert.
Eine Bedingungsschaltung 64 gibt ein Bit immer dann aus, wenn die Vorzeichenbits von Registern 50 und 62 übereinstimmen. Daher gibt die Schaltung 64 eine 1 als Eingangssignal an den Addierer 69 nur dann, wenn Register 50 und 62 das gleiche Vorzeichen haben. Wie gesagt, ist das Vorzeichen des Registers 62 stets 0, da es zum Anfangszeitpunkt mit 0 geladen ist. Die Schaltung 64 gibt eine 1 an den Addierer 66 immer dann, wenn das Vorzeichenbit aus dem Register 50 Null ist (d. h. das Err ist größer als 0). Bei Beginn der Erzeugung eines Vektors befiehlt die CPU 9 dem Pixelfilter 30, ein Steuersignal an die AFDU-Schal­ tungen anzulegen, so daß Multiplexer 44 die Steuerung für die das Vorzeichenbit-Ausgangssignal des Registers 50 bildet. Wenn das Vorzeichenbit des Registers 50 0 ist, schal­ tet der Multiplexer 44 das Ausgangssignal von Register 38 durch. Wenn das Vorzeichenbit von Register 50 1 ist, wählt Multiplexer 44 das Ausgangssignal des Registers 34.
Im folgenden wird auf Fig. 5 Bezug genommen. Die Bresenham- Parameter für einen Vektor zwischen den Kurven-Anfangs- und Endkoordinaten x₀, y₀ und x₁, y₁ werden von der CPU 9 initialisiert, wie im Block 160 der Fig. 5 aufgeführt. Das Fehlerterm (Err) wird aus der Gleichung Err=-1/2 dx+dy be­ rechnet, wobei dx=x₁-x₀ und dy=y₁-y₀. Im Block 162 wird das Pixel mit den aktuellen x und y-Koordinaten (x ge­ speichert im Register 72 der Fig. 4 und y gespeichert im entsprechenden Register der Y-AFDU-Schaltung 14) auf dem CRT-Dis­ play geschrieben. Danach rückt der Ablauf vor zum Schritt 164, wo bestimmt wird, ob Err (Wert im Register 50) größer als 0 ist.
Wenn der Fehler größer oder gleich ist, ist auch das Vorzei­ chenbit von Register 50 0, und der Auflauf rückt auf Schritt 168 vor, wo Err durch Addition von Inc 2 zum zuvor berechneten Err aktualisiert wird. Das Vorzeichenbit von Register 50 steu­ ert Multiplexer 44 derart, daß Inc 2 (Eingangssignal am Multi­ plexer 44, das im Register 38 gespeichert wird) ausgewählt wird und danach durch den Addierer/Subtrahierer 45 in das Register 50 immer dann eingetaktet wird, wenn das Vorzeichen­ bit von Register 50 Null ist. Im Block 168 werden die x- und y-Koordinaten in den X und Y-AFDU-Schaltungen durch Addition von 1 zum Inhalt des Registers 72 in X AFDU 12 und des ent­ sprechenden Registers in der Y-AFDU-Schaltung 14 aktualisiert.
Wie oben beschrieben, wird diese Addition von dem Addierer 66 durchgeführt, der das Ausgangssignal von Schaltung 64 zu dem vorhergehenden Inhalt von Register 72 nur dann addiert, wenn das Vorzeichenbit des Registers 62 gleich dem Vorzeichenbit von Register 50 ist.
Wenn andererseits das Err kleiner als 0 ist, rückt das Ablauf­ diagramm zum Schritt 166 vor. In diesem Schritt wird Err so eingestellt, daß es gleich dem zuvor berechneten Err (ge­ speichert im Register 50) + Inc 1 (gespeichert im Register 34) wird, und x wird um Eins erhöht. (Zu beachten ist: Bei dieser beispielsweisen Operationsweise wird die y-Koordinate im Schritt 166 nicht erhöht, da der Addierer in der Y-AFDU-Schal­ tung 14 entsprechend dem Addierer 66 den Ausgang von Schaltung 64 (der 0 ist) zum Inhalt des dem Register entsprechenden Registers in der Y-AFDU-Schaltung 14 addiert).
Inc 2, das im Register 38 gespeichert ist, wird vom Multiple­ xer 44 selektiert und zum Inhalt von Register 50 von dem Ad­ dierer 45 immer dann addiert, wenn das Err größer oder gleich 0 ist. Wenn das Vorzeichenbit von Register 50 positiv ist, addiert der Addierer 66 das Ausgangssignal der Schaltung 64 zum Inhalt von Register 72 und taktet es durch den Multiplexer 70 in das Register 72. Der Ablauf endet beim Schritt 170, wenn x größer ist als x₁.
Aus der obigen Erörterung wird verständlich, daß beim Zeichnen von Vektoren die AFDU-Schaltung ein neuartiges Verfahren zum genauen Implementieren des als solchem bekannten Bresenham- Algorithmus schafft. Aus der obigen Diskussion wird außerdem verständlich, daß bei geeigneter Initialisierung die AFDU-Schal­ tung auch die bekannte generalisierte Version des Bre­ senham-Algorithmus implementieren kann, welche das einer Ide­ allinie zwischen den Anfangs- und Endpunkten nächstliegende Pixel berechnet und trotzdem nur einen Pixelort x, y für jedes Einheitsinkrement in y erzeugt. Diese generalisierten Versio­ nen des Bresenham-Algorithmus werden weithin verwendet zum schrittweisen Vorrücken entlang der Ecke eines Polygons in Abtastzeilen-Ordnung und bei der Anti-Alias-Vektormethode. (Verwiesen wird auf Dan Field, "Incremental Linear Interpola­ tion", ACM Transactions on Graphics, Band 4, Nr. 1, Januar 1985; Akira Fujimoto und Ko Iwata "Jag Free Images on a Raster CRT", Computer Graphics Theory and Applications, herausgegeben von Tosiyasu Kunii im Springer-Verlag, 1983.)
In Fig. 7 ist eine detaillierte Ansicht des Pixelfilters 30 der Fig. 1 gezeigt. Es ist zu beachten, daß beim Zeichnen von Vektoren das Pixelfilter 30 die Steuerung der AFDU-Schaltungen zur Durchführung des Bresenham-Algorithmus in der unter Bezug­ nahme auf Fig. 4 zuvor beschriebenen Weise überträgt. In diesem Falle werden die 1/w-Schaltung 18 und die W-AFDU 10 nicht benutzt. Wenn jedoch Kurven gezeichnet werden, steuert das Pixelfilter 30 die X, Y, Z und W-AFDU-Schaltungen 10, 12, 14 und 16, wie zuvor unter Bezugnahme auf Fig. 3 beschrieben wurde, um die Verstellungen (Industrierungen) und das Vor­ wärtsrücken durchzuführen.
Register 102, 103, 104, 105 und 106 in Fig. 7 speichern Ko­ ordinatenwerte xn bis xn+4, welche von der X-AFDU-Schal­ tung 12 und dem Multiplizierer 20 (Fig. 1) in fünf aufeinan­ derfolgenden vorhergehenden Taktzyklen angelegt werden. In ähnlicher Weise speichern y-Register 120, 121, 122, 123 und 124 y-Werte yn bis yn+4. Ebenfalls in ähnlicher Weise speichern Register 134, 135, 136, 137 und 138 z-Werte zn bis zn+4. Register 148, 149, 152, 154 und 158 sowie Addierer 156 und Komparator 144 arbeiten ebenfalls in Verbindung mit den zuvor angegebenen Komponenten, wie weiter unten noch erörtert werden wird.
Register 102-106 speichern nacheinander jede ihnen von der X-AFDU-Schaltung 12 zugeführte X-Koordinate derart, das xn+4 die zuletzt berechnete Koordinate ist. Bei jedem Taktzyklus vergleicht der Komparator 94 die Werte xn+3 im Register 105 und xn+4 im Register 106 und Komparator 112 den Wert yn+3 im Register 123 mit yn+4 im Register 124. Wenn der Absolut­ wert von xn+4-xn+3 und der Absolutwert von yn+4-yn+3 beide kleiner als 0,5 eines Einzelpixelin­ krements sind, gibt das Steuergerät 92 ein Steuersignal an alle vier AFDU-Schaltungen und instruiert diese, die Schritt­ weite in der zuvor anhand der Fig. 1 bis 3 beschriebenen Weise zu verlängern (hochzustellen). Wenn der Absolutwert von xn+4-xn+4 größer als 1 oder der Absolutwert von yn+4-yn+3 größer als 1 ist, legt das Steuergerät ein Steuersignal an alle vier AFDU-Schaltungen, das letzteren befiehlt, die Schrittweite zu verringern (herunterzustellen), wie dies zuvor unter Bezugnahme auf die Fig. 1 bis 3 erläu­ tert worden ist.
Die in Registern 138 und 137 gespeicherten Werte zn+4 und zn+3 werden nicht dazu benutzt, zu bestimmen, ob die Schrittweite verlängert oder verkürzt werden soll, da die x- und y-Koordinaten einen Pixelort auf einem CRT-Display aus­ reichend genau definieren. Register 138 und 137 arbeiten viel­ mehr als Verzögerungspuffer derart, daß Werte zn+2, zn+1 und zn (welche jeweils in Registern 136-134 gespeichert sind) den Werten von yn+2, yn+1 und yn (gespeichert in 122, 121 bzw. 120) und den Werten xn+2, xn+1 und xn (gespeichert in Registern 104, 103 und 102) entsprechen.
Wenn alternativ der Absolutwert von xn+4-xn+3 und der Absolutwert von yn+4-yn+3 beide zwischen 0,5 und 1,0 Pixeleinheiten liegen, so weisen die Komparatoren 94 und 112 die Steuerschaltung 92 an, allen vier AFDU-Schaltungen die Durchführung einer Vorwärtsschrittoperation in der zuvor be­ schriebenen Weise zu befehlen.
Zu beachten ist, daß alle vier AFDU-Schaltungen 10, 12, 14 und 16 der Fig. 1 vom Pixelfilter 30 synchron hoch- oder herun­ tergestellt oder vorgerückt werden.
Die Eliminierung von redundanten Pixeln bei einem wiederge­ benen Bild wird im folgenden beschrieben. Komparator 96 ver­ gleicht den Wert xn+2, der im Register 104 gespeichert ist, mit dem im Register 103 gespeicherten xn+1-Wert. Der Kom­ parator 114 vergleicht den im Register 122 gespeicherten Wert yn+2 mit dem im Register 121 gespeicherten Wert yn+1. Wenn xn+2=xn+1 und yn+2=yn+1, legen die Komparatoren 96 und 114 Signale an die Steuerschaltung 92 an, die ihrerseits ein ungültiges Pixelbit an den Zeichnungsabschnitt (paint section) 150 ausgibt, so daß der Zeichnungsabschnitt 150 die Modifikationen entsprechend dem Pixel mit den Koordinaten xn+1 und yn+1 ungültig macht.
Im folgenden wird die Beseitigung von "Ellbogen" (siehe Fig. 6 und 6a) in einem wiedergegebenen Bild beschrieben. Der Komparator 96 vergleicht den ganzzahligen Teil des Werts xn+2 im Register 104 mit dem ganzzahligen Teil des Werts xn im Register 102, und der Komparator 114 vergleicht den ganzzahligen Teil des Wertes yn+2 im Register 122 mit dem ganzzahligen Teil des Werts yn im Register 120. Wenn der Absolutwert von xn+2-xn=1 und der Absolutwert von yn+2-yn= 1 sind, so legen Komparatoren 96 und 14 Signale an die Steuerschaltung 92, die ihrerseits ein ungültiges Pi­ xelbit an den Zeichnungsabschnitt 150 ausgibt, so daß letz­ terer 150 dasjenige Pixel nicht zeichnet, dessen Koordinaten xn+1 und yn+1 entsprechen.
Im folgenden wird die Definition des abzuschneidenden oder zu kappenden Bereichs auf dem Displayschirm beschrieben. Vorgela­ den im Register 100, 118, 132 und 146 sind jeweils x-Minimal- und Maximalwerte, y-Minimal- und Maximalwerte, z-Minimal- und Maximalwerte und t-Minimal- und Maximalwerte. Der Komparator 98 ist mit dem Register 103 gekoppelt und vergleicht den Wert xn+1 mit dem x-Maximal- und -Minimalwert. Wenn xn+1 nicht innerhalb der x-Minimal- und -Maximalwerte liegt, legt der Komparator 98 ein Steuersignal an die Steuerschaltung 92 an, die ihrerseits den Zeichnungsabschnitt 150 anweist, die Modi­ fizierungen entsprechend dem von der Koordinate xn+1, yn+1, zn+1, tn+1 definierten Pixel ungültig zu machen, da das Pixel außerhalb des durch die im Register 100 gespei­ cherten x-Minimal- und -Maximalwerte definierten Fensters liegt. Die gleichen Aktionen laufen bezüglich der im Register 118 gespeicherten y-Minimal- und -Maximalwerte, im Register 132 gespeicherten z-Minimal- und -Maximalwerte und im Register 146 gespeicherten t-Minimal- und -Maximalwerte ab. Wenn daher yn+1, gespeichert im Register 121, kleiner ist als der y-Mi­ nimalwert oder größer als der y-Maximalwert, gespeichert im Register 118, löst der Komparator 116 ein Steuersignal zur Steuerung der Schaltung 92 aus, die schließlich die Zeich­ nungsabschnittseinrichtung 150 anweist, das Pixel (xn+1, yn+1, zn+1, tn+1) nicht zu zeichnen. Wenn zn+1, ge­ speichert im Register 135, kleiner als ein z-Minimalwert oder größer als der z-Maximalwert im Register 132 ist, legt in ähnlicher Weise ein Komparator 130 ein Steuersignal an die Steuerungsschaltung 92, die ihrerseits den Zeichnungsabschnitt 150 instruiert, das Pixel (xn+1, yn+1, zn+1, tn+1) nicht zu zeichnen. Wenn schließlich das im Register 150 ge­ speicherte tn+1 kleiner ist als der t-Minimalwert oder größer als der t-Maximalwert, gespeichert im Register 146, legt Komparator 144 ein Signal an die Steuerschaltung 92 an, die ihrerseits den Zeichnungsabschnitt 150 anweist, das Pixel (xn+1, yn+1, zn+1, tn+1) nicht zu zeichnen. Die in Registern 100, 118, 132 und 146 gespeicherten Minimal- und Maximalwerte werden von der CPU vorgeladen, um ein gewünschtes "Fenster" oder einen Abschneidebereich auf dem Bildschirm zu definieren.
Ein vorberechneter Wert dt, der den a, b, c und d Parametern (gespeichert in Registern 34, 50, 62 und 72) der zu erzeugen­ den Kurve entspricht, wird von der CPU 9 zum Auslösezeitpunkt berechnet und in Register 158 geladen. t wird zum Initialisie­ rungszeitpunkt ein Wert gleich 0 gegeben. Da dt die Parameter- Schrittgröße darstellt, muß es nach oben oder unten verstellt werden, um mit den Einstellungen der X, Y, Z und W-AFDU-Schal­ tungen zu koinzidieren, die zuvor unter Bezugnahme auf die Fig. 1 und 3 beschrieben worden sind. Demgemäß wird dt um ein Bit nach links verschoben, um 2dt am Multiplexer 153 zu gewinnen, wenn eine Vergrößerung bzw. Hochstellung erforder­ lich ist, um dt an eine Hochstellung in den AFDU-Schaltungen anzupassen. In ähnlicher Weise wird dt um ein Bit nach rechts verschoben, um dt/2 am Multiplexer 153 zu gewinnen. 2dt oder dt/2 wird durch geeignete Steuersignale ausgewählt, die von der Steuerschaltung 92 an den Multiplexer 153 angelegt werden, um dt den Einstellungen an den X, Y, Z und W-AFDU-Schaltungen anzupassen. Der Wert dt wird an einen Addierer 156 ausgegeben, der t hinzuaddiert und die Ergebnisse im Register 154 spei­ chert. Das Ausgangsregister 154 wird um einige Taktzyklen in einem Verzögerungsregister 152 verzögert, damit tn+1 und tn, die jeweils in Registern 159 bzw. 148 gespeichert sind, zeitlich mit Werten xn+1, yn+1, yn, zn+1 und zn zusammenfallen. Dadurch wird der Wert tn=1 für den Kompa­ rator 144 ein geeigneter Wert zum Vergleich mit den Werten tmin und tmax.

Claims (11)

1. Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung der x/w-, y/w- und z/w-Koordinaten rationaler kubischer Funktionen für die Bilderzeugung auf einem Sichtgerät, dadurch gekennzeichnet,
daß eine Taylor-Reihen-Approximation des Reziprokwerts der homogenen Koordinate w berechnet wird und
daß der Reziprokwert von w mit entsprechenden x-, y- und z-Koordinaten multipliziert wird, wodurch die rationalen kubi­ schen Funktionen x/w, y/w und z/w gewonnen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Taylor-Reihen-Approximation des Reziprokwerts der homogenen Koordinate w die folgenden Schritte aufweist:
Eingeben eines ersten Teils w₀ der Taylor-Reihen- Approximation der w-Koordinate in eine erste Nachschlagetabelle (76),
Eingeben des ersten Teils w₀ der Taylor-Reihen- Approximation der w-Koordinate in eine zweite Nachschlagetabelle (78),
Eingeben eines zweiten Teils d der Taylor-Reihen- Approximation der w-Koordinate in eine Registerschaltung (84), Ausgeben eines ersten Werts 1/w₀ entsprechend dem ersten
Teil w₀ aus der ersten Nachschlagetabelle (76), Ausgeben eines zweiten Werts 1/w₀² entsprechend ebenfalls dem ersten Teil w₀ aus der zweiten Nachschlagetabelle (78),
Multiplizieren des zweiten Teils d der w-Koordinate mit dem zweiten Wert 1/w₀² und
Subtrahieren des Produkts d/w₀² aus dem zweiten Teil d und dem zweiten Wert 1/w₀² von dem ersten Wert 1/w₀ derart, daß eine Approximation von 1/w gewonnen wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet daß die Ableitung des Reziprokwerts der homogenen Koordinate w unter Verwendung einer abgebrochenen Taylor-Reihen- Approximation durchgeführt wird.
4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeich­ net, daß die Approximation von 1/w innerhalb von zwei Taktzy­ klen durchgeführt wird.
5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch ge­ kennzeichnet, daß der erste Teil w₀ der Taylor-Reihen- Approximation eine vorgegebenen Anzahl der am höchsten bewerteten Bits der homogenen Koordinate w und der zweite Teil d eine vorgegebene Anzahl der am niedrigsten bewerteten Bits der Koordinate w enthält.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch ge­ kennzeichnet, daß als Wert der homogenen Koordinate w und als Werte der x-, y- und z-Koordinaten Momentanwerte verwendet wer­ den.
7. Anordnung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6, gekennzeichnet durch eine Speicher- und Rechenvorrichtung (76, 78, 80, 82, 84, 87, 89, 90) zur Berechnung einer Taylor-Reihen-Approximation des Reziprokwerts der homogenen Koordinate w und Rechenmittel (20, 22, 24) zum Multiplizieren des Reziprokwerts von w mit entsprechenden x-, y- und z-Koordinaten, wodurch die rationalen kubischen Funktio­ nen x/w, y/w und z/w gewonnen werden.
8. Anordnung nach Anspruch 7, dadurch gekennzeichnet, daß nur eine vorgegebene Zahl von Termen der Taylor-Reihen- Approximation in der Speicher- und Rechenvorrichtung (76, 78, 80, 82, 84, 87, 89, 90) auswertbar ist.
9. Anordnung nach Anspruch 7 oder 8, dadurch gekennzeich­ net, daß die vorgegebene Folge der Taylor-Reihen-Approximation 1/w₀-d(1/w₀)² ist, wobei w₀ eine vorgegebene Anzahl der am höchsten bewerteten Bits der w-Koordinate und d eine vorgege­ bene Anzahl der am niedrigsten bewerteten Bits der w-Koordinate darstellt.
10. Anordnung nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, daß der Reziprokwert der homogenen Koordinate w innerhalb von zwei Taktzyklusoperationen berechenbar ist.
11. Anordnung nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, daß der Wert der homogenen Koordinate w und die Werte der x-, y-, und z-Koordinaten Momentanwerte sind.
DE3815374A 1987-05-08 1988-05-05 Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung von rationalen kubischen Funktionen für die Bilderzeugung auf einem Sichtgerät und Anordnung zur Durchführung des Verfahrens Expired - Fee Related DE3815374C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/047,767 US5179659A (en) 1987-05-08 1987-05-08 Method and apparatus for deriving instantaneous reciprocals of the homogenous coordinate w for use in defining images on a display

Publications (2)

Publication Number Publication Date
DE3815374A1 DE3815374A1 (de) 1988-11-24
DE3815374C2 true DE3815374C2 (de) 1997-07-17

Family

ID=21950849

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3815374A Expired - Fee Related DE3815374C2 (de) 1987-05-08 1988-05-05 Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung von rationalen kubischen Funktionen für die Bilderzeugung auf einem Sichtgerät und Anordnung zur Durchführung des Verfahrens

Country Status (8)

Country Link
US (1) US5179659A (de)
JP (1) JPH0664620B2 (de)
CA (1) CA1317691C (de)
DE (1) DE3815374C2 (de)
FR (1) FR2615981B1 (de)
GB (2) GB2204433B (de)
HK (2) HK61092A (de)
SG (1) SG52292G (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02156328A (ja) * 1988-12-08 1990-06-15 Toshiba Corp 逆数回路
US5471573A (en) * 1989-12-07 1995-11-28 Apple Computer, Inc. Optimized scan conversion of outlines for generating raster images
EP0530661A3 (en) * 1991-09-04 1994-06-15 Seikosha Kk Curve approximation method
US5739820A (en) * 1992-11-19 1998-04-14 Apple Computer Inc. Method and apparatus for specular reflection shading of computer graphic images
US5544291A (en) * 1993-11-10 1996-08-06 Adobe Systems, Inc. Resolution-independent method for displaying a three dimensional model in two-dimensional display space
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
US6581085B1 (en) * 1999-05-12 2003-06-17 Ati International Srl Approximation circuit and method
US7117238B1 (en) * 2002-09-19 2006-10-03 Nvidia Corporation Method and system for performing pipelined reciprocal and reciprocal square root operations
US7457838B2 (en) * 2003-12-03 2008-11-25 Marvell World Trade Ltd. Methods and apparatus for performing calculations using reduced-width data
US7657589B2 (en) * 2005-08-17 2010-02-02 Maxim Integrated Products System and method for generating a fixed point approximation to nonlinear functions
US7962537B2 (en) * 2006-06-26 2011-06-14 Southern Methodist University Determining a table output of a table representing a hierarchical tree for an integer valued function

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3508038A (en) * 1966-08-30 1970-04-21 Ibm Multiplying apparatus for performing division using successive approximate reciprocals of a divisor
SU546881A1 (ru) * 1974-09-16 1977-02-15 Институт Электродинамики Ан Украинской Сср Устройство дл определени обратной величины числа
US4482975A (en) * 1982-03-29 1984-11-13 Motorola, Inc. Function generator
US4636973A (en) * 1982-07-21 1987-01-13 Raytheon Company Vernier addressing apparatus
US4688186A (en) * 1982-10-04 1987-08-18 Honeywell Bull Inc. Division by a constant by iterative table lookup
US4718032A (en) * 1985-02-14 1988-01-05 Prime Computer, Inc. Method and apparatus for effecting range transformation in a digital circuitry
JPS61262930A (ja) * 1985-05-17 1986-11-20 Nec Corp 除算装置
JPS6278629A (ja) * 1985-10-02 1987-04-10 Hitachi Denshi Ltd 逆数値演算方式

Also Published As

Publication number Publication date
JPS6453277A (en) 1989-03-01
HK61092A (en) 1992-08-21
FR2615981A1 (fr) 1988-12-02
GB2224914B (en) 1992-02-05
US5179659A (en) 1993-01-12
JPH0664620B2 (ja) 1994-08-22
GB8810315D0 (en) 1988-06-02
FR2615981B1 (fr) 1994-04-01
GB8925215D0 (en) 1989-12-28
DE3815374A1 (de) 1988-11-24
GB2204433A (en) 1988-11-09
CA1317691C (en) 1993-05-11
HK60892A (en) 1992-08-21
GB2224914A (en) 1990-05-16
GB2204433B (en) 1992-02-05
SG52292G (en) 1992-12-04

Similar Documents

Publication Publication Date Title
DE3815361C2 (de) Schaltungsanordnung zum Erzeugen von Kurven oder Vektoren zur Wiedergabe auf einer Anzeigeeinrichtung und Verfahren zum Wiedergeben solcher Kurven oder Vektoren auf einer Anzeigeeinrichtung
DE19646194B4 (de) Echtzeit-Wiedergabeverfahren zum wahlweisen Ausführen von Bump-Mapping- und Phong-Schattierungs-Prozessen und zugehörige Vorrichtung
DE102014015353B4 (de) Dynamikkompression
DE4314265B4 (de) Displaysystem
DE102018130084A1 (de) Dynamische Quantisierung neuronaler Netzwerke
DE19782086B4 (de) Multiplizierer zur Durchführung von 3D-Graphik-Interpolationen
DE3036770C1 (de) Verfahren zur Schätzung der Verschiebung und/oder Geschwindigkeit von Objekten in Video-Szenen
DE102020120371A1 (de) Integrierte schaltungen mit modularen multiplikationsschaltkreisen
DE3815374C2 (de) Verfahren zum Ableiten eines Reziprokwerts der homogenen Koordinate w zur Verwendung bei der Gewinnung von rationalen kubischen Funktionen für die Bilderzeugung auf einem Sichtgerät und Anordnung zur Durchführung des Verfahrens
DE19807053B4 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
DE2703021A1 (de) Datenprozessor zum liefern von intensitaetssteuersignalen zur verwendung in einer rasteranzeige
DE69720131T2 (de) System und Verfahren zur Perspektivetransformation
DE3515037C2 (de)
DE3022454A1 (de) Optisches abbildesystem mit computererzeugtem bild fuer einen bodenfesten flugsimulator
DE3815390C2 (de) Vorwärtsdifferenzbildungsanordnung zum Erzeugen von Kurven auf einer grafischen Anzeigeeinrichtung und Verfahren zum Erzeugen von Pixelkoordinaten zum Darstellen solcher Kurven auf einer Anzeigeeinrichtung
DE69921608T2 (de) Verfahren und vorrichtung zum zoomen von digitalen bilddateien
DE112004002391T5 (de) Räumlich-zeitliche Erzeugung einer Bewegungsunschärfe
DE4215094C2 (de) Bildverarbeitungsverfahren und -vorrichtung
DE602004010628T2 (de) Dreieck-rendering unter verwendung von direkter evaluierung
DE3915037A1 (de) Mustergenerator
DE3705124A1 (de) Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik
DE3825539C2 (de) Einrichtung u. Verfahren zum Erzeugen schattierter Werte von graphischen Objekten auf einer Anzeigeeinrichtung
EP1421474B1 (de) Verfahren und vorrichtung zum modularen multiplizieren
DE10200133B4 (de) Verfahren und Vorrichtung zur Berechnung von Modulo-Operationen
DE10221389A1 (de) Verfahren zur Ermittlung eines Pixelwertes eines Pixel aufweisenden Bildes, Gewichtungsmatrix und Recheneinrichtung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee