DE4000021A1 - Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen - Google Patents

Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen

Info

Publication number
DE4000021A1
DE4000021A1 DE19904000021 DE4000021A DE4000021A1 DE 4000021 A1 DE4000021 A1 DE 4000021A1 DE 19904000021 DE19904000021 DE 19904000021 DE 4000021 A DE4000021 A DE 4000021A DE 4000021 A1 DE4000021 A1 DE 4000021A1
Authority
DE
Germany
Prior art keywords
picture element
picture
input
function value
curve
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.)
Withdrawn
Application number
DE19904000021
Other languages
English (en)
Inventor
Laszlo Karafiat
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
COMPUTER APPLIC TECHNICS AG
Original Assignee
COMPUTER APPLIC TECHNICS AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by COMPUTER APPLIC TECHNICS AG filed Critical COMPUTER APPLIC TECHNICS AG
Priority to DE19904000021 priority Critical patent/DE4000021A1/de
Publication of DE4000021A1 publication Critical patent/DE4000021A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren zur Dar­ stellung von Kurven in einem zweidimensionalen Raster von Bildelementen, bei dem die einzelnen Bildelemente in Abhän­ gigkeit von dem Durchgang oder Nichtdurchgang der Kurve durch das jeweilige Bildelement in voneinander optisch unterscheid­ bare Zustände versetzt werden, wobei die Kurve durch eine zweidimensionale Kurvengleichung der Form F(x,y) = 0 dar­ stellbar ist und sowohl in der x-Koordinatenrichtung als auch in der y-Koordinatenrichtung des Rasters die Differenzen erster Ordnung dx(x,y) = F(x+1,y) - F(x,y) und dy(x,y) = F(x,y+1) - F(x,y) der Funktionswerte an den Koordinaten (x+1,y) und (x,y) bzw. (x,y+1) und (x,y) jeweils benachbarter Bildelemente bzw. alle aus diesen Differenzen dx, dy erster Ordnung zwischen den Koordinaten benachbarter Bildelemente schrittweise gebildeten weiteren Differenzen höherer Ordnung d(x)i(y) j nach einer endlichen Anzahl i + j = n von Schritten jeweils einen für die Koordinaten aller Bildelemente gleichen konstanten Wert annehmen, und auf eine Vorrichtung zur Durch­ führung dieses Verfahrens.
Derartige Verfahren werden insbesondere zum raschen Erstellen technischer Zeichnungen auf einem Bildschirm oder auch für deren Ausdruck mittels einer geeigneten Druckervor­ richtung, beispielsweise einem Laserdrucker oder LED-Drucker, verwendet. Da bei der Darstellung der Kurven für jedes ein­ zelne Bildelement die Feststellung getroffen werden muß, ob das Bildelement als Kurvenpunkt oder als abseits der Kurve gelegener Punkt zu behandeln ist, besteht ein wesentliches Erfordernis darin, diesen Vorgang für eine bei guter Auflö­ sung hohe Anzahl von Bildelementen möglichst schnell durchzu­ führen.
Ein derartiges bekanntes Verfahren beruht darauf, für jedes einzelne Bildelement dessen beide Koordinaten in dem dem zweidimensionalen Raster zugrundeliegenden kartesischen Koordinatensystem festzustellen und den zugehörigen Funk­ tionswert der die Kurvengleichung bestimmenden Funktion F(x,y) zu berechnen. Als Kurvenpunkte sind dann nur diejeni­ gen Bildelemente zu deuten, deren zugeordneter Funktionswert den Wert Null annimmt oder dem Wert Null so naheliegt, daß er als Wert Null zu deuten ist. Alle übrigen Bildelemente, denen ein in diesem Sinne von Null verschiedener Funktionswert ent­ spricht, liegen abseits der Kurve, so daß in Abhängigkeit von dem für jedes Bildelement ausgehend von dessen Koordinaten berechneten Funktionswert F(x,y) der der Kurvendarstellung entsprechende optische Zustand der Bildelemente eingestellt werden kann. Allerdings erfordert diese jeweils von den zwei­ dimensionalen Koordinatenvektoren aller Bildelemente ausge­ hende Berechnung des Funktionswertes bei einer hohen Auf­ lösung also bei einer hohen Anzahl von Bildelementen, auch schon für verhältnismäßig einfache Kurvenformen einen hohen Rechenzeitaufwand, so daß der Aufbau der Darstellung über dem Raster mit äußerst störenden Wartezeiten verbunden ist.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren der eingangs genannten Art zu schaffen, bei dem die Darstel­ lung der Kurven auf dem Raster mit einer vielfach gestei­ gerten Geschwindigkeit erfolgt, sowie eine Vorrichtung zur Durchführung dieses Verfahrens anzugeben.
Erfindungsgemäß wird diese Aufgabe hinsichtlich des Verfahrens dadurch gelöst, daß an einem vorgegebenen Bild­ element des Rasters für dessen Koordinaten (x0,y0) der ent­ sprechende Funktionswert F(x0,y0 ) sowie die Differenzen aller Ordnungen d(x)i(y)j ermittelt werden und ausgehend von diesem vorgegebenen Bildelement längs den beiden Koordinatenachsen über das gesamte Raster selbsttätig fortschreitend jeweils der Funktionswert des in der Richtung des Fortschreitens längs der Koordinatenachsen zu einem Bildelement unmittelbar benachbarten Bildelementes sowie die den Koordinaten dieses benachbarten Bildelementes entsprechenden Werte der Differen­ zen aller Ordnungen durch Summenbildung aus dem für das in der Richtung des Fortschreitens vorherige Bildelement ermit­ telten Funktionswert und den dafür ermittelten Differenzen gebildet werden.
Zunächst ist darauf hinzuweisen, daß die für das erfin­ dungsgemäße Verfahren an die darstellbaren Kurven gestellte Voraussetzung einer Koordinatenunabhängigkeit, d. h. einer Konstanz der Differenzen höherer Ordnung nach einer endlichen Anzahl von Schritten in der Praxis keine Beschränkung bedeu­ tet, weil alle in der Praxis tatsächlich verwendeten Kurven diese Voraussetzung ohne weiteres erfüllen. Beispielsweise lassen sich in der ebenen analytischen Geometrie die Kurven erster, zweiter und aller höheren Ordnungen durch Kurvenglei­ chungen der Form darstellen
wobei x₁ = x, x₂ = y, x₃ = 1 gilt und die Koeffizienten der obigen Summendarstellungen in allen Indizes symmetrisch sind. Bekanntlich beschreibt die obige Kurvengleichung (2) die Kegelschnitte, während die obige Kurvengleichung (3) die sogenannten B-Splines beschreibt. Wie ohne weiteres gezeigt werden kann, sind bei diesen Beispielen der Kurven n-ter Ordnung schon jeweils die Differenzen n-ter Ordnung konstant.
Bei dem erfindungsgemäßen Verfahren werden also nur für die Koordinaten x0 , y0 des als Ausgangsbildelement gewählten vorgegebenen Bildelementes der Funktionswert
F: = F(x₀, y₀) (4)
und die zu den Koordinaten x0 , y0 gehörenden Differenzen
d(x)i(y)j: = d(x)i(y)j(x₀, y₀) (5)
berechnet. Ausgehend von diesen für das vorgegebene Bildele­ ment ermittelten Werten wird dann die gesamte Kurvendarstel­ lung von dem vorgegebenen Bildelement aus über das gesamte zweidimensionale Raster fortschreitend durch Iteration dieser Werte aufgebaut, ohne daß es einer weiteren Koordinatenrech­ nung bedarf. Aus der Definition der Differenzen ergeben sich bei einem Übergang von einem Bildelement zu seinem längs der x-Koordinatenachse unmittelbar benachbarten Bildelement der neue Funktionswert und die neuen Werte für die Differenzen aus der Iteration
F: = F + dx
d(x)i(y)j: = d(x)i(y)j + d(x)i+1(y)j. (6)
Bei Übergang zwischen zwei benachbarten Bildelementen längs der y-Koordinatenachse lautet die Iteration
F: = F + dy
d(x)i(y)j: = d(x)i(y)j + d(x)i(y)j+1. (7)
Die für die Entscheidung, ob ein Bildelement einen Kur­ venpunkt darstellt oder nicht, zu ermittelnden Funktionswerte werden also bei dem erfindungsgemäßen Verfahren von Bildele­ ment zu Bildelement weitergegeben, wobei der Übergang von dem Funktionswert eines Bildelementes zu dem Funktionswert des benachbarten Bildelementes nur wenige Additionsoperationen erfordert, die im Vergleich zur Berechnung der Funktionswerte ausgehend von ihren Koordinaten nur eine verschwindend kurze Rechenzeit erfordern.
Selbst bei einer Rasterauflösung von 1 Million Bildzel­ len lassen sich beim derzeitigen Integrationsgrad logischer Schaltungen etwa 10 000 bis 100 000 Kurven pro Sekunde auf dem Raster aufbauen. Durch die derzeitigen Entwicklungen zur Erhöhung des Integrationsgrades wird eine weitere Steigerung auf eine Milliarde oder mehr Kurven pro Sekunde möglich sein.
Eine zweckmäßige Ausführungsform des erfindungsgemäßen Verfahrens besteht darin, daß als das vorgegebene Bildelement das am Koordinatenursprung liegende Bildelement mit den Koor­ dinaten (0,0) gewählt wird. Bei dieser Wahl des vorgegebenen Bildelementes breitet sich die Kurvendarstellung von dem durch die Koordinaten x = 0, y = 0 gegebenen Eckpunkt des zweidimensionalen Rasters über das gesamte Raster hinweg aus, wobei die Iteration sowohl in der positiven x-Koordinaten­ richtung als auch der positiven y-Koordinatenrichtung fort­ schreitet.
In diesem Zusammenhang erweist es sich als besonders vorteilhaft, daß jeweils für diejenigen Bildelemente, deren Koordinaten (x,y) auf den Diagonalen x + y = k, wobei k eine natürliche Zahl ist, liegen, die Ermittlung der Funktions­ werte und Differenzen simultan durchgeführt wird. Da die auf der Diagonalen liegenden Bildelemente die zur Iteration er­ forderlichen Eingangswerte für F und die Differenzen jeweils nur von dem in der einen Koordinatenrichtung links gelegenen bzw. dem in der anderen Koordinatenrichtung unten gelegenen Bildelement erhalten, sind die in den auf den Diagonalen liegenden Bildelementen auszuführenden Iterationsschritte von­ einander unabhängig, so daß sie gleichzeitig ausgeführt wer­ den können. Dies setzt lediglich voraus, daß den auf der Dia­ gonalen liegenden Bildelementen die von den vorangehenden Bildelementen zu übergebenden Eingangswerte auch gleichzeitig zugeführt werden, was ohne weiteres möglich ist. Durch diese Simultanverarbeitung wird die Arbeitsgeschwindigkeit des Ver­ fahrens weiter gesteigert.
Gemäß einer besonderen Ausführungsform des erfindungs­ gemäßen Verfahrens ist es schon ausreichend, daß die entsprechenden Funktionswerte und Differenzen des vorgege­ benen Bildelementes und der längs einer der beiden Koordina­ tenachsen mit dem vorgegebenen Bildelement fluchtenden Bild­ elemente in beiden Koordinatenrichtungen fortschreitend an die jeweils unmittelbar benachbarten Bildelemente weiterge­ geben werden, wogegen die Funktionswerte und Differenzen al­ ler übrigen Bildelemente fortschreitend jeweils nur an das in der anderen Koordinatenrichtung unmittelbar benachbarte Bild­ element weitergegeben werden. Wenn bei dieser Ausführungsform beispielsweise das durch die Koordinaten 0,0 gegebene Bild­ element, also das mit seinem linken unteren Eckpunkt am Ur­ sprung des kartesischen Koordinatensystems liegende Bildele­ ment als Startelement gewählt wird, übergibt dieses den hier­ für ermittelten Funktionswert sowie die hierfür ermittelten Differenzen sowohl an das rechts gelegene Bildelement mit den Koordinaten x = 1, y = 0 als auch an das darüber gelegene Bildelement mit den Koordinaten x = 0, y = 1. Während die in dem letztgenannten, am linken Bildrand des Rasters gelegenen Bildelement ermittelten neuen Werte für die Funktion und die Differenzen ebenfalls wieder sowohl an das rechts gelegene Bildelement mit den Koordinaten x = 1, y = 1 als auch an das darüber gelegene Bildelement mit den Koordinaten x = 0, y = 2 weiterzugeben sind, brauchen die in dem nicht am linken Bildrand gelegenen Bildelement mit den Koordinaten x = 1, y = 0 ermittelten Werte für die Funktion und die Differenzen da­ gegen nur an das rechts davon gelegene Nachbarbildelement mit den Koordinaten x = 2, y = 0 weitergegeben zu werden. Auf diese Weise wird die gesamte für die Iteration erforderliche Information an die beim nächsten Iterationsschritt aktiven Bildelemente übertragen.
Gemäß einem weiteren Gedanken der Erfindung ist vorge­ sehen, daß für jedes Bildelement die beiden Summen aus dessen zugeordnetem Funktionswert und den jeweils zugeordneten Funk­ tionswerten der längs den beiden Koordinatenachsen in der Richtung des Fortschreitens unmittelbar benachbarten Bildele­ mente gebildet werden, das Bildelement als inneres Bildele­ ment vorgemerkt wird, wenn sein zugeordneter Funktionswert und die beiden Summen negativ sowie für beide Koordinaten­ achsen die dem Bildelement in der Richtung des Fortschreitens unmittelbar vorangegangenen Bildelemente nicht als äußere Bildelemente vorgemerkt sind, das Bildelement als äußeres Bildelement vorgemerkt wird, wenn sein zugeordneter Funk­ tionswert und die beiden Summen positiv sowie für die beiden Koordinatenachsen die dem Bildelement in der Richtung des Fortschreitens unmittelbar vorangegangenen Bildelemente nicht als innere Bildelemente vorgemerkt sind, und das Bildelement in seinen den Durchgang der Kurve anzeigenden Zustand ge­ steuert wird, wenn das Bildelement weder als inneres noch als äußeres Bildelement vorgemerkt wird.
Diese Maßnahme trägt der Schwierigkeit Rechnung, daß wegen der endlichen Feinheit des Rasters der für ein einen Kurvenpunkt darstellendes Bildelement ermittelte Funktions­ wert meistens nicht exakt gleich Null sein wird. Dies läßt sich jedoch ohne weiteres durch einen Vergleich des für die­ ses Bildelement ermittelten Funktionswertes mit den für die dazu benachbarten Bildelemente ermittelten Funktionswerten entscheiden. Wenn nämlich beim Übergang von einem Bildelement zum anderen der Funktionswert sein Vorzeichen wechselt, so steht fest, daß eines dieser beiden Bildelemente einen Kur­ venpunkt darstellen muß. Bei Hinnahme eines gewissen Genau­ igkeitsverlustes kann somit entweder das eine oder das andere derartige Bildelement als Kurvenpunkt angenommen werden.
Durch die speziellen Maßnahmen der vorstehenden Ver­ fahrensvariante wird jedoch auch diese Ungenauigkeit behoben. Jedes Bildelement wird dabei mit seinen beiden Nachbarbild­ elementen sowohl längs der einen Koordinatenachse als auch längs der anderen Koordinatenachse verglichen, wobei nicht nur ein Vorzeichenwechsel erfaßt wird, sondern auch fest­ gestellt wird, ob der Funktionswert des gerade betrachteten Bildelementes gegenüber den Nachbarbildelementen angestiegen oder abgefallen ist.
Bekanntlich wird im Kontinuum also bei unendlicher Rasterfeinheit, ein Punkt als innerer Punkt einer Kurve be­ zeichnet, wenn der Wert der die Kurvengleichung definierenden Funktion F negativ ist. Umgekehrt definiert ein positiver Wert der Funktion F einen äußeren Punkt der Kurve. Für die Punkte der Kurve selbst gilt exakt F = 0. Für das zwei­ dimensionale Raster endlicher Feinheit läßt sich dies dahin­ gehend neu definieren, daß ein Bildelement des Rasters dann als innerer Punkt anzusehen ist, wenn der für dieses Bild­ element ermittelte Funktionswert negativ ist und die für die vier Nachbarbildelemente ermittelten Funktionswerte entweder ebenfalls negativ sind oder ihre Absolutwerte kleiner sind als der Absolutwert des für das gerade betrachtete Bildele­ ment ermittelten Funktionswertes. Umgekehrt stellt ein Bild­ element in dem Raster einen äußeren Punkt der Kurve dar, wenn der für dieses Bildelement ermittelte Funktionswert größer Null ist und die Funktionswerte der vier Nachbarbildelemente entweder positiv sind oder deren Absolutwert kleiner ist als der für das betrachtete Bildelement ermittelte Funktionswert. Alle anderen Bildelemente, die nicht unter diese Definition des äußeren und inneren Kurvenpunktes fallen, stellen dann einen Kurvenpunkt dar.
Durch die bei der vorstehenden Variante des erfindungs­ gemäßen Verfahrens vorgesehene Vormerkung der im früheren Iterationsschritt behandelten Bildelemente als innere bzw. äußere Bildelemente vermindert sich die Anzahl der an sich notwendigen vier Vergleichsschritte auf zwei, was zu einer weiteren Vereinfachung und Geschwindigkeitserhöhung beiträgt.
Eine im Rahmen der Erfindung vorgesehene Vorrichtung zur Durchführung des erfindungsgemäßen Verfahrens mit einer Einrichtung zur Darstellung eines zweidimensionalen Rasters von Bildelementen und einer Prozessoreinrichtung zur An­ steuerung der einzelnen Bildelemente entsprechend der auf der Rastereinrichtung darzustellenden Kurve ist erfindungsgemäß dadurch gekennzeichnet, daß die Prozessoreinrichtung eine Prozessoreinheit aufweist, an die der für das in der Richtung des Fortschreitens unmittelbar vorhergehende Bildelement ge­ bildete Funktionswert sowie die dafür gebildeten Differenz­ werte übergeben und daraus durch Summation der neue Funk­ tionswert und die neuen Differenzwerte für das in der Rich­ tung des Fortschreitens folgende Bildelement gebildet werden sowie das zugehörige Bildelement in den dem Funktionswert entsprechenden Zustand gesteuert wird.
Wie sich aus dem erfindungsgemäßen Verfahren ergibt, sind in der für dessen Durchführung vorgesehenen Prozessor­ einheit nur einfache Additionen auszuführen, so daß jede solche Prozessoreinheit nur einen sehr einfachen Aufbau er­ fordert und für eine hohe Arbeitsgeschwindigkeit ausgelegt sein kann. Diese besonders einfach aufgebauten Prozessorein­ heiten können daher mit hoher Integrationsdichte verwirklicht werden, so daß eine ganze Anzahl derartiger Prozessoreinhei­ ten simultan betrieben werden kann, um die für die Kurvendar­ stellung erforderlichen Operationen mit einem Mindestmaß an Zeit auszuführen.
Eine im Hinblick auf die Verarbeitungsgeschwindigkeit optimale Ausgestaltung der erfindungsgemäßen Vorrichtung be­ steht darin, daß für jedes Bildelement eine eigene Prozessor­ einheit vorgesehen ist, an die die durch die Prozessoreinheit des in der Richtung des Fortschreitens unmittelbar vorher­ gehenden Bildelementes gebildeten Werte übergeben werden.
Durch diese Ausbildung der erfindungsgemäßen Vorrich­ tung wird die theoretisch höchstmögliche Geschwindigkeit erreicht. Es läßt sich zeigen, daß hierfür die zur Darstel­ lung von n Kurven erforderliche Zeit T gegeben ist durch
T = Δτ ((w + h)k + n ∼ 1), (8)
wobei Δτ die pro Schaltvorgang eines einzelnen logischen Gates erforderliche Zeit und w und h die Rasterdimensionen in beiden Koordinatenrichtungen darstellen. k ist die Anzahl der für den Iterationsdurchgang durch ein Bildelement zu durch­ laufenden logischen Gates, deren Anzahl für die in der Praxis vorkommenden Kurven in der Größenordnung von 15 liegt. Hierdurch wird also ein Optimum an Verarbeitungsgeschwindig­ keit erreicht.
Eine in der Praxis leicht zu verwirklichende Aus­ führungsform der Prozessoreinheit besteht darin, daß in jeder Prozessoreinheit zwei den beiden Koordinatenachsen zugeord­ nete Gruppen von jeweils zwei Eingänge für zwei Summanden und einen Ausgang für die aus den beiden Summanden gebildete Sum­ me aufweisenden Addierwerken vorgesehen sind, in den beiden Gruppen an den einen Eingang des ersten Addierwerkes die längs der betreffenden Koordinatenachse gebildete Differenz erster Ordnung und an dessen anderen Eingang sowie den einen Eingang des zweiten Addierwerkes jeweils die betreffende Differenz zweiter Ordnung und von Addierwerk zu Addierwerk fortschreitend jeweils an den anderen Eingang des jeweils vorausgehenden Addierwerks und den einen Eingang des nach­ folgenden Addierwerks die bezüglich der am einen Eingang des vorausgehenden Addierwerkes angelegten Differenz betreffende Differenz der nächsthöheren Ordnung angelegt wird bis zum letzten Addierwerk, an dessen einem Eingang die betreffende Differenz der zweithöchsten Ordnung und dessen anderem Ein­ gang die betreffende konstante Differenz der höchsten Ordnung angelegt wird und von den Ausgängen des ersten bis letzten Addierwerkes jeweils die längs der betreffenden Koordinaten­ achse iterierten Differenzen der ersten bis zweithöchsten Ordnung abgenommen werden, und daß mindestens eine der beiden Gruppen ein weiteres Addierwerk aufweist, dessen einem Ein­ gang der Funktionswert und dessen anderem Eingang die längs einer der beiden Koordinatenachsen gebildete Differenz erster Ordnung zugeführt und an dessen Ausgang der längs dieser Koordinatenachse iterierte Funktionswert abgenommen wird.
Bei diesem Aufbau ist somit sowohl für die Iteration des Funktionswertes als auch für die Iterationen der Diffe­ renzen aller vorkommenden Ordnungen ein eigenes Addierwerk vorgesehen, so daß diese Iterationen gleichzeitig erfolgen können. Hierdurch wird bei einem dank der Einfachheit des Verfahrens einfachen Aufbau die Erzielung der optimalen Ver­ arbeitungsgeschwindigkeit sichergestellt.
Zur Verwirklichung der in einer Ausführungsform des er­ findungsgemäßen Verfahrens vorgesehenen genauen Entscheidung über die Zugehörigkeit eines Bildelementes als Kurvenpunkt ist in einer vorteilhaften Ausführungsform der erfindungsge­ mäßen Vorrichtung ferner vorgesehen, daß in jeder Prozessor­ einheit zwei jeweils einen ersten Eingang zur Verdopplung eines daran angelegten ersten Summanden und einen zweiten Eingang für einen zweiten Summanden sowie zwei Ausgänge für je ein ein positives Vorzeichen bzw. ein negatives Vorzeichen der aus dem verdoppelten ersten Summanden und dem zweiten Summanden gebildeten Summe anzeigendes logisches Signal px, nx, py, ny aufweisende weitere Addierwerke vorgesehen sind, deren erste Eingänge gemeinsam von dem in der Prozessorein­ heit gebildeten iterierten Funktionswert und deren zweite Eingänge jeweils mit den in der Prozessoreinheit gebildeten, längs den beiden Koordinatenachsen iterierten Differenzen dx, dy erster Ordnung beaufschlagt sind, sowie eine zwei logische Ausgangssignale i, o liefernde logische Einrichtung, die ein­ gangsseitig mit den logischen Signalen px, nx, py, ny, den zu den beiden in der Richtung des Fortschreitens längs den beiden Koordinatenachsen unmittelbar vorangehenden Bildele­ menten gehörenden logischen Ausgangssignale ix, ox, iy, oy und zwei aus dem iterierten Funktionswert hergeleiteten, ein positives bzw. negatives Vorzeichen des iterierten Funktions­ wertes anzeigenden weiteren logischen Signalen pF, nF be­ aufschlagt ist und daraus die logischen Ausgangssignale gemäß den logischen Verknüpfungen i = nFnxny x y und o = pFpxpy x y bildet.
Bei dieser Ausführungsform sind also zur Entscheidung über die genaue Zugehörigkeit eines Bildelementes zur Kurve nur zwei zusätzliche Addierwerke und eine einfach aufgebaute logische Einrichtung erforderlich. Insbesondere ist darauf hinzuweisen, daß in der Binärdarstellung die Verdopplung des jeweils an den ersten Eingang der beiden Zählwerke angelegten Summanden lediglich durch eine Verschiebung um eine Binär­ stelle bewerkstelligt werden kann. Die verschiedenen logi­ schen Signale oder Flags entsprechen jeweils einem einzelnen Bit, so daß sowohl die Bildung dieser Signale als auch ihre Weiterleitung mit einem geringstmöglichen Aufwand verbunden ist. Sowohl die Einfachheit des Aufbaus als auch die hohe Arbeitsgeschwindigkeit der Vorrichtung werden also durch diese zusätzliche Entscheidungslogik nicht beeinträchtigt.
Mit besonderem Vorteil ist die erfindungsgemäße Vor­ richtung derart aufgebaut, daß die Addierwerke ausschließlich für ganzzahlige Arithmetik ausgelegt sind. Die Verwendung nur ganzzahliger Arithmetik bedeutet keinerlei Einschränkung, weil wegen der Endlichkeit des Rasters alle zu verarbeitenden Größen auf ganze Zahlen normiert werden können. Bekanntlich erlaubt aber die ganzzahlige Arithmetik besonders hohe Ar­ beitsgeschwindigkeiten sowie einen besonders einfachen Auf­ bau.
Weitere Merkmale, Einzelheiten und Vorteile der Er­ findung ergeben sich aus der folgenden Beschreibung und der Zeichnung, auf die bezüglich einer erfindungswesentlichen Offenbarung aller im Text nicht erwähnten Einzelheiten aus­ drücklich hingewiesen wird. Hierin zeigen:
Fig. 1 eine schematische Darstellung eines zweidimen­ sionalen Rasters zur Wiedergabe von Kurven,
Fig. 2 und 3 einen schematischen Aufbau einer Prozessorein­ heit zur iterativen Verarbeitung von aus einem vorangehenden Nachbarbildelement übernommenen Werten und Weitergabe der iterierten Werte längs einer bzw. längs beiden Koordinatenachsen und
Fig. 4 eine durch eine Entscheidungslogik erweiterte Ausführungsform der Prozessoreinheit von Fig. 2.
Gemäß Fig. 1 soll auf einem zweidimensionalen Raster 1 endlicher Feinheit, bei dem es sich beispielsweise um den Bildschirm eines Sichtanzeigegeräts oder das von Matrix- oder Laserdruckern erzeugte Raster handelt, eine durch die Funk­ tion F(x,y) = 0 beschreibbare Kurve dargestellt werden. Zur Beschreibung des Rasters 1 werden die y-Koordinatenachse und die x-Koordinatenachse eines kartesischen Koordinatensystems an den linken bzw. den unteren Bildrand des Rasters gelegt. Nach entsprechender Normierung der Funktion F(x,y) spannen die durch die ganzzahligen Werte 0, 1, 2 . . . der Koordina­ tenachsen parallel zur jeweils anderen Koordinatenachse ge­ zogenen Geraden die Begrenzungslinien der Bildelemente 2 des Rasters 1 auf. Jedes Bildelement 2 werde beispielsweise durch die Koordinaten x, y seines linken unteren Eckpunktes be­ schrieben. Bei einer Einteilung des gesamten Rasters 1 in 1000 Schritte pro Koordinatenachse ergeben sich somit insge­ samt 106 Bildelemente 2.
Für die Funktion F(x,y) seien in beiden Koordinaten­ richtungen die von Bildelement zu Bildelement bestehenden Differenzen
dx(x, y) = F(x + 1, y) - F(x, y)
dy(x, y) = F(x, y + 1) - F(x, y)
d(x)i+1(y)j = d(x)i(y)j(x + 1, y) - d(x)i(y)j(x, y)
d(x)i(y)j+1 = d(x)i(y)j(x, y + 1) - d(x)i(y)j(x, y), (9)
wobei n = i + j als Ordnung der Differenz bezeichnet werde.
Für die in der Form F(x,y) = 0 darzustellenden Kurven wird lediglich vorausgesetzt, daß für einen bestimmten end­ lichen Wert von n die Differenzen dieser höchsten Ordnung n konstant sind, also von den Koordinaten x, y des jeweiligen Bildelementes unabhängig sind. Dies ist jedenfalls für alle in technischen Darstellungen vorkommenden Kurven in der Pra­ xis der Fall, wobei insbesondere die Menge aller für die praktischen Bedürfnisse verwendeten Kurven diese Bedingungen schon für einen verhältnismäßig kleinen Wert der Ordnung n erfüllen.
Beispielsweise ergibt sich für die Kurven zweiter Ord­ nung der analytischen Geometrie, nämlich die Kegelschnitte, im Einklang mit der eingangs dargestellten Gleichung (2) die allgemeine Form
F(x, y) ≡ a₁₁x² + 2a₁₂xy + a₂₂y² + 2a₁₃x + 2a₂₃y +a₃₃ = 0. (10)
Bei Anwendung der die Differenzen aller Ordnungen defi­ nierenden Gleichungen (9) auf die vorstehende Kegelschnitt­ gleichung (10) ergeben sich sodann die folgenden Beziehungen:
dx(x, y) = 2(a₁₁x + a₁₂y + a₁₃) + a₁₁
dy(x, y) = 2(a₁₂x + a₂₂y + a₂₃) + a₂₂
dxx(x, y) = 2a₁₁
dxy(x, y) = 2a₁₂
dyx(x, y) = 2a₁₂
dyy(x, y) = 2a₂₂ (11)
Für die Kurven zweiter Ordnung sind also bereits die Differenzen zweiter Ordnung konstant, und es läßt sich zei­ gen daß allgemein für die bei einem Übergang der eingangs unter den Gleichungen (1) bis (3) dargestellten Funktionen zu Kurven einer beliebigen höheren Ordnung n jeweils die Diffe­ renzen der Ordnung n konstant sind.
Zum Aufbau der Kurvendarstellung auf dem Raster 1 wird beispielsweise das an der linken unteren Bildecke des Rasters 1 befindliche Bildelement 2 mit den Koordinaten x = 0, y = 0 als Anfangsbildelement gewählt. Dann werden für dieses spezi­ elle Bildelement gemäß den eingangs dargestellten Gleichungen (4) und (5) der Funktionswert und die Differenzen aller auf­ tretenden Ordnungen bestimmt. Im einzelnen ergeben sich hier­ bei für die Kurven zweiter Ordnung gemäß Gleichung (10) und (11) die Werte
F(0, 0) = a₃₃
dx(0, 0) = 2a₁₃ + a₁₁
dy(0, 0) = 2a₂₃ + a₂₂. (12)
Die Werte der Differenzen zweiter Ordnung sind für das vorliegende Beispiel der Kurven zweiter Ordnung gemäß Glei­ chung (11) bereits konstant, wobei diese konstanten Werte aus letzterer entnommen werden können. Nachdem somit für das An­ fangsbildelement mit den Koordinaten x = 0, y = 0 die Werte für F und alle Differenzen wie vorstehend im Einklang mit den eingangs wiedergegebenen Gleichungen (4) und (5) bestimmt sind, werden schrittweise für alle längs der x-Achse und der y-Achse benachbarten Bildzellen die folgenden Iterationen durchgeführt:
  • 1. Die Bildzelle übernimmt von der in der Richtung des Fortschreitens gesehen vorangehenden Bildzelle die dort ermittelten Werte für F, dx, dy, dxx = 2a11, dxy = dyx = 2a₁₂ und dyy = 2a22.
  • 2. Falls das Bildelement nicht am linken Rand des Rasters 1 liegt (x < 0),
    • 2.a ermittelt das Bildelement im Einklang mit der eingangs niedergelegten Gleichung (6) neue Werte für F, dx und dy gemäß F : = F + dx, dx := dx + dxx, dy := dy + dxyDiese drei Additionen können gleichzeitig ausgeführt werden.
    • 2.b Durch Untersuchen des Verhaltens des Vorzeichens von F beim Übergang von dem einen Bildelement zu dem ande­ ren, d. h. durch Erfassung eines bei diesem Übergang stattfindenden Vorzeichenwechsels, wird entschieden, ob das Bildelement oder Pixel ein Kurvenpunkt ist und daher dieses Bildelement, beispielsweise durch Farb­ änderung, optisch unterschiedlich darzustellen ist.
    • 2.c Das Bildelement gibt die neuen Werte für F und die Differenzen an das rechts benachbarte Bildelement wei­ ter.
  • 3. Wenn das Bildelement oder Pixel am linken Rand des Rasters 1 liegt (x = 0),
    • 3.a berechnet das Bildelement die neuen Werte für F, dx und dy gemäß der eingangs niedergelegten allgemeinen Iterationsgleichung (7) als F : = F + dy, dx : = dx + dxy, dy : = dy + dyy. Auch diese drei Additionen können gleichzeitig ausgeführt werden.
    • 3.b Die Behandlung des Bildelementes als Kurvenpunkt oder von der Kurve abseits gelegener Punkt erfolgt sodann wie in dem oben erläuterten Schritt 2.b.
    • 3.c Das Bildelement gibt den neuen Funktionswert und die iterierten Differenzen sowohl an das rechts gelegene, also das in der x-Richtung benachbarte Bildelement als auch an das darüber gelegene, also an das in der y- Koordinatenrichtung benachbarte Bildelement weiter.
Aus dem vorstehend beispielhaft für Kurven zweiter Ordnung dargestellten Ablauf der einzelnen Schritte ist also ersichtlich, daß ausgehend von dem am Koordinatenursprung liegenden Bildelement jeweils die durch die Koordinatenbe­ ziehung x + y = k, wobei k eine natürliche Zahl ist, gege­ benen Bildelemente bearbeitet werden. Der Aufbau der Kurven­ darstellung auf dem Raster 1 schreitet somit nach Art einer sich längs der Diagonalen x + y = k erstreckenden Wellenfront mit dazu senkrechter Ausbreitungsrichtung fort.
Für die eingangs unter Gleichung (3) definierten Kurven dritter Ordnung (B-Splines) ergibt sich in ausgeschriebener Form
a₁₁₁x³ + 3a₁₁₂x²y + 3a₁₂₂xy² + a₂₂₂y³ + 3a₁₁₃x² + 6a₁₂₃xy + 3a₂₂₃y² + 6a₁₃₃x + 6a₂₃₃y + a₃₃₃ = 0. (13)
Die hieraus zu entnehmenden konstanten Differenzen dritter Ordnung lauten dann
dxxx = 6a₁₁₁
dxyx = 6a₁₁₂
dyyx = 6a₁₂₂
dxxy = 6a₁₁₂
dxyy = 6a₁₂₂
dyyy = 6a₂₂₂. (14)
Der dem vorstehend für die Kurven zweiter Ordnung beschriebenen Iterationsschritt 2.a entsprechende Schritt lautet dann für die Kurven dritter Ordnung
F: = F + dx
dx: = dx + dxx
dy: = dy + dxy
dxx: = dxx + dxxx
dxy: = dxy + dxyx
dyy: = dyy + dyyx.
Ebenso lautet der dem Schritt 3.a bei Kurven zweiter Ordnung entsprechende Schritt
F: = F +dy
dx: = dx + dxy
dy: = dy + dyy
dxx: = dxx + dxxy
dxy: = dxy + dxyy
dyy: = dyy + dyyy.
Eine zur Durchführung des Verfahrens dienende Pro­ zessoreinrichtung, durch die die einzelnen Bildelemente 2 in Abhängigkeit von ihrer Eigenschaft, Kurvenpunkt zu sein oder nicht, in einen entsprechenden optischen Zustand gesteuert werden, weist gemäß Fig. 2 und 3 mindestens eine Prozessor­ einheit 3,3′ auf, die eingangsseitig die für ein bereits bearbeitetes Bildelement 2 ermittelten Werte empfängt, daraus gemäß dem vorstehend beschriebenen Iterationsverfahren die für das in der Richtung des Fortschreitens unmittelbar be­ nachbarte Bildelement 2 zutreffenden Werte bildet und diese neu gebildeten Werte an das in der Richtung des Fortschrei­ tens nächstbenachbarte Bildelement 2 weitergibt. Fig. 2 veranschaulicht diejenige Situation, bei der die Prozessor­ einheit 3 die Werte von einem längs der x-Koordinatenachse vorangehenden Bildelement 2 empfängt und die neuen Werte an das in der Richtung des Fortschreitens längs der x-Koordi­ natenachse benachbarte Bildelement 2 weiterleitet. Ein zwei Eingänge 5, 6 aufweisendes Addierwerk 7 empfängt an seinem einen Eingang 5 die längs der y-Koordinatenachse gebildete Differenz dy erster Ordnung und an seinem zweiten Eingang 6 die zu deren Iteration längs der x-Koordinatenachse erfor­ derliche Differenz dyx zweiter Ordnung. Bei der in Fig. 2 beispielhaft vorgenommenen Beschränkung der Prozessoreinheit 3 auf die Verarbeitung von Kurven bis zur zweiten Ordnung ist bereits die Differenz zweiter Ordnung konstant, so daß deren Iteration nicht erforderlich ist und diese unverändert auf einen Ausgang 8 der Prozessoreinheit 3 weitergegeben werden kann. Dagegen tritt an dem Ausgang 9 des Addierwerkes 7 der zur Weitergabe an die Prozessoreinheit 3 des benachbarten Bildelementes 2 dienende iterierte Wert der Differenz dy er­ ster Ordnung auf.
Ähnlich ist auch für die Iteration der längs der x- Koordinatenachse gebildeten Differenz dx erster Ordnung ein zwei Eingänge 10, 11 aufweisendes Addierwerk 12 vorgesehen, dessen einem Eingang 10 die Differenz dx erster Ordnung längs der x-Koordinatenachse und dessen anderem Eingang 11 die zur Iteration dieser Differenz erster Ordnung erforderliche Dif­ ferenz dxx zweiter Ordnung zugeführt wird. Wegen der für Kurven zweiter Ordnung festgestellten Konstanz der Diffe­ renzen zweiter Ordnung wird diese keiner weiteren Iteration unterzogen, sondern unverändert zu einem Ausgang 13 der Pro­ zessoreinheit 3 weitergeleitet. Am Ausgang 14 des Addier­ werkes 12 steht der iterierte Wert der Differenz dx erster Ordnung längs der x-Koordinatenachse zur Verfügung.
Das in Fig. 2 dargestellte Beispiel für die Prozes­ soreinheit 3 ermöglicht somit die parallele Berechnung aller benötigten Differenzen für Kurven bis zur zweiten Ordnung. Für Kurven höherer Ordnungen müssen nach den vorstehenden Erläuterungen auch die weiteren Differenzen bis zur vor­ letzten Ordnung iteriert werden. Dies würde bei dem in Fig. 2 dargestellten Aufbau der Prozessoreinheit 3 mit nur zwei der Iteration der Differenzen dienenden Addierwerken 7 und 12 einen mehrfachen Durchlauf durch die Prozessoreinheit 3 er­ fordern. Um auch für höhere Ordnungen den Vorteil der Ge­ schwindigkeit einer Parallelverarbeitung zur Verfügung zu stellen, braucht das in Fig. 2 dargestellte Beispiel nur um eine entsprechende Anzahl weiterer Addierwerke ergänzt zu werden. An die Stelle der Addierwerke 7 und 12 von Fig. 3 tritt dann jeweils eine ganze Gruppe identischer Addierwerke 7 bzw. 12, wobei in jeder dieser beiden Gruppen dem ersten Addierwerk 7 bzw. 12 an seinem einen Eingang 5 bzw. 10 die längs der betreffenden Koordinatenachse gebildete Differenz erster Ordnung und an seinem anderen Eingang 6 bzw. 11 die zu deren Iteration benötigte Differenz zweiter Ordnung zugelei­ tet wird. Gleichzeitig wird diese Differenz zweiter Ordnung dem jeweils nächsten Addierwerk 7 bzw. 12 an dessen einem Eingang 5 bzw. 10 zugeleitet, wogegen dessen anderer Eingang 6 bzw. 11 mit der betreffenden Differenz nächsthöherer Ordnung beaufschlagt ist. Dies setzt sich bis zum jeweils letzten Addierwerk 7 bzw. 12 der beiden Gruppen fort, so daß also das jeweils letzte Addierwerk 7 bzw. 12 an seinem einen Eingang 5 bzw. 10 mit der betreffenden Differenz zweit­ höchster Ordnung und an seinem anderen Eingang 6 bzw. 11 mit der konstanten Differenz höchster Ordnung beaufschlagt ist. Folglich können von den Ausgängen 9 bzw. 14 der in diesen Gruppen zusammengeschlossenen Addierwerke 7 bzw. 12 die iterierten Differenzen bis zur gewünschten Ordnung abgenommen werden. Damit bleibt auch bei Kurven höherer Ordnungen der Vorteil einer schnellen Parallelverarbeitung gewahrt. Für das vorstehend näher erläuterte Beispiel der Kurven dritter Ordnung muß also zu den in Fig. 2 dargestellten Addierwerken 7 und 12 jeweils nur ein einziges weiteres Addierwerk hinzu­ gefügt werden.
Da in dem in Fig. 2 dargestellten Fall die Prozessor­ einheit 3 die Eingangswerte von einem längs der x-Koordina­ tenachse gesehen linken Nachbarbildelement 2 erhält und daher gemäß dem vorstehend beschriebenen Ausführungsbeispiel des Verfahrens die Iteration des Funktionswertes F in der x- Richtung auszuführen sowie an das in der x-Koordinatenachse gesehen rechte Nachbarbildelement 2 weiterzugeben hat, ist dem Addierwerk 12 bzw. der Gruppe von Addierwerken 12 ein weiteres Addierwerk 15 zugeordnet, dessen einem Eingang 16 der von links übernommene Funktionswert F und dessen anderem Eingang 17 die von links übernommene Differenz dx erster Ordnung längs der x-Koordinatenachse zugeführt wird. In Über­ einstimmung mit der eingangs dargestellten Gleichung (6) kann dann am Ausgang 18 des zusätzlichen Addierwerkes 15 der in der x-Richtung an das nächstbenachbarte Bildelement 2 weiter­ zugebende iterierte Funktionswert F abgenommen werden.
Bei der in Fig. 3 dargestellten Prozessoreinheit 3′ herrschen dieselben baulichen und funktionellen Gegebenheiten wie bei der vorstehend im Zusammenhang mit Fig. 2 erläuterten Prozessoreinheit 3 mit der einzigen Ausnahme, daß die Prozes­ soreinheit 3′ zur Bearbeitung der am linken Rand des Rasters 1 gelegenen Bildzellen 2 dient, die ihre Eingangswerte nicht von links, sondern von dem längs der y-Koordinatenachse be­ nachbarten Bildelement 2, also von unten, erhält. Abgesehen davon besteht noch ein Unterschied gegenüber Fig. 2 darin, daß die Prozessoreinheit 3′ wegen der Lage des zugeordneten Bildelementes 2 am linken Rasterrand die in der Prozessor­ einheit 3′ gebildeten iterierten Werte nicht nur nach rechts längs der x-Koordinatenachse zu dem dort benachbarten Bild­ element 2, sondern auch nach oben längs der y-Koordinaten­ achse zu dem vertikal benachbarten Bildelement 2 weitergibt. Die in der Prozessoreinheit 3′ durchgeführten Iterationen er­ folgen somit gemäß der eingangs dargestellten Gleichung (7), wobei die einzelnen Differenzen an der Eingangsseite und der Ausgangsseite in Fig. 3 im einzelnen angegeben sind. Im übrigen sind einander entsprechende Bauteile in Fig. 2 und 3 mit denselben Bezugszeichen bezeichnet. Ferner wird darauf hingewiesen, daß die Ausführungen von Fig. 2 wegen der Er­ weiterung auf die Parallelverarbeitung Kurven höherer Ordnung entsprechend zutreffen.
Wegen der endlichen Feinheit des Rasters 1 ist für die Koordinaten x, y derjenigen Punkte, durch die die durch die Gleichung F(x,y) = 0 definierte Kurve hindurchgeht, der Wert von F im allgemeinen nicht exakt gleich Null. Daher ist der zu einem gerade betrachteten Bildelement 2 gehörende Funk­ tionswert allein nicht ausreichend, für dieses Bildelement 2 die Entscheidung zu treffen, ob es als Darstellung eines Kur­ venpunktes behandelt werden soll oder nicht. Diese Entschei­ dung ergibt sich aber aus einem Vergleich des für das jeweils betrachtete Bildelement 2 ermittelten Funktionswertes mit den für die zwei Paare von längs beiden Koordinatenachsen zu dem gerade betrachteten Bildelement 2 benachbarten Bildelemente 2 ermittelten Funktionswerten.
Eine Möglichkeit dieses Vergleichs besteht darin, die im Kontinuum gebräuchliche Definition für die abseits der Kurve F(x,y) = 0 gelegenen Punkte als innerer Punkt, wenn F(x,y) < 0,und als äußerer Punkt, wenn F(x,y) < 0, auf den Fall des Rasters 1 von endlicher Feinheit zu übertragen. Danach entspricht ein Bildelement 2 einem inneren Punkt der Kurve, wenn der diesem Bildelement 2 zugeordnete Funktionswert F < 0 ist und die Funktionswerte für die zu diesem Bildelement 2 längs der beiden Koordinatenachsen unmittelbar benachbarten vier Bildelemente 2 ebenfalls negativ oder betragsmäßig nicht größer sind als der Betrag des zu dem betrachteten Bild­ element 2 gehörenden Funktionswertes. Ebenso ergibt sich die Definition eines einen äußeren Kurvenpunkt darstellenden Bildelementes 2 dadurch, daß der für dieses Bildelement 2 ermittelte Funktionswert F größer Null ist und die Funktions­ werte der vier benachbarten Bildelemente alle positiv sind oder betragsmäßig kleiner sind als der zu dem betrachteten Bildelement 2 gehörende Funktionswert. Bildelemente 2, die weder im Sinne dieser Definition einem äußeren oder einem in­ neren Kurvenpunkt entsprechen, stellen dann einen Kurvenpunkt dar.
Für die iterative Durchführung dieses Vergleichs werden daher die bereits bearbeiteten Nachbarbildelemente 2 eines gerade betrachteten Bildelementes 2, in dem vorstehend be­ schriebenen Ausführungsbeispiel also das längs der x-Koordi­ natenachse links gelegene Bildelement 2 und das längs der y- Koordinatenachse unterhalb des gerade betrachteten Bildele­ mentes 2 gelegene Bildelement 2, jeweils durch zwei logische Signale (Flags) vorgemerkt, von denen das eine logische Si­ gnal i durch seinen Wahrheitswert 1 anzeigt, daß das vorher­ gehende Bildelement 2 einem inneren Kurvenpunkt entspricht und das andere logische Signal o durch seinen Wahrheitswert 1 anzeigt, daß das vorangegangene Bildelement 2 einem äußeren Kurvenpunkt entspricht.
Für den Vergleich mit den in der Richtung des Fort­ schreitens nachfolgenden Bildelementen 2, also im beschrie­ benen Ausführungsbeispiel die beiden dem gerade betrachteten Bildelement 2 in der x-Koordinatenrichtung und der y-Koordi­ natenrichtung unmittelbar benachbarten Bildelemente 2, wird bei der Bearbeitung des gerade betrachteten Bildelements 2 die Summe aus dem für das gerade betrachtete Bildelement 2 ermittelten Funktionswert F und dem für das benachbarte Bild­ element 2 jeweils geltenden Funktionswert F + dx bzw. F + dy gebildet und das Vorzeichen der solchermaßen gebildeten Sum­ men erfaßt. Dadurch ergeben sich bei der Bearbeitung des ge­ rade betrachteten Bildelements 2 vier logische Signale px, nx, py und ny (Flags), die ihren Wahrheitswert 1 unter genau den nachstehenden Bedingungen annehmen:
2F + dx < 0, dann px wahr
2F + dx < 0, dann nx wahr
2F + dy < 0, dann py wahr
2F + dy < 0, dann ny wahr. (15)
Wenn also der für das gerade betrachtete Bildelement 2 gebildete Funktionswert F positiv ist, was durch den Wahr­ heitswert 1 eines weiteren logischen Signals (Flag) pF ange­ zeigt werden kann, stellt das gerade betrachtete Bildelement 2 ein einem äußeren Kurvenpunkt entsprechendes Bildelement dar, sofern gleichzeitig auch die logischen Signale px und py sowie die von den in den beiden Koordinatenrichtungen voran­ gegangenen Bildelementen 2 zugeführten negierten Signale x und y wahr sind. Umgekehrt entspricht das gerade betrachtete Bildelement 2 einem inneren Kurvenpunkt, wenn der für dieses Bildelement 2 ermittelte Funktionswert F negativ ist und gleichzeitig die logischen Signale nx und ny sowie die von den beiden vorhergehenden Nachbarbildelementen 2 zugeführten invertierten logischen Signale x und y wahr sind. Sofern keines der beiden auf diese Weise für das gerade betrachtete Bildelement 2 ermittelten logischen Signale i und o wahr ist, entspricht dieses Bildelement 2 einem Kurvenpunkt und wird in einen entsprechenden Zustand gesteuert.
Der vorstehend beschriebene Ablauf läßt sich bei den anhand von Fig. 2 und 3 beispielhaft erläuterten Prozessoreinheiten 3 und 3′ mit einem geringfügigen zusätzlichen baulichen Auf­ wand verwirklichen. Eine derartige Prozessoreinheit 3′′ ist in Fig. 4 dargestellt, wobei die den Bauteilen von Fig. 2 ent­ sprechenden Komponenten mit denselben Bezugszeichen bezeich­ net sind wie in Fig. 2. Im einzelnen sind in Fig. 4 zusätz­ lich zu den Komponenten der in Fig. 2 dargestellten Prozes­ soreinheit 3 zwei weitere Addierwerke 19 und 20 vorgesehen. Ein jeweils erster Eingang 21 bzw. 22 der zusätzlichen Ad­ dierwerke 19, 20, dem jeweils der für das gerade betrachtete Bildelement 2 ermittelte, iterierte Funktionswert F aus dem Addierwerk 15 zugeführt wird hat die Eigenschaft, daß der zugeführte Funktionswert F für den Additionsvorgang der Ad­ dierwerke 19, 20 zunächst verdoppelt wird, was in der Binär­ darstellung einer einfachen Verschiebung um eine Digital­ stelle entspricht. Dem jeweils zweiten Eingang 23 bzw. 24 der Addierwerke 19, 20 wird der iterierte Wert der Differenz er­ ster Ordnung dx in der x-Richtung bzw. der iterierten Diffe­ renz dy in der y-Richtung aus den Addierwerken 12 bzw. 7 zugeführt, wobei die Addierwerke 19, 20 lediglich mit Aus­ gängen für das Vorzeichen der darin gebildeten Summen dar­ stellende logische Signale, also die logischen Signale px und nx beim Addierwerk 19 und py und ny beim Addierwerk 20, ver­ sehen sind. Ferner ist das den iterierten Funktionswert lie­ fernde Addierwerk 15 durch zwei Ausgänge für dem Vorzeichen der darin gebildeten Summe entsprechende Signale, also die logischen Signale pF und nF, ergänzt.
Schließlich weist die Prozessoreinheit 3′′ eine in dem dargestellten Ausführungsbeispiel durch zwei UND-Glieder 25, 26 gebildete logische Einrichtung auf, an deren beiden Ausgängen 27, 28 die logischen Signale i bzw. o zur Weitergabe bei der Bearbeitung der benachbarten Bildelemente 2 auftre­ ten. Die beiden UND-Glieder 25, 26 weisen je drei nicht inver­ tierende und zwei invertierende Eingänge auf, wobei an die nicht invertierenden Eingänge des UND-Gliedes 25 die logi­ schen Signale nF, ny und nx und an die invertierenden Ein­ gänge die logischen Signale ox und oy angelegt sind, wogegen die nicht invertierenden Eingänge des UND-Gliedes 26 mit den Signalen pF, py und px sowie die invertierenden Eingänge mit den logischen Signalen ix und iy aus den beiden Nachbarbild­ elementen 2 beaufschlagt sind. Somit liefern die beiden UND- Glieder 25, 26 die gewünschten Signale i = nFnxny x y und o = pFpxpy x y. Die Vorgabe der für diesen Iterationsvorgang erforderlichen Anfangswerte von ix, iy, ox, oy bei Bearbei­ tung der am linken und am unteren Bildrand des Rasters 1 gelegenen Bildelemente 2 stellt kein Problem dar, weil hier­ für das Raster 1 um eine fiktive, links bzw. unterhalb dieser beiden Bildränder gelegene Spalte bzw. Zeile von Bildelemen­ ten angenommen werden kann, wobei diese Spalte und Zeile also außerhalb der Darstellung liegt und somit hierfür die An­ fangswerte entsprechend gewählt werden können.
Aus der vorstehenden Beschreibung ist ohne weiteres ersichtlich, daß wegen der endlichen Feinheit des Rasters 1 eine Normierung auf nur ganzzahlige Werte möglich ist, so daß sämtliche Addierwerke 7, 12, 15, 19 und 20 lediglich für ganzzahlige Arithmetik ausgelegt werden müssen. Die Prozes­ soreinheiten 3, 3′ und 3′′ weisen daher eine hohe Verarbei­ tungsgeschwindigkeit auf und sind gleichzeitig baulich ein­ fach und für einen hohen Integrationsgrad geeignet.

Claims (10)

1. Verfahren zur Darstellung von Kurven in einem zwei­ dimensionalen Raster von Bildelementen, bei dem die einzelnen Bildelemente in Abhängigkeit von dem Durchgang oder Nicht­ durchgang der Kurve durch das jeweilige Bildelement in von­ einander optisch unterscheidbare Zustände versetzt werden, wobei die Kurve durch eine zweidimensionale Kurvengleichung der Form F(x,y) = 0 darstellbar ist und sowohl in der x-Koor­ dinatenrichtung als auch in der y-Koordinatenrichtung des Rasters die Differenzen erster Ordnung dx(x,y) = F(x+1,y) - F(x,y) und dy(x,y) = F(x,y+1) - F(x,y) der Funktionswerte an den Koordinaten (x+1,y) und (x,y) bzw. (x,y+1) und (x,y) je­ weils benachbarter Bildelemente bzw. alle aus diesen Diffe­ renzen dx, dy erster Ordnung zwischen den Koordinaten benach­ barter Bildelemente schrittweise gebildeten weiteren Diffe­ renzen höherer Ordnung d(x)i(y)j nach einer endlichen Anzahl i + j = n von Schritten jeweils einen für die Koordinaten al­ ler Bildelemente gleichen konstanten Wert annehmen, dadurch gekennzeichnet, daß an einem vorgegebenen Bildelement des Rasters für dessen Koordinaten (x0,y0) der entsprechende Funktionswert F(x0,y0) sowie die Differenzen aller Ordnungen d(x)i(y)j ermittelt werden und ausgehend von diesem vorgege­ benen Bildelement längs den beiden Koordinatenachsen über das gesamte Raster selbsttätig fortschreitend jeweils der Funk­ tionswert des in der Richtung des Fortschreitens längs der Koordinatenachsen zu einem Bildelement unmittelbar benachbar­ ten Bildelementes sowie die den Koordinaten dieses benachbar­ ten Bildelementes entsprechenden Werte der Differenzen aller Ordnungen durch Summenbildung aus dem für das in der Richtung des Fortschreitens vorherige Bildelement ermittelten Funk­ tionswert und den dafür ermittelten Differenzen gebildet werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß als das vorgegebene Bildelement das am Koordinatenur­ sprung liegende Bildelement mit den Koordinaten (0,0) gewählt wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß jeweils für diejenigen Bildelemente, deren Koordinaten (x,y) auf den Diagonalen x + y = k, wobei k eine natürliche Zahl ist, liegen, die Ermittlung der Funktionswerte und Dif­ ferenzen simultan durchgeführt wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die entsprechenden Funktionswerte und Differenzen des vorgegebenen Bildelementes und der längs einer der beiden Koordinatenachsen mit dem vorgegebenen Bild­ element fluchtenden Bildelemente in beiden Koordinatenrich­ tungen fortschreitend an die jeweils unmittelbar benachbarten Bildelemente weitergegeben werden, wogegen die Funktionswerte und Differenzen aller übrigen Bildelemente fortschreitend jeweils nur an das in der anderen Koordinatenrichtung unmit­ telbar benachbarte Bildelement weitergegeben werden.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß für jedes Bildelement die beiden Summen aus dessen zugeordnetem Funktionswert und den jeweils zuge­ ordneten Funktionswerten der längs den beiden Koordinatenach­ sen in der Richtung des Fortschreitens unmittelbar benachbar­ ten Bildelemente gebildet werden, das Bildelement als inneres Bildelement vorgemerkt wird, wenn sein zugeordneter Funk­ tionswert und die beiden Summen negativ sowie für beide Ko­ ordinatenachsen die dem Bildelement in der Richtung des Fort­ schreitens unmittelbar vorangegangenen Bildelemente nicht als äußere Bildelemente vorgemerkt sind, das Bildelement als äußeres Bildelement vorgemerkt wird, wenn sein zugeordneter Funktionswert und die beiden Summen positiv sowie für die beiden Koordinatenachsen die dem Bildelement in der Richtung des Fortschreitens unmittelbar vorangegangenen Bildelemente nicht als innere Bildelemente vorgemerkt sind, und das Bild­ element in seinen den Durchgang der Kurve anzeigenden Zustand gesteuert wird, wenn das Bildelement weder als inneres noch als äußeres Bildelement vorgemerkt wird.
6. Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 5, mit einer Einrichtung zur Dar­ stellung eines zweidimensionalen Rasters (1) von Bildele­ menten (2) und einer Prozessoreinrichtung zur Ansteuerung der einzelnen Bildelemente (2) entsprechend der auf der Raster­ einrichtung darzustellenden Kurve, dadurch gekennzeichnet, daß die Prozessoreinrichtung eine Prozessoreinheit (3, 3′,3′′) aufweist, an die der für das in der Richtung des Fortschrei­ tens unmittelbar vorhergehende Bildelement (2) gebildete Funktionswert (F) sowie die dafür gebildeten Differenzwerte (d(x)id(y)j) übergeben und daraus durch Summation der neue Funktionswert und die neuen Differenzwerte für das in der Richtung des Fortschreitens folgende Bildelement (2) gebildet werden sowie das zugehörige Bildelement (2) in den dem Funk­ tionswert entsprechenden Zustand gesteuert wird.
7. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß für jedes Bildelement (2) eine eigene Prozessoreinheit (3, 3′,3′′) vorgesehen ist, an die die durch die Prozessor­ einheit des in der Richtung des Fortschreitens unmittelbar vorhergehenden Bildelementes (2) gebildeten Werte übergeben werden.
8. Vorrichtung nach Anspruch 6 oder 7, dadurch gekenn­ zeichnet, daß in jeder Prozessoreinheit (3, 3′,3′′) zwei den beiden Koordinatenachsen zugeordnete Gruppen von jeweils zwei Eingängen (5, 6; 10, 11) für zwei Summanden und einen Ausgang (9; 14) für die aus den beiden Summanden gebildete Summe auf­ weisenden Addierwerken (7, 12) vorgesehen sind, in den beiden Gruppen an den einen Eingang (5; 10) des ersten Addierwerkes (7, 12) die längs der betreffenden Koordinatenachse gebildete Differenz erster Ordnung und an dessen anderen Eingang (6; 11) sowie den einen Eingang (5, 10) des zweiten Addierwerkes je­ weils die betreffende Differenz zweiter Ordnung und von Ad­ dierwerk zu Addierwerk fortschreitend jeweils an den anderen Eingang (6; 11) des jeweils vorausgehenden Addierwerks und den einen Eingang (5, 10) des nachfolgenden Addierwerks die bezüg­ lich der am einen Eingang (5, 10) des vorausgehenden Addier­ werkes angelegten Differenz betreffende Differenz der nächst­ höheren Ordnung angelegt wird bis zum letzten Addierwerk, an dessen einem Eingang (5; 10) die betreffende Differenz der zweithöchsten Ordnung und dessen anderem Eingang (6; 11) die betreffende konstante Differenz der höchsten Ordnung angelegt wird und von den Ausgängen (9; 14) des ersten bis letzten Addierwerkes jeweils die längs der betreffenden Koordinaten­ achse iterierten Differenzen der ersten bis zweithöchsten Ordnung abgenommen werden, und daß mindestens eine der beiden Gruppen ein weiteres Addierwerk (15) aufweist, dessen einem Eingang (16) der Funktionswert und dessen anderem Eingang (17) die längs einer der beiden Koordinatenachsen gebildete Differenz erster Ordnung zugeführt und an dessen Ausgang (18) der längs dieser Koordinatenachse iterierte Funktionswert ab­ genommen wird.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß in jeder Prozessoreinheit (3′′) zwei jeweils einen ersten Eingang (21; 22) zur Verdopplung eines daran angelegten ersten Summanden und einen zweiten Eingang (23; 24) für einen zweiten Summanden sowie zwei Ausgänge für je ein ein positives Vor­ zeichen bzw. ein negatives Vorzeichen der aus dem verdop­ pelten ersten Summanden und dem zweiten Summanden gebildeten Summe anzeigendes logisches Signal px, nx, py, ny aufweisende weitere Addierwerke (19, 20) vorgesehen sind, deren erste Ein­ gänge (21; 22) gemeinsam von dem in der Prozessoreinheit (3′′) gebildeten iterierten Funktionswert und deren zweite Eingänge (23; 24) jeweils mit den in der Prozessoreinheit (3′′) gebilde­ ten, längs den beiden Koordinatenachsen iterierten Differen­ zen dx, dy erster Ordnung beaufschlagt sind, sowie eine zwei logische Ausgangssignale i, o liefernde logische Einrichtung (25, 26), die eingangsseitig mit den logischen Signalen px, nx, py, ny, den zu den beiden in der Richtung des Fortschrei­ tens längs den beiden Koordinatenachsen unmittelbar vorange­ henden Bildelementen (2) gehörenden logischen Ausgangssignalen ix, ox, iy, oy und zwei aus dem iterierten Funktionswert hergeleiteten, ein positives bzw. negatives Vorzeichen des iterierten Funktionswertes anzeigenden weiteren logischen Signalen pF, nF beaufschlagt ist und daraus die logischen Ausgangssignale gemäß den logischen Verknüpfungen i = nFnxny x y und o = pFpxpy x y bildet.
10. Vorrichtung nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet, daß die Addierwerke (7, 12, 15, 19, 20) ausschließlich für ganzzahlige Arithmetik ausgelegt sind.
DE19904000021 1990-01-02 1990-01-02 Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen Withdrawn DE4000021A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19904000021 DE4000021A1 (de) 1990-01-02 1990-01-02 Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19904000021 DE4000021A1 (de) 1990-01-02 1990-01-02 Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen

Publications (1)

Publication Number Publication Date
DE4000021A1 true DE4000021A1 (de) 1991-07-04

Family

ID=6397559

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19904000021 Withdrawn DE4000021A1 (de) 1990-01-02 1990-01-02 Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen

Country Status (1)

Country Link
DE (1) DE4000021A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0568359A2 (de) * 1992-04-29 1993-11-03 Canon Kabushiki Kaisha Grafisches System
EP0568360A2 (de) * 1992-04-29 1993-11-03 Canon Kabushiki Kaisha Grafisches System mit Anwendung von quadratischen Polynomelementen
AU667892B2 (en) * 1992-04-29 1996-04-18 Canon Kabushiki Kaisha A real-time object based graphics sytems
AU669696B2 (en) * 1992-04-29 1996-06-20 Canon Kabushiki Kaisha Object based graphics using quadratic polynomial fragments

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0568359A2 (de) * 1992-04-29 1993-11-03 Canon Kabushiki Kaisha Grafisches System
EP0568360A2 (de) * 1992-04-29 1993-11-03 Canon Kabushiki Kaisha Grafisches System mit Anwendung von quadratischen Polynomelementen
EP0568360A3 (en) * 1992-04-29 1994-05-11 Canon Kk Graphics system using quadratic polynomial fragments
EP0568359A3 (en) * 1992-04-29 1994-05-11 Canon Kk Graphics system
US5444839A (en) * 1992-04-29 1995-08-22 Canon Kabushiki Kaisha Object based graphics system for rasterizing images in real-time
AU667892B2 (en) * 1992-04-29 1996-04-18 Canon Kabushiki Kaisha A real-time object based graphics sytems
AU669696B2 (en) * 1992-04-29 1996-06-20 Canon Kabushiki Kaisha Object based graphics using quadratic polynomial fragments
US6124863A (en) * 1992-04-29 2000-09-26 Canon Kabushiki Kaisha Object-based graphics system for displaying an image using explicit quadratic polynomial fragments

Similar Documents

Publication Publication Date Title
DE3407983C2 (de) Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
DE2909153C2 (de) Einrichtung zur digitalen Analyse von Bild- oder Zeichenmustern
DE3750784T2 (de) Generation eines intrapolierten charakteristischen Wertes zur Anzeige.
DE19546769C2 (de) Verfahren und Vorrichtung zur Erzeugung von Musterdaten
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
EP1002421A1 (de) Vorrichtung und verfahren zum bereitstellen von vorlagen für die mehrfarbenreproduktion
DE4326487C2 (de) Adaptives Filter
DE102010055708A1 (de) Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung
DE69215719T2 (de) Digitaler Generator eines Randes um ein einem Hintergrund überlagertes Objekt
EP0954618B1 (de) Verfahren zur generierung von ebenen technischen kurven oder konturen
EP2064672A2 (de) Verfahren und vorrichtung zur bildverarbeitung
EP1154369A2 (de) Verfahren zur zyklischen, interaktiven Bildanalyse sowie Computersystem und Computerprogramm zur Ausführung des Verfahrens
DE4000021A1 (de) Verfahren und vorrichtung zur darstellung von kurven in einem zweidimensionalen raster von bildelementen
DE102018200534A1 (de) Verfahren zum Betreiben eines künstlichen neuronalen Netzes
DE10226915A1 (de) Verfahren zum Verändern von Entwurfsdaten für die Herstellung eines Bauteils sowie zugehörige Einheiten
DE102008046505B4 (de) Verfahren zur Bildverarbeitung von Stereobildern
DE102018217114A1 (de) Verfahren und Anordnung zur Speicherbedarfsermittlung, um mittels einer Grafikprozessoreinheit auf FEM-Knotennetzen basierte Simulationen durchzuführen
DE69204064T2 (de) Filter zur erweiterung und erosionsumwandlung von bildern.
DE10023377C2 (de) Verfahren zur Erhöhung der Leistungsfähigkeit einer Computereinrichtung bei Finite-Elemente-Simulationen und eine solche Computereinrichtung
EP1699036A1 (de) LED-Anzeige mit hoher Auflösung
EP3685352B1 (de) Verfahren und vorrichtung zum bewerten von bildern, betriebsassistenzverfahren und betriebsvorrichtung
EP2642749B1 (de) Vorrichtung und Verfahren zur Optimierung der Bestimmung von Aufnahmebereichen
EP0213683A2 (de) Verfahren und Anordnung zur Erzeugung von Zwischenbildsignalen aus Referenzbildsignalen mit verringerter Bildfrequenz
EP3391329B1 (de) Bestimmung von helligkeitswerten virtueller pixel
EP3869380A1 (de) Verfahren, computerbasiertes system und computerprogramm-produkt zum floorplanning für eine programmierbare gatteranordnung mit nicht-rechteckigen blockgrenzen

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee