DE4000215A1 - Einrichtung zum erzeugen von bildausschnitten unter verwendung eines testfensters in einem graphiksystem - Google Patents
Einrichtung zum erzeugen von bildausschnitten unter verwendung eines testfensters in einem graphiksystemInfo
- Publication number
- DE4000215A1 DE4000215A1 DE19904000215 DE4000215A DE4000215A1 DE 4000215 A1 DE4000215 A1 DE 4000215A1 DE 19904000215 DE19904000215 DE 19904000215 DE 4000215 A DE4000215 A DE 4000215A DE 4000215 A1 DE4000215 A1 DE 4000215A1
- Authority
- DE
- Germany
- Prior art keywords
- coordinate
- registers
- offset
- window
- register
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
Die Erfindung ist auf eine Einrichtung und ein Verfahren zur
Verbesserung der Effizienz beim Ausschneiden von Bildern gerichtet,
die auf einem Graphikanzeige-Untersystem zur Anzeige
gebracht werden. Hierzu wird erfindungsgemäß ein Testfenster
definiert, welches ein der Bildwiedergabe dienendes Fenster
(das Ausschnittfenster) umgibt. Objekte werden danach getestet,
um festzustellen, ob ihre Ecken bzw. Scheitelpunkte
außerhalb des Testfensters liegen. Die Benutzung dieses Testfensters
ermöglicht eine Leistungsoptimierung zwischen der
Verarbeitung eines Ausschnittobjekts mittels eines graphischen
Untersystems auf Hardwarebasis, das die vorliegende Erfindung
zur Verfügung stellt, oder durch Graphiksoftware, ausgeführt
von einer Universal-CPU, die auch als Interface zum Graphikdisplay
dient. Durch geeignete Definition der Testfenstergröße
relativ zum Ausschnittfenster gelingt es, daß vollständig in
das Testfenster fallende Objekte trotz ihrer Begrenzung bzw.
Beschneidung und der möglichen Notwendigkeit der Verarbeitung
zahlreicher unsichtbarer Pixel schneller von dem graphischen
Untersystem erfaßt werden können, im Vergleich zu dem Fall,
daß das Objekt mit Hilfe graphischer Software, bekannten Algorithmen
und Verfahren gerade auf diejenigen Pixel beschränkt
wird, die sichtbar sein und zuletzt mit Hilfe des Videodisplay
ausgegeben werden sollen. Objekte mit aus dem Testfenster
herausfallenden Ecken werden der Graphiksoftware zur Verarbeitung
zugewiesen, da sie die sichtbaren Teile des Objekts in
kürzerer Zeit entwickelt als wenn das graphische Untersystem
das Objekt verarbeiten würde. Diese Optimierung der Einsatzfälle,
spezieller Graphik-Hardware zur Verarbeitung eines
ausgeschnittenen Objekts kann einen wesentlichen Effekt auf
die Gesamtleistung des Graphiksystems haben.
Die Erfindung wird unter Bezugnahme auf ein Graphik-Untersystem
beschrieben, bei dem die zum Beschneiden (clipping) notwendigen
Vergleiche in Hardware durchgeführt werden. Als Nebenprodukte
dieser Vergleiche fallen gewisse Informationen an,
die zur Bestimmung der Beziehung zwischen den Ecken bzw.
Scheitelpunkten eines Objekts und eines der Objektwiedergabe
dienenden Fensters benötigt werden.
Der Gegenstand der Erfindung ist Bestandteil einer Einrichtung,
die das Ausschneiden bzw. Kappen (clipping) von auf
einem Videodisplay wiederzugebenen Bildern, wenn immer möglich,
in Hardware vornimmt, und der Software nur diejenigen
Bilder oder Bildausschnitte überläßt, die unter Verwendung des
graphischen Untersystems gemäß der Erfindung nicht zuverlässig
oder aus Leistungsgründen optimal ausgeschnitten oder beschnitten
werden können.
Im folgenden wird die Erfindung aufgrund eines in der Zeichnung
dargestellten Ausführungsbeispiels näher erläutert. In
der Zeichnung zeigt
Fig. 1 ein allgemeines Blockschaltbild eines graphischen
Untersystems für eine Arbeitsstation
(work station),
Fig. 2 ein Blockschaltbild des Koordinatenentwicklungs-
und -einspeicherabschnitts des erfindungsgemäßen
Graphik-Untersystems,
Fig. 3 ein genaueres Blockschaltbild des Addierers
31 und des Multiplexers 35,
Fig. 4 ein genaueres Blockschaltbild von X/Y-Koordinatenregistern
37,
Fig. 5 ein genaueres Blockschaltbild von Ausschnittkoordinatenregistern
39;
Fig. 6 ein genaueres Blockschaltbild eines Raster-
Offsetregisters 41,
Fig. 7 ein genaueres Blockschaltbild einer Testfenstersteuerung
45,
Fig. 8 ein genaueres Blockschaltbild einer Vergleichslogik-
und Ergebnisspeichereinrichtung
47,
Fig. 9 eine Tabelle mit relativen Zeitgaben für die
Ladesteuerungszustandsmaschine 35 und von der
Vergleichslogik und Ergebnisspeicherung 47
durchgeführten Vergleichen,
Fig. 10 eine Wahrheitstabelle unter Verwendung von
Vergleichsergebnissen für die X 0-Koordinate,
Fig. 11a und 11b Wahrheitstabellen unter Verwendung
der Vergleiche zwischen jeder der vier
X-Scheitel- bzw. Eckpunkte und jeder der vier
Y-Scheitel- bzw. Eckpunkte,
Fig. 12a-12d eine Wahrheitstabelle unter Verwendung
von Vergleichen zwischen den vier X- und den
vier Y-Eck- bzw. Scheitelpunkten und den
Ausschnittgrenzen,
Fig. 13 eine Wahrheitstabelle unter Verwendung von
Vergleichen zwischen den vier X- und den vier
Y-Scheitel- bzw. Eckpunkten und den Testfenstergrenzen und
Fig. 14 eine Wahrheitstabelle, welche die Richtung
anzeigt, in der Objekte gezeichnet oder Blits
durchgeführt werden sollen.
Die Erfindung ist auf ein graphisches Untersystem einer Konstruktionsarbeitsstation
und insbesondere auf eine Hardware-
Implementierung zur Verarbeitung graphischer Informationen
gerichtet, die innerhalb eines definierten Fensters zur Anzeige
gebracht werden sollen. Durch Verwendung von Informationen,
die durch Vergleichshardware zur Verfügung gestellt werden,
kann festgestellt werden, ob die Eck- oder Scheitelpunkte des
Objekts außerhalb eines das zu betrachtende Fenster umgebenden
Testfensters liegen. Sobald solche Informationen zur Verfügung
stehen, kann häufig festgestellt werden, ob das Objekt vollständig
außerhalb des echten Fensters liegt, wodurch die
Durchführung von Berechnungen für das Zeichnen des Objektes
überflüssig wird.
Insbesondere unterstützt die Erfindung eine sekundäre Ausschnittsgrenze,
die als Testfenster bezeichnet wird. Das Testfenster
liefert ein Mittel zur Entscheidung zwischen der Hardwareverarbeitung
eines Objekts mit einigen abgeschnittenen
(dunklen) Teilen und der Hardwarezurückweisung des Objekts,
was bedeutet, daß die CPU-Software die Verarbeitung des Objekts
übernimmt. Das nach dem Stande der Technik verwendete
Softwareverfahren beinhaltet mathematische Operationen zum
Auffinden der Schnittstelle(n) des Objekts und der Ausschnittgrenzen.
Da dies eine zeitaufwendige (zahlreiche Taktzyklen
erfordernde) Aufgabe ist, ist es in vielen Fällen tatsächlich
zeitsparend, das Objekt unter Einsatz von Hardware zu verarbeiten,
obwohl dazu viele Zyklen für die Verarbeitung dunkler
Teile des Objekts notwendig sein können. Die Entscheidungskriterien
hinsichtlich des Einsatzes von Hardware zur Verarbeitung
bestimmter abgeschnittener Objektteile wird danach getroffen,
ob die Scheitel- oder Eckpunkte des Objekts sich
innerhalb oder außerhalb des Testfensters befinden, das definitionsgemäß
stets das Ausschnittfenster vollständig umschließt.
Die Größe des Testfensters wird nach vorheriger
Kenntnis der Leistungsfähigkeit der Hardware und der Leistungsfähigkeit
des Hauptprozessors bei der Berechnung der
Schnittstellen und der Umsetzung sichtbarer Teile des Objekts
eingestellt. Zur Unterstützung des Testfensters und der sich
auf dieses beziehenden Entscheidungen führt die Koordinatenvergleichslogik
auch Vergleiche jedes Eck- oder Scheitelpunktes
mit der entsprechenden (X- oder Y-)minimal- und maximal-
Testfenstergrenze durch. Wie genauer weiter unten erläutert
werden wird, dient diese Information der Zustandserzeugungslogik
51 zur Erzeugung der Signale HW und SW, die jeweils die
Entscheidung darüber treffen, ob die Objektwiedergabe mit dem
Graphikuntersystem oder mittels Software erfolgen soll.
Die Koordinateneinspeicherungs(coordinate staging)- und -vergleichslogikblöcke
(Fig. 1) dienen der Beschaffung der notwendigen
Speicher- und Vergleichsinformationen, die zu einer
beliebigen Viereckumsetzung mit Beschneidung sowie für Blockbildübertragungen
(BLIT) mit Beschneidung erforderlich sind.
In beiden Fällen ist es notwendig, vier X/Y-Koordinatenpaare
anzugeben und die Fensterausschnittsgrenzen zu spezifizieren.
Die Viereckerzeugung bedingt die Verfügbarkeit von vier Eckpunkten,
welche das Viereck definieren. Das beschriebene Ausführungsbeispiel
der Erfindung legt diesen Eckpunkten nur sehr
wenig Beschränkungen an. Sie werden in vier Registerpaaren
gespeichert (ein Registerpaar besteht aus einem Register für
die X-Koordinate und einem Register für die Y-Koordinate) und
werden mit den Ecknummern 0 bis 3 bezeichnet. Es wird impliziert,
daß Eckpunkt 0 mit Eckpunkt 1, Eckpunkt 1 mit Eckpunkt
2, Eckpunkt 2 mit Eckpunkt 3 und Eckpunkt 3 mit Eckpunkt 0
verbunden ist. Keine Verbindung ist zwischen den Eckpunkten 0
und 2 oder den Eckpunkten 1 und 3 vorgesehen. Die Koordinateneinspeicher-
und -vergleichslogik bildet die Stufen einer
Pipeline, welche eventuell die Umsetzung des spezifizierten
Vierecks in den Displayspeicher eventuell bewirkt. Die nachfolgenden
Pipelinestufen bedingen Informationen bezüglich der
Beziehung jedes Eckpunkts zu seinen Nachbarn, d. h. für Eckpunkt
1: X 1 zu X 0, Y 1 zu Y 0, X 1 zu X 2 und Y 1 zu Y 2. Diese
Information wird benötigt, um den funktionellen Adressierblock
mit einer Folge von Trapezoiden zu versorgen, die nach der
Zusammensetzung das ursprüngliche Viereck genau darstellen.
Die Zerlegung des willkürlichen Vierecks geschieht durch die
Koordinaten-Sequentialisierungs- bzw. Reihenfolgebestimmungslogik.
Um das Beschneiden des Vierecks auf die Ausschnittgrenzen in
aufeinanderfolgenden Pipelinestufen zu unterstützen, wird die
Beziehung der Eckpunkte zu den entsprechenden Schnittgrenzen
benötigt. Dies bedeutet, daß beispielsweise alle X-Eckpunkte
sowohl mit der minimalen X-Schnittgrenze als auch mit der
maximalen X-Schnittgrenze verglichen werden. Ein ähnlicher
Satz von Vergleichen ist auch für die Y-Eckpunkte erforderlich.
In einigen Fällen können diese Vergleiche angeben, ob
ein Objekt überhaupt über sichtbare (nicht abgeschnittene)
Bereiche verfügt. Durch vorhergehende Identifizierung der
unsichtbaren Objekte kann der Einsatz von nachfolgenden Pipelinestufen
vermieden werden, da keine sichtbaren Pixel für ein
Einschreiben in den Displayspeicher jemals identifiziert werden.
Dies ist ein betrieblicher Vorteil, da die Erzeugung des
Vierecks als unmittelbar nach der Analyse der beschnittenen
Information abgeschlossen angesehen werden kann.
Bei dem bevorzugten Ausführungsbeispiel des Graphiksystems
wird ein mathematischer 16-Bit-zweier-Komplementärwert für die
Bestimmung des einem Liniensegment zugeordneten Pixels verwendet.
Diese mathematische Operation beinhaltet die Differenz
der beiden X- und der beiden Y-Eckpunkte des Liniensegments.
Um mathematischen Überlauf zu vermeiden, muß der numerische
Bereich der X- und Y-Eckwerte auf Werte beschränkt werden, die
in 15 Bits oder zwischen -2¹⁴ und (2¹⁴-1) darstellbar
sind. Zu diesem Zweck wird der numerische Bereich der Eckpunkte
von der Koordinatenvergleichslogik überprüft.
Die Erzeugung von BLITs bedingt auch vier Eck- oder Scheitelpunkte,
von denen zwei die gegenüberliegenden Ecken eines
Quellenrechtecks (SRC) und zwei die gegenüberliegenden Ecken
eines Bestimmungsrechtecks (DEST) spezifizieren. Zweck der
BLIT-Operation ist das Kopieren der im SRC-Rechteck enthaltenen
Pixel in das DEST-Rechteck. Im beschriebenen Ausführungsbeispiel
wird die obere linke Ecke des SRC-Rechtecks im Eckpunkt
0 gespeichert, während die untere rechte SRC-Ecke im
Eckpunkt 1 liegt. In ähnlicher Weise befindet sich die obere
linke DEST-Ecke im Eckpunkt 2 und die untere rechte Ecke im
Eckpunkt 3. Um die SRC geeignet in DEST zu kopieren, muß besondere
Aufmerksamkeit auf den Fall gerichtet werden, daß zwei
Rechtecke einander überlappen. Ist dies der Fall, muß die
Reihenfolge, in der Pixel kopiert werden, beachtet werden,
wenn das richtige Ergebnis gewonnen werden soll. Dies ist ein
für den Fachmann bekanntes Problem. Die Informationen, die zur
richtigen Bestimmung der Pixel-Kopierbedingungen erforderlich
sind, umfassen den Vergleich der SCR-Rechteckgrenzen mit den
DEST-Rechteckgrenzen. Dieser Vergleich wird sowohl für die X-
als auch die Y-Koordinaten benötigt.
Zum Zwecke des Beschneidens sowohl der SRC- als auch der
DEST-Rechtecke in aufeinanderfolgenden Pipelinestufen ist
außerdem die Beziehung der SRC- und DEST-Eckpunkte zu den
entsprechenden Beschneidungsgrenzen notwendig. Auch dies kann
anzeigen, daß entweder das SRC- oder das DEST-Rechteck vollständig
dunkel (unsichtbar) ist, und es kann die Benutzung
aufeinanderfolgender Pipelinestufen überflüssig machen. Auch
dies stellt einen betrieblichen Vorteil dar, da die Ausführung
des BLIT so angesehen werden kann, als hätte sie unmittelbar
nach der Analyse der Beschneidungsinformationen stattgefunden.
Die Koordinateneinspeichersteuerlogik eröffnet mehrere Wege
für die Gewinnung der Koordinatenwerte. Dementsprechend erhält
die Koordinatenvergleichslogik die notwendigen Vergleichsinformationen
unabhängig von der Art der Beschaffung der Koordinatenwerte
aufrecht. Die verschiedenen Methoden der Koordinatengewinnung
können wie folgt zusammengefaßt werden: absolute,
Index- und relative Methode. Die benutzte spezielle Methode
wird von der Adresse des Registers bestimmt, welches die CPU
zum Identifizieren des oder der zu ladenden Register benutzt.
Ein absoluter Koordinatenwert wird durch Speicherung des von
der CPU in das adressierte Register zugeführten aktuellen
Werts geladen. Diese Lademethode wird zum Laden der Ausschnittgrenzenregister
und der Rasteroffsetregister sowie von
individuellen Koordinatenregistern verwendet. Die zweite Methode,
die Indexmethode, dient zum wirksamen Laden von Mehrfachkoordinaten
mit den gleichen Werten. In diesem Falle wird
der von der CPU gelieferte Wert zunächst zu dem entsprechenden
Rasteroffsetregister hinzuaddiert (entweder Rasteroffset X
oder Y), bevor er für die Speicherung in einem oder mehreren
Koordinatenregistern zur Verfügung steht. Die Addition des
Rasteroffset bildet ein Mittel zur Verschiebung (offsetting)
des X/Y-Adreßraums, der von der CPU einem anderen Bereich des
Displayspeichers zur Verfügung gestellt wird.
Der Index-Lademechanismus benutzt einen 2-Bit-Index zur Eigenführung
und zur Identifizierung dafür, wieviele und welche
Koordinatenregister während eines vorgegebenen Zyklus zu laden
sind. Es ist dieser Mechanismus, welcher es möglich macht, daß
die CPU zum Identifizieren eines zu einem Punkt degenerierten
Vierecks nur einX/Y-Paar, zwei X/Y-Paare für eine Linie oder
drei X/Y-Paare für ein Dreieck zu spezifizieren hat. Wenn
eines der vorgenannten degenerierten Vierecke in die vier
Ecken-Register geladen wird, so kann ein oder mehrere Eckpunkte
wiederholt werden. Dies ist notwendig, damit aufeinanderfolgende
Pipelinestufen das als Viereck oder Vierseit definierte
Objekt (trotz Degenerierung) stets interpretieren können
und es nicht als Spezialfall von Objekten niedrigerer
Ordnung (d. h. Punkt, Linie, Dreieck) behandeln. Das Index-Ladeschema
ermöglicht es auch, daß nur die entgegengesetzten
Ecken eines Rechtecks eingegeben werden, um alle vier Ecken
des entsprechenden Vierecks in geeigneter Weise zu definieren.
Die letzte Lademethode, die relative Methode, ermöglicht es
der CPU, gerade die Differenz zwischen der zuletzt eingegebenen
Koordinate und dem vorgesehenen neuen Koordinatenwert anzugeben.
In diesem Falle wird ein von der CPU geliefertes Delta
oder Offset der zuvor geladenen Koordinate hinzuaddiert, bevor
es in ein oder mehrere Register geladen wird. Der 2-Bit-Index
dient zur Identifizierung der zuletzt eingegebenen Koordinate
(Ecke(Index-1)mod4) für die notwendige Addition und identifiziert,
welches Register oder welche Register zu laden sind,
wie bei der Index-Lade-Methode.
Im Ergebnis hat die CPU die freie Wahl, die Koordinatenregister
auf irgendeine Weise zu laden. Wenn die Operation, entweder
eine Viereckumsetzung oder BLIT, tatsächlich verlangt wird
(nach dem Laden der Koordinaten), wird der aktuelle Zustand
der vier Eck- bzw. Scheitelwerte direkt benutzt, und zwar
unabhängig davon, wie er gewonnen worden ist. Dies gibt der
CPU höchste Flexibilität.
Fig. 1 ist eine Gesamtdarstellung eines Graphikuntersystems,
in welchem die Erfindung verwendet werden kann. Eine Bus-Interfacelogik
11 ist über Adreß-, Daten- und Steuerbusse mit
einer zentralen Verarbeitungseinheit (CPU) verbunden. Die
Funktionskomponenten des Graphikuntersystems sind ein Datenweg-
und Speicherinterface 13, ein Koordinateneinspeicherabschnitt
15, ein Koordinatensequentialisierungsabschnitt 17,
ein funktioneller Adreßblock 19, ein Maskenerzeugungsblock 21
und ein linearer Adreßgenerator 23.
Das Datenweg- und Speicherinterface 13 aktualisiert einen in
der Zeichnung nicht dargestellten Rahmenpuffer, der einen auf
einem Videodisplay, beispielsweise einer CRT, wiederzugebende
graphische Informationen speichernden Speicher bildet. Daten,
die in den Rahmenpuffer geladen werden, werden von einer Videoschaltung
zugegriffen, welche die Daten in geeignete elektrische
Signale umsetzt, die ihrerseits einzelne Pixel der
Videoanzeige ein- und ausschalten. Die Daten von der Bus-Interfacelogik
werden von dem Maskenerzeugungsblock 21 und dem
Linearadressengenerator 23 auf der Basis der vom Koordinateneinspeicherabschnitt
15, vom Koordinatensequentialisierungsabschnitt
17 und von der funktionellen Adressierstufe 19
durchgeführten Verarbeitung modifiziert. Die funktionelle
Adressierstufe 19 bewirkt auch einen Teil der Beschneidung,
die zum Einpassen der speziellen Graphikobjekte in das für
ihre Anzeige vorgesehene Ausschnittfenster notwendig ist und
überträgt danach die Signale zur Maskenerzeugungsstufe 21,
welche die Informationen in sechzehn Pixelabschnitte ordnet.
Letztere überspannen das sichtbare Objekt vom Anfang bis zum
Ende für jede Abtastlinie und dienen zur Adressierung der
Datenweg- und Speicherinterfacestufe 13.
Die Maskenerzeugungssignale werden auch an den Linearadressengenerator
23 angelegt, der die von der Maskenerzeugungsstufe
21 gelieferten Adressen in Signale zum linearen Adressieren
des Rahmenpuffers für die Übertragung zum Ausgabedisplay umsetzt.
Die Erfindung ist auf eine Schaltung im Koordinateneinspeicherblock
(coordinate staging block) 15 gerichtet, welche
gewisse Operationen an ihren Eingangssignalen durchführt,
deren Einzelheiten weiter unten unter Bezugnahme auf die Fig. 2
bis 14 beschrieben werden, wobei Informationen nach Art
von Steuersignalen erzeugt werden, die ein Graphikuntersystem
dazu befähigen, beliebige Viereckwiedergaben unter Beschneiden
und Blockbildübertragungen (BLITs) mit Beschneidungen durchzuführen.
Daher ist die Erfindung auf eine spezielle Schaltung
innerhalb des Koordinateneinspeicherabschnitts 15 gerichtet.
Eine Implementierung der verschiedenen Zeitgabe- und Steuersignale,
wie sie für die entsprechende Operation der oben angegebenen
Funktionsblöcke für ein Video-Displayuntersystem benötigt
wird, ist dem Fachmann bekannt und braucht daher nicht im
einzelnen beschrieben zu werden, soweit ihre Beschreibung
nicht für das Verständnis der vorliegenden Erfindung erforderlich
ist.
Im folgenden wird auf Fig. 2 Bezug genommen, in der ein Gesamtüberblick
über den Koordinateneinspeicherabschnitt 15
gezeigt ist. Der Koordinateneinspeicherabschnitt 15 weist
einen Addierer 31, eine Ladesteuerungszustandsmaschine 33,
einen Multiplexer 35, XY-Koordinatenregister 37, Abschnittskoordinatenregister
39, Rasteroffsetregister 41, eine Indexlogik
43, eine Testfenster-Steuerlogik 45, eine Vergleichslogik und
Ergebnisspeichereinheit 47, eine Vergleichssteuerungszustandsmaschine
49 und eine Zustandserzeugungslogik 51 auf.
Vor dem Eingehen auf die erfindungsspezifischen Merkmale soll
zunächst kurz beschrieben werden, wie Objekte dargestellt
werden, um das Verständnis dafür zu erleichtern, wie die vorliegende
Erfindung implementiert wird.
XY-Paare von Eck- oder Scheitelpunkten stellen Videodisplaykoordinaten
dar. Bei einem typischen Display liegen X-Werte im
Bereich von 0-1151 und Y-Werte im Bereich zwischen 0-899. Jede
X-Koordinate und jede Y-Koordinate wird in einem getrennten
32-Bit-Register oder in zwei 16-Bit-Registern gespeichert.
Obwohl 16 Bits mehr als ausreichen für die Speicherung der
höchsten Bildschirmkoordinate (d. h. bis zu 65 535 oder -32 768
bis +32 767), werden 32 Informationsbits gespeichert, da es
sich dabei um den in Graphiksoftware am meisten verbreiteten
Datentyp handelt, der einen genügend großen Bereich zur Verarbeitung
der meisten lebensechten Objekte liefert, welche Flächen
überspannen, die wesentlich größer als das Videodisplay
sind.
Viereckige Objekte werden als Kombinationen von vier Paaren
von Eck- oder Scheitelpunktkoordinaten (X₀, Y₀), (X₁,
Y₁), (X₂, Y₂) und (X₃, Y₃) dargestellt. Wenn ein
Objekt ein Punkt ist, so sind alle vier Paare von Eckpunktkoordinaten
die gleichen oder drei Punkte werden wiederholt.
Wenn ein Objekt eine Linie ist, so werden zwei der vier (oder
drei der vier) Eckpunktkoordinatenpaare repliziert. Wenn ein
Objekt ein Dreieck ist, so wird ein Eckpunktkoordinatenpaar
aus vier Paaren wiederholt. Wenn ein Objekt ein Viereck ist,
so sind alle vier Paare unterschiedlich. Objekte (d. h. Punkt,
Linie, Dreieck oder Viereck) werden unter Verwendung der Minimalzahl
von besonderen Eckpunkten am wirksamsten definiert,
die notwendig sind, um das Objekt vollständig zu beschreiben,
d. h. für einen Punkt -1, für eine Linie -2, für ein Dreieck
-3, für ein Viereck -4 und für ein Rechteck -2 (entgegengesetzte
Eckpunkte).
Wenn eine Blockbildübertragungsoperation (BLIT) durchgeführt
werden soll, so haben die vier X/Y-Register die folgende Interpretation
und werden dementsprechend geladen:
X 0 - X-Koordinate für die obere linke Ecke des Quellenblocks,
Y 0 - Y-Koordinate für die obere linke Ecke des Quellenblocks,
X 1 - X-Koordinate für die untere rechte Ecke des Quellenblocks,
Y 1 - Y-Koordinate für die untere rechte Ecke des Quellenblocks,
X 2 - X-Koordinate für die obere linke Ecke des Bestimmungsblocks,
Y 2 - Y-Koordinate für die obere linke Ecke des Bestimmungsblocks,
X 3 - X-Koordinate für die untere rechte Ecke des Bestimmungsblocks,
Y 3 - Y-Koordinate für die untere rechte Ecke des Bestimmungsblocks.
Y 0 - Y-Koordinate für die obere linke Ecke des Quellenblocks,
X 1 - X-Koordinate für die untere rechte Ecke des Quellenblocks,
Y 1 - Y-Koordinate für die untere rechte Ecke des Quellenblocks,
X 2 - X-Koordinate für die obere linke Ecke des Bestimmungsblocks,
Y 2 - Y-Koordinate für die obere linke Ecke des Bestimmungsblocks,
X 3 - X-Koordinate für die untere rechte Ecke des Bestimmungsblocks,
Y 3 - Y-Koordinate für die untere rechte Ecke des Bestimmungsblocks.
Auf einem Display, beispielsweise einer Bildröhre, anzuzeigende
Bilder werden als diskrete Pixel gebildet, welche in einem
Direktzugriffsspeicher (RAM), bekannt als Rahmenpuffer, in
einer oder mehreren Ebenen (oder Bits) gespeichert werden,
wobei die Anzahl von Ebenen beim Farbsystem typischerweise
acht ist. In dem Rahmenpuffer gespeicherte Daten werden von
einem Koordinatenpaar X und Y adressiert, wobei ein X,Y-Paar
ein spezielles Pixel in allen Ebenen identifiziert, X die
Zeile und Y die Spalte darstellt. Ein Pixel wird durch ein
einzelnes Bild aus jeder Ebene definiert. Wenn acht Ebenen
verwendet werden, wird daher jedes wiedergegebene Pixel durch
8 Bits im Rahmenpuffer definiert. Auf diese Weise kann ein Bit
eines Pixels dazu verwendet werden, anzugeben, ob es an oder
aus ist, wobei die restlichen 7 Bits die Pixelfarbe bezeichnen.
Alternativ können alle acht Pixel zur Bezeichnung der
Farbe verwendet werden, wobei eine der Farbe entsprechend der
Hintergrundfarbe des Displays das Pixel ausschaltet.
Die Erfindung liegt hauptsächlich in der Implementierung der
Testfenstersteuerlogik 45 und der Zustandserzeugungslogik 51.
Die Operationsweise und Implementierung der anderen Funktionsblöcke
aus Fig. 2 werden nur so weit genauer beschrieben, wie
sie für eine geeignete Erläuterung der erfindungsgemäß getroffenen
Maßnahmen notwendig sind.
Addierer 31 ist ein 16- oder 32-Bit-zweier-Komplement-Binäraddierer
mit zwei Eingängen, nämlich einem Dateneingang von
der Bus-Interfacelogik 11 mit einlaufenden Daten von der CPU
und einem Eingang vom MUX 35, einem Multiplexer, der einen aus
einer Gruppe von Eingängen von den Rasteroffsetregister 47,
X/Y-Koordinatenregistern 37 oder Ausschnittkoordinatenregistern
39 auswählt. Der Eingang vom MUX 35 wird durch Signale
ausgewählt, welche von der Ladesteuerungszustandsmaschine 33
in der weiter unten beschriebenen Weise erzeugt werden.
Die Details des Addierers 31 und des Multiplexers 35 werden im
folgenden unter Bezugnahme auf Fig. 3 beschrieben. In Fig. 3
ist der Addierer 31 als 16-Bit-Addierer gezeigt. Obwohl ein
32-Bit-Addierer verwendet werden könnte, da die Dateneingabe
bei dem beschriebenen Ausführungsbeispiel 32 Bits ist, wird
ein 16-Bit-Addierer verwendet, um Platz auf der integrierten
Schaltung zu sparen, in der die Erfindung implementiert ist,
und da die Zeitgabeerfordernisse der erfindungsgemäß verwendeten
Pipeline durch eine 2-Schritt-Addition erfüllt sind. Die
Unterschiede gegenüber der Verwendung eines 32-Bit-Addierers
sind für den Fachmann klar und brauchen hier nicht im einzelnen
beschrieben zu werden.
Der Multiplexer 35 besteht tatsächlich aus zwei Multiplexern
35 a und 35 b und einem dritten Multiplexer 36, der zur Eingabe
der 16 Bits höherer und niedrigerer Ordnung von der Dateneingabe
verwendet wird. Multiplexer 35 a und 35 b erhalten die 16
Bits höherer und niedriger Ordnung aus sieben 32-Bit-Eingängen
wie folgt: eine 16-Bit-Eingabe (Vorzeichen erweitert auf 32
Bits) von Rasteroffsetregistern 41, vier 32-Bit-Eingänge von
X/Y-Koordinatenregistern 37 und zwei 16-Bit-Eingaben (Zeichen
erweitert auf 32-Bits) von Ausschnittkoordinatenregistern 39.
Die Ausgangssignale der Multiplexer 35 a und 35 b werden zur
Bildung der Signal-Datenausgabe kombiniert (um der CPU Lesezugriff
zu diesen Registerwerten zu geben) und werden außerdem
in einen dritten Multiplexer 40 eingegeben, der die Ausgabe
des Multiplexers 35 a immer dann durchläßt, wenn die Bits hoher
Ordnung von X₀-X₃ oder Y₀-Y₃ zugegriffen werden; anderenfalls
wählt der Multiplexer 40 den Ausgang von Multiplexer
35 b aus. Der Ausgang des Multiplexers 40 wird als Eingang an
ein Logikgatter 42 angelegt, das entweder das 16-Bit-Ausgangssignal
des Multiplexers 40 oder sechzehn 0-Bits durchläßt.
Nullen werden vom Logikgatter 42 ausgegeben, wenn die Bits der
Dateneingabe vom Multiplexer 36 zum direkten Laden (absolutes
Laden) in ein Register innerhalb der Rasteroffsetregister 41,
X/Y-Koordinatenregister 37 oder Ausschnittkoordinatenregister
39 durchgelassen werden. Ebenfalls in Fig. 3 gezeigt sind
Logikschaltungen 44 und 46, welche die folgende Funktion erfüllen.
Wenn eine Addition der sechzehn Bits niedriger Ordnung
stattfindet, wird das UND-Gatter 44 ausgangsseitig auf einen
niedrigen Wert gedrückt, was einen einlaufenden Übertrag einer
"0" an den Addierer 31 anlegt. Der auslaufende Übertrag dieser
Addition wird in einem Flipflop 46 zwischengespeichert. Das
Ausgangssignal des Flipflops 46 wird von dem UND-Gatter 44 zum
Übertragseingang des Addierers 31 während der Addition der
oberen sechzehn Bits übertragen. Diese Kombination bildet ein
2-Zyklus 32-Bit-Additionsäquivalent zu einer 1-Zyklus 32-Bit-
Addition.
Die Operation des Addierers 31, der Rasteroffsetregister 41,
der X/Y-Koordinatenregister 37, der Ausschnittkoordinatenregister
39, der Testfenstersteuerung 45 und der Vergleichslogik
und Ergebnisspeichereinheit 47 wird von der Ladesteuerungszustandsmaschine
33 und der Vergleichslogikzustandsmaschine 49
koordiniert, welche bewirkt, daß die oben angegebenen Funktionsblöcke
derart arbeiten, daß die Daten in einer Pipeline
(zeitverschachtelt) fließen. Obwohl nicht alle Steuerleitungen
von der Ladesteuerungszustandsmaschine 33 und der Vergleichslogikzustandsmaschine
49 gezeigt sind, werden die Einzelheiten
für den Fachmann aus der Beschreibung der Ladesteuerungszustandsmaschine
33 und der Vergleichslogikzustandsmaschine 39
klar.
Die Koordinatenregister 37 bestehen, wie in Fig. 4 gezeigt
ist, aus einer Gruppe von 16-Bit-Registern, welche die
(X₀, Y₀)-(X₃, Y₃)-Eck- oder Scheitelpunkte eines zu
zeichnenden Objekts speichern. Ein 16-Bit-Register dient zur
Speicherung der oberen 16 Bits jeder X-Koordinate und ein
anderes 16-Bit-Register wird zur Speicherung der unteren 16
Bits jeder X-Koordinate verwendet. In ähnlicher Weise hält ein
anderes 16-Bit-Register die oberen 16 Bits jeder Y-Koordinate,
und ein weiteres 16-Bit-Register hält die niedrigeren 16 Bits
jeder Y-Koordinate. Diese Register sind in Fig. 4 als X 0 L für
die unteren 16 Bits der X₀-Koordinate und X 0 U für die oberen
16 Bits der X₀-Koordinate gezeigt. Register X 1 L-X 3 L und
X 1 U-X 3 U stellen die unteren und oberen 16 Bits der
X₁-X₃-Koordinaten dar. In ähnlicher Weise speichern Register
Y 0 L-Y 3 L und Y 0 U-Y 3 U die unteren und oberen 16 Bits der
Y₀-Y₃-Koordinaten des Objekts. Referenzen auf Y 0, Y 0 usw.
bedeuten den 32-Bit-Wert, der in dem zugehörigen Registerpaar
gespeichert ist, d. h. X 0 U, X 0 L und X 0 U, Y 0 L.
Jedes Registerpaar (C 0 L, Y 0 L)-(X 3 L, Y 3 L) ist mit einem Multiplexerpaar
gekoppelt, das zur Auswahl entweder des entsprechenden
X- oder Y-Registers dient. So sind beispielsweise die Register
X 0 L und Y 0 L mit Multiplexern 61 a und 61 b gekoppelt. Die Ladesteuerungszustandsmaschine
33 erzeugt ein Signal, welches den
Multiplexer 61 a zur Auswahl des Eingangs vom Register X 0 L oder
Y 0 L veranlaßt, und zwar in Abhängigkeit davon, ob die X-Koordinaten
oder die Y-Koordinaten zu bearbeiten sind. Jeder der
Multiplexer 32 a und 32 b, 64 a und 64 b arbeitet in der gleichen
Weise auf Daten von Registerpaaren (X 1 L, Y 1 L)-(X 3 L, Y 3 L). Die
Ausgangssignale von Multiplexern 61 a-64 a laufen zum Multiplexer
65 b, während die Ausgangssignale von Multiplexern 61 b-64 b
zur Vergleichslogik und Ergebnisspeicherung 47 laufen.
Die Blöcke 67, 69, 71 und 73, bezeichnet mit "alle Nullen,
alle Einsen", sind jeweils logische Schaltungen, welche die
oberen 18 Bits ihres zugehörigen X-, Y-Koordinatenpaars für
alle Nullen oder alle Einsen prüfen. 16 der Bits kommen aus
den Registern (X 0 U, Y 0 U)-(X 3 U, Y 3 U), wobei die siebzehnten und
achtzehnten Bits von den beiden Bits höherer Ordnung des korrespondierenden
Registers in der Gruppierung (X 0 L, Y 0 L-X 3 L, Y 3 L)
kommen. Der siebzehnte und achtzehnte Bit-Eingang ist in Fig. 4
nicht gezeigt, um eine unnötige Überladung der Figur zu
vermeiden. Die Registerpaare (X 0 U, Y 0 U)-(X 3 U, Y 3 U) werden in
Multiplexer 75-78 eingegeben, welche entweder die X-Koordinate
oder die Y-Koordinate in der gleichen Weise wie die Multiplexerpaare
61 a, 61 b-64 a, 64 b auswählen. Die Ausgänge der Multiplexer
75-78 laufen zum Multiplexer 35 a. Einer der 4-Bit-Ausgänge
von jedem der logischen Blöcke 67-73 führt jeweils eine "1",
wenn die oberen 18 Bits ihres entsprechenden Registers alle
Nullen oder alle Einsen sind; anderenfalls ist jedes der vier
Bits 0. Die vier 4-Bit-Ausgänge von Blöcken 67-73 werden in
die Zustandserzeugungslogik 51 eingegeben.
Die in Fig. 5 gezeigten Ausschnittskoordinatenregister enthalten
vier Register XSchnittMin, XSchnittMax, YSchnittMin,
YSchnittMax und Multiplexer 81 a, 81 b, 83 a und 83 b. Die Werte
XSchnittMin, XSchnittMax, YSchnittMin, YSchnittMax, die in den
o. g. gleichnamigen Registern gespeichert sind, definieren die
linke, rechte, obere und untere Seite des gerade aktiven Fensters.
Diese Werte werden von der CPU erzeugt und in den Addierer
31 eingegeben, der diesen Werten 0 hinzufügt, um die
Register XSchnittMin, XSchnittMax, YSchnittMin und YSchnittMax
zu laden. Die Multiplexer 81 a und 83 a einerseits und die Multiplexer
81 b und 83 b andererseits wählen XSchnittMin und
XSchnittMax oder YSchnittMin und YSchnittMax nach Maßgabe von
Steuersignalen aus, die von der Ladesteuerungszustandsmaschine
33 und der Vergleichssteuerungszustandsmaschine 49 erzeugt
werden. Die Werte aus den Multiplexern 81 a und 83 a werden an
den Multiplexer 35 und die Werte aus den Multiplexern 81 b und
83 b an die Vergleichslogik- und Ergebnisspeichereinheit 47 und
die Testfenstersteuerung 45 übertragen.
Die in Fig. 6 gezeigten Rasteroffsetregister 41 weisen zwei
Register XRasOff, YRasOff und einen Multiplexer 53 auf. Die
Werte von XRasOff und YRasOff, die in den gleichbezeichneten
Registern gespeichert sind, definieren jeweils das X- und
Y-Offset, das gegebenenfalls zur Dateneingabe zu addieren ist,
bevor jede der vier Gruppen von X-, Y-Koordinaten im X/Y-Koordinatenregister
37 gespeichert wird. Diese Werte werden von
der CPU zur Speicherung in XRasOff und YRasOff erzeugt. Multiplexer
53 wählt XRasOff oder YRasOff in Abhängigkeit von Steuersignalen
aus, die von der Ladesteuerungszustandsmaschine 33
erzeugt worden sind. Der vom Multiplexer 53 ausgewählte Wert
wird zum Multiplexer 35 übertragen.
Die Testfenstersteuerung 45 wird im folgenden unter Bezugnahme
auf Fig. 7 beschrieben. Die CPU erzeugt die Werte TestXVal und
TestYVal, die um eine vorgegebene Strecke, d. h. Anzahl von
Pixeln, über und unter (für TestYVal) und rechts und links
(für TestXVal) des gerade aktiven Ausschnittfensters verschoben
sind. Mit anderen Worten, für ein vorgegebenes Fenster auf
einer Anzeige gibt es ein Δ X und Δ Y, welche ein das echte
Ausschnittfenster umgebendes Testfenster definieren. Zweck
dieses Testfensters ist es, immer dann, wenn es vorteilhaft
ist, den sonst notwendigen Einsatz von Hardware zur Berechnung
der Lage von Objekten oder Objektteilen zu vermeiden, welche
außerhalb des Ausschnittfensters liegen.
Die 4-Bit-Werte TestXVal und TestYVal sind in 4-Bit-Registern
TestX bzw. TestY gespeichert. Ein Multiplexer 91 wählt eines
der Register TestX oder TestY in Abhängigkeit davon aus, ob
die X-Koordinaten oder die Y-Koordinaten je nach dem von der
Ladesteuerungszustandsmaschine 33 erzeugten MUX-Aktivierungssignal
bearbeitet werden. Das Ausgangssignal des Multiplexers
91 wird in einen Abwärtszähler (DEC) 93 und in einen Aufwärtszähler
(INC) 95 eingegeben. Der Abwärtszähler hat als zweiten
Eingang den Wert XSchnittMin oder YSchnittMin, und der Aufwärtszähler
95 hat als zweite Eingabe den Wert XSchnittMax
oder YSchnittMax, was wiederum davon abhängt, ob die X- oder
Y-Koordinaten entsprechend dem MUX-Aktivierungssignal der
Ladesteuerungszustandsmaschine 33 bearbeitet werden. Die vom
Abwärtszähler 93 und Aufwärtszähler 95 erzeugten Ausgangssignale
werden als XTestMin, YTestMin und XTestMax, YTestMax
bezeichnet. Der Abwärtszähler 93 erzeugt die Werte XTestMin
und YTestMin durch Subtraktion eines Werts von 2 potenziert
mit (TestX-1) bzw. (TestY-1) von XSchnittMin und YSchnittMin.
In ähnlicher Weise erzeugt der Aufwärtszähler 91 die Werte
XTestMax bzw. YTestMax durch Addition eines Wertes gleich 2
zur Potenz (TestX-1) bzw. (TestY-1) zu dem Wert XSchnittMax
bzw. YSchnittMax (d. h. 2(TestX-1) oder 2(TestY-1)).
Die Ladesteuerungszustandsmaschine 33 erzeugt die Steuersignale
MUX-Aktivierung, Index und Registeraktivierung. MUX-Aktivierung
ist ein Satz von Steuersignalen, von denen eins bewirkt,
daß die verschiedenen Multiplexer in den Rasteroffsetregistern
41, X/Y-Koordinatenregistern 37 und Ausschnittkoordinatenregistern
39 ihre entsprechenden X- oder Y-Eingänge
auswählen. Ein zweites dieser Steuersignale sorgt dafür, daß
der Multiplexer 35 einen seiner Eingänge aus den Rasteroffsetregistern
41, X/Y-Koordinatenregistern 37 oder Ausschnittkoordinatenregistern
39 auswählt. Index ist ein einzelnes Steuersignal,
welches ein Indexregister in der Indexlogik 43 um 1
zwischen den Werten 0, 1 und 2 weiterschalten und wenn der Wert
3 ist auf 0 rücksetzen läßt (modulo 4). Registeraktivierung
ist ein Satz von Steuersignalen, eines für jedes der Register
in den Rasteroffsetregistern 41, X/Y-Koordinatenregistern 37
und Ausschnittkoordinatenregistern 39, welches jedes dieser
Register den 16-Bit-Wert auf der Leitung vom Addierer 31 laden
läßt.
Die Funktionen der Ladesteuerungszustandsmaschine 33 und der
Indexlogik 43 werden nachfolgend anhand eines Beispiels genauer
beschrieben, wobei die Implementierungseinheiten für den
Fachmann erkennbar sind. Wie oben angegeben, sind die zu erzeugenden
Bilder definiert, als ob sie aus einem oder mehreren
Objekten mit jeweils vier Eckpunktkoordinatenpaaren
(X₀, Y₀)-(X₃, Y₃) bestehen. Objekte können Punkte, Linien,
Dreiecke, Rechtecke oder beliebige Vierecke sein. Bei
Punkten stimmen die vier Scheitelpunktkoordinatenpaare identisch
überein. Bei Linien gibt es nur zwei Paare von unterschiedlichen
Eck- oder Scheitelpunkten (vertices). Vierseitige
Objekte haben vier unterschiedliche Ecken. Ein Rechteck stellt
einen Spezialfall eines Vierecks dar, wobei es nur zwei unterschiedliche
X-Koordinaten und zwei unterschiedliche Y-Koordinaten
gibt (Rechtecke können als ein Eckenpaar mit diagonal
gegenüberliegenden Eckpunkten definiert werden). Bei Dreiecken
gibt es nur drei Paare von besonderen Scheitel- oder Eckpunkten.
Der Indexwert gibt an, welche Register im Hinblick auf die Art
des definierten Objekts zu aktivieren sind. Bei richtiger
Operation laufen Y-Werte den X-Werten voraus. Mit Ausnahme von
Rechtecken wird das Indexregister inkrementiert, nachdem die
X-Werte in die geeigneten Register geladen worden sind. Bei
Rechtecken wird das Indexregister nach dem Laden sowohl der X-
als auch der Y-Werte inkrementiert. Die nachfolgende Tabelle I
gibt für jeden Objekttyp die X-Register an, welche bei jedem
Indexregisterwert aktiviert werden. Die nicht gezeigten Y-Register
entsprechen den aktivierten X-Registern.
Es ist ein wichtiger, Tabelle I entnehmbarer Punkt, daß diejenige
Koordinate, auf die das Indexregister hinweist, stets
geschrieben wird. Die Art des Schreibens (Punkt, Linie, Dreieck
usw.) zeigt, wieviele aufeinanderfolgende Register (modulo
4) ebenfalls geschrieben werden. Wenn beispielsweise zu dem
Zeitpunkt, bei dem eine Linie X-Schreiben empfangen wird, der
Index 2 ist so werden drei Register, nämlich X 2, (X 2 1) modulo
4 und (X 2 2) modulo 4 oder X 2, X 3 und X 0 geschrieben. Ein
Rechteck-Schreiben in Y würde nur Y 2 berühren.
Die weiter unten beschriebenen Beispiele 1 bis 3 erläutern die
Rolle des Indexregisters bei der Definition eines Objekts.
Jede Linie des Beispiels zeigt die beabsichtigte Schreiboperation
den von der Ladesteuerungszustandsmaschine zur Steuerung
des Ladens der Koordinatenregister benutzten Indexregisterwert,
die in den Koordinatenregistern nach dem Schreiben gespeicherten
Werte und den Indexwert nach Abschluß des Schreibzyklus
an. Die Kurzbezeichnungen für die Schreibbefehle sind
PntX oder PntY für ein Punktschreiben, LineX oder LineY für
ein Linienschreiben, TriX und TriY für ein Dreieckschreiben,
QuadX und QuadY für ein Viereckschreiben und RectX und RectY
für eine Rechteck-Schreiboperation. Die von jedem Schreibbefehl
identifizierte tatsächliche Schreiboperation ist, wie
weiter unten noch beschrieben wird, eine Multitaktzyklusoperation.
Bei diesen Beispielen ist jedoch die Ausführungszeit
des Befehls ohne Relevanz.
Als Mittel zur Klärung der Interpretation dieser Beispiele
wird das erste Beispiel beschrieben. Aus dieser Beschreibung
ergibt sich die Interpretation auch für die Beispiele 2 und
3.
Zum Zeitpunkt des Empfangs des PntY (6)-Befehls enthalten alle
Koordinatenregister den Wert "0", und der Index ist gleich
"1". Der PntY (6)-Befehl besagt, daß ein Punkt des Werts 6 in
die Y-Koordinatenregister geladen werden soll. Da der Index
eine 1 ist, zeigt Tabelle I, daß der einlaufende Wert (6) in
Y 1, Y 2, Y 3 und Y 0 gespeichert werden sollte. Der nächste empfangene
Befehl, PntX (3) sagt dann, daß der Punkt 3 in X 1, X 2,
X 3 und X 0 geladen werden soll. Wie im Falle nach den geindexten
X-Koordinaten-Schreiboperationen, wird der Index am Ende
des Schreibzyklus inkrementiert (modulo 4). Der nächste
Schreibbefehl ist ein LineY (9). Der Index für dieses Laden ist
2, und Tabelle I zeigt das Laden von 9 in Y 2, Y 3 und Y 0. Der
abschließende Schreibbefehl für dieses Beispiel ist LineX (7).
Tabelle I zeigt das Laden von 7 in X 2, X 3 und X 0, wonach das
Indexregister wieder inkrementiert wird. Der Endzustand der
Koordinatenregister identifiziert zwei unterschiedliche Eckpunkte
(drei Ecken bei (7, 9) und eine bei (3, 6)). Geometrisch
handelt es sich dabei um eine Linie mit den Endpunkten
bei (7, 9) und (3, 6), wie beabsichtigt wurde.
Obwohl im Beispiel 1 das Indexregister willkürlich 1 ist, wenn
die erste Koordinate empfangen wird, kann das Indexregister in
der Indexlogik 43 auf der Basis eines Wertes initiiert werden,
der an die Dateneingabeleitung angelegt wird, wenn die CPU
dies verlangt. (Zu beachten ist jedoch, daß eine geeignete
Operation entsprechend der Erfindung vollständig unabhängig
vom Anfangswert des Indexregisters ist, wenn eine Ladefolge
eingeleitet wird.) Es sei in diesem Beispiel ferner angenommen,
daß XRasOff und YRasOff den Wert 0 enthalten, um die
Operationsweise dieser Schaltung durchsichtiger zu machen.
Die Ladesteuerungszustandsmaschine 33 steuert in Verbindung
mit der Vergleichslogikzustandsmaschine 49 ein Pipelineschema,
das zusätzlich zum Laden der verschiedenen Register entsprechend
der vorstehenden Beschreibung auch die für die richtige
Operation der Vergleichslogik und Ergebnisspeicherung 47 und
der Zustandserzeugungslogik 51 notwendige Auswahl von Registern
und entsprechenden Multiplexern steuert. Wenn die Rasteroffsetfähigkeit
der Erfindung nicht genutzt werden soll,
ist es notwendig, vor der Durchführung der Vergleiche durch
die Vergleichslogik und Ergebnisspeicherung 47 die Addition
von Nullen zu den für die Speicherung in die X- und Y-Koordinatenregister
einlaufenden Daten zu erzwingen.
In diesem Zusammenhang können die MUX-Aktivierungs- und Registeraktivierungssteuersignale,
die von der Ladesteuerungszustandsmaschine
33 und der Vergleichslogikzustandsmaschine 49
erzeugt werden, aus der Zeitfolgetabelle gemäß Fig. 9 festgestellt
werden, und die nachfolgend angegebene Linie zeigt die
Reihenfolge der von dem Koordinateneinspeicherungsabschnitt 15
für jede eingegebene Y-Koordinate durchgeführten Verarbeitung.
- 1. Empfange Y-Koordinate auf Dateneingabe.
- 2. Addiere die 16 Bits niedriger Ordnung der empfangenen
Y-Koordinate zu:
a) YRasOff (niedrigeren 16 Bits) oder
b) den niedrigeren 16 Bits der von (Index-1) bezeichneten Y 0 L-Y 3 L oder
c) Nullen. - 3. Addiere die 16 Bits höherer Ordnung der empfangenen Y-Koordinate
zu:
a) YRasOff (Vorzeichen erweitert obere 16 Bits) oder
b) den 16 Bits höherer Ordnung der von (Index-1) bezeichneten Y 0 H-Y 3 H oder
c) Nullen
und vergleiche das Ergebnis von Schritt 2 mit den anderen Y-Koordinaten. - 4. Vergleiche das Ergebnis von Schritt 2 mit YSchnittMin, YTestMin, YSchnittMax und YTestMax und prüfe die oberen 18 Bits des Ergebnisses von Schritten 2 und 3 für alle Einsen und alle Nullen.
In den obigen Schritten 2 und 3 werden die Wahloperationen a),
b) oder c) wie folgt durchgeführt. Für nicht-relative Schreiboperationen
in ein indiziertes Register (PNT, LINE, TRI, QUAD,
RECT) wird Wahl a) getroffen. Bei einer relativen Schreiboperation
in ein indiziertes Register (RELPNT, RELLINE, RELTRI,
RELQUAD, RELRECT) wird b) ausgewählt. Alle anderen Schreiboperationen
wählen c). Das Laden einer X-Koordinate folgt dem
gleichen Muster.
Unter Berücksichtigung der oben angegebenen Beschränkungen und
Definitionen und unter der Annahme, daß der Indexregisterwert
in der Indexlogik 43 "01" und für die Register (X 0, Y 0)-(X 3, Y 3)
entsprechend obiger Beschreibung unter Bezugnahme auf Fig. 4
alle 0 sind, wird die folgende Ereignissequenz zum Laden der
Register abgewickelt, um eine Linie mit Endpunkten zu definieren,
deren X-, Y-Koordinaten (3, 6) (7, 9) sind, wie Beispiel
1.
Bei Taktzyklus 0 setzt der Befehl Schreibe PntY (6) den Wert 6
auf Dateneingabe und bewirkt, daß die Registeradreßeingabe zur
Ladesteuerungszustandsmaschine 33 einen Wert erhält, der angibt,
daß die einlaufenden Daten einen Y-Punkt darstellen. Zum
Taktzyklus 1 (Bezugnahme auf Fig. 3) wird Multiplexer 36 angewiesen,
die 16 Bits niedriger Ordnung auf Dateneingabe auszuwählen
und die Multiplexer 35 (d. h. Multiplexer 35 a und 35 b)
und 40 und das Logikgatter 42 werden angewiesen, die unteren
16 Bits von YRasOff durchzulassen. Daher addiert der Addierer
31 während des Taktzyklus 1 die Ausgangssignale vom Multiplexer
36 und logischen Gatter 42 und legt das Additionsergebnis
auf seinen Ausgang. Am Ende des Taktzyklus 1 sind die Register
Y 0 L-Y 3 L aktiviert und mit dem Wert aus dem Addierer 31 geladen,
d. h. 6 stellt die Bits niedriger Ordnung des Werts 6 dar,
der an "Dateneingabe" anstand. Im Taktzyklus 2 wird Multiplexer
36 angewiesen, die 16 Bits hoher Ordnung auf Dateneingabe
auszuwählen, während die Multiplexer 35 und 40 und das Logikgatter
42 instruiert werden, die vorzeichenerweiterten oberen
16 Bits von YRasOff durchzulassen. Daher addiert der Addierer
31 während des Taktzyklus 2 die Ausgangssignale vom Multiplexer
36 und logischen Gatter 42 und legt das Ergebnis an seinen
Ausgang. Am Ende des Taktzyklus 2 sind Register Y 0 H-Y 3 H aktiviert
und mit dem Wert vom Ausgang des Addierers 31 geladen.
Während des Zyklus 3 legt der Befehl Schreibe PntX (3) den Wert
3 auf Dateneingabe und bewirkt, daß der Registeradresseneingang
die Ladesteuerungszustandsmaschine 33 auf einen Wert
lädt, der angibt, daß die einlaufenden Daten einen X-Punkt
darstellen. Ebenfalls während des Taktzyklus 3 wird Multiplexer
36 angewiesen, die 16 Bits niedriger Ordnung auf Dateneingabe
auszuwählen, und die Multiplexer 35 und 40 und das Logikgatter
42 werden instruiert, die unteren 16 Bits von XRasOff
durchzulassen. Während des Taktzyklus 3 addiert der Addierer
31 die Ausgangssignale vom Multiplexer 36 und dem Logikgatter
42 und gibt das Ergebnis an seinen Ausgang. Am Ende des Taktzyklus
3 werden die Register X 0 L-X 3 L aktiviert und mit dem
Wert am Ausgang des Addierers 31 geladen, d. h. 3, was die Bits
niedriger Ordnung des Werts auf Dateneingabe darstellt. Beim
Taktzyklus 4 wird der Multiplexer 36 angewiesen, die 16 Bits
höherer Ordnung auf Dateneingabe auszuwählen, und die Multiplexer
35 und 40 und das Logikgatter 42 werden angewiesen, die
vorzeichenerweiterten oberen 16 Bits von XRasOff durchzulassen.
Beim Taktzyklus 4 addiert der Addierer 31 die Ausgangssignale
vom Multiplexer 36 und Logikgatter 42 und legt das Ergebnis
an seinen Ausgang. Während des Taktzyklus 4 sind die
Register X 0 H-X 3 H aktiviert und mit dem Wert vom Ausgang des
Addierers 31 geladen, und das Indexregister wird weitergeschaltet.
Während des Taktzyklus 5 gibt der Befehl Schreibe
LineY (9) den Wert 9 auf Dateneingabe und bewirkt, daß die
Registeradreßeingabe an die Ladesteuerzustandsmaschine 33
einen Wert enthält, der angibt, daß die einlaufenden Daten
eine Y-Linie darstellen. Beim Taktzyklus 5 wird der Multiplexer
36 angewiesen, die 16 Bits niedriger Ordnung auf Dateneingabe
auszuwählen, und Multiplexer 35 und 40 und Logikgatter 42
werden angewiesen, die 16 niedrigen Bits von YRasOff durchzulassen.
Während des Taktzyklus 5 addiert Addierer 31 die Ausgangssignale
vom Multiplexer 36 und Logikgatter 42 und legt
das Ergebnis an seinen Ausgang. Am Ende des Taktzyklus 5 sind
die Register Y 2 L, Y 3 L und Y 0 L aktiviert und mit dem Ausgangswert
des Addierers 31 geladen, d. h. mit 9, was die Bits niedriger
Ordnung des Werts 9 an der Dateneingabe darstellt. Beim
Taktzyklus 6 wird der Multiplexer 36 angewiesen, die 16 Bits
hoher Ordnung an Dateneingabe auszuwählen, und die Multiplexer
35 und 40 und das Logikgatter 42 werden instruiert, die vorzeichenerweiterten
oberen 16 Bits von YRasOff durchzulassen.
Im Taktzyklus 6 addiert der Addierer 31 die Ausgangssignale
vom Multiplexer 36 und Logikgatter 42 und gibt das Ergebnis an
seinen Ausgang. Während des Taktzyklus 6 sind die Register
Y 2 H, Y 3 H und Y 0 H aktiviert und mit dem Wert vom Ausgang des
Addierers 31 geladen. Im Taktzyklus 7 legt der Befehl Schreibe
LineX (7) den Wert 7 an Dateneingabe und bewirkt, daß der
Registeradreßeingang zur Ladesteuerzustandsmaschine 33 einen
Wert enthält, der angibt, daß die einlaufenden Daten eine
X-Linie darstellen. In gleicher Weise werden Register X 2 L, X 3 L
und X 0 L eventuell aktiviert, um den Wert 7 zu laden, wonach
das Indexregister von 2 auf 3 in der zuvor erläuterten Weise
inkrementiert wird. Das Laden der X/Y-Koordinatenregister für
andere Objekte folgt dem oben beschriebenen gleichen Pipelineschema.
Beispiele für Dreiecke und Vierecke sind in den Beispielen
2 und 3 oben angegeben. In ähnlicher Weise werden auch
viereckige bzw. vierseitige Objekte geladen.
Rasteroffsetregister 41 und Ausschnittkoordinatenregister 39
werden in ähnlicher Weise wie die X/Y-Koordinatenregister 37,
d. h. in der oben beschriebenen Weise, geladen. Logikgatter 42
erhält jedoch den Befehl, Nullen für jeden Additionszyklus
auszugeben (d. h. absolutes Laden).
Die Erfindung führt durch Verwendung des Indexregisters in der
Indexlogik 43 auch eine relative Adressierung durch, die einen
wirksamen Mechanismus zum Anzeigen von Objektduplikaten liefert.
Die relative Adressierung läßt sich am besten anhand
eines Beispiels wie folgt beschreiben: Die drei Eckpunkte
eines Dreiecks können definiert werden als (X₀, Y₀),
(X₁, Y₁) und (X₂, Y₂). Um dieses Objekt fünfzigmal an
unterschiedlichen Stellen auf dem Display zu duplizieren, wäre
es notwendig, 150 Paare von X-, Y-Koordinaten zu speichern.
Bei Verwendung der relativen Adressierung wird ein Scheitel-
oder Eckpunkt als Ursprung (X₀, Y₀) definiert, und die
zweiten und dritten Ecken werden als Offsets des vorhergehenden
Eckpunkts, d. h. Δ X₀₁, Δ Y₀₁ und Δ X₂₃, Δ Y₂₃,
definiert. Um das Objekt fünfzigmal zu duplizieren, braucht
nichts weiter gespeichert zu werden als die beiden Offsetpaare
und ein neues X₀, Y₀ für jedes Duplikat (d. h. fünfzig
Objektursprünge plus zwei Offsetpaare insgesamt).
Dies kann erfindungsgemäß dadurch geschehen, daß man zuerst
das Ursprungskoordinatenpaar für den Ursprungseckpunkt in
einem der Registerpaare der X/Y-Koordinatenregister 37 speichert,
wobei ein Indexladestil (d. h. PntY, PntX) verwendet
wird. Die beiden Offset-Eckpunkte werden nachfolgend relativ
zu dem vom aktuellen Wert des Indexregisters bezeichneten
Eckpunkt gespeichert. Dies geschieht durch Auswahl des von
(Index 1) bezeichneten Eckpunkts als Summand zur Dateneingabe,
und zwar vor dem Registerladen. Der von (Index 1) bezeichnete
Eckpunkt ist garantiert bei der vorhergehenden indizierten
Schreiboperation geladen worden, und zwar unabhängig
von der Art der Schreiboperation (PNT, LINE usw.) und ist
daher derjenige Eckpunkt, von dem die relative Offsetoperation
ausgeht.
Die Vergleichs- und Ergebnisspeicherlogik 47 wird im folgenden
unter Bezugnahme auf die Fig. 7 und 8 beschrieben. Die
Vergleichs- und Ergebnisspeicherlogik 47 enthält Multiplexer
101, 103, 105, 107 und 109 (siehe Fig. 7) und Komparatoren
121 . . . 124, Multiplexer 131-146 und Register R 1-R 44 (siehe Fig. 8).
Register R 1-R 44 speichern die Ergebnisse der Operation der
Komparatoren 121-124, wie in Tabelle II gezeigt ist:
R 1 X 0 : XClipMin | |
R 23 Y 0 : YClipMin | |
R 2 X 0 : XTestMin | R 24 Y 0 : YTestMin |
R 3 X 0 : XClipMax | R 25 Y 0 : YClipMax |
R 4 X 0 : XTestMax | R 26 Y 0 : YTestMax |
R 5 X 1 : XClipMin | R 27 Y 1 : YClipMin |
R 6 X 1 : XTestMin | R 28 Y 1 : YTestMin |
R 7 X 1 : XSchnitMax | R 29 Y 1 : YClipMax |
R 8 X 1 : XTestMax | R 30 Y 1 : YTestMax |
R 9 X 2 : XClipMin | R 31 Y 2 : YClipMin |
R 10 X 2 : XTestMin | R 32 Y 2 : YTestMin |
R 11 X 2 : XClipMax | R 33 Y 2 : YClipMax |
R 12 X 2 : XTestMax | R 34 Y 2 : YTestMax |
R 13 X 3 : XClipMin | R 35 Y 3 : YClipMin |
R 14 X 3 : XTestMin | R 36 Y 3 : YTestMin |
R 15 X 3 : XClipMax | R 37 Y 3 : YClipMax |
R 16 X 3 : XTestMax | R 38 Y 3 : YTestMax |
R 17 X 0 : X 1 | R 39 Y 0 : Y 1 |
R 18 X 0 : X 2 | R 40 Y 0 : Y 2 |
R 19 X 0 : X 3 | R 41 Y 0 : Y 3 |
R 20 X 1 : X 2 | R 42 Y 1 : Y 2 |
R 21 X 1 : X 3 | R 43 Y 1 : Y 3 |
R 22 X 2 : X 3 | R 44 Y 2 : Y 3 |
Ausgenommen für Vergleiche mit XClipMin/Max, YClipMin/Max,
XTestMin/Max und XTestMin/Max, welche ein 1-Bit-Ergebnis speichern,
speichert das angegebene Register in Tabelle II ein
2-Bit-Ergebnis eines Vergleichs zwischen den beiden angegebenen
Werten. Wenn der Wert auf der linken Seite des Doppelpunkts
größer als der Wert auf der rechten Seite des Doppelpunkts
ist, so ist der im entsprechenden Register gespeicherte
Binärwert "10"; wenn der Wert auf der linken Seite des Doppelpunkts
kleiner ist als der Wert auf der rechten Seite des
Doppelpunkts, so ist der im entsprechenden Register gespeicherte
Binärwert "01"; wenn die beiden Werte gleich sind, so
ist der im entsprechenden Register gespeicherte Binärwert
"00". Für XClipMin, YClipMin, XTestMin und YTestMin wird eine
"1" gespeichert, wenn der verglichene Koordinatenwert kleiner
ist, anderenfalls wird eine "0" gespeichert. Für XClipMax und
YClipMax, XTestMax, YTestMax wird eine 1 gespeichert, wenn der
verglichene Wert größer ist, und anderenfalls eine "0".
Die Eingangssignale der Multiplexer 101, 103, 105, 107 und 109
kommen von den X/Y-Koordinatenregistern 37, nämlich
X 0 L, Y 0 L-X 3 L, Y 3 L, Ausschnittkoordinatenregistern 39, nämlich
XClipMin, YClipMin und XClipMax, YClipMax und von der Testfenstersteuerung
45, nämlich XTestMin, YTestMin, XTestMax und
YTestMax. Selbstverständlich sind zu jedem Zeitpunkt die Eingangssignale
der Multiplexer 101, 103, 105, 107 und 109 in der
weiter oben beschriebenen Weise entweder X-Werte oder Y-Werte,
und zwar in Abhängigkeit von einem MUX-Aktivierungssignal, das
von der Vergleichssteuerungszustandsmaschine 49 erzeugt wird.
Der Komparator 121 vergleicht das Ausgangssignal des Multiplexers
101 mit dem Ausgangssignal des Multiplexers 109. In ähnlicher
Weise vergleichen die Komparatoren 122 bis 124 die
Ausgangssignale der Multiplexer 103, 105 und 107 einerseits
mit dem Ausgangssignal des Multiplexers 109 andererseits. Die
Ausgangssignale der Komparatoren 121 bis 124 sind Eingangssignale
der Multiplexer 131 bis 146, welche die entsprechenden
Daten an die Register R 1-R 44 richten, welche wie folgt geladen
werden:
Das Ausgangssignal des Komparators 121 wird an die Multiplexer
131-135, 139 und 143 angelegt, welche zum Laden der Register
R 1, R 2, R 3, R 4, R 5, R 9, R 13, R 17, R 18 und R 19 für X-Werte und
der Register R 23, R 24, R 25, R 26, R 27, R 31, R 35, R 39, R 40 und
R 41 für Y-Werte verwendet werden, wie in Fig. 8 und in Tabelle
III gezeigt ist. In Tabelle III beziehen sich A, B, C und D
auf die Komparatoren 121, 122, 123 bzw. 124.
Das Ausgangssignal des Komparators 122 wird an die Multiplexer
132, 135 . . . 138, 140 und 144 angelegt, die zum Laden der
Register R 2, R 5 . . . R 8, R 10, R 14, R 17, R 20 und R 21 für X-Werte
und der Register R 24, R 27 . . . R 30, R 32, R 36, R 39, R 42 und R 43
für Y-Werte dienen, wie in Fig. 8 und Tabelle III gezeigt
ist.
Das Ausgangssignal vom Komparator 123 wird an die Multiplexer
133, 137, 139, 140, 142 und 145 angelegt, die zum Laden der
Register R 3, R 7, R 9, R 10, R 12, R 15, R 18, R 20 und R 22 für
X-Werte und der Register R 25, R 29, R 31, R 32, R 34, R 37, R 40,
R 42 und R 44 für Y-Werte dienen (Fig. 8 und Tabelle III).
Das Ausgangssignal des Komparators 124 wird an die Multiplexer
134, 138, 142, 143, 144, 145 und 146 angelegt, die zum Laden
der Register R 4, R 8, R 12 . . . R 16, R 19, R 21 und R 22 für X-Werte
und der Register R 26, R 30, R 34 . . . R 38, R 43 und R 44 für
Y-Werte dienen (Fig. 8 und Tabelle III).
Die durchgeführten und gespeicherten Vergleiche sind diejenigen,
die von dem Koordinatensequentialisierungsblock 17 und
dem Funktionsadressierblock 19 benötigt werden, um unterstützte
Operationen (DRAW, auch bekannt als Viereckumsetzung, oder
BLIT) geeignet auszuführen und die richtige Beschneidung
durchzuführen.
Die Vergleichssteuerungszustandsmaschine 49 ist eine Logik,
welche die verschiedenen Komparatoren, Multiplexer und Register
in der Vergleichs- und Ergebnisspeicherlogik 47 aktiviert.
Eine Wahrheitstabelle für absolutes Laden der Koordinaten-
und Ausschnittregister durch die Vergleichssteuerungszustandsmaschine
49 ist in Tabelle III für die Taktzyklen 0
und 1 gezeigt, wobei die Komparatoren 121-124 als A, B, C bzw.
D bezeichnet sind. Tabelle III gibt das Ausgangssignal jedes
Komparators 121-124 für jedes der Eingangssignale X 0 L, X 3 L,
XClipMin, XClipMax, XTestMin und XTestMax an. Wenn auch Fig. 8
zeigt, daß die Ausgangssignale der Multiplexer 101, 103, 105
und 107 in eine Seite der Komparatoren 121-124 eingegeben
werden, wobei das Ausgangssignal des Komparators 109 in die
andere Seite eingegeben wird, ist es zum Zwecke der Übereinstimmung
notwendig, die Vergleiche von X 0 L bis X 1 L, X 1 L bis
X 2 L und X 2 L bis X 30 L usw. zu speichern und nicht in der anderen
Richtung (z. B. X 1 L zu X 0 L). Aus diesem Grunde werden die
Ausgangssignale aus den Komparatoren 121-124 umgekehrt, wenn
die mit "Umkehr" bezeichnete Spalte "Ja" ist. Dies wird von
dem rechten Eingang der Multiplexer 131-146 bewirkt. Die Ausgangssignale
von den angegebenen Komparatoren 121-124 werden
direkt in die linke Seite des angegebenen Multiplexers 131-146
eingegeben. Der rechte Multiplexereingang erhält das 2-Bit-
Ausgangssignal des angegebenen Komparators in umgekehrter
Bit-Reihenfolge. Daher wird die mit "Umkehr" bezeichnete Spalte
die Wahrheitstabelle für die MUX-Auswahlleitungen der Multiplexer
131-146 für absolute Koordinatenladungen.
Die Ergebnisse der Tabelle III werden in ähnlicher Weise für
Y 0 L-Y 3 L, YClipMin, YClipMax, YTestMin und YTestMax wiederholt.
Fig. 9 zeigt die relativen Zeitgaben für die Signale auf
Dateneingabe, das Registerladen, durchgeführt von den Rasteroffsetregistern
41, X/Y-Koordinatenregistern 37, Ausschnittkoordinatenregistern
39 und Vergleichslogik und Ergebnisspeicherung
47.
Die Vergleichssteuerungszustandsmaschine unterstützt das
Index-Ladeschema, wie oben angegeben, wobei sowohl der einem
Schreibzyklus zugeordnete Indexregisterwert als auch Tabelle
IV benutzt werden. Da das von dem Indexregisterwert bezeichnete
Register stets eingeschrieben wird, und zwar unabhängig von
der Art der indizierten Schreiboperation, werden die entsprechenden
MUX-Aktivierungen für die Multiplexer 101, 103, 105
und 107 von der Vergleichssteuerungszustandsmaschine ausgewählt,
unter der Annahme, daß eine Einzelregisterschreiboperation
für diese Koordinate durchgeführt wird. Wenn beispielsweise
eine Rechteckschreiboperation in X mit einem Index von 3
empfangen wird, so arbeitet die Vergleichslogik so, als wenn
eine ausdrückliche Schreiboperation für X 3 empfangen worden
wäre, und führt Vergleiche X 3 L gegen (X 0 L, X 1 L, X 2 L, XClipMin,
XClipMax, XTestMin, XTestMax) in der erforderlichen Weise
durch. Der Unterschied zwischen einem absoluten Laden eines
Registers und einem Indexladen (oder relativen Indexladen)
besteht darin, daß im Indexfall mehr als ein Koordinatenspeicherregister
in 47 aktiviert werden kann, um die Vergleichsergebnisse
zu empfangen, und die Multiplexerauswahlen werden für
die Multiplexer 131-146 entsprechend Tabelle IV anstelle von
Tabelle III getroffen.
Bei dem vorhergehenden Beispiel einer Rechteck-X-Schreiboperation
mit einem Index von 3 werden die Vergleichsregister (vgl.
Tabelle II oder Fig. 8) R 1-R 3, R 13-R 16, R 17-R 19 und R 21-R 22
geschrieben. Die folgenden Registerpaare speichern die gleichen
Vergleichsergebnisse: (R 17, R 21), (R 18, R 22), R 1; R 13),
(R 2, R 14), (R 3, 15) und (R 4, 16).
Die Zustandserzeugungslogik 51 erzeugt die Steuersignale
HW/SW, Up/R-zu-L und HID/VIS. HW/SW ist ein 2-Bit-Signal, das
angibt, ob die Operation mit Hardware nach der Erfindung oder
mit Software durchgeführt wird. Up/R-zu-L ist ein 2-Bit-Signal,
das angibt, ob die Operation von oben nach unten, von
unten nach oben, von rechts nach links oder links nach rechts
verarbeitet werden soll. HID/VIS ist ein 2-Bit-Signal, das
angibt, ob das zu zeichnende Objekt versteckt, d. h. hinter dem
aktiven Ausschnittfenster, oder sichtbar ist. Um diese Signale
zu erzeugen, erhält die Zustandserzeugungslogik 51 als Eingangssignale
die Ausgänge der Register R 1-R 22 für X-Koordinaten,
Register R 23-R 44 für Y-Koordinaten und die vier 4-Bit-Signale,
welche anzeigen, daß die oberen 18 Bits alles Einsen
und alles Nullen von X/Y-Koordinatenregistern 37 sind. Die
Art, in der die Zustandserzeugungslogik die o. g. Steuersignale
erzeugt, wird unter Bezugnahme auf Fig. 10 bis 14 erläutert,
in denen Wahrheitstabellen für die von der Zustandserzeugungslogik
51 durchgeführten logischen Operationen gezeigt
sind. Die Logikschaltung, die zum Implementieren der Wahrheitstabellen
gemäß Fig. 10-14 notwendig ist, liegt im
fachmännischen Wissen.
Fig. 10 ist eine Wahrheitstabelle, welche die Vergleichsergebnisse
für die X 0-Koordinate (X 0 L und X 0 H) benutzt. Die Wahrheitstabellen,
welche Vergleichsergebnisse für die X 1-X 3 und
Y 0-Y 3-Koordinaten benutzen, substituieren diese Koordinaten
und verwenden YClipMin, YClipMax, YTestMin und YTestMax anstelle
von XClipMin, XClipMax, XTestMin und XTestMax für die
Y-Koordinaten. Die linke Seite der Tabelle beinhaltet die
Eingangssignale und die rechte Seite die Ausgangssignale. In
der Tabelle bedeutet das Symbol "-" ein "unbeachtlich"; 0 und
!0 bedeutet, daß die Bus-Bitwerte alle Einsen oder nicht alles
Einsen sind (aus den X/Y-Koordinatenregistern 37); und Z und
!Z bedeuten, daß die Bus-Bitwerte alles Nullen oder nicht
alles Nullen sind (aus X/Y-Koordinatenregistern 37). "X 0 in
2¹⁴" bedeutet, daß die 32-Bit-X 0-Koordinate in 15 Bits darstellbar
ist; "X 0 in Ausschnitt" bedeutet, daß X 0 auf oder
innerhalb der Grenzen des Ausschnittfensters X ist; "X 0 in
Test" bedeutet, daß X 0 auf oder innerhalb der Grenzen des
Testfensters X ist. Die Ausgänge "X 0 < XClipMin",
"X 0 < XTestMin", "X 0 < XClipMax" und "X 0 < XTestMax" werden
rückgekoppelt und dienen als Eingangssignale. Um die Ausgangssignale
zu bilden, werden die Eingangssignale auf einer Horizontallinie
miteinander UND-verknüpft und die Ausgangssignale
in einer Spalte ODER-verknüpft. Bezugnehmen beispielsweise auf
die ersten beiden Zeilen in Fig. 10: Wenn X 0(31) (d. h. sein
Vorzeichenbit) 0 ist, so sind UND X 0(30 : 14) (d. h. seine Bits
höherer Ordnung 14-30) alles Nullen, ODER X 0(31) ist 1, UND
X 0(30 : 14) sind alles Einsen, dann liegt X 0 in 2¹⁴. In ähnlicher
Weise und unter Bezugnahme auf die letzte Zeile in Fig. 10,
wenn X 0 < XTestMin ist 0 (d. h. unwahr) UND X 0 < XTestMax
ist 0, so ist X 0 innerhalb des Testfensters.
Fig. 11a und 11b sind Wahrheitstabellen unter Verwendung von
Vergleichen zwischen jeder der vier X-Eckkoordinaten und jeder
der vier Y-Eckkoordinaten. Wie im Falle der Fig. 10 werden die
Werte auf der horizontalen Eingangslinie UND-verknüpft mit dem
Ergebnis einer logischen 1 (wahr) oder 0 (unwahr), und die
angegebenen Ausgangssignale (ausgenommen oben, unten, rechts
und links) werden durch ODER-Verknüpfung ihrer entsprechenden
Spalten gebildet. Die Ausgänge oben, unten, rechts und links,
die als 0, 1, 2 oder 3 gezeigt sind, werden wie folgt interpretiert:
Der Wert 0, 1, 2 oder 3 gibt an, welche Koordinate
von X 0-X 3 oder Y 0-Y 3 die höchste (oben), die niedrigste (unten),
die am weitestens rechts (rechts) und links (links)
gelegene ist. Die Symbole <,<, E, L und G auf der Eingangsseite
geben an, daß das angegebene Vergleichsergebnis kleiner
als, größer als, gleich, kleiner als oder gleich und größer
als oder gleich ist.
Obwohl die Bedeutung der Ausgangssignale durch die Tabelle
definiert ist, gibt das folgende in Worten an, was jedes angegebene
Ausgangssignal bedeutet:
unzulässig - bedeutet, daß dann, wenn eine Horizontallinie
durch das von den vier Eck-Koordinatenpaaren
definierte Objekt gezogen würde, zwei oder
mehr Ecken gekreuzt würden. Ein Objekt, das
ein gebogenes Band bildet, ist ein Beispiel
für ein Objekt, das unzulässig als wahr erscheinen
lassen würde.
horiz - bedeutet, daß alle vier Eckpunkte denselben Y-Wert haben.
vert - bedeutet, daß alle vier Eckpunkte denselben X-Wert haben.
recht - bedeutet, daß das von den vier Koordinaten definierte Objekt ein Rechteck bildet.
Linie - bedeutet, daß das von den vier Koordinaten definierte Objekt eine Linie bildet.
EQ-01 - bedeutet, daß der Eckpunkt 0 gleich dem Eckpunkt 1 ist (definiert denselben Punkt).
EQ-12 - bedeutet, daß Eckpunkt 1 gleich Eckpunkt 2 ist (definiert denselben Punkt).
EQ-23 - bedeutet, daß Eckpunkt 2 gleich Eckpunkt 3 ist (definiert denselben Punkt).
EQ-30 - bedeutet, daß Eckpunkt 3 gleich Eckpunkt 0 ist (definiert denselben Punkt).
horiz - bedeutet, daß alle vier Eckpunkte denselben Y-Wert haben.
vert - bedeutet, daß alle vier Eckpunkte denselben X-Wert haben.
recht - bedeutet, daß das von den vier Koordinaten definierte Objekt ein Rechteck bildet.
Linie - bedeutet, daß das von den vier Koordinaten definierte Objekt eine Linie bildet.
EQ-01 - bedeutet, daß der Eckpunkt 0 gleich dem Eckpunkt 1 ist (definiert denselben Punkt).
EQ-12 - bedeutet, daß Eckpunkt 1 gleich Eckpunkt 2 ist (definiert denselben Punkt).
EQ-23 - bedeutet, daß Eckpunkt 2 gleich Eckpunkt 3 ist (definiert denselben Punkt).
EQ-30 - bedeutet, daß Eckpunkt 3 gleich Eckpunkt 0 ist (definiert denselben Punkt).
Fig. 12a-12d definieren eine Wahrheitstabelle, welche Vergleiche
zwischen den vier X- und den vier Y-Eckkoordinaten und
den Ausschnittgrenzen benutzt. Die Eingänge oben, unten,
rechts und links sind diejenigen der Wahrheitstabelle gemäß
Fig. 11a, 11b. Wenn die Ausgangssignale oben sichtbar,
unten sichtbar, rechts sichtbar und links sichtbar 1 (d. h.
wahr) sind, so liegt das von den vier Koordinatenpaaren definierte
Objekt innerhalb des Ausschnittfensters. Wenn der Umgebungsausschnitt
1 ist, so liegt das Objekt außerhalb, umgibt
jedoch das Ausschnittfenster. Versteckt gilt nur für Vierecke
und zeigt an, daß alle vier Eckpunkte recht, links, oberhalb
oder unterhalb des Ausschnittfensters liegen. Versteckt-01
(bezieht sich auf BLIT-SRC-Rechteck) und versteckt-23 (bezieht
sich auf BLIT-DEST-Rechteck) haben eine ähnliche Bedeutung für
BLITs.
Fig. 13 definiert eine Wahrheitstabelle, die Vergleiche zwischen
den vier X- und den vier Y-Eckkoordinaten und den Testfenstergrenzen
benutzt. Die Ausgänge "oben innerhalb Test" und
"unten innerhalb Test" bedeuten, wenn wahr, daß der Rand des
Objekts innerhalb der oberen oder unteren Grenzen des Testfensters
liegt.
Fig. 14 definiert eine Wahrheitstabelle, welche die Richtung
zeigt, in der Objekte gezeichnet oder BLITs durchgeführt werden
sollen, um Seitendurchgänge und Verarbeitungsoperationen
an abgeschnittenen Pixeln durch Erzeugung der Signale blit r-zu-1,
blit auf, zeichne r-zu-1 und zeichne auf zu minimieren.
Diese Signale enthalten die Signalzeichenrichtung gemäß
Fig. 2.
Aufgrund der Wahrheitstabellen gemäß Fig. 10-14 erzeugt die
Zustandserzeugungslogik 51 die Signale HW, SW, HID und VIS
(Fig. 2) wie folgt:
Für viereckige Objekte -
HW = verstecktes ODER
Umgebungsausschnitt ODER
(NICHT versteckt UND
NICHT unzulässig UND
alle Ecken liegen innerhalb 2¹⁴ UND
(alle Ecken liegen innerhalb Test) ODER
(Linie UND wenigstens ein Endpunkt liegt innerhalb Test) ODER
(X 0-X 3 liegen innerhalb Test UND der obere oder untere Eckpunkt liegt innerhalb Test) ODER
recht).
SW = NICHT HW.
HID = versteckt.
VIS = NICHT versteckt.
HW = verstecktes ODER
Umgebungsausschnitt ODER
(NICHT versteckt UND
NICHT unzulässig UND
alle Ecken liegen innerhalb 2¹⁴ UND
(alle Ecken liegen innerhalb Test) ODER
(Linie UND wenigstens ein Endpunkt liegt innerhalb Test) ODER
(X 0-X 3 liegen innerhalb Test UND der obere oder untere Eckpunkt liegt innerhalb Test) ODER
recht).
SW = NICHT HW.
HID = versteckt.
VIS = NICHT versteckt.
Für BLITs -
HW = verst-23 ODER
(verst-01 UND BLIT SRC-CHK=10) ODER
(NICHT verst-01 UND
BLIT SRC-CHK=10 UND
NICHT verst-23 UND
Das Quellenrechteck liegt innerhalb 2¹⁴ UND der
Bestimmungswinkel liegt innerhalb 2¹⁴) ODER
(BLIT-SRC-CHK=01 UND
NICHT verst-23 UND
Das Quellenrechteck liegt innerhalb 2¹⁴ UND
das Bestimmungsreckteck liegt innerhalb 2¹⁴),
(verst-01 UND BLIT SRC-CHK=10) ODER
(NICHT verst-01 UND
BLIT SRC-CHK=10 UND
NICHT verst-23 UND
Das Quellenrechteck liegt innerhalb 2¹⁴ UND der
Bestimmungswinkel liegt innerhalb 2¹⁴) ODER
(BLIT-SRC-CHK=01 UND
NICHT verst-23 UND
Das Quellenrechteck liegt innerhalb 2¹⁴ UND
das Bestimmungsreckteck liegt innerhalb 2¹⁴),
wobei BLIT-SRC-CHK ein 2-Bit-Wert aus der CPU ist, der auf
"10" gesetzt ist, wenn die Beziehung des Quellenrechtecks zum
Ausschnittfenster in Betracht gezogen werden soll. Dies ist
notwendig, da die verschiedenen Softwareausführungen, denen
die vorliegende Erfindung zugeordnet werden soll, bezüglich
ihrer Behandlung des SRC-Rechtecks und der Ausschnittgrenzen
inkonsistent sind. Aus diesem Grunde hat das bevorzugte Ausführungsbeispiel
BLIT SRC-Rechteck-Ausschnittprüfung als Software-
selektierbare Option belassen (BLIT-SRC-CHK=01 entaktiviert
SRC-Ausschnittprüfung, BLIT-SRC-CHK=10 aktiviert
SRC-Ausschnittprüfung).
SW = NICHT HW.
HID = verst-23.
VIS = NICHT verst-23.
HID = verst-23.
VIS = NICHT verst-23.
Wie aus der HW-Gleichung für viereckige Objekte erkennbar ist,
werden gewisse Optimierungen angewendet, um die Effektivität
der Testfensterprüfungen bei dem beschriebenen Beispiel des
graphischen Untersystems zu erhöhen.
Wie die HW-Gleichung für viereckige Objekte berücksichtigt,
wurde die Verwendung von Testfensterprüfungen bei dem beschriebenen
Beispiel des graphischen Untersystems optimiert,
um die Möglichkeiten des Untersystems maximal auszunutzen.
Die Koordinatensequentialisierungslogik 17 und die funktionelle
Adressierlogik 19 haben die Fähigkeit, gewisse Klassen von
geschnittenen Objekten so zu behandeln, daß keine versteckten
(d. h. unsichtbaren oder abgeschnittenen) Pixel verarbeitet zu
werden brauchen. In diesen Fällen braucht die Testfensteroptimierung
nicht benutzt zu werden, und daher sind die HW- gegen
SW-Entscheidungen über diese Objekte gesperrt. In anderen
Fällen kann das Objekt gewisse Charakteristiken haben, welche
es der Hardware ermöglichen, die Objekte zu verarbeiten, obwohl
einige Eckpunkte außerhalb des Testfensters liegen.
Beispiele von Objekten, welche in diese Kategorien fallen,
werden nachfolgend zusammen mit der Art angegeben, in der das
Graphikuntersystem sie handhabt.
- 1) Objekte, welche das Ausschnittfenster umgeben - die Eckpunkte dieser Objekte können vor der Verarbeitung direkt durch die Ausschnittgrenzen ersetzt werden. Dies findet in der Koordinatensequentialisierungslogik 17 statt.
- 2) Linien mit einem Eckpunkt innerhalb des Testfensters und einem Eckpunkt außerhalb des Testfensters - die Verarbeitung dieser Linien ist richtungsmäßig beschränkt darauf, daß von dem innerhalb des Testfensters gelegenen 01668 00070 552 001000280000000200012000285910155700040 0002004000215 00004 01549 Eckpunkt ausgegangen und in Richtung des anderen Eckpunkts fortgefahren werden muß. Wenn der sichtbare Teil der Linie verarbeitet worden ist, wird die Verarbeitungsoperation beendet, ohne daß außerhalb des Testfensters gelegene Pixel verarbeitet werden müssen. Die Beschränkung hinsichtlich der Verarbeitungsrichtung wird bestimmt durch die Zustandserzeugungslogik 51. Das Ende der Verarbeitung nach Durchlaufen des sichtbaren Abschnitts der Linie geschieht durch die funktionelle Adressierlogik 19.
- 3) Beliebige Vierecke, deren Eckpunkte alle innerhalb des Testfensters in der X-Richtung und deren obere oder untere Eckpunkte innerhalb des Testfensters in der Y-Richtung liegen - die Verarbeitung dieser Objekte ist richtungsbeschränkt mit Beginn oben oder unten, und zwar in Abhängigkeit davon, welche Seite des Objekts innerhalb des Testfensters liegt. Die Verarbeitung des Objekts wird dann in Richtung der anderen Seite (Ober- oder Unterseite), d. h. in Richtung des außerhalb des Testfensters gelegenen Eckpunkts fortgesetzt. Wenn der oder die sichtbaren Bereiche des Objekts bearbeitet worden sind, wird die Bearbeitung abgebrochen, bevor die Pixel außerhalb des Testfensters bearbeitet worden sind. Die Verarbeitungsrichtungsbeschränkung wird bestimmt durch die Zustandserzeugungslogik 51. Die Beendigung der Verarbeitung nach Durchlaufen des sichtbaren Bereichs des Objekts wird durch die funktionelle Adressierlogik 19 bewirkt.
Claims (1)
- Einrichtung zur Erzeugung von Vergleichen zwischen Paaren von X- und Y-Koordinaten eines von einem graphischen Untersystem anzuzeigenden Objekts, das durch ein zu zeichnendes Viereck oder ein zu bewegendes Blockbild gebildet ist, wobei die Einrichtung ein Ausschnittfenster mit vorgegebenen oberen, unteren, rechten und linken Schnittkoordinaten und ein Testfenster mit vorgegebenen X- und Y-Offsets gegenüber den oberen, unteren, rechten und linken Schnittkoordinaten des Ausschnittfensters aufweist und die Objektkoordinaten, die Schnittkoordinaten und die Offsets bei Berechnungen für die Durchführung des Beschneidens des Objekts vor dessen Anzeige verwendbar sind, gekennzeichnet durch:
- a) Lademittel (33, 31) zum Laden i) mehrerer Objektkoordinatenregister (37) mit den Objektkoordinaten (X, Y), ii) mehrerer Ausschnittkoordinatenregister (39) mit den Ausschnittkoordinaten und iii) mehrerer Offsetregister (41) mit den vorgegebenen Offsets;
- b) Vergleichsmittel (47; 121 . . . 124), die mit den Lademitteln zur Erzeugung der Vergleiche gekoppelt sind;
- c) Rechenmittel (45), die mit den Offsetregistern (41) und den Ausschnittkoordinatenregistern (39) gekoppelt sind und die Grenzen des Testfensters relativ zu den Grenzen des Offsetfensters berechnen;
- d) Multiplexermittel (101 . . . 109, 131 . . . 146) zur Auswahl vorgegebener Vergleiche;
- e) Registermittel (R 1-R 44) zum Speichern vorgegebener Vergleichsergebnisse;
- f) Vergleichssteuermittel (49) zum Steuern der Operation der Vergleichsmittel, der Multiplexermittel und der Registermittel; und
- g) Zustandserzeugungsmittel (51), gekoppelt mit den Registermitteln (R 1-R 44) zur Erzeugung von Signalen auf der Basis einiger der ausgewählten vorgegebenen Vergleichsergebnisse, die angeben, ob die X-Koordinate jedes Objektkoordinatenpaares kleiner ist als die vorgegebene linke Koordinate, größer ist als die vorgegebene rechte Koordinate, kleiner als die vorgegebene linke Koordinate minus dem X-Offset, größer als die vorgegebene rechte Koordinate plus dem X-Offset, darstellbar ist in 15 Bits, innerhalb der linken und rechten Koordinaten, innerhalb der linken Koordinate minus dem X-Offset und der rechten Koordinate plus dem X-Offset, und welche angeben, ob die Y-Koordinate jedes Objektkoordinatenpaares kleiner als die vorgegebene untere, größer als die vorgegebene obere, kleiner als die vorgegebene untere Koordinate minus dem Y-Offset, größer als die vorgegebene obere Koordinate plus dem Y-Offset, darstellbar ist in 15 Bits, innerhalb der unteren und oberen und innerhalb der unteren Koordinate minus dem Y-Offset und der oberen Koordinate plus dem Y-Offset liegt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29709389A | 1989-01-13 | 1989-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4000215A1 true DE4000215A1 (de) | 1990-07-19 |
DE4000215C2 DE4000215C2 (de) | 1997-08-21 |
Family
ID=23144835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19904000215 Expired - Fee Related DE4000215C2 (de) | 1989-01-13 | 1990-01-05 | Einrichtung zum Erzeugen von Bildausschnitten unter Verwendung eines Testfensters in einem Graphiksystem |
Country Status (5)
Country | Link |
---|---|
JP (1) | JPH0727572B2 (de) |
CA (1) | CA1316263C (de) |
DE (1) | DE4000215C2 (de) |
GB (1) | GB2227148B (de) |
HK (1) | HK52894A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19818991A1 (de) * | 1998-04-27 | 1999-11-11 | Japan Nuclear Cycle Dev I Toka | Verfahren und System zur Objektsuche |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233770A (ja) * | 1992-02-24 | 1993-09-10 | Tokyo Gas Co Ltd | 線画デ−タ検索方式 |
US6445386B1 (en) * | 1999-01-15 | 2002-09-03 | Intel Corporation | Method and apparatus for stretch blitting using a 3D pipeline |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4710767A (en) * | 1985-07-19 | 1987-12-01 | Sanders Associates, Inc. | Method and apparatus for displaying multiple images in overlapping windows |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6120128A (ja) * | 1984-07-07 | 1986-01-28 | Daikin Ind Ltd | Crtデイスプレイ装置のクリツプ回路 |
-
1989
- 1989-09-14 GB GB8920842A patent/GB2227148B/en not_active Expired - Fee Related
- 1989-09-22 CA CA000612526A patent/CA1316263C/en not_active Expired - Fee Related
-
1990
- 1990-01-05 DE DE19904000215 patent/DE4000215C2/de not_active Expired - Fee Related
- 1990-01-16 JP JP699090A patent/JPH0727572B2/ja not_active Expired - Fee Related
-
1994
- 1994-05-24 HK HK52894A patent/HK52894A/xx not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4710767A (en) * | 1985-07-19 | 1987-12-01 | Sanders Associates, Inc. | Method and apparatus for displaying multiple images in overlapping windows |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19818991A1 (de) * | 1998-04-27 | 1999-11-11 | Japan Nuclear Cycle Dev I Toka | Verfahren und System zur Objektsuche |
DE19818991B4 (de) * | 1998-04-27 | 2007-10-11 | Japan Nuclear Cycle Development Institute, Tokai | Verfahren und System zum Auswählen und Anzeigen von in einem Betrachtungsvolumen enthaltenen Objekten |
Also Published As
Publication number | Publication date |
---|---|
GB8920842D0 (en) | 1989-11-01 |
HK52894A (en) | 1994-06-03 |
JPH0727572B2 (ja) | 1995-03-29 |
GB2227148B (en) | 1993-09-08 |
JPH02270082A (ja) | 1990-11-05 |
CA1316263C (en) | 1993-04-13 |
GB2227148A (en) | 1990-07-18 |
DE4000215C2 (de) | 1997-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69916646T3 (de) | Schattierung von 3-dimensionalen rechnererzeugten Bildern | |
DE3407983C2 (de) | Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen | |
DE3335162C2 (de) | Vorrichtung und Verfahren für graphische Darstellungen mittels Computer | |
DE19709220B4 (de) | System und Verfahren für eine beschleunigte Verdeckungsauslese | |
DE69908966T3 (de) | Schattierung von 3-dimensionalen rechner-erzeugten bildern | |
DE3486494T2 (de) | Graphisches Musterverarbeitungsgerät | |
DE10053439B4 (de) | Grafik-Beschleuniger mit Interpolationsfunktion | |
DE69534331T2 (de) | Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur | |
DE3619420C2 (de) | ||
DE2703021A1 (de) | Datenprozessor zum liefern von intensitaetssteuersignalen zur verwendung in einer rasteranzeige | |
DE19600431A1 (de) | Computergraphik-Pixel-Wiedergabesystem mit Cache-Speichern | |
DE2835689A1 (de) | Anordnung zur veraenderung der aufloesung bei der bild-datenerfassung und -uebertragung | |
DE102014006734A1 (de) | Eckpunktparameter-datenkompression | |
DE69631718T2 (de) | Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen | |
DE69722535T2 (de) | Verfahren und Gerät zum Schaffen von Texturdaten | |
DE3941550C2 (de) | Schaltungsanordnung zum Zerlegen einer auf einem Computer-Ausgabedisplay anzuzeigenden Graphikfigur | |
DE102004012516A1 (de) | Computersystem zur elektronischen Datenverarbeitung | |
DE60035092T2 (de) | Bildumwandlungsvorrichtung, Speichermedium, und Bildumwandlungsverfahren | |
DE3705124A1 (de) | Anzeigeprozessor und videoverarbeitungsuntersystem fuer computergraphik | |
DE4000215A1 (de) | Einrichtung zum erzeugen von bildausschnitten unter verwendung eines testfensters in einem graphiksystem | |
EP1709587A1 (de) | Bildverarbeitungssystem | |
DE60306388T2 (de) | Verfahren und vorrichtung zur bilddatenverarbeitung unter verwendung von bildstreifen und zirkularadressierungsanordnung | |
DE69817633T2 (de) | Faltung von Zeilenrasterdarstellungen | |
EP1034511B1 (de) | Verfahren zur umsetzung digitaler daten im raster einer ersten auflösung in digitale zieldaten einer zweiten auflösung | |
DE3310949C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 15/72 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |