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 VerfahrensInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/035—Reduction of table size
- G06F1/0356—Reduction of table size by using two or more smaller tables, e.g. addressed by parts of the argument
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2101/00—Indexing scheme relating to the type of digital function generated
- G06F2101/12—Reciprocal functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5354—Using table lookup, e.g. for digit selection in division by digit recurrence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via 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:
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₀.
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₀.
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.
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).
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.
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).
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.
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.
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.
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.
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.
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.
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)
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)
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 | 逆数値演算方式 |
-
1987
- 1987-05-08 US US07/047,767 patent/US5179659A/en not_active Expired - Lifetime
-
1988
- 1988-04-29 GB GB8810315A patent/GB2204433B/en not_active Expired - Fee Related
- 1988-05-05 DE DE3815374A patent/DE3815374C2/de not_active Expired - Fee Related
- 1988-05-06 FR FR8806128A patent/FR2615981B1/fr not_active Expired - Fee Related
- 1988-05-06 CA CA000566229A patent/CA1317691C/en not_active Expired - Fee Related
- 1988-05-09 JP JP63110642A patent/JPH0664620B2/ja not_active Expired - Fee Related
-
1989
- 1989-11-08 GB GB8925215A patent/GB2224914B/en not_active Expired - Fee Related
-
1992
- 1992-05-11 SG SG52292A patent/SG52292G/en unknown
- 1992-08-13 HK HK610/92A patent/HK61092A/xx not_active IP Right Cessation
- 1992-08-13 HK HK608/92A patent/HK60892A/xx not_active IP Right Cessation
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 |