DE3239606A1 - Abtastzeilen-generator - Google Patents

Abtastzeilen-generator

Info

Publication number
DE3239606A1
DE3239606A1 DE19823239606 DE3239606A DE3239606A1 DE 3239606 A1 DE3239606 A1 DE 3239606A1 DE 19823239606 DE19823239606 DE 19823239606 DE 3239606 A DE3239606 A DE 3239606A DE 3239606 A1 DE3239606 A1 DE 3239606A1
Authority
DE
Germany
Prior art keywords
data
pattern
word
buffer
memory
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
DE19823239606
Other languages
English (en)
Inventor
Delbert R. 92715 Irvine Calif. Dimick
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.)
Excellon Industries Inc
Original Assignee
Excellon Industries Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Excellon Industries Inc filed Critical Excellon Industries Inc
Publication of DE3239606A1 publication Critical patent/DE3239606A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/42Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of patterns using a display memory without fixed position correspondence between the display memory contents and the display position on the screen

Description

Die Erfindung betrifft eine digitale Bild-Wiedergabe oder Erzeugung von Bildemund insbesondere Verfahren und eine Vorrichtung zur Erzeugung von erhöhten Daten-Kompressions-Verhältnissen bei einer großen Anzahl von verschiedenen unregelmäßigen Mustern.
Bei der Herstellung von gedruckten Schaltungs-Platinen werden Original-Bilder bei der Verarbeitung bzw. Herstellung der Leitbahn-Muster auf den Platinen verwendet. Das Originalbzw. Vorlagenbild umfaßt eine Anzahl von Flecken, d.h. relativ großen leitenden Flächen und eine Anzahl von diese Flecken miteinander verbindenden elektrisch leitenden Leitungen oder Leitbahnen. Eine erhöhte Dichte erfordert Leitbahnen mit geringerer Breite, die untereinander und mit den Anschlußfleck-Mustern eng gepackt sind. Die Leitbahnen besitzen häufig eine relativ gleichförmige rechtwinklige Gestalt und verlaufen vertikal, horizontal oder diagonal in geraden oder einfach gekrümmten Linien, während die Leitfleck-Muster häufig eine unregelmäßige Gestalt, beispielsweise eine kreisförmige, ringförmige, dreieckige oder andere nicht orthogonale Konfigurationen besitzen können. Die erforderliche hohe Dichte und hohe Auflösung machen es nötig, daß der Bild-Generator in der Lage ist/ mit hoher Geschwindigkeit eine präzise Definition von Leitbahnen und Mustern vorzunehmen.
Es wurden graphische Plotter und Band-Klebeverfahren verwendet, um Vorlagen-Bilder zu erzeugen, doch erfordert beides eine sehr lange Zeit. Computergesteuerte Laser zur Erzeugung von Bildern reduzieren in beträchtlichem Maße die Bild-Druck-bzw. Herstellzeit, doch benötigen sie außerordentliche große Speicher-Kapazitäten, wenn die Wiedergabe-Auflösung wächst. Der Laser-Schreibstrahl wird dazu veranlaßt, das Schreibmedium in einem im wesentlichen rechtwinkligen Raster zu überstreichen. Der Strahl, der einen Durchmesser von ungefähr 0,0254 mm (1 mil) besitzt,
J I 6 b b U b
■W <J ■*! *' J Hf ti _
wird über Bildelemente an- und ausgeschaltet, die ungefähr eine Länge von 0,O254 mm (1 mil) besitzen. Demgemäß ist es zur Erzeugung der Abtastlinien-Daten für ein digital erzeugtes Bild, das Abmessungen von 45,72 χ 60,96 cm (18" χ 24") besitzt, erforderlich, eine Daten-Speicher-Kapazität von 432 Megabits zur Verfügung zu stellen. Die Datenmenge,die für ein spezielles Bit gespeichert werden muß, kann wegen der praktischen und wirtschaftlichen Beschränkungen hinsichtlich der Rate der Datenübertragung der begrenzende Faktor einer Verringerung der Bilderzeugungs-Zeit werden, da die Daten-Übertragungsrate bzw. -geschwindigkeit umgekehrt proportional zur Zeit ist, die zur Herstellung eines Bildes erforderlich ist.
In einem Artikel mit dem Titel "The Primary Pattern Generator", der im Bell System Technical Journal im November 1970 auf den Seiten 2033-2074 erschienen ist, ist ein Laser-Muster-Generator beschrieben, bei dem das Bit-Bild der zu erzeugenden Abtastzeile vor dem Start einer gegebenen Abtastzeile vollständig in einem Puffer zusammengestellt wird. Wegen der großen Menge von Daten, die deswegen gehandhabt werden muß, weil jede Zeile in diesem System aus 26000 Bits besteht, die aus dem Puffer in serieller Form entnommen werden müssen, wird ein Teil der Information entsprechend allgemein bekannten Kodier-Verfahren komprimiert, die manchmal als zweidimensionale oder 2D-Kodierung bezeichnet werden. Bei dieserArt der Daten-Kompression definieren Datenbefehle lediglich Änderungen, die für laufende Abtast-Zeilen gemacht werden müssen. Wenn in einer nachfolgenden Abtast-Zeile keine Änderung vorhanden ist, wird die letztere lediglich wiederholt, und es werden für eine solche ungeänderte Zeile keine Daten-Befehle übertragen. Eine solche Annäherung ist sehr wirksam für orthogonale Muster, die sich entweder in horizontaler oder vertikaler Richtung ändern. Bei unregelmäßig geformten
BAD ORlQfMAL
Mustern und Mustern mit anderen geometrischen Formen, wie z.B. einem Kreis, einem Ring, einem Dreieck oder dergleichen, die eine Änderung in nahezu jeder Abtastzeile erfordern, gehen die Vorteile dieser Art der Datenkompression verloren. Möglicherweise wegen dieser Schwierigkeit erzeugt das System, das in dem oben erwähnten Artikel beschrieben ist, Daten, die alle 26000 Bit für eine neue Abtastzeile enthalten, statt lediglich Befehle für diejenigen Fälle zu aktualisieren, in denen eine große Anzahl von aktualisierten Befehlen erforderlich wäre, um aufeinanderfolgende Abtastzeilen zu erzeugen. Somit muß noch immer eine überaus große Menge von Daten gehandhabt bzw. verarbeitet werden.
Ein anderes Kodier-Verfahren ist die Lauflängen- bzw. Sequenzlängen-Kodierung, bei der die Länge der Abtastung Zwischenänderungen in den Digitalpegeln anstelle von Daten gespeichert wird, die jeden einzelnen Digitalpegel definieren. Demgemäß können bei der Verwendung der Sequenzlängen-Kodierung sieben Bits eine kontinuierliche Folge bzw. Sequenz von bis zu 127 Nullen oder Einsen definieren. Diese Lösung wird jedoch ebenso wie das 2D-Kodier-Verfahren impraktikabel, wenn die Häufigkeit von Pegeländerungen wächst. Wenn die Länge einergegebenen Folge unter einen gewissen Wert abnimmt, kann dieses Verfahren eine Expansion statt einer Kompression zur Folge haben. Es ist klar, daß ein 8-Bit-Datenwort nicht in effizienter Weise eine Musterlänge von weniger als acht ungeänderten Bits beschreibt. Somit sind auch mit diesen bekannten Arten der Datenkompression immer noch außerordentlich große Datenmengen erforderlich.
Eine Vorrichtung, die in der Lage ist, außerordentlich große Daten-Raten bzw. Daten-Verarbeitungsgeschwindigkeiten zu bewältigen, ist nicht nur sehr teuer, sondern die wachsende Anzahl von zu übertragenden Daten-Bits hat auch häufig wachsende Fehler-Raten zur Folge.
Demgemäß ist es ein Ziel der Erfindung, ein Bilderzeugungs-System zu schaffen,das die oben erwähnten Probleme vermeidet oder minimalisiert.
Gemäß der Erfindung wird bei einem bevorzugten Ausführungsbeispiel eine erhöhte Daten-Kompression dadurch erzielt, daß Komponenten des zu erzeugenden Bildes in verschiedene Gruppen eingeteilt werden; in einer Gruppe werden Elemente zusammengefaßt, die relativ wenig Änderungen von einer Abtastzeile zur nächsten aufweisen und die als Bahnen bzw. Leitbahnen bezeichnet werden können, während in einer anderen Gruppe mehr komplexere Muster zusammengefaßt werden, die nicht ohne weiteres für andere Daten-Kompressionsoder Kodier-Verfahren geeignet sind. Daten, die Elemente von Leitbahnen definieren,und Daten, die Elemente von Mustern definieren, werden getrennt in Leitbahn- und Muster-Arbeitspuffern zusammengestellt. Mehrere Muster-Arbeitspuffer können verwendet werden und die Daten von allen Elementen können kombiniert werden, um Leitbahnen und Muster einander entweder additiv oder subtraktiv zu überlagern. Daten von einem oder mehreren der Arbeits-. Puffer werden einem Zeilen-Zusammenstell-Puffer zugeführt, aus dem ein Datenstrom dem Bild-Generator zugeführt wird. Daten, die jedes Muster definieren, werden in einer Muster-Bibliothek gespeichert und aus der Bibliothek für eine Zusammenstellung in die Muster-Arbeitspuffer übernommen. Zeile um Zeile angeordnete Abtastdaten rufen jedes Muster nur in der ersten Abtastzeile auf, in der das Muster auftritt und rufen darüberhinaus die Leitbahn-Daten für jede Abtastzeile auf. Eine Muster-Verarbeitungs-Tabelle enthält die Identifikation von allen Mustern, die aufgerufen, aber noch nicht vollständig zusammengestellt worden sind, un ermöglicht es, daß jede Zeile eines Musters in der Muster-Bibliothek nach dem Muster-Befehlsaufruf in den Muster-Arbeitspuffer übertragen wird. Auf diese Weise werden die
s»S,r».ii> f. 11
zeilenweise angeordneten Abtastdaten in hohem Maße komprimiert. Eine weitere Komprimierung kann dadurch erreicht werden, daß man eine 2D-Kompression verwendet, um die Leitbahn-Daten zu handhaben, und eine Lauflängen-Kodierung einsetzt, um Muster-Daten zu handhaben, die in der Muster-Bibliothek gespeichert sind.
— AO — ...»
Die Erfindung wird im folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnung beschrieben; in dieser zeigt:
Fig. 1 ein Blockdiagramm eines Laser-Muster
er zeugungs-Systems gemäß der Erfindung,
Fig. 2a einen vergrößerten, stark stilisierten
und vereinfachten Ausschnitt eines zu erzeugenden Schaltungsplatinen-Bildes,
Fig. 2b die linienweise angeordneten Bilddaten
für den Bildausschnitt aus Fig. 2a,
Fig. 3a in vergrößertem Maßstab ein typisches
Muster,
Fig. 3b eine Reihe von kodierten Lauflängen-
Angaben, die das Muster aus Fig. 3a definieren,
Fig. 3c die Bit-Speicherung in dem Muster-
Bibliotheks-Speicher mit wahlfreiem Zugriff,
Fig. 4 das Format der Bibliotheks-Hinweis(Adressen)
Tabelle,
Fig. 5 das Format der Muster-Verarbeitungs-
Tabelle und -karte (map),
Fig. 6 ein Blockdiagramm einer erfindungsgemäßen
Abtaststeuerung,
ORlQiMAL
Fig. 7 den Informationsfluß zwischen der
Bibliotheks-Hinweis(Adressen)-Tabelle, der Muster-Verarbeitungs-Tabelle, der Muster-Bibliothek und einem Puffer,
Fig. 8a bis 8h Stufen bei der Verwendung der Muster-Verarbeitungs-Tabelle und -karte,
Fig. 9a bis 9c die Übertragung von Daten von einem Leitbahn-Arbeitspuff e.r und einem Muster-Arbeitspuffer in einen Zeilen-Zusammenstell-Puffer,
Fig. 10 ein Blockdiagramm der DMA-Steuerung,
Fig. 11 ein allgemeines Flußdiagramm, das die
Datenübertragung zu den Arbeits-Puffern wiedergibt,
Fig. 12a, 12b und 12c gemeinsam ein mehr ins Detail gehendes
Flußdiagramm des in Fig. 11 beschriebenen Vorgangs,
Fig. 13 ein Blockdiagramm von Teilen eines Systems,
' das so modifiziert ist, daß es entweder
eine additive oder eine subtraktive Über-
Leit-
lagerung vonibahnen und Mustern ermöglicht,
Fig. 14 ein Trapezoid und bei seiner Erzeugung
verwendete Parameter,
Fig. 15 und 16 verschiedene Anordnungen zur Erzeugung
eines Musters, das aus mehreren Trapezoiden zusammengesetzt ist,
Fig. 17 ein Blockdiagramm einer Abtastungssteuerung,
die ähnlich der Abtastungssteuerung aus Fig. 6 jedoch so modifiziert ist, daß die Anordnung wiedergegeben ist, die zur Trapezoid-Erzeugung Verwendung findet,
Fig. 18 ein funktionales Blockdiagramm, das
Operationen erläutert, die bei der Trapezoid-Erzeugung eine Rolle spielen,
Fig. 19a, 19b, 19c und 19d Flußdiagramme, die die Schritte bei
der Erzeugung eines Trapezoides beschreiben,
Fig. 20 ein funktionales Diagramm eines Lauf
längen-Kode-Befehls-Prozessors ,
Fig. 21 verschiedene Fälle einer Speicherwort-
Modifikation ,
Fig. 22 ein Blockdiagramm des Lauflängen-Kode-
Befehls-Prozessors,
Fig. 23, 2*4, 25, 26, 27 und 28 Schaltungsdiagramme von verschiedenen Teilen des Befehls-Prozessors aus Fig. 22 und
Fig. 29, 30, 31 und 32 den Zeitablauf von bestimmten Operationen
des Befehls-Prozessors. Allgemeines System
Die Prinzipien der Erfindung sind auf verschiedene Arten von digitalen Abbildungs- bzw. Bilderzeugungs-Systemen anwendbar; zu solchen Systemen gehören beispielsweise solche, in denen ein Laser dazu Verwendung findet, um selektiv ein lichtempfindliches Medium zu belichten, oder aber auch Kathodenstrahlröhren-Systeme. Im wesentlichen kann derselbe Strom von
ÄD
Datenbits, der für einen Laser-Lichtpunktabtaster (flying spot scanner) verwendet wird, auch zur Steuerung eines elektrostatischen Druckers verwendet werden, der eine Schreibeinrichtung besitzt, bei der die sequentielle Erregung von einander schneidenden Paaren von X-, Y-Drähten eingesetzt wird, um ein rechtwinkliges Raster zu drucken. Der gemäß der Erfindung erzeugte Daten-Bitstrom kann auch dazu verwendet werden, diese Art von digitaler Bilderzeugung zu steuern. Für Darstellungszwecke wird die Erfindung in Verbindung mit der Erzeugung eines Datenbitstroms beschrieben, der einen Lichtpunkt-Abtaster steuert, der dazu dient, Schaltungsplatinen-Muster für Originaldruckvorlagen (art work masters) oder eine Direkt-Bilderzeugung zu erzeugen. In einem solchen System liefert ein Strahlerzeuger 10, der einen oder mehrere Laser und geeignete optische Strahlenteiler umfaßt, wechselweise bzw. gegenseitig verschobene oder auf andere Weise unterscheidbare Schreib- und Referenzstrahlen 12, 14, die beide einer Abtasteinrichtung (scanner) 16, wie z.B. einem herkömmlichen rotierenden polygonalen Spiegel zugeführt werden. Die beiden Strahlen bzw. Strahlenbündel werden synchron abgetastet bzw. synchron zur Abtastung verwendet, wobei der Laserstrahl über ein Schreibmedium 18 und der Referenzstrahl über einen Strahlenpositionswandler bzw. Schreibpositionswandler 20 geführt werden, der ein Signal erzeugt, das die tatsächliche Lage bzw. Position des Schreibstrahls 12 im Verlauf eines jeden Abtastvorgangs wiedergibt.
Der Laserstrahl wird dadurch moduliert, daß er durch einen Modulator 22 geführt wird, der durch binäre Daten gesteuert wird, die durch eine Laser-Abtaststeuerung 24 kompiliert bzw. zusammengestellt werden, die Strahl-Positions-Signale vom Wandler 20 erhält. Der Modulator ist von herkömmlicher Art und unterdrückt für jedes Datenbit mit einem bestimmten Logikwert (Null) den Schreibstrahl vollständig, während er für jedes Datenbit mit dem entgegengesetzten Logikwert (Eins) den Strahl frei durchgehen läßt.
Während der Schreibstrahl dazu veranlaßt wird, das Schreibmedium abzutasten, wird er durch eine Reihe von Kontrolldaten-Bits moduliert, die dem Modulator von der Laser-Abtaststeuerung zugeführt werden. Nimmt man an, daß für ein 45,72 cm (18 inch)
bzw. -zeile breites Bild eine 45,72 cm lange Abtastlinie/und ein 0,00254 cm (1 mil) breiter Abtaststrahl Verwendung finden/ so müssen dem Modulator von der Laser-Abtaststeuerung beim Durchlaufen. einer einzigen Abtastlinie 18 000 Daten-Bits zugeführt werden. Ein 66,04 cm (26 inch) hohes Bild erfordert 26 000 Abtastlinien. Eine vollständige Abtastlinie von Daten-Bits wird in der Laser-Abtaststeuerung bei oder vor dem Start einer jeden Abtastlinie zusammengesetzt (assembled) und diese Daten-Bits werden Bit für Bit zum Modulator geschoben, um den Schreibstrahl bei jedem Abtastlinienelement zu modulieren.
Die zusammengesetzten Abtastliniendaten in der Laser-Abtaststeuerung werden Abtastlinie für Abtastlinie aus Befehlsdaten erzeugt, die von einem Primärrechner (host computer) oder einer anderen Vorrichtung erhalten werden, die einen Speicher 28 für die abtastlinienweise angeordneten Bilddaten und einen Speicher 30 für Muster-Daten enthält. Die Bilddaten und die Musterdaten werden aus den Speichern 28 und 30 in die Laser-Abtaststeuerung 24 eingelesen, die dann die Daten so verarbeitet, daß sie aufeinanderfolgend jede zusammengesetzte Abtastlinie zur Steuerung des Modulators 22 erzeugt bzw. zur Verfügung stellt. Wegen der unten zu beschreibenden Daten-Kompressions-Verfahren wird die Datenmenge, die im Bilddatenspeicher 28 und im Musterdatenspeicher 30 enthalten sein muß, beträchtlich verringert, wobei in manchen Fällen ein Kompressionsverhältnis erzielt wird, das ungefähr gleich 2000:1 ist.
Eine hohe Datenkompression wird dadurch erzielt, daß Komponenten eines zu erzeugenden Bildes in verschiedene Klassen oder Kategorien gruppiert werden. Beispielsweise sind in dem
hochstilisierten beispielshaften Schaltungsteil/ der in Fig. 2a wiedergegeben ist, Schaltungsplatinen-Leitbahnen (die auch als Spuren bezeichnet werden) durch Elemente 32, 33 und dargestellt, die Schaltungsplatinen-Flecken miteinander verbinden, von denen verschiedene mit den Bezugszeichen 35, und 37 bezeichnet sind. Die Leitbahnen 32, 33, 34 besitzen im wesentlichen eine einfache rechtwinklige Form bzw. Konfiguration. Diese und gewisse gebogene oder geneigte Spuren eignen sich ohne weiteres für eine Kodierung nach 2D-Verfahren. Wie zuvor erwähnt, erfordern solche Verfahren bzw. Techniken beschreibende Daten für eine Spur, die lediglich dazu dienen, Änderungen gegenüber vorausgehenden Abtastlinien zu identifizieren.Wenn einmal die digitale Sequenz auf einer Abtastlinie für eine solche Spur definiert worden ist, werden so lange keine zusätzlichen Informationen für die Spur benötigt, bis eine Änderung in ihrer digitalen Sequenz auf einer nachfolgenden Abtastlinie eintritt. Unregelmäßigkeiten des Musters der Flecken 35, 36 und 37 führen jedoch dazu, daß nur ein geringer Vorteil aus einem solchen Kompressionsverfahren gezogen werden kann, und daher wird ein anderes Verfahren verwendet, um die Muster-Komponenten des Gesamtbildes zu handhaben. Detaillierte Daten für jedes Muster werden in einer Muster-Bibliothek gespeichert, und Abtastlinie für Abtastlini-e enthalten die Bilddaten lediglich Daten, die ein individuelles Muster (beispielsweise durch die Muster-Nummer) identifizieren sowie die Adresse lediglich für den Start eines solchen Musters. Die Detaildaten, die jedes individuelle Muster definieren, sind in dem Muster-Datenspeicher enthalten und werden in eine Muster-Bibliothek der Laser-Abtaststeuerung übertragen. Die Musterdaten in der Bibliothek enthalten Zeile für Zeile eine vollständige Beschreibung aller Bits aller Muster eines ausgewählten Bildes, doch ist jedes Muster nur einmal enthalten, obwohl es in dem Bild an verschiedenen Stellen viele Male auftreten kann.
J Z J y b U b
Die Abtastlinie für Abtastlinie aufgebauten Bild-Befehlsdaten umfassen demgemäß Daten, die die Spur-Komponenten des Bildes definieren und mit 2D-Kompression definiert sind und darüberhinaus Daten, die ein Muster an seiner Position identifizieren, doch darüberhinaus keine Musterdetails bestimmen. Sowohl die Spurdaten als auch die Müsterdaten werden lauflängenkodiert, um eine weitere Datenkompression zu erzielen, wie dies weiter unten beschrieben ist. Muster- und Bilddatenformat
Die Musterdaten, die im folgenden als Gruppe-II-Daten bezeichnet werden, werden im folgenden Format gehandhabt:
FF 02 MM NN WW HH 1/OLL 1/OLL 1/OLL" 001E NN* HH' WW' 1/OLL 1/OLL1 1/OLL" 001D
Dieses Format verwendet eine hexadezimale Notation, so daß beispielsweise ein hexadezimales F-Dezimal 15 oder vier aufeinanderfolgende Einsen in binärer Notation darstellt. Das Symbol FF ist äquivalent zu einem einzigen Byte mit 8 Bits, die alle eine Eins aufweisen. Das Symbol FF ist bei Gruppe-II-Daten ein Kopfteil, der den Anfang der Gruppe anzeigt. Das nächste Byte 02 identifiziert die folgenden Daten als Gruppe-II-(Muster)-Daten. Das nächste Byte MM stellt hexadezimale Zeichen dar, die eine Bibliotheksnuituner identifizieren. Beispielsweise können in einem System bis zu 255 Gruppe-II-Bibliotheken vorhanden sein, von denen jede 239 verschiedene Muster enthalten kann. Beim vorliegenden System wird nur eine Bibliotheksnummer für jeweils ein vollständiges Bild verwendet. Die Bibliothek der Muster wird verwendet, um Zeilen von Bit-Daten für Muster aufzunehmen bzw. zu enthalten, die wiederholte Male während des Verarbeitungsvorgangs verwendet werden können, der beim Erzeugen des Bildrasters eingesetzt wird. Die maximale Größe eines jeden Musters ist bei diesem Ausführungsbeispiel 6,477 mm χ 6,477 mm (255 mil χ 255 mil), obwohl Muster mit größeren Abmessungen mit anderen Daten-Formaten gehandhabt werden können. Die Bit-Muster-
BAD
Beschreibung wird durch die Verwendung einer Lauflängenbzw. Sequenzlängen-Kodierung bewerkstelligt, bei der das
des ,Kodes Bit an der höchstwertigen Stelle/definiert, ob der Kode eine Sequenz oder Folge von Einsen oder Nullen darstellt und die übrigen sieben Bit die Länge der Folge festlegen.
Das nächste Byte NN des Gruppe-II-Formats identifiziert ein spezielles Muster, wobei dieses Byte eine einzigartige Muster-Nummer ist. Das nächste Byte WW stellt die Muster-Breite dar, die gleich der Anzahl von Bits längs einer Abtastlinie von der am weitesten links gelegenen Spalte eines Musters bis zu der am weitesten rechts gelegenen Spalte dieses Musters ist. Das Byte HH kennzeichnet die Höhe des Musters oder genauer die Anzahl von Linien/in dem Muster. Hierauf folgen die Musterdaten für das vollständige Muster.
Die Muster-Daten sind definiert durch eine Reihe von Lauflängen- bzw. Sequenzlängen-Kode. Das 1/0 legt fest, ob die nächste Bit-Serie der Gruppe-II-Daten, die durch den Sequenzlängen-Kode LL definiert sind, alle Einsen oder alle Nullen sind (wobei sich immer wechselweise eine Eins oder eine Null in der höchstwertigen Stelle des Bytes 1/OLL befindet). Die Reihe von Sequenzlängen-Kode setzt sich längs jeder Linie des Musters und dann, ohne Unterbrechung längs jeder nachfolgenden Linie bis zum Ende eines gegebenen Musters fort, wobei das Musterende durch die Muster-Separator-Bytes 001E identifiziert wird. Das Gruppe-II-Daten-Format identifiziert dann das nächste Muster in der speziellen Muster-Bibiliothek
als Musternummer NN und definiert hiernach dessen Breite und Höhe WW HH und hierauf die Sequenzlängen-Kode LL, die das Muster vollständig definieren. Die Gruppe-II-Daten fahren mit ähnlichen oder gleichen Identifikationen von zusätzlichen Mustern fort, bis alle Muster der speziellen Bibliothek für ein gegebenes Bild identifiziert worden sind und enden dann mit einem Gruppe-II-Beendigungssymbol, das aus zwei Bytes 001D besteht. Der Gruppe-II-Kopfteil FFO2 wird
für irgendwelche nachfolgende Muster in einer Bibliothek nicht wiederholt.
In Fig. 3a ist ein Beispiel für ein Muster dargestellt. Die zugehörige Fig. 3b zeigt das Wesen der Lauflängen- bzw. Sequenzlängen-Kodierung des Musters aus Fig. 3a4 Das Muster ist in einem imaginären Rechteck enthalten, das vertikale und horizontale Begrenzungen besitzt, die zu den äußersten obersten und untersten Grenzen des Musters tangential verlaufen oder auf andere Weise diese Grenzen lediglich berühren. Die Sequenzlängen-Kodierung für jede Linie von Muster-Daten beginnt definitionsgemäß am äußersten linken Rand der Musterbegrenzung und setzt sich bis zum äußersten rechten Rand fort. Darüberhinaus identifizieren, wie weiter unten noch genauer erläutert wird, die Bilddaten, die ein spezielles Muster durch eine Nummer identifizieren, auch die Position des Musters auf der Abtastlinie durch die Spaltenadresse der oberen linken Ecke der imaginären Begrenzung, die das Muster umschreibt. Die Muster-Begrenzung ist in Fig. 3a in strichpunktierten Linien dargestellt. Die Spaltenadresse der oberen linken Ecke 40 des Musters ist die Position, die in den Bilddaten auf- bzw. ausgerufen wird, um das Muster zu lokalisieren. Das in Fig. 3a beispielsweise wiedergegebene Muster besitzt eine Breite von 8 Bit und eine Höhe von 9 Linien, wobei jede Linie eine nachfolgende Abtastlinie des Laser-Rasters ist. In Fig. 3a stellen die X's logische Einsen und die Leerplätze logische Nullen dar. In Fig. 3b ist die Sequenzlängen-Kodierung für jede der Musterlinien dargestellt, wobei jeder Lauflängen- bzw. Sequenzlängen-Kode in dieser Figur als Null oder Eins dargestellt ist, die durch, einen Schrägstrich von einer Dezimalzahl getrennt ist, die die Gesamtzahl der Sequenzlänge darstellt. Der dezimale Sequenzlängen-Kode ist in Fig. 3b lediglich für Erläuterungszwecke verwendet. Tatsächlich wird der Sequenzlängen-Kode in binärer Form innerhalb der Abtaststeuerung gehandhabt. In Linie 1 dieses Musters sind, wenn man an der linken Begrenzung beginnt,
BAD ORIGINAL
die ersten beiden Bits Nullen und daher ist in Fig. 3b entsprechend ein Lauflängen-Kode 2 wiedergegeben, dem eine O vorausgeht. Die nächsten vier Bits sind Einsen und somit ist der Sequenzlängen-Kode als 1/4 wiedergegeben. Die letzten beiden Bits sind Nullen, die durch 0/2 gekennzeichnet werden. In Zeile 4 sind beispielsweise die ersten drei Bits Einsen, was durch 1/3 dargestellt wird, während die beiden nächsten Bits Nullen sind, was durch 0/2 gekennzeichnet wird, und die nächsten drei Bits sind Einsen, was durch 1/3 wiedergegeben wird.
Fig. 3c zeigt Sequenzlängen-Kode für die Zeilen 1 und 2 des Musters aus Fig. 3a in ihrer binären Form, wie sie in der unten noch genauer zu beschreibenden Muster-Bibliothek gespeichert sind. Es ist nicht erforderlich, daß in der Muster-Bibliothek eine Folge von Nullen enthalten ist, die bis zur äußersten rechten Begrenzung des Musters reicht, da das System, wie weiter unten erläutert wird, dadurch verwirklicht, bzw. inkrementiert wird, daß die Muster-Arbeitspuffer durch Setzen aller Bits auf Null vor dem Einsetzen von Musterdaten für eine gegebene Abtastlinie gelöscht werden. Wenn jede Linie bzw. Zeile von Musterdaten in die Muster-Bibliothek eingegeben wird, wird jedoch ein Null-Byte 00 am Ende einer jeden Linie bzw. Zeile eingefügt, um die Vervollständigung einer einzelnen Datenzeile eines Musters zu kennzeichnen. Die letzte Zeile in einem Muster wird durch zwei Null-Bytes 00 00 beendet. Das eingefügte Null-Byte ist in Fig. 3c dargestellt, doch ist es in den Gruppe-II-Daten nicht vorhanden. In Zeile 1 der Fig. 3c befinden sich zwei Sequenzlängen-Kode. Bei dem ersten ist da,s an der höchstwertigen Stelle stehende Byte gleich Null, was kennzeichnet, daß es sich hier um eine Sequenz von Nullen handelt, und die nächsten sieben Bit stellen eine binäre 2 dar, was eine Sequenzlänge von 2 kennzeichnet. Das nächste Byte hat eine Eins an seinem an der höchstwertigen Stelle stehenden Bit, was eine Folge von Einsen kennzeichnet, und die nächsten sieben Bits dieses zweiten Bytes bilden eine binäre 4, um die Sequenzlänge von Einsen zu kennzeichnen.
3 2 J y b U O
Hierauf folgt ein Null-Byte (8 Nullen, um das Ende der Zeile zu kennzeichnen). In entsprechender Weise zeigt das erste Byte in Zeile 2 eine Folge, die aus einer einzigen Null besteht. Das zweite Byte zeigt eine Folge von 6 Einsen. Es ist klar, daß bei Folgen mit einer so kurzen Länge die Sequenzlängen-Kodierung eher eine Datenexpansion Statt eine Datenkompression liefert, doch werden diese Werte lediglich für Erläuterungszwecke verwendet, da die Sequenzlänge eine Länge von bis zu 127 Bit kodieren kann. Größere Sequenzlängen können durch die Verwendung von zwei aufeinanderfolgenden Sequenzlängenkode oder dadurch gehandhabt werden, daß man einen 5-Byte-Sequenzlängen-Kode verwendet, wie dies unten in Verbindung mit den Zeile-um-Zeile- oder Gruppe-III-Bilddaten beschrieben wird. Es sind effizientere Methoden zur Verwendung von Sequenzlängen-Kode für kurze Folgen bzw. Sequenzen bekannt, und können gewünschtenfalls verwendet werden.
Das Bildformat oder Abtastzeilen-um-Abtastzeilen-Format (Gruppe-III-Daten) hat folgende Gestalt:
FF 03 KK FO YY YY 1 XX XX
NN OXX XX 1/OLL OXX XX 1/OLL 0 XX XX"1/OLL" -FO YY YY 0 XX XX 00 1/OLL LL 0 XX XX Ί/OLL Ό XX XX"1/OLL"—001
Die Bytes FF 03 sind die Kopfteile, die die folgenden Daten als Gruppe-III-Daten identifizieren. KK ist die Kennzeichnung der einzelnen Schicht dar gedruckten Schaltungsplatine, für die die folgenden Zeilen-um-Zeilen-Daten das Bild definieren. FO YY YY ist die Abtastzeilen-Nummer, auf die sequentiell Muster und Spur-Aufrufe oder -Befehle folgen. Bei dem beispielhaft dargestellten Format ist der erste Aufruf oder Befehl ein Musteraufruf, der auf die Zeilennummer FO YY YY folgt und durch 1 XX XX NN gekennzeichnet ist, wobei die 1 kennzeichnet, daß der Aufruf ein Musteraufruf ist, wobei die 1 das an der höchstwertigen Stelle stehende Bit des Bytes 1 XX ist. Das XX XX umfaßt eine 15-Bit-Spaltenadresse, die die
BAD ORIGINAL-:
horizontale Position längs der Abtastlinie ausgehend von der linken Begrenzung- (tatsächlich der oberen linken Ecke) dieses Musters identifiziert. NN kennzeichnet die Muster-Nummer, die demgemäß in eindeutiger Weise eines der Muster der Bibliothek, beispielsweise eines der Muster 35, 36 oder 37 der Fig. 2a identifiziert. Es können andere Muster-Aufrufbefehle auf den ersten Muster-Aufruf folgen; es kann auch ein Spurbefehl wie z.B. der mit O XX XX 1/OLL bezeichnete Spurbefehl folgen. Bei diesem Spurbefehl bzw. Spuraufruf identifiziert die Null, die das an der höchstwertigen Stelle stehende Bit des Bytes O XX ist, den Aufruf als Spuraufruf und unterscheidet ihn von einem Muster-Aufruf, der eine Eins in seinem an höchstwertiger Stelle stehenden Bit besitzt. Die nächsten 15 Bits XX XX identifizieren die Spaltenadresse, die die horizontale Position desjenigen Bits ist, bei dem der folgende Sequenzlängenkode beginnt. Die 1 oder O kennzeichnet, ob die Folge bzw. Sequenz eine Sequenz von Einsen oder Nullen ist, und LL umfaßt sieben Bits, die die Länge der Sequenz kennzeichnen. Eine Null im MSB (Bit an der höchstwertigen Stelle) des RLC (Sequenzlängen-Kodes) kennzeichnet das Ende einer Spur bzw. Leitbahn (Folge von Nullen). Für jede einzelne Abtastzeile können die Zeile-um-Zeile-Daten eine Anzahl von Muster-Aufrufbefehlen und eine Anzahl von Spur-Auf ruf be fe'hlen enthalten, bis alle befohlenen Daten für eine gegebene Abtastlinie gekennzeichnet bzw. zugeordnet worden sind. Bei dem oben als Beispiel wiedergegebenen Format ist nur ein einziger Musteraufrufbefehl und ein einziger Spuraufrufbefehl dargestellt. Dann kennzeichnen die Zeile-um-Zeile-Daten den Beginn der nächsten Zeile durch die nächste Abtastzeilen-Nummer FO YY' YY1, auf die weiterhin eine Reihe entweder von Muster- oder Spuraufrufbefehlen oder von beiden folgt. Wenn ein Sequenzlängen-Kode länger als 127 ist, wird ein 5-Byte- Sequenzlängen-Kode (0 XX XX 00 0/1LL LL) verwendet, der auf die Zeilennummer FO YY1 YY1 in dem oben als Beispiel wiedergegebenen Format folgt. In diesem Fall kennzeichnet
SAD ORIGINAL
das an der höchstwertigen Stelle stehende Bit O des ersten Bytes eine Folge von Nullen. Die nächsten 15 Bits XX XX kennzeichnen wieder die Spaltenadresse des Beginns dieses Sequenzlängen-Kodes. Auf die Adresse folgt ein Null-Byte 00, das anzeigt, daß die beiden nächsten (statt nur eines einzigen) Bytes für den längeren Sequenzlängen-Kode verwendet werden, der selbst durch eine Eins oder eine Null in dem an höchstwertiger Stelle stehenden Bit seines ersten Bytes gekennzeichnet ist, auf das 15 Bits (LL LL) folgen, um die Länge der Sequenz zu kennzeichnen. Das Ende sämtlicher Gruppe-III-Daten für ein gegebenes Bild ist durch die Gruppe-III-Daten-Beendigungs-Bytes 00 1C gekennzeichnet. Bild-Definition
Die Bild-um-Bild-Abtastlinien-Daten beginnen in der oberen linken Ecke des Bildes und setzen sich horizontal über die 45,72 cm (18 inch) umfassende Breite des als Beispiel· angenommenen Bildes in Schritten fort, die 0,0254 mm-Einheiten (0,001 inch) entsprechen, wobei maximal 18 000 Schritte er- * forderlich sind. Der Abtastvorgang wird bis zur letzten Abtastlinie bzw. Abtastzeile wiederholt, bei der es sich um die Abtastzeile-Nummer 24 000 (bei einem 60,96 cm (24 inch) langen Bild) handelt. Wie oben erwähnt, kann irgendeines oder mehrere Muster der Bibliothek von 255 Mustern ebenso wie
verschiedene Spuren bzw. Leitbahnen in den Daten einer Gruppe-III-Daten-Sequenz aufgerufen werden. Für jedes Auftreten eines Musters in dem Bild wird es in den Gruppe-III-Daten nur einmal aufgerufen (obwohl jedes Muster an vielen Stellen auftreten kann und Muster an derselben Adresse überlagert werden können) und dieser Aufruf oder Befehl spezifiziert den Ort bzw. die Stelle der linken oberen Ecke der Muster-Begrenzungen und die Muster-Nummer. Daher wird das Muster mit der Nummer NN dann, wenn es in dem oben erläuterten Gruppe-III-Format aufgerufen wird, in derjenigen Abtastzeile, in der es zum ersten Mal erscheint, durch seine Muster-Nummer NN und die Spaltenadresse seiner oberen linken Ecke aufgerufen. Es wird auf dieses Muster in keinerlei Gruppe-III-Zeile-um-Zeile-Daten
32396G6
weiter Bezug gekommen außer und bis genau eben dieses Muster erneut (an einer anderen Stelle) gedruckt werden muß und daher auf einer nachfolgenden Abtastzeile (oder derselben Abtastzeile) aufgerufen wird, die die Spaltenadresse der oberen linken Ecke dieses Musters auf der neuen Abtastzeile (oder die andere Spaltenadresse derselben Abtastzeile) identifiziert.
Wie zuvor erwähnt, definieren die Spur- bzw. Leitbahnen-Daten jede Zeile in Ausdrücken der vorausgehenden Abtastzeile. Wenn keine Änderung auf'einer Zeile auftritt, wird keine Spur bzw. Leitbahn aufgerufen. Wenn eine Spur aufgerufen wird, wird sie durch die Spaltenadresse ihrer oberen linken Ecke und die horizontale Länge bis zu ihrer oberen rechten Ecke lokalisiert. Die Länge (die' als Sequenzlängen-Kode ausgedrückt wird) ist mit ihrem an höchstwertiger Stelle stehenden Bit auf 1 gesetzt, wodurch der Beginn einer durchgehenden Struktur (solid) gekennzeichnet wird. Die Spurdaten definieren auch die untere Ecke (Ende der Spur) durch einen ähnliehen Sequenzlängen-Kode auf der zugehörigen Abtastzeile, der die Spaltenadresse der unteren linken Ecke und ihre horizontale Länge bis zur unteren rechten Ecke identifiziert.
Das als vereinfachtes Beispiel dienende Bild der Fig. 2a hat weder 'eine Spur bzw. Leitbahn noch ein Muster bzw. ein Leitbahnfleck in den ersten 20 Abtastzeilen, deren Nummern durch die Spalte von Abtastzeilen-Nummern angegeben sind, die auf der linken Seite der Figur in vertikaler Folge angeschrieben sind. Die Spaltenadressen sind durch die Nummern gekennzeichnet, die längs der Oberseite der Figur in waagrechter Richtung angeschrieben sind. Die Abtastzeile-um-Abtastzeile-Daten für das Bild aus Fig. 2a sind in Fig. 2b dargestellt, wobei die dezimale Schreibweise nur für Erläuterungszwecke Verwendung findet. Das erste Merkmal, das für dieses Bild aufgerufen werden muß,ist die Spur bzw. die Leitbahn 32. Somit befindet sich auf der Abtastzeile 20 ein erster Datenauf ruf befehl am Punkt 41, der die obere linke Ecke der Leitbahn
32 kennzeichnet, was in dem oben beschriebenen Bilddaten-Format als Null aufgerufen wird, auf'die die Spaltenadresse des Punktes 41, d.h. die Spalte 10 und die Länge der Leitbahn folgen, die 5 Bit beträgt. Die 5- BLt-Leitbahn-Länge wird mit einem Sequenzlängen-Kode kodiert, der in seinem an der höchstwertigen Stelle stehenden Bit eine Eins aufweist, um eine Folge von Einsen zu kennzeichnen, und bei dem die nächsten 7 Bits die Länge von 5 Bits dieser Folge von Einsen kennzeichnen. Es wird angenommen, daß alle Bits auf Null liegen, bis sie auf eine Eins gesetzt werden. Daher müssen die ersten 10 Nullen auf Zeile 20 und auch die Nullen auf allen Zeilen 0 bis 19 in den Bilddaten nicht aufgerufen bzw. ausdrücklich dargestellt werden. Das nächste Merkmal auf der Zeile 20 ist das Muster bzw. der Leitbahnfleck 35 und demgemäß wird dieses Muster als nächstes aufgerufen bzw. dargestellt. Die obere linke Ecke seiner Begrenzung in Punkt 42 wird durch die Spaltenposition identifiziert. Daher hat der zweite Befehl in den Zeilen-um-Zeilen-Daten der Abtastzeile 20 eine Eins in seinem an höchstwertiger Stelle stehenden Bit, um einen Musteraufrufbefehl zu kennzeichnen, auf den die Spaltenadresse (Spalte 30) der linken oberen Ecke der Musterbegrenzung folgt. Hierauf folgt weiterhin die Muster-Nummer NN1, die eindeutig ein Muster mit der Konfiguration des Musters 35 identifiziert. Läuft man auf der Abtastzeile 20 weiter, so muß als nächstes Merkmal das Muster bzw. der Leitbahnfleck 36 aufgerufen werden. Dies erfolgt wieder durch eine Eins in dem an der höchstwertigen Stelle stehenden Bit des Muster-Aufrufbefehls, auf die die Spaltenadresse (Spalte 70) der linken oberen Ecke des Musters folgt, der ihrerseits die Muster-Nummer, in diesem Fall NN„ nachfolgt.
Bis zur Zeile 30 werden in keiner der Zeile-um-Zeile-Bilddaten irgendwelche weiteren Daten aufgerufen oder angegeben. In der Zeile 30 wird die Spur bzw. Leitbahn 34"(im Punkt 44) durch eine Null angegeben, die einen Spur- bzw. Leitbahnbefehl kennzeichnet, sowie durch eine Startadresse, die die Spalten-
adresse 50 wiedergibt und eine Lauflänge mit 20 Einsen. Die nächsten Daten, die aufgerufen bzw. angegeben werden müssen, sind die Daten in Zeile 35, da sich hier das Ende der Spur bzw. Leitbahn 34 befindet. Der Kode, der den Boden bzw. die Unterkante der Spur bzw. Leitbahn kennzeichnet, beginnt mit einer Null, um einen Spur-Befehl zu kennzeichnen, auf den die Spaltenadresse der unteren Leitbahn-Grenze im Punkt 45 folgt, wobei es sich in diesem Fall .um die Spaltenadresse 50 handelt, worauf ein Lauflängen-Kode mit Nullen folgt, um alle-Bits für die gesamte horizontale Länge der Spur- bzw. Leitbahn zu löschen, in»diesem Fall also 20 Nullen. Die nächste Zeile, die Bilddaten enthält, ist die Zeile 60, die den Punkt 4 6 kennzeichnen bzw. aufrufen, der den Beginn des Musters bzw. Leitbahnflecks 37 darstellt, wobei eine Eins verwendet wird, um einen Muster-Aufrufbefehl zu kennzeichnen, auf die die Spaltenadresse der Spalte 40 folgt, um die Lage der oberen linken Ecke des Musters zu kennzeichnen, und eine Muster-Nummer NN3, um dieses spezielle Muster zu bezeichnen. Die nächste Bilddaten-Zeile ist bei diesem Bild die Zeile 70, die den Punkt 47 kennzeichnet,der das Ende der Leitbahn 3.2 darstellt. Dies ruft eine eine Leitbahn identifizierende Null bei der Spaltenadresse 10 mit einer Länge von 5 Nullen auf. Da die Leitbahn 33 in dem Punkt beginnt, in dem die Leitbahn 32 endet, ruft die Zeile 70 auch den Beginn der Leitbahn 33 durch eine Null mit einer Spaltenadresse 10 und einer Sequenzlänge von 30 Einsen auf. Die letzte Bildzeile für diese als Beispiel dienende Figur ist die Zeile 75, die den Punkt 48, d.h. das Ende der Leitbahn 33 kennzeichnet, in dem sie eine Null für. einen Leitbahn-Befehl, eine Spaltenadresse der Spalte 10 und eine Sequenzlänge von 30 Nullen aufruft, wobei das an der höchstwertigen Stelle stehende Bit dieser letzten Sequenzlänge eine Null ist, um das Leitbahnende zu kennzeichnen.
Einlesen von Daten in Abtaststeuerung
.Die Realisierung bzw. Verwirklichung der Laser-Abtast-Steuerung bei einem bevorzugten Ausführungsbeispiel wird mit Hilfe
_ 58 ^: v- "■■" ""'
eines MikroControllers 8X300 yon ;Signetics durchgeführt, der einen peripheren Speicher, Eingabe/Ausgabe-Steuerungen und -Dekodierung und eine Hilf sdate'k-übertragungs- und Daten-Zusammenstell-hardware umfaßt. Spez-ielle Einzelheiten der Prozessor-Controller-Eingabe/Ausgabe-Steuerung und -Dekodierung sind in dem 8X300 Design Guide der 'Firma Signetics vom Dezember 1980 enthalten/-der von der Signetics Corporation gedruckt und als DSPG-Dokument Nr.. 80-102 bezeichnet worden ist. , '"---."
Einzelheiten der Art und Weise* in'der die Daten von der Datenquelle 26 zur Laser-Abtaststeuerungs-Speichereinheit übertragen werden, kann so variiert, werden, wie dies für erforderlich oder wünschenswert gehalten wird. Für die Zwecke der Erfindung ist es lediglich erforderlich, daß die spezifizierten Daten in der Laser-Abtastste.uerungs-Speichereinheit vorhanden sind, so daß sie zu den verschiedenen Arbeitspuffern der Laser-Abtaststeuerung'-'übertragen werden können, wie dies unten beschrieben wird.
Fig. 6 ist ein Blockdiagramm der Laser-Abtast-Steuerung 24 aus Fig. 1 und der zugehörigen Speicher- und Steuereinrichtungen. Die Datenquelle 26 speist Daten in den Prozessor/ Controller 50 der Firma Signetics unter der Steuerung eines Mikroprozessor-Programms 52, eines Eingabe/Ausgabe-Steuer-Mikrokodes 54 und einer DekodieTung und einer Steuerung 56" innerhalb des Prozessor/Controllers. Das Einlesen von Daten' in die verschiedenen Speicher erfolgt nach Verfahren, die dem Fachmann bekannt sind und deren Einzelheiten variiert
werden können, wie dies erforderlich oder ratsam erscheint.
Die Daten, die die verschiedenen Bibliotheken von Mustern definieren, sowie die Daten, die die Abtastzeilen-um-Abtastzeilen-Information für die verschiedenen Bilder definieren werden in den oben beschriebenen Grüppe-II- und Gruppe-III-Formaten in den Speichern 28, 30 (FigT 1) zusammengestellt,
.die beispielsweise herkömmliche Floppy-Disc-, Band- oder ähnliche Speicher sein können- Zunächst werden die Gruppe-II-Daten auf dem Floppy-Disc so lange gesucht, bis die ausgewählte Bibliotheks-Nummer, Byte MM der Gruppe-II-Daten gefunden ist, worauf alle die Muster-Daten für diese Bibliothek von dem Floppy-Disc ausgelesen werden, um in einem Muster-Daten-Bibliotheks-RAM (Speicher mit wahlfreiem Zugriff) 58 des Prozessors gespeichert zu werden. Die im Bibliotheks-RAM 58 gespeicherten Daten liegen in Form von Sequenzlängen - Kode der Zeilen eines jeden Musters der ausgewählten Bibliothek von Gruppe-II-Daten vor. Die Daten werden auf allen unbenutzten Plätzen in dem Bibliotheks-RAM gespeichert, wobei die Sequenzlängen-Kode nacheinander in aufeinanderfolgenden Linien oder Adressen des Speichers positioniert werden, wobei jede Gruppe von aufeinanderfolgenden Speicherlinien.einer Zeile bzw. Linie auf dem Muster entspricht. Der Biblicftheks-Speicher-RAM kann beispielsweise ein 4K χ 8-Bit-Speicher (4000 Linien mit jeweils 8 Bit) des Prozessors sein. Beim Speichern der Gruppe-II-Daten im Bibliotheks-RAM 58 wird die Muster-Breite WW vom Prozessor verwendet, um das Ende einer jeden Linie bzw. Zeile von Muster-Daten zu bestimmen. Somit werden die gesamten Längen einer Reihe von aufeinanderfolgenden Sequenzen von Sequenzlängen-^Kode der Muster da ten addiert, bis die Gesamtlänge einer Gruppe von aufeinanderfolgenden Kode gleich der Breite WW ist, die sie jedoch-nicht übersteigt. Am Ende des letzten Sequenzlängen-Kode einer solchen Gruppe von aufeinanderfolgenden Kode wird ein Null-Byte 00 in die Muster-Bibliothek eingefügt, und der nächste Sequenzlängen-Kode wird dann in der nächsten Adresse der Bibliothek positioniert. Somit besitzen beispielsweise die für das Muster der Fig. 3a in die Bibliothek eingesetzten Daten die Binärform, wie sie in Fig. 3c für die beiden ersten Zeilen des Musters wiedergegeben ist. Das Null-Byte, das das Ende' einer Abtastlinie für das einzelne Muster kennzeichnet muß verwendet werden, wenn die Musterdaten auf einer Abtastlinie-um-Abtastlinie-Basis
verarbeitet werden. Alternativ können die Musterdaten zunächst (im Musterdaten-Speicher 30) auf einer Zeile-um-Zeile-Basis auf Format gebracht werden, wobei das Null-Byte das Ende einer jeder Muster-Daten-Zeile kennzeichnet, und in diesem Fall muß die Breite WW nicht in dem Musterbefehl enthalten sein.
Wenn die Gruppe-II-Daten-Sequenzlängen-Kode in den Bibliotheks-RAM 58 eingelesen werden, wird eine Bibliotheks-Hinweistabelle in einem Bibliotheks-Hinweis-RAM (LPR), wie z.B. in einem 1K χ 24 Bit-Speicher 60, d.h. einem Speicher mit 1000 Linien bzw. Zeilen von jeweils 24 Bit des Prozessors erzeugt. Die ersten 254 Linien dieses RAM werden für die Bibliotheks-Hinweistabelle verwendet. Die anderen Linien bzw. Zeilen dieses RAMs können für eine zeitweilige Speicherung von anderen Daten verwendet werden, wie dies unten beschrieben wird. Die Bibliotheks-Hinweistabelle entspricht einer Inhaltstabelle der Muster-Bibliothek, wobei in ihr bestimmte für jedes Muster spezifische Daten aufgelistet sind. Das Format der Daten in derjBibliotheks-Hinweistabelle 60 ist in Fig. 4 dargestellt. Beim Aufbau der Hinweistabelle wird die spezielle Muster-Nummer NN als die Hinweistabellen-Speicheradresse verwendet, so daß beispielsweise die Muster-Nummer sieben beider Adressen-Nummer sieben des- Speichers, die Muster-Nummer vier bei der Adressen-Nummer vier, die Muster-Nummer 28 bei der Adressen-Nummer 28 usw. eingesetzt werden. In dem Byte Null der Hinweistabelle wird das Zweierkomplement der Höhe HH des Musters der speziellen LPR-Adresse eingesetzt, in den Bytes Eins und Zwei der Hinweistabelle ist die Adresse SS SS in der Muster-Daten-Bibliothek gespeichert, bei der die Muster-Daten (Sequenzlängen-Kode) dieses speziellen Musters NN beginnen. Natürlich kann die Adresse drei oder mehr Bytes umfassen, wenn eine größere Speichermenge verwendet wird. Somit enthält, nachdem die Gruppe—II-Daten von dem Floppy-Disc-Speicher in den Bibliotheks-RAM eingelesen worden sind,
die Bibliotheks-Hinweistabelle eine Liste aller in der Bibliothek enthaltenen Muster. Für jedes Muster speichert die Hinweistabelle das Komplement seiner Länge und die Adresse in der Muster-Bibliothek, bei der das spezielle Muster beginnt.
Nach der Beendigung des Auslesens aller Gruppe-II-Daten aus dem Floppy-Disc-Speicher 30 wird das Floppy-Disc für die zugehörigen Gruppe-III-Daten gesucht, wie sie durch das Byte KK identifiziert sind, das die ausgewählte Lage der gedruckten Schaltungsplatine bezeichnet. Nach dem Identifizieren der Platine werden die folgenden Zeile-um-Zeile-Bilddaten aus dem Floppy-Disc-Speicher in den Bilddaten-Speicher umgelesen, der die Form einesj54K χ 8 Bit-Speichers 64 mit wahlfreiem Zugriff des Prozessors besitzen kann. Wenn alle Gruppe-III-Daten aus dem Floppy-Disc-Speicher 28 in den Bilddaten-Speicher-RAM umgelesen worden sind, ist die Anfangsspeicherung vollständig. Die Verarbeitung, Expansion und Zusammensetzung von Abtastzeilen-Daten für eine Echtzeit-Steuerung des Laser-Modulators kann auf einen Befehl der Bedienungsperson hin jederzeit beginnen. Abtastzeilen - Datenzusammenstellung ■ .
Im allgemeinen werden zum Zusammensetzen bzw. Aufbereiten der Daten ffür den Datenstrom, der die Zeile-um-Zeile und Bit-um-Bit-Steuerung des Bilderzeugungs-Rasters bewerkstelligt, die Leitbahn- und Muster-Daten zunächst getrennt in Leitbahn-Arbeitspuffern bzw. Muster-Arbeitspuffern zusammengestellt. Die Inhalte der beiden Arbeitspuffer werden dann über eine logische ODER-Schaltung einem Zeilen-Zusammenstell-Puffer und dann einem Schieberegister zur Steuerung des Strahl-Modulators zugeführt. Die Bilddaten werden auf einer Zeileum-Zeile-Basis aus dem BiId-Daten-RAM 64 ausgelesen. Die Bildbefehle werden untersucht, um festzustellen, ob das an der höchstwertigen Stelle stehende Bit eine Eins oder eine Null ist, wobei eine Eins einen Muster-Aufruf oder Muster-Befehl und eine Null einen Leitbahn-Aufruf kennzeichnet. Für jeden
Muster-Aufruf, werden Musterdaten aus dem Musterdaten-Speicher entnommen und in einen Muster-Arbeitspuffer, beispielsweise 4K χ 8 Bit-Speicher 66 mit wahlfreiem Zugriff eingegeben. Die Musterdaten werden in den Muster-Arbeitspuffer mit Hilfe einer Muster-Verarbeitungstabelle eingegeben, die in einem Speicher 62 mit wahlfreiem" Zugriff (PPR) enthalten, ist. Es sei daran erinnert, daß die Bilddaten einen Musteraufruf nur dann enthalten, wenn das Muster auf der speziellen Abtastzeile beginnt. Hiernach sind keine weiteren Aufrufe oder Befehle für ein solches Muster in den Bilddaten enthalten. Der Rest der detaillierten Musterdaten wird auf nachfolgenden Abtastzeilen in Verbindung mit der Muster-Verarbeitungstabelle oder PPR 62 verarbeitet, wie dies unten beschrieben wird. Für jeden Leitbahn-Aufruf werden die Sequenzlängen-Kode der Leitbahndaten in einen 2D-oder Leitbahn-Arbeitspuffer eingegeben, der von einem 4K χ 8 Bit-Speicher 68 mit wahlfreiem Zugriff gebildet werden kann.
Somit stellt jeder der Arbeitspuffer 66 und 68 Daten für seine spezielle Komponentenart des'Bildes auf irgendeiner gegebenen Zeile zusammen. Nachdem die VorZusammenstellung von Leitbahndaten für eine gegebene Zeile im Puffer 68 und von Muster-Daten für 'dieselbe Zeile im Puffer 66 beendet worden ist, werden die Inhalte der beiden Puffer durch die ODER-Schaltung 70 einem oder einer Gruppe von Zeilen-Zusammenstell-Puffern 72 zugeführt. Vorzugsweise umfassen die Zeilen-Zusammenstell-Puf f er mehrere identische Puffer, wie dies noch genauer weiter unten beschrieben wird, so daß dann, wenn Komponenten einer jeden Zeile in den Arbeitspuffern vorab zusammengestellt werden, Abtastzeilen-Daten von den beiden Arbeitspuffern in jeweils einen anderen der Gruppe von Zeilen-Zusammenstell-Puf fern eingegeben werden können. Die letzteren können demgemäß vor dem tatsächlichen Auslesen aus den Puffern 72 gefüllt werden. Alle Arbeits- und Zeilen-Zusammenstell-Puffer
sind einzeln groß genug, um Daten für eine vollständige Abtastzeile zusammenzustellen. Die Daten werden aus den Puffern 72 in ein Schieberegister 74 geschoben, aus dem die zusammengestellten Zeilen-Daten Bit für Bit zur Steuerung des Laser-Modulators herausgeschoben werden. Somitströmt aus dem Schieberegister 74 ein Fluß von Datenbits, die das Bildraster Zeile um Zeile und Bit um Bit definieren.
Wenn Gruppe-III-Daten aus dem Bilddaten-Speicher ausgelesen werden, wird jeder Befehl auf einer gegebenen Abtastzeile geprüft, um festzustellen, ob es sich um einen Musterbefehl oder einen Leitbahnbefehl handelt. Wenn ein Befehl O XX XX eine Leitbahn identifiziert, wird eine geeignete Änderung im Leitbahn-Arbeitspuffer an dessen durch die Adressen-Bytes XX XX identifizierte Spalten-Adresse vorgenommen. Da die Leitbahnen mit der oben beschriebenen Leitbahn-Daten-Kompression gehandhabt werden, treten keine Leitbahn-Befehle auf, wenn sich nicht gegenüber einer vorausgehenden Zeile eine Änderung ergibt, und es werden keine Änderungen im Inhalt des Leitbahn-Arbeitspuffers 68 vorgenommen, wenn nicht und bis ein Leitbahn-Datenbefehl auf einer gegebenen Zeile auftritt. Dann wird beginnend mit dem durch die Leitbahn-Befehls-Spalten-Adresse identifizierten Bit die nachfolgende Anzahl von Bits gleich der Länge des Sequenzlangen-Kodes entsprechend in Einsen oder Nullen umgewandelt, wodurch der Leitbahn-Sequenzlängen-Kode im Leitbahn-Arbeitspuffer in Bit-um-Bit-Leitbahn-Daten für diese spezielle Zeile expandiert wird. Somit wird jeder Leitbahnbefehl, wenn er in den Bild-Daten erscheint, die aus dem Speicher 64 ausgelesen werden, in den Leitbahn-Arbeitspuff er 68 hinein expandiert.
Alternativ hierzu können zur Verbesserung der Systemgeschwindigkeit die Leitbahn-Daten, die die Spaltenadresse und den Sequenzlängen-Kode der Leitbahn für eine gegebene Zeile identifizieren, zeitweilig bzw. vorübergehend in irgendeinem geeigneten Speicherraum, so z.B. in ungenutzten Teilen des
LPR 60 gespeichert werden. Die Verwendung einer solchen Zwischenspeicherung kann weniger Zeit erfordern, als die tatsächliche Expansion des Datenbefehls in den Leitbahn-Arbeitspuffer 'hinein. Die Zwischenspeicher-Einrichtung, die ein kleinerer Speicher sein kann, kann eine Auslesezeit aufweisen, die kürzer ist, als die Auslesezeit für die größere Bilddaten-Speichereinrichtung 64. Die Leitbahn-Daten können aus dem Zwischenspeicher entnommen und in den Leitbahn-Arbeitspuffer 68 hinein.in einem späteren Abschnitt des Betriebsablaufs expandiert werden, so beispielsweise während der Übertragung der Daten von den Zeilen-Zusammenstell-Puffern 72 in das Schieberegister 74.
Muster-Verarbeitungstabelle und -karte (PPR) Beim Auslesen von Information aus dem Bilddaten-Speicher RAM wird jeder Leitbahn-Befehl in die Leitbahn-Arbeitspuffer hinein verarbeitet bzw. übernommen (oder zeitweilig für eine spätere Übertragung zu den Leitbahn-Arbeitspuffern gespeichert). Jeder Muster-Aufruf, der,den Beginn eines neuen Musters auf einer gegebenen Zeile kennzeichnet, wird in die Muster-Verarbeitstabelle und -karte 62 (PPR) eingegeben, doch werden die zugehörigen Musterdaten in dem Muster-Bibliotheks-RAM zu dieser Zeit nicht in den Muster-Arbeitspuffer hinein verarbeitet bzw. weitergegeben. Die Muster-Verarbeitungstabelle gewährt eine zeitweiligeSpeicherung für gewisse Muster-Identifizierungs- und Lokalisierungs-Daten zur Verwendung während des Verarbeitens eines jeden einzelnen Musters auf jeder seiner aufeinanderfolgenden Abtastzeilen. Beim Auslesen aus dem Bilddaten - Speicher-RAM werden für eine gegebene Abtastzeile nur zwei Operationen durchgeführt. Zunächst wird der Leitbahn-Arbeitspuffer in der geeigneten Weise geändert (oder es werden die Leitbahn-Daten zeitweilig gespeichert) und zweitens wird die Muster-Verarbeitungstabelle, in geeigneter
Weise aktualisiert bzw. auf den neuesten Stand gebracht. Nach dem Lesen der Bilddaten für eine vollständige Abtastzeile werden aktive Muster, die in der Muster-Verarbeitungstabelle identifiziert sind, aus dem Muster-Bibliotheks-RAM in die
Muster-Arbeitspuffer hinein verarbeitet (und es werden Leitbahn-Daten, wenn sie vorübergehend gespeichert sind, in die Leitbahn-Arbeitspuffer übertragen).
Wie zuvor erwähnt, wird jedes Muster in den Abtastlinienum-Abtastlinien-Daten nur einmal aufgerufen und hierauf in den Muster-Arbeitspuffer hinein auf einer Zeile-um-Zeile-Basis verarbeitet oder expandiert. Für jede Abtastzeile muß eine andere Zeile von Muster-Daten eines jeden zuvor aufgerufenen Musters verarbeitet werden. Die Verarbeitung von Muster-Zeilendaten ist lediglich der übertrag von jeder in einer Muster-Daten-Zeile des Bibliotheks-RAM 58 enthaltenen Bit-Sequenz in Plätze des Muster-Arbeitspuffers, wobei mit der gekennzeichneten Arbeitspuffer-Spaltenadresse XX XX begonnen wird. Demgemäß ist es erforderlich, die Identität und den Status von denjenigen Mustern (bis zu 2000 in einem Ausführungsbeispiel) zu überwachen und !laufend zu verfolgen, die auf zuvor verarbeiteten Abtastzeilen aufgerufen worden sind und die noch immer aus der Muster-Bibliothek in den Muster-Arbeitspuffer hinein verarbeitet werden müssen. Diese Überwachung wird mit Hilfe des PPR 62 durchgeführt. Jedesmal dann, wenn ein Muster durch die Zeile-um-Zeile-Bilddaten aufgerufen wird, werden Muster-Verarbeitungsdaten vorübergehend in dem PPR gespeichert, um sowohl das spezielle Muster als auch den Status seiner Verarbeitung, d.h. die Anzahl von Zeilen des speziellen Musters zu identifizieren, die bereits verarbeitet worden sind (oder die noch verarbeitet werden müssen).
Die Muster-Verarbeitungstabelle enthält Muster-Identifizierungsdaten für alle diejenigen Muster, die zwar aufgerufen aber noch nicht vollständig verarbeitet worden sind. Die Tabelle liefert auch eine Karte, die den Platz von leeren Zeilen in dem PPR (zum Einfügen von neuerdings aufgerufenen Musterdaten) und aktive Musterdaten-Zeilen identifiziert (um Muster-Daten
zu identifizieren, die verarbeitet werden müssen).
Die Muster-Verarbeitungstabelle und -karte 62 ist ein Speicher mit wahlfreiem Zugriff, der 2000 Zeilen mit jeweils 48 Bit enthält. Jede Zeile ist entweder leer oder aktiv. Sie ist aktiv, wenn sie Muster-Daten enthält, und leer, wenn sie keine solchen Daten enthält (obwohl Karten-Bits immer vorhanden sind). Die Daten in jeder aktiven Zeile umfassen sechs Bytes, wie dies in Fig. 5 dargestellt ist. Das erste Byte (Byte 0) der Muster-Identifizierungs-Information in jeder aktiven Zeile enthält anfangs das Zweier-Komplement HH der Anzahl von Zeilen in dem Muster. Die Bytes 2 und 3 enthalten die Ausgangs- bzw. Anfangsposition des Musters auf einer Abtastzeile (d.h. die Spaltenadresse XX XX der linken Begrenzung des Musters). Die fünften und sechsten Bytes (Byte 4 und 5) enthalten die Adressen SS SS des Startpunkts des Musters in dem Muster-Bibliotheks-RAM. Das zweite Byte einer jeden Zeile von Musterdaten in dem PPR enthält eine Karte,die im Verlauf des Einfügens von Musterdaten in das PPR und beim Verarbeiten der aktiven Muster erzeugt wird. Ein Muster ist aktiv, wenn es aufgerufen worden ist und für diesen Aufruf noch nicht alle seiner Zeilen-Daten in dem Muster-Arbeitspuffer übertragen worden sind. Die Karte liefert Informationen, die die Adresse der nächsten leeren Zeile für das Einfügen eines neuen Muster-Aufrufes oder die Adresse der nächsten aktiven zu verarbeitenden Zeile identifizieren. Die Anzahl von Bits, die für die Karte verwendet werden, ist eine Funktion des Größe des PPR. Obwohl eine 8-Bit-Karte für 256 Zeilen sorgt und zu Erläuterungszwecken dargestellt ist, sei darauf hingewiesen, daß die Verwendung von zusätzlichen Bits für die Karte die Anzahl von Zeilen erhöht, die in dem PPR verwendet werden können.
Beim Lesen der Abtastzeile-um-Abtastzeile-Bilddaten wird die Musterverarbeitungstabelle und -karte bei jedem Musteraufruf
aktualisiert. Der Datenstrom zwischen der Bibliotheks-Hinweistabelle, der Muster-Verarbeitungstabelle, der Muster-Bibliothek und dem Puffer ist in Fig. 7 dargestellt. Die Muster-Nummer NN eines Musteraufrufes wird dazu verwendet, in die Hinweistabelle einzutreten (in der die Muster-Nummer NN die Hinweistabellen-Adresse ist), um die" Muster-Bibliotheks-Startadresse SS SS zu erhalten. Die Startädresse SS SS aus der Hinweistabeile und die Spaltenadresse XX XX aus dem Musteraufruf bzw. Musterbefehl werden in die geeigneten Bytes der Muster-Verarbeitungs-Tabelle^ und -karte in einer leeren Zeile dieser Tabelle eingefügt, die durch die Karten-Bits festgelegt ist, wie dies unten noch erläutert wird. Karten-Bits einer solchen Zeile werden aktualisiert. Das Muster-Höhen-Komplement HH wird ebenfalls aus der Hinweistabelle in die Muster-Verarbeitungstabelle eingegeben. Nach dem Lesen einer vdIIständigen Zeile von Bilddaten und unter der Annahme, daß alle Leitbahn-Aufrufsbefehle in die Leitbahn-Arbeitspuffer 68 hinein verarbeitet worden sind, beginnt das Verarbeiten der Musterdaten für eine gegebene Abtastzeile in den Muster-Arbeitspuffer 66 hinein.
Der PPR enthält Daten, die zu jedem Muster gehören, das auf vorausgehenden Zeilen aufgerufen worden ist und. das noch nicht vollständig in den Muster-Arbeitspuffer hinein expandiert worden ist. Es können bis zu 2000 aktive Muster auf entsprechenden Zeilen des PPR aufgelistet sein, es kann aber auch keines oder es kann irgendeine beliebige Anzahl an irgendeiner PPR-Stelle vorhanden sein. Demgemäß wird die Tabelle nach den aktiven Mustern abgesucht. Für jedes aktive Muster in dem PPR wird die Muster-Bibliotheks-Startadresse SS SS in dem PPR verwendet/ um in die Muster-Bibliothek 58 einzutreten und eine Abtastzeile von Daten für dieses spezielle Muster herauszuziehen.. Die Muster-Bibliotheks-RAM-Startadresse SS SS (wie sie in dem PPR enthalten ist) wird aktualisiert, sodaß auf der nächsten Abtastzeile die nächste Zeile eines solchen Musters aus dem Bibliotheks-RAM 58
entnommen wird. Weiterhin wird beim Verarbeiten e*iner jeden Zeile in dem PPR das Muster-Höhen-Komplement HH in dem PPR (aber nicht in der Hinweistabelle) inkrementiert. Daher besitzt dann, wenn'alle Linien eines gegebenen Musters verarbeitet worden sind, dieses Komplement den Wert Null und die, PPR-Zeile ist dann leer oder gelöscht. Die Sequenzlängen-Kode 1/OLL dex Muster-Zeile bei den Adressen SS SS des Bibliotheks-RAM werden in den Muster-Arbeitspuffer hineinexpandiert, wobei mit der Spaltenadresse XX XX begonnen wird, die in dem PPR enthalten ist.
Jede Zeile von ein Muster identifizierenden Daten des PPR wird hierin eingesetzt, wenn ein Muster das erste Mal in Daten aufgerufen wird, die aus dem Bilddaten-Speicher-RAM
64 ausgelesen werden. Die Muster-Spalten-Adressdaten XX XX 3im PPR
bleiben/während des gesamten Verarbeitungsvorgangs der voll-"ständigen Anzahl von Zeilen, die von der Höhe des Musters
eingenommen werden, ungeändert, doch werden das erste Byte HH und die Muster-Zeilen-Startadresse in der Bibliothek SS SS für jede Abtastzeile inkrementiert oder aktualisiert. Da verschiedene Zeilen in dem PPR auf verschiedenen Abtastzeilen leer werden und da andere Muster auf verschiedenen Abtastzeilen aufgerufen werden, werden die Musterdaten in den PPR in willkürlicher Weise, d.h. in einer nicht vorbestimmten Reihenfolge eingefügt. Daher wird es erforderlich, beim Auftreten eines Musterbefehls den PPR nach einer leeren Zeile zum Einfügen des neuen Muster-Aufrufbefehls abzusuchen. In entsprechender Weise ist es beim Durchlaufen des PPR zum Verarbeiten der Informationen in den Muster-Arbeitspuffer hinein erforderlich, diejenigen Zeilen zu finden, die aktive Muster enthalten'. Die Suche durch alle 2000 Zeilen des PPR jedesmal dann, wenn ein Muster aufgerufen oder verarbeitet wird, erfordert außerordentlich viel Zeit. Um diese Suchzeit zu verringern, sind die Karten-Bits vorgesehen. Einzelheiten und einige Beispiele der Verwendung der Karten-Bits, einschließlich der zugehörigen Hinweise auf leere und aktive Zeilen
wird im folgenden in Verbindung mit den Fig. 8ä bis 8h beschrieben.
Zusätzlich zu der in dem PPRk*vorgesehenen Karte ist in einem Notizblockspeicher 80 (Fig. 6) ein Leerzeilen-Pointer vorgesehen. Dieser Pointer bzw. diese Hinweisinformation identifiziert immer die Adresse der letzten Zeile des PPR, die leer geworden ist. Die Karten-Bits einer solchen letzten leeren Zeile identifizieren ihrerseits immer die nächste aleere Zeile. -In ähnlicher Weise ist ein Aktivzeilen-Pointer (ebenfalls in dem Notizblock-Speicher) vorgesehen, der die Adresse der letzten aktiven Zeile identifiziert (der letzten Zeile,, in die Muster-Daten eingebrächt worden sind, oder der letzten Zeile, die bei der Vervollständigung der Verarbeitung für eine Abtastzeile verarbeitet worden ist). Die Karten-Bits einer jeden solchen aktiven Zeile identifizieren die Adresse der vorausgehenden aktiven Zeile (d.h. der letzten vorausgehenden Zeile, in die Musterdaten eingegeben worden oder in der die Musterdaten verarbeitet worden sind). Jede Zeile, die eine "vorausgehende" Zeile ist, wenn die Tabelle in einer Richtung durchlaufen wird, ist die "nächste" bzw. "nachfolgende" Zeile, wenn die Tabelle in der entgegengesetzten Richtung durchlaufen wird. Daher wird jedesmal dann, wenn die Tabelle in entgegengesetzten Richtungen durchlaufen wird, die "Spur" (trail) derwjeweils "vorausgehenden" Zeile eine Karte bzw. ein "Wegweiser"' zur "nachfolgenden" Zeile, Die Spur, die vcn einem Satz von Karten-Bits zum nächsten führt, ist in den PPR-Karten-Bits (Byte 1) enthalten. In den PPR wird bei derjenigen Zeilenadresse hineingegangen, die durch den Aktivzeilen-Pointer gekennzeichnet ist, der immer die Zeilenadresse der letzten Zeile enthält, in die Daten hinzugefügt oder in der Daten verarbeitet worden sind. Somit wird der Aktiv-Pointer befragt, um den, Anfang der Spur von Aktivzeilen-Karten-Bits zu lokalisieren=; In ähnlicher Weise ist die Spur, die von einer leeren Zeile zur nächsten führt, in den Karten-Bits der leeren Zeilen enthalten. In diese
323960$
"leer"-Spur wird bei derjenigen Zeile hineingegangen, die durch den Leerzeilen-Pointer gekennzeichnet ist, der immer die Zeilenadresse der letzten Zeile enthält, die leer geworden ist (d.h. der nächsten leeren Zeile, wenn am Anfang die Tabelle gefüllt wird). Somit wird der Leerzeilen-Pointer befragt, um den Beginn der Spur von Leerzeilen-Karten-Bits zu lokalisieren.
Wenn das Muster einer gegebenen Zeile des PPR vervollständigt worden ist (d.h., wenn es durch den Muster-Arbeitspuffer hindurch für die erforderliche Anzahl von Abtastzeilen verarbeitet worden ist) wird die Zeile leer, wird die Adresse dieser neuerlich leeren Zeile (d.h. der zuletzt leer gewordenen Zeile) in den Leerzeilen-Pointer im Notizblock eingegeben und werden die Karten-Bits dieser letzten leeren Zeile in die Adresse der nächsten leeren Zeile geändert, die die Adresse ist, die zuvor in dem Leerzeilen-Pointer enthalten war. Somit wird eine Zeile, wenn sie leer wird, die letzte leere Zeile und ihre Karten-Bits werden so geändert, daß sie die Zeilen-Adresse der "nächsten" leeren Zeile kennzeichnen, wobei es sich um diejenige Zeile handelt, die zuvor die letzte leere Zeile gewesen ist.
Die Muster-Verarbeitungs-Tabelle und -Karte wird in der in Fig. 8a dargestellten Weise begonnen. In den Fig. 8a bis 8h, die schematisch den Betrieb der Muster-Verarbeitungs-Tabelle darstellen, ist nur ein Teil der Tabelle gezeigt. Einige der Tabellen-Zeilen-Adressen sind auf der linken Seite der Figur angegeben.
bzw. initialisiert, Die PPR wird dadurch begonnen/ daß in den Kartenabschnitt einer jeden Zeile die Adresse der nächsten Zeile eingesetzt wird, die zu diesem Zeitpunkt (in dem alle Zeilen leer sind) die nächste leere Zeile darstellt. Daher enthält die Zeile 00 die Adresse 01 in ihrem Kartenabschnitt, die Zeile 01 die Adresse 02 usw. In diesen Figuren wird die Dezimalschreibweise
der Karten-Adressen der einfacheren Darstellung wegen verwendet.
Es sei angenommen, daß Daten aus dem Bilddatenspeicher-RAM entnommen werden und einen Musteraufruf 1 XX XX NN enthalten. Die Spaltenadresse XX XX wird in die Bytes (Abschnitte) zwei und drei der PPR-Zeile OO eingegeben. Die Muster-Nummer NN wird verwendet, um die Daten SS SS und HH zu entnehmen, die in die entsprechenden Bytes dieser Zeile eingesetzt werden. In diesen Figuren kennzeichnet eine horizontale Linie an einer Byte-Stelle das Vorhandensein von Daten und das Fehlen einer solchen Linie kennzeichnet ein leeres Byte. Beim Einsetzen bzw. Einfügen der Muster-Information in die Zeile 00 werden die Karten-Bits dieser Zeile in den Notizblock-Speicher als der Pointer für die "nächste leere Zeile" oder Leerzeilen-Pointer eingegeben, der somit die Adresse 01 der nächsten Zeile der Tabelle enthält, die leer ist.
In diesen Figuren kennzeichnet eine Adresse, durch die eine horizontale Linie verläuft, den Status der Karten-Bits oder des Notizblock-Pointers beim Beginn einer Operation in einer gegebenen Zeile des PPR und die benachbarte Adresse ohne eine durch sie hindurchlaufende Linie kennzeichnet die Daten bei der Beendigung bzw. Vervollständigung einer Operation auf der gegebenen Tabellen-Zeile. Somit werden die Daten sowohl vor als auch nach einer Änderung wiedergegeben. In Fig. 8b zeigt die Karten-Stelle an, daß beim Eingeben von Muster-Daten in die Zeile 01 die Karten-Bits von 02 in 00 geändert worden sind, der Aktivzeilen-Pointer zeigt an, daß der Inhalt dieses Notizblockspeichers von 00 in 01 geändert worden ist, und der Leerzeilen-Pointer zeigt an, daß der Inhalt dieses Speichers von 01 in 02 geändert wurde:
Nimmt man an, daß ein zweiter Muster-Aufruf in den Bilddaten einer gegebenen Abtastzeile auftritt, so identifiziert der Pointer 01 für die "nächste leere Zeile" im Notizblock-Speicher
323960S
die Adresse derjenigen Zeile, in die diese Muster-Information eingesetzt werden soll. Die Information wird dann in die Zeile 01 eingesetzt, wie in Fig. 8b dargestellt und die Karten-Bits dieser Zeile werden modifiziert (von 02 in 00 geändert), so daß hier eine "Spur" zurückbleibt, die auf die vorausgehende Adresse hinweist, in die ein Muster eingegeben worden ist. Somit werden dann, wenn eine Zeile gefüllt wird, ihre die "nächste leere Zeile" kennzeichnenden Karten-Bits so geändert-, daß sie eine "Spur" für die letzte aktive Zeile werden. Da. die Zeile 00 die erste verwendete Zeile ist, wird der die "letzte aktive Zeile" kennzeichnende Pointer bzw. der Aktivzeilen-Pointer, der anfangs die Adresse 00 enthalten hat, beim Einfügen von Musterdaten in die Zeile 00 nicht geändert. Beim Eingeben von Daten in die Zeile 01 werden die Karten-Bits dieser Zeile so geändert, daß sie die Adresse 00 wiedergeben, die im Pointer für die letzte aktive Zeile enthalten ist und der Aktiv-Pointer wird in 01 geändert, wie dies seitlich an der Fig. 8b dargestellt ist. Die Karten-Bits bilden somit eine Spur, die auf diejenige Zeile hinweist, die zuvor aktiviert worden ist. Die Zeile 01 ist jetzt aktiv und die Adresse 02, die sie ursprünglich enthalten hat, und die auf die nächste leere Zeile hinweist, wird in den Leerzeilen-Pointer verschoben, wie dies seitlich in der Fig. 8b wiedergegeben ist.
Beim Auftreten eines dritten Musteraufrufs identifiziert der Leerzeilen-Pointer die Zeile 02, in die diese Muster-Information eingegeben wird. Die Adresse 01 aus dem auf die letzte aktive Zeile hinweisenden Pointer wird in die Karten-Bits der Zeile 02 eingegeben und die Adresse O3, die ursprünglich in den Karten-Bits der Zeile 02 enthalten war und die die nächste leere Zeile kennzeichnet, wird in den Leerzeilen-Pointer-Notizblockspeicher eingegeben. Der Status der Tabelle und der Pointer beim bzw. nach dem Eingeben des dritten Muster-Befehls ist in Fig. 8c dargestellt.
Beim Auftreten eines vierten Muster-Aufrufs bzw. eines -Befehls (Fig. 8d) wird die Leerzeilen-Pointer-Adresse 03 verwendet, um die Adresse zum Eingeben der Daten dieses nächsten Musters zu lokalisieren, werden die Karten-Bits dieser neuerlich belegten Zeile so geändert, daß sie die Adresse des auf die letzte aktive Zeile hinweisenden Pointers, d.h. die Adresse 02 enthalten, und wird die Adresse der nächsten Leerzeile, nämlich die Adresse 04, die anfangs in den Karten-Bits der Zeile 03 enthalten war, in den Leerzeilen-Pointer eingegeben. Dieser Vorgang wird so lange fortgesetzt, bis das Ende einer Abtastlinie in den gespeicherten Bilddaten auftritt, die aus dem Bilddaten-Speicher-RAM 64 ausgelesen werden. Jedesmal dann, wenn ein Musterbefehl auf dieser Abtastzeile auftritt, wird der auf die nächste Leerzeile hinweisende Pointer befragt um diejenige Zeile zu identifizieren, in die der neue Muster-Aufruf bzw. -Befehl eingegeben wird; weiterhin werden der Leerzeilen-Pointer und der auf die letzte aktive Zeile hinweisende Pointer aktualisiert und es wird die Karte bzw. es werden die Karten-Bits aktualisiert, um eine Spur von vorausgehenden aktiven Zeilen und nächsten leeren Zeilen zu hinterlassen.
Nach dem Auslesen einer vollen Abtastlinie aus dem Bilddaten-Speicher sind alle Leitbahn-Daten in den Leitbahn-Arbeitspuffer eingegeben (oder vorübergehend gespeichert) und der PPR ist aktualisiert worden. Es sind jedoch noch keine Änderungen in dem Muster-Arbeitsspeicher durchgeführt worden. Jetzt wird in die Muster-Verarbeitungstabelle zum Verarbeiten der identifizierten aktiven Muster-Daten hineingegangen (Eingeben einer Zeile von Muster-Daten für jedes aktive Muster in den Muster-Arbeitspuffer) . Es ist erforderlich, diejenigen Zeilen zu finden, die ein aktives Muster besitzen, und dies durchzuführen ohne jede Zeile der Tabelle zu untersuchen. Jeder nachfolgende Verarbeitungsvorgang verläuft in einer Richtung, die der Richtung des vorausgehenden Verarbeitungsvorgangs entgegengesetzt ist. Dieses bidirektionale Arbeitsverfahren
in der Muster-Verarbeitungstabelle, nämlich das Umkehren der Richtung der Verarbeitung durch die Tabelle hindurch (von den oberen oder eine niedrige Ziffer tragenden Zeilen zu den unteren oder eine höhere Ziffer tragenden Zeilen zuerst und dann von den eine höhere Ziffer tragenden Zeilen zu den eine niedrigere Ziffer tragenden Zeilen und dann wieder in der ersten Richtung) beim Verarbeiten der aktiven Muster aus der Tabelle in den Arbeitspuffer ist von dem Karten-Konzept abgeleitet. Beim Durchlauf von oben nach unten wird eine Spur (in den Karten-Bits) zurückgelassen, die die unmittelbar vorausgehende aktive Zeile identifiziert, in die ein Muster zuletzt eingegeben oder in der ein Muster verarbeitet worden ist. Beim Voranschreiten von unten nach oben wird diese Spur eine Karte, die auf den nächsten Ort einer aktiven Zeile in dieser umgekehrten Verarbeitungsrichtung hinweist. Die Verarbeitungsrichtung durch die Tabelle hindurch wird durch die Karten-Bits gesteuert, von denen jede Zeile auf die nächste aktive oder leere Zeile hinweist. Der Eintrittspunkt in die Karte oder in die Spur wird durch den Aktiv-Pointer oder Leerzeilen-Pointer gekennzeichnet.
Es sei angenommen, daß die Abtastung nur die vier eben diskutierten Muster-Befehle enthält, daß der PPR von Daten, die aus dem Bilddaten-Speicher ausgelesen worden sind, aktualisiert worden ist und daß die aktiven Muster jetzt in den Muster-Arbeitspuffer hinein verarbeitet werden. Die Verarbeitung der PPR-Daten wird dadurch begonnen, daß der auf die Hetzte aktive Zeile hinweisende Pointer befragt bzw. abgefragt wird, der in dem Ausführungsbeispiel auf die Zeile 03 hinweist (Fig. 8e). Das HH-Komplement wird inkrementiert (was durch HH1 dargestellt ist), da eine Zeile dieses Musters verarbeitet wird. Die Muster-Bibliotheks-RAM-Adresse SS SS wird verwendet, um in die Muster-Daten-Bibliothek hineinzugehen und die Muster-Daten-Information zu extrahieren (in Sequenzlängen-Kodierung), und dieser Kode wird verwendet, um die bezeichnete Anzahl von Bit in dem Muster-
323960?
Arbeitspuffer an der geeigneten Wort- und Bit-Position einzustellen, die durch die Spaltenadresse XX XX des PPR identifiziert ist. Die Tatsache, daß die Daten in Zeile 03 verarbeitet worden sind, wird in Fig. 8e lediglich fiir Erläuterungszwecke dadurch angezeigt, daß in einigen Bytes dieser Zeile Schrägstriche angebracht sind, sowie durch das Zeichen HH'. Weder der Leerzeilen-Pointer noch der Aktivzeilen-Pointer müssen beim Verarbeiten des ersten Musters geändert werden, außer, wie dies unten beschrieben wird, das Inkrementieren von HH zeigt an, daß dieses spezielle Muster jetzt vollendet ist und daß die Zeile gelöscht worden ist.
Die Karten-Adresse 02 der Zeile 03, die gerade verarbeitet worden ist, identifiziert die nächste aktive Zeile. Daher wird die Information in der Zeile 02 des PPR als nächstes in den Muster-Arbeitspuffer hinein verarbeitet und diese Verarbeitung von aktiven Zeilen wird fortgesetzt, wobei die Karten-Adresse einer jeden Zeile, die verarbeitet wird, dazu verwendet wird, die Adresse der nächsten zu verarbeitenden Zeile zu identifizieren. Beim Verarbeiten von Zeilen des PPR werden lediglich die Karten-Bits geändert, um die Spur zu bilden, doch wird keine Änderung in dem Aktivzeilen-Pointer vorgenommen, bis die Verarbeitung in einer Richtung beendet is't. Die Adresse der letzten verarbeiteten Zeile wird dann in den Aktivzeilen-Pointer eingegeben. Somit ist beispielsweise dann, wenn die Zeile 00 die letzte verarbeitete Zeile ist, wenn der Durchlauf von unten nach oben erfolgt, wird der auf die letzte aktive Zeile weisende Pointer in 00 geändert (Fig. 8h), so daß er auf den Beginn der Spur für die nächste Sequenz der Musterverarbeitung hinweist.
Die Aktualisierung des PPR (Eingeben von neuen Muster-Aufrufen bzw. -Befehlen in leere Zeilen) ist unabhängig von der Verarbeitung. Für jede Abtastzeile wird in die Tabelle zur Aktualisierung dadurch hineingegangen, daß der Leerzeilen-Pointer abgefragt wird, um den Beginn der Leer-Spur zu finden und
dann wird der Leer-Zeilen-Spur in den Karten-Bits gefolgt, wobei die Karten-Bits einer jeden Zeile zum nächsten Leerzeilen-Pointer verschoben werden, wenn diese Zeile gefüllt wird. Wenn eine leere Zeile während des Aktualisierens aktiv gemacht wird, wird diese Zeile die letzte aktive Zeile. Ihre Adresse wird in den Aktivzeilen-Pointer eingegeben und ihre Karten-Bits werden so geändert, daß sie die Adresse wiedergeben, die zuvor im Äktivzeilen-Pointer enthalten waren.
Fig. 8f stellt den PPR nach dem Verarbeiten der Zeile 02 in den Muster-Arbeitspuffer hinein dar. Beim Beenden der Verarbeitung von Zeile 02 wird ihre Karten-Adresse, die 01. gewesen ist, so geändert, daß sie die die zuvor letzte aktive Zeile 03 kennzeichnet.
Beim Verarbeiten der Zeile 02 haben ihre Karten-Bits auf die nächste zu verarbeitende Zeile hingewiesen und diese Zeile 01 wird als nächste verarbeitet. Nimmt man an, daß das Verarbeiten der Zeile 01, wie dies in Fig. 8g angegeben ist, diese Zeile leert, wobei dies die letzte Abtastlinie des Musters ist, die im PPR als Zeile 01 bezeichnet ist, so wird die Zeile 01 die letzte leere Zeile und ihre Adresse wird dann in den auf die letzte leere Zeile hinweisenden Pointer-Speicher eingegeben. Jetzt ist die nächste leere Zeile diejenige Zeile, die zuvor im Leerzeilen-Pointer gewesen ist, nämlich die Zeile 04 und diese Adresse wird in die Karten-Bits der Zeile 01 eingegeben. Zu diesem Zeitpunkt wird in dem Aktivzeilen-Pointer-Speicher keine Änderung vorgenommen.
Beim Verarbeiten der Daten im PPR werden die Karten-Bits der Zeile, die zuvor zu einer Spur von aktiven Zeilen gemacht worden waren, eine Karte. Darüberhinaus wird dann, wenn der PPR das nächste Mal von unten nach oben durchlaufen wird, eine Spur in derselben Weise zurückgelassen, wie eine Spur beim Durchlaufen von oben nach unten gemacht worden war.
3239608
Das bedeutet, daß die Karten-Bits einer jeden verarbeiteten Zeile modifiziert werden, um die Adresse der zuvor verarbeiteten Zeile zu kennzeichnen. Somit identifizieren die Karten-Bits der Zeile 01 (Fig. 8g) die Zeile OO als die nächste aktive Zeile. Diese Zeile wird dann verarbeitet (Fig. 8h), wobei ihre Karten-Bits in die Adresse der fetzten aktiven Zeile 02 geändert werden (da die Zeile 01 nicht langer aktiv ist) und der aktive Pointer wird in 00 geändert, da die Zeile 00 die letzte verarbeitete Zeile war.
Unabhängig von der Sequenz oder den Plätzen der leeren und aktiven Zeilen in dem PPR ist es nicht erforderlich, jede Zeile abzufragen bzw. zu testen, um eine gewünschte Zeile zu finden. Der Leerzeilen-Pointer identifiziert immer die Adresse der nächsten leeren Zeile und der Aktivzeilen-Pointer identifiziert immer die Adresse der letzten aktiven Zeile. Die Karten-Bits einer jeden aktiven und einer jeden leeren Zeile liefern die gewünschte Spur, nämlich den Platz der vorausgehenden aktiven oder der nächsten leeren Zeilen.
Somit sieht man, daß der PPR eine Liste von allen Mustern in der Bibliothek zusammen mit der Bibliotheks-Startadresse eines jeden enthält. Der PPR führt ein laufendes Konto (running account) derjenigen Muster, die aufgerufen, jedoch noch nicht vollendet worden sind, das a) die Anzahl der noch zu schreibenden Muster-Zeilen, b) die Spalten-Adresse, und c) die laufende Muster-Zeilen-Startadresse (aktualisierte Adresse SS SS) des Musters in der Bibliothek enthält. Musterdaten-Verarbeitung
Die Musterdaten für die gegebene Abtastzeile werden dadurch verarbeitet, daß die kodierten Daten (von einer Zeile von Musterdaten in dem Bibliotheks-RAM) in den Muster-Arbeitspuffer in einer Weise hineinexpandiert werden, die ähnlich der Expansion der Leitbahndaten in den Leitbahn-Arbeitspuffer ist, jedoch einen wesentlichen Unterschied aufweist. Anders als der Leitbahn-Arbeitspuffer, der nur dann geändert wird,
wenn ein Spurbefehl auf einer gegebenen Abtastzeile auftaucht, wird der Muster-Arbeitspuffer gelöscht bzw. zurückgesetzt, nachdem die Daten für jede Abtastzeile an die Zeilen-Aufbau-Puffer übertragen worden sind. Dies erleichtert die Expansion der Daten in den Muster-Arbeitspuffer, da nur Einsen gesetzt werden müssen. Es muß keine Änderung durchgeführt werden, wenn Nullen verlangt werden, außer als die Spalten-Adresse zu verfolgen. Das Einsetzen von Bit-Daten in die Arbeitspuffer kann nach irgendeinem bekannten Verfahren durchgeführt werden. Beispielsweise können die Daten aus den Puffern sequentiell Bit um Bit herausgeschoben, Bits an ausgewählten Plätzen gemäß der Bestimmung durch die Spalten-Adresse und die Sequenzlänge modifiziert und sämtliche Bits in den Puffer zurückgeführt werden. Andere bekannte Techniken, wie z.B. Bit-Masken und Nachschlage-Tabellen können unter der Steuerung des Mikroprozessors verwendet werden. Für eine erhöhte Geschwindigkeit kann jeder Puffer eine zugehörige Hardware unter Steuerung ihres eigenen Programms (PROM) besitzen, um das Eingeben von Daten in den Puffer durchzuführen. Beim Expandieren der Musterdaten aus der Muster-Daten-Bibliothek in den Muster-Arbeitspuffer wird die Operation auf einer Byte-um-Byte-Basis durchgeführt. Somit wird beim Hingehen in den Muster-Bibliotheks-RAM '58 das erste Byte an der angegebenen Adresse entnommen, und, beginnend mit der durch XX XX identifizierten Spalten-Adresse werden die geeigneten Bits des Muster-Arbeitspuffers für den speziellen Lauflängen-Kode gesetzt. Dann werden die nächsten Bytes der Bibliotheks-RAM-Musterdaten in entsprechender Weise gehandhabt, bis das Null-Byte OO auftritt, das das Ende einer Musterlinie (oder die Tatsache, daß in dem Muster keine weiteren Einsen mehr gesetzt werden müssen) in dem Bibliotheks-RAM anzeigt. Ein Adressen-Pointer in der Form einer zeitweiligen Adresse in einem Hilfs- oder Notizblock-Speicher kann verwendet werden, um die Puffer-Spaltenadresse eines jeden Bytes zu verfolgen, das in den Arbeitspuffer hinein expandiert ist. Somit wird
3239608
zu der Anfangs-Spaltenadresse XX XX des speziellen Musters die Länge eines jeden Lauflängen-Kodes addiert, um so die Adresse der Bit-Position zu erzeugen, an der der nächste Lauflängen-Kode beginnt. Für einen Lauflängen-Kode von Nullen müssen keine Bits gesetzt werden, doch addiert der Notizblock-Speicher die Länge des Lauflängen-Kodes von Nullen zu der zuvor akkumulierten Spaltenadresse, um so die Bit-Position für den nächsten Lauflängen-Kode zu definieren. Die Schritte beim Lesen und Verarbeiten von Bildbefehlen und -daten werden genauer in den zugehörigen Flußdiagrammen (Fig. 11 und 12) definiert.
Wenn der PPR 62 verwendet worden ist, um ein aktives Muster zu identifizieren und wenn alle Zeilendaten eines solchen Musters aus dem Muster-Bibliotheks-RAM entnommen und in den Muster-Arbeitspuffer hinein expandiert worden sind, wird die Adresse SS SS im PPR aktualisiert, so daß für die nächste Abtastzeile die nächste Zeile von Muster-Daten eines solchen speziellen Musters in der Muster-Bibliothek verwendet wird.
Zusammenstellen der Arbeitspuffer-Daten
Nach dem vollständigen Zusammenstellen aller Bits für eine gegebene Abtastzeile in den beiden getrennten Arbeitspuffern (wobei der Leitbahn-Arbeitspuffer alle Abtastzeilen-Daten für eine Klasse vonBildkomponenten und der Muster-Arbeitspuffer alle Abtastzeilen-Daten für die andere Klasse von Komponenten enthält) können jetzt die Daten für eine vollständige Zeile, die sowohl die Leitbahn- als auch die Muster-Komponenten enthalten jetzt zusammengestellt werden. Demgemäß wird derjeweilige Inhalt der beiden Arbeitspuffer 66 und 68 über die ODER-Schaltung 70 in den Zeilen-Zusammenstell-Puffer 72 übertragen.
Die Verwendung von zwei getrennten Arbeitspuffern, bei der der Inhalt von einem oder von beiden Puffern zum Zeilen-Zusammenstell-Puffer übertragen werden, um die vollständigen
Bit-Daten für eine einzelne Abtastzeile zu liefern, hat eine Reihe von Vorteilen. Leitbahnen und Muster können elektronisch überlappt bzw. überlagert werden, wobei eines auf dem anderen liegt. Dies ist deshalb so, weil die Bit-Daten für die Leitbahn-Komponente einer gegebenen Abtast-Zeile Bits in derselben Bit-Position dieser Abtastzeile als Bits von einem oder mehreren Mustern in derselben Zeile enthalten können. Da der Muster-Arbeitspuffer nach jeder Zeile zurückgesetzt bzw. gelöscht wird, können Daten für überlagerte oder überlappende Muster selbst in zwei oder · mehr getrennte Arbeitspuffer eingegeben werden. Solche Daten können nicht nur überlagert (additiv kombiniert) sondern auch subtraktiv miteinander kombiniert werden, wie dies in Verbindung mit Fig. 13 beschrieben wird. Somit kann z.B. ein Loch in der Konfiguration eines Musters innerhalb eines Teils eines zweiten Musters positioniert werden. Die subtraktive Kombination entfernt effektiv ein Muster (Bildkomponente) von einem anderen.
Ein vereinfachtes Beispiel einer Muster- und Leitbahn-Überlagerung (additive Kombination) ist in den Fig. 9a, 9b und 9c dargestellt, in denen Fig. 9a zehn Bit-Positionen einer Abtastzeile wiedergibt, die im Leitbahn-Arbeitspuffer enthalten sind. Fig. 9b zeigt dieselben zehn Abtastzeilen-Positionen, die im Muster-Arbeitspuffer enthalten sind, und Fig.9c zeigt den Inhalt der Leitbahn- und Muster-Arbeitspuff er der Fig. 9a und 9b, nachdem er durch die ODER-Schaltung in den Zeilen-Zusammenstell-Puffer übertragen worden ist. Dort, wo die Bit-Position sowohl des Leitbahn- als auch des Muster-Arbeitspuffers Null ist, ist die entsprechende Bit-Position des Zeilen-Zusammenstell-Puffers ebenfalls Null. Wo die Bit-Position sowohl des Leitbahn- als auch des Muster-Arbeitspuffers Eins ist, ist die entsprechende Bit-Position in dem Zeilen-Zusammenstell-Puffer ebenfalls Eins. Wenn entweder die Bit-Position des Leitbahn-Puffers oder dieselbe Bit-Position des Muster-Arbeitspuffers Eins ist, ist die
entsprechende Bit-Position des Zeilen-Zusammenstell-Puffers ebenfalls Eins.
Die Verwendung von zwei verschiedenen Arbeitspuffern erlaubt die Verwendung des 2D-Kompressions-Verfahrens für Leitbahnen und ermöglicht ebenso ein Vorlöschen (pre-clearing) für den Muster-Arbeitspuffer. Somit kann jede der beiden Bildkomponenten optimal gehandhabt werden, ohne daß Kompromisse bei der Handhabung der jeweils anderen Komponente getroffen werden müssen. Die 2D-Technik erfordert, daß die Puffer Daten von vorausgehenden Zeilen zurückbehalten, auf denen keine Daten-Änderungen aufgetreten sind. Der vollständig unabhängige und getrennte Muster-Arbeitspuffer wird jedoch für jede Zeile vorgelöscht, so daß die Bit-Muster für eine Muster-Zeile in der Muster-Bibliothek vollständig unabhängig von den zuvor verarbeiteten Zeilen sein können. Dieses Vorlöschen des Muster-Arbeitspuffers erlaubt eine schnellere Verarbeitung, da nur Einsen aber keine Nullen gesetzt werden müssen, wenn Daten in den Puffer hinein expandiert werden. Darüber- . hinaus können, wenn dies erforderlich oder wünschenswert erscheint, für eine weitere Geschwindigkeitserhöhung getrennte Mikroprozessor-Steuerungen verwendet werden, von denen jeweils eine für jeden der Arbeitspuffer zuständig ist. Durch die Verwendung des unabhängigen Muster-Arbeitspuffers ist jeder Muster-Aufruf unabhängig von jedem anderen Muster-Aufruf. Demgemäß kann dann, wenn eine Abtastzeile eine Anzahl von Muster-Aufrufen enthält, eine nicht sequentielle Verarbeitung von Muster-Aufrufen (Abtastzeilen) verwendet werden, was den Einsatz von mehreren Prozessoren für eine erhöhte Geschwindigkeit ermöglicht. Eine solche Anordnung ist bei der Handhabung von Leitbahnen nicht praktikabel, da jede Zeile in Sequenz konstruiert werden muß, bevor Änderungen angebracht werden können, um eine folgende Leitbahn-Abtast zeile zu konstruieren.
Die Übertragung von zusammengestellten Daten aus den Arbeitspuffern in die Zeilen-Zusammenstell-Puffer wird durch die Direkt-Speicher-Zugriff-Steuerung 76 (DMA) gesteuert. Die Verwendung einer DMA-Steuerung ermöglicht es, diese Übertragung durchzuführen, ohne den Prozessor 50 durchlaufen zu müssen und erhöht auf diese Weise die Systemgeschwindigkeit. Die DMA-Steuerung ist, wie in Fig. 10 dargestellt, im wesentlichen eine Status-Vorrichtung (state machine), die einen Satz von sequentiellen 8-Bit-Steuersignalen aus einem programmierbaren Speicher 78 liefert, der durch die Ausgangs signale eines Zählers 80 in Antwort auf einen DMA-Takt 82 getriggert wird.
Nach der Vervollständigung bzw. Beendigung der Expansion von Leitbahn- und Muster-Daten für eine gegebene Abtastzeile in die Arbeitspuffer hinein, inkrementiert die DMA-Steuerung einen Adressenzähler 84, der sowohl die Arbeitspuffer 66 und 68 als auch den Zeilen-Zusammenstell-Puffer 72 adressiert. Wenn mehrere Zeilen-Zusammenstell-Puffer verwendet werden, erfolgt die Übertragung von Daten von den Arbeitspuffern in einen der Puffer 72, der durch eine Zeilen-Zusammenstell-Puf fer-Steuerung 86 ausgewählt worden ist. Bei einem Ausführungsbeispiel wird die Übertragung von Daten aus den Arbeitspuffern zu den Zeilen-Zusammenstell-Puffern mit 32 Bits gleichzeitig durchgeführt und der Adressenzähler 84 identifiziert somit Puffer-Stellen, von denen und in die diese Übertragung stattfindet.
Der Schreibstrahl-Positionswandler 20 triggert einen Daten-Taktgenerator 88, der Taktimpulse liefert, die mit der Schreibstrahl-Position synchronisiert sind. Die Impulse des Taktgenerators 88 inkrementieren einen zweiten Adressenzähler 90, der die Taktimpulse durch 32 dividiert und für jeweils 32 Taktimpulse eine neue Adresse liefert. Ein Zeilenende-Detektor 94 verfolgt die vom Zähler 90 gezählten Adressen, um das Ende einer Abtastzeile zu signalisieren und die Zeilen-
Zusammenstell-Steuerung 86 dazu zu veranlassen, die nächste Gruppe von Zeilen-Zusammenstell-Puffern 72 auszuwählen, deren Inhalt an das Schieberegister 74 ausgelesen werden soll. Erfindungsgemäß muß nur ein einzelner Zeilen-Zusammenstell-Puffer verwendet werden und die Steuerung 86 kann weggelassen werden. In einem solchen Fall würden die Daten von den Arbeitspuffern zu dem einzelnen Zusammenstell-Puffer übertragen werden und nur nachdem diese Übertragung vervollständigt bzw. beendet ist, würden die Daten von dem Zusammenstell-Puffer in das Schieberegister übertragen. Die Anzahl der aufgerufenen Muster wird sich jedoch von Zeile zu Zeile ändern. Im allgemeinen kann eine einzelne Abtastzeile eine große Anzahl von Musteraufrufen bzw. Musterbefehlen enthalten und eine unmittelbar nachfolgende Zeile kann weniger oder keine solche Befehle aufweisen. Der PPR muß für jeden Musteraufruf modifiziert werden. In ähnlicher Weise tritt die Expansion in den Leitbahn-Arbeitspuffer am Beginn einer jeden Leitbahn auf, wo die Bildzeilen-Daten sich von einer vorausgehenden Bildzeile ändern.Insbesondere für vertikale und horizontale Leitbahnen kann jedoch eine Anzahl von Zeilen vorhanden sein, in denen keine Änderungen in dem Leitbahn-Arbeitspuffer durchgeführt werden müssen. Demgemäß ändert sich die Zeit, die zum Auffüllen der Arbeitspuffer erforderlich ist, von Zeile zu Zeile. Zur Anpassung an diese Veränderung und zur Erhöhung der Verarbeitungsgeschwindigkeit kann eine Anzahl von identischen Zeilen-Zusammenstell-Puffern (beispielsweise vier) vorgesehen werden. Diese werden mit aufeinanderfolgenden Abtastzeilen gefüllt, wobei sie z.B. derjenigen Zeile um drei Zeilen vorausarbeiten, die zum Schieberegister übertragen werden soll und hinausgeschoben wird, um den Schreibstrahl zu modulieren. Somit wird für diejenigen Zeilen, die wenig Muster-Befehle oder wenig Änderungen in den Leitbahn-Arbeitspuffern aufweisen, die Zusammenstellung in den Arbeitspuffern in einem relativ kurzen Zeitraum vervollständigt bzw. durchgeführt und die zusammengestellten Daten können schnell in einen der Zeilen-Zusammenstell-Puffer übertragen
werden, so daß mehrere der Zeilen-Zusammenstell-Puffer mit aufeinanderfolgenden Zeilen relativ schnell gefüllt werden können. Beim Auftreten einer Zeile, die eine vergleichweise längere Zeit für die Verarbeitung benötigt, können die Daten von einem oder mehreren der zuvor gefüllten Zeilen-Zusammen- ■ stell-Puffer zum Schieberegister und dann zum Laser-Modulator hinausgeschoben werden, während der PPR aktualisiert wird und die Arbeitspuffer gefüllt werden, wodurch ein glatterer kontinuierlicher und schnellerer Datenfluß zum Schieberegister und Modulator erzeugt wird.
Während der übertragung von den Arbeitspuffern zu den Zeilen-Zusammenstell-Puf fern ist die Bit-Position sowohl der Arbeitspuffer als auch der Zeilen-Zusammenstell-Puffer unter der Steuerung des Adressenzählers 84. Die Bit-Position von Daten, die vom Zeilen-Zusammenstell-Puffer zum Schieberegister 74 übertragen werden sollen, wird jedoch durch die Schreibstrahl-Position gesteuert und befindet sich somit unter der Kontrolle des Däten-Taktgenerators 88 und des Adressenzählers 90. Demgemäß sind die Zeilen-Zusammenstell-Puffer 72 so angeordnet, daß sie alternativ sowohl den Adressenzähler 84 (zur übertragung von Daten aus den Arbeits-Puffern) als auch dem Adressenzähler 90 (zur übertragung von Daten zum Schieberegister 74) adressiert werden. Diese alternativen Adressen werden den Zeilen-Zusammenstell-Puffern über einen Multiplexer 92 unter Kontrolle der DMA-Steuerung 76 zugeführt. Letztere betreibt den Multiplexer, um die Zeilen-Zusammenstell-Puffer 72 vom Adressenzähler 84 für die übertragung von Daten aus den Arbeitspuffern und vom Adressenzähler 90 für die Übertragung von Daten von den Zeilen-Zusammenstell-Puffern zum Schieberegister zu adressieren.
Bei der Verwendung von mehrfachen Zeilen-Zusammenstell-Puffern wird jeder Puffer der Reihe nach mit aufeinanderfolgenden Abtastzeilen aus den Ärbeitspuffern geladen. In ähnlicher Weise wird beim Auslesen aus den Zeilen-Zusammenstell-Puffern
diese einer nach dem anderen in das Schieberegister ausgelesen. Nachdem ein erster der Zeilen-Zusammenstell-Puffer geladen worden ist, kann er dazu verwendet werden, sofort die Übertragung seiner Daten zum Schieberegister zu beginnen, obwohl der nächste Puffer noch aus den Arbeits-Puffern geladen wird. Somit kann beim Schreiben aus einem der Zeilen-Zusammenstell-Puffer in das Schieberegister die Übertragung von Daten aus den Arbeitspuffern in einen anderen Zeilen- · Zusammenstell-Puffer begonnen werden.
Beim Auftreten eines Zeilenende-Signals vom Zeilenende-Detektor 94 wählt die Zeilen-Zusammenstell-Puffer-Steuerung 86 den nächsten Puffer aus, aus dem Daten zu einem Modulator hinausgeschoben werden können. Bei diesem Ausführungsbeispiel werden die Daten aus dem Zeilen-Zusammenstell-Püffer zum Schieberegister mit 32 Bits gleichzeitig geschoben und aus dem Schieberegister bit-weise, d.h. immer nur ein Bit gleichzeitig ausgelesen. Nach dem Herausschieben der 32 Bits aus dem Schieberegister inkrementiert der Adressenzähler 90 die Zeilen-Zusaitimenstell-Puffer-Adresse für die Übertragung der nächsten 32 Bits zum Schieberegister.
Es sei darauf hingewiesen, daß verschiedene spezielle Anordnungen für die Übertragung von Daten von den Zeilen-Zusammenstell-Puf fern zum Schieberegister und zum Modulator verwendet werden können, ohne von den Grundsätzen der Erfindung abzuweichen, da viele Anordnung bekannt sind, die dazu dienen, zusammengestellte Zeilen-Daten für die Erzielung einer Schreibstrahl-Steuerung einzusetzen. Bei dem hier beschriebenen Ausführungsbeispiel werden Daten aus dem Schieberegister durch eine Polaritäts-Steuer-Schaltung 96 übertragen, die wahlweise alle Bits invertieren kann, um das Schreiben entweder eines positiven oder eines negativen Bildes zu ermöglichen. Die Zeilen-Daten werden dann durch eine Daten-Ein/Aus-Steuerung 98 geführt, die durch einen nicht dargestellten Positions-Wandler gesteuert wird, der so angeordnet ist, daß er die
-OD-
Position der Schreibtabelle bzw. Schreibtafel detektiert, wenn sie sich von einer Abtastzeile zur nächsten bewegt. Diese Steuerung wird dazu verwendet, das Schreiben des Bildes in einer speziellen Abtastzeile an einer speziellen Stelle des Schreibmediums zu beginnen. Mit anderen Worten, die Schreibtafel bzw. -tabelle kann von einer Abtastzeile zur nächsten bewegt werden, wobei die Steuerung 98 so gesteuert ist, daß sie das Schreiben von Daten verhindert. Dies wird durch eine zeitweilige Blockierung des Datentaktgenerators 88 erzielt, die so lange anhält, bis eine gewünschte Tafelposition erreicht worden ist. Die Daten werden dem Laser-Modulator 22 in der oben beschriebenen Weise zugeführt.
Flußd iagramme
Das Flußdiagrairan aus Fig. 11 ist eine allgemeine Darstellung der Basisschritte,' die beim Auslesen von Information aus der Muster-Daten-Speicher-Bibliothek 58 und dem Bilddaten-Speicher 64 von Bedeutung sind. Es sei daran erinnert, daß es viele Bildzeilen geben kann, in denen keine Befehle, d.h. weder Leitbahn-Befehle noch Muster-Befehle vorhanden sind. Dennoch können noch aktive Muster vorhanden sein, die auf vorausgehenden Zeilen aufgerufen worden sind und diese Muster müssen noch immer in den Muster-Arbeitspuffer 66 hinein verarbeitet werden. Auch müssen die Inhalte der beiden Arbeitspuffer zu den Zeilen-Zusammenstell-Puffern für jede Abtastzeile übertragen werden. Demgemäß muß, wie dies ausführlich in Fig. 11 dargestellt ist, für jede Zeile entschieden werden, ob auf der Zeile irgendwelche Befehle vorhanden sind oder nicht. Dies ist mit dem Flußdiagramm-Schritt 100 dargestellt. Wenn auf dieser Zeile Befehle bzw. Aufruf-Befehle gefunden werden, werden die Muster-Aufrufbefehle gelesen und der Muster-Verarbeitungs-RAM (PPR) 62 wird gemäß Schritt 102 aktualisiert. Gemäß Schritt 104 werden Leitbahn-Daten gelesen, wobei die Leitbahn-Aufrufbefehle in einem Zwischenspeicher-Bereich der Muster-Hinweistabelle LPR 60 gespeichert werden, die auch als 2D FIFO bezeichnet wird
(zur Speicherung von Leitbahn- oder 2D-Befehlen auf einer first-in-first-out-Basis). Wenn dies durchgeführt worden ist, überprüft das System im Schritt 106, ob der direkte Speicherzugriff DMA vervollständigt bzw. beendet worden ist oder nicht. Es sei daran erinnert, daß in dem DMA die Inhalte des Leitbahn-Arbeitspuffers 68 und des Muster-Arbeitspuffers 66 in die Zeilen-Zusammenstell-Puffer und dann zum Schieberegister für die Steuerung des Laser-Modulators übertragen werden.
Nach Beendigung des DMA stehen die Leitbahn- und Muster-Arbeitspuffer wieder für die Aufnahme von Leitbahn- und Musterdaten zur Verfügung. Somit wird das System hierauf aktive Muster und Muster-Leitbahn-Aufrufbefehle in den Schritten 108 und 110 verarbeiten. Dann kann die DMA im Schritt 112 beauftragt werden und der Abtastzeilen-Zählwert wird im Schritt 114 inkrementiert. Wenn auf der nachfolgenden Zeile keine Befehle bzw. Aufrufe vorhanden sind, beginnt das System Muster und Leitbahnen zu verarbeiten, in dem der direkte Speicherzugriff durchgeführt und der Zeilen-Zählwert erhöht wird. Dies wird so lange wiederholt, bis festgestellt wird, daß eine Zeile erreicht worden ist, die Muster- oder Leitbahn-Auf ruf befehle enthält, worauf diese in der oben beschriebenen
Weise gelesen und die Muster- und Leitbahn-Befehle verarbeitet werden.
Die Fig. 12a, 12b und 12c umfassen gemeinsam ein mehr ins einzelne gehendes Flußdiagramm der im Flußdiagramm der Fig. 11 dargestellten Schritte. Diese drei Figuren ergeben ein vollständiges Flußdiagramm, wenn man Fig. 12b unmittelbar unter der Fig. 12a und Fig. 12c unmittelbar rechts neben der Fig. 12b anordnet. In dem Flußdiagramm der Fig. 12a, 12b und 12c ist der Bilddaten-Speicher 64 als S-100 bezeichnet. Es wird angenommen, daß nach dem Auslesen der Floppy-Disc von der Datenquelle oder dem Primärrechner die Gruppe-III-Daten für jede Abtastzeile sortiert werden, um alle Muster-Aufruf-
befehle auf einer gegebenen Abtastzeile zu gruppieren und nacheinander in Sequenz indem S-100-Speicher zu speichern, sowie alle Leitbahn-Aufrufbefehle auf derselben Abtastzeile zu gruppieren und in ähnlicher Weise nacheinander in Sequenz und unmittelbar auf den letzten Muster-Aufrufbefehl für die Abtastzeile zu speichern. Es wird für dieses Flußdiagramm weiterhin angenommen, daß alle Leitbahnbefehle vollständig in drei Bytes zugeordnet sind. Daher enthält in dem S-1OO-Speicher jede Zeile von Bilddaten für eine gegebene Abtastzeile alle auf dieser Zeile aufgerufenen Muster, worauf alle die auf dieser Zeile aufgerufenen Leitbahnen folgen. Bei den in diesen Flußdiagrammen beschriebenen Schritten wird die
-Pointer-Bibliotheks-Hinweis-Tabelle bzw. der Bibliotheks /RAM (LPR), wie zuvor erwähnt, für eine zeitweilige Speicherung der Leit- ! bahn-Befehle verwendet, wie sie aus dem Bilddaten-Speicher S-100 ausgelesen werden. Somit werden in dem LPR 6O der Fig. 6 die ersten 256 Adressen hinauf bis zur hexadezimalen Adresse OOFF als die Bibliotheks-Hinweistabelle verwendet, die die in Fig. 4 dargestellten Informationen enthält. Alle nachfolgenden Adressen mit der hexadezimalen Schreibweise 0100 und höher werden für eine zeitweilige Speicherung der Leitbahn-Aufrufbefehle verwendet und werden kollektiv als 2D FIFO * bezeichnet. -
Beginnend mit Schritt 115 (Fig. 12a) wird der Muster-Arbeitspuffer 66 gelöscht bzw. zurückgesetzt und werden mit Schritt 116 ein Prozessor-Zeilenende PEOL und ein Zeilen-Lesbefehl-Flag R11 gesetzt. Dieses Setzen von R11 dient nur zur Initialisierung. R11 wird, wie weiter unten beschrieben, an einem anderen Punkt gesetzt, um das Lesen der nächsten Zeile von Befehlen zu ermöglichen. Das Prozessor-Linienende autorisiert, wenn es gesetzt ist, den Start der DMA am Ende einer Laser-Abtastung (wie es durch einen vollständigen Zählwert der 18000-Zeilenelemente festgestellt wird). Das DMA wird nach der Vervollständigung einer Abtastung begonnen und vor dem Start der nächsten Abtastung beendet. Für eine 15 Millisekunden
betragende Abtastlinie-Wiederholrate stehen beispielsweise 5 Millisekunden vom Ende der einen Abtastung bis zum Start der nächsten zur Verfügung. Die Ri1-Flag wird dazu verwendet, um anzuzeigen, ob nach der Vervollständigung der Verarbeitung von Mustern und Leitbahnen eine neue Zeile von Befehlen gelesen werden soll oder nicht. Dann werden gemäß Schritt 118 zwei Bytes einer neuen Zeilennummer YY YY aus dem S-1OO ent-.
wird
nommen, diese Nummer/im Notizblock-Speicher aufbewahrt und
die S-100-Adresse wird inkrementiert.
Ein Sync-Impuls vom Abtastspiegel inkrementiert die Zeilenzählung im Schritt 120 und im Schritt 122 wird die LPR-Adresse auf die hexadezimale Adresse 0100 gesetzt. Dies ist die erste Zeile des 2D FIFO. Im Schritt 124 wird ein FO in das Byte 0 des LPR gesetzt, um den Anfang einer neuen Zeile von Bilddaten zu kennzeichnen; dies arbeitet als Befehls-Terminator für das Lesen von Leitbahn-Befehlen aus dem 2D FIFO. Nach dem Initialisieren der LPR wird die vorhandene Zeilen-Nummer im Schritt 126 mit dem Zeilen-Zählwert verglichen, um festzustellen, ob diese spezielle Zeile irgendwelche Leitbahn- oder Muster-Befehle enthält. Die Zeilen-Nummer ist das hexadezimale YY YY der Gruppe-III-Daten und war in Schritt 118 gelesen worden. Dieser frühere Schritt ist aufgetreten, wenn beim Vervollständigen bzw. Beenden der Verarbeitung der Befehle und beim Testen der nächsten Zeile gefunden wurde, daß der Zeilenzählwert die vorübergehend gespeicherte nächste Zeilen-Nummer erreicht hat (wobei nur Zeilen mit Befehlen eine Zeilen-Nummer besitzen). Zu diesem Zeitpunkt wird die neue Zeilen-Nummer YY YY aus dem S-100-Speicher entnommen, komplementiert und in einem Notizblock-Speicher gespart bzw. zwischengespeichert. Es ist diese Zeilen-Nummer, die im Schritt 126 mit dem Zeilen-Zählwert verglichen wird. Das Komplement der Differenz Delta wird in einem geeigneten Register gespeichert. Wenn die Differenz nicht gleich Null ist, so müssen keine Befehle gelesen werden, worauf im Schritt 128 die Lese-Befehle-Flag R11 gelöscht bzw. zurück-
323960S
gesetzt wird und das System fortfährt, aktive Muster zu verarbeiten und die DMA durchzuführen, wie dies durch die auf "B" folgende Sequenz von Schritten (Schritte 154 und folgende in Fig. 12a) gekennzeichnet ist.
Wenn Delta gleich Null ist, stimmt der Zeilenzählwert mit der gespeicherten Zeilen-Nummer überein und das System erreicht einen Status, der als Zeilen-Match bezeichnet wird, und bei dem die Leitbahn- und Muster-Befehle aus dem S-100 ausgelesen werden. Um das Lesen der S-100-Daten zu starten, wird die Adresse des an der höchstwertigen Stelle stehenden Bytes des LPR auf 00 gesetzt (Schritt 130), so daß auf die Hinweistabelle statt auf das 2D FIFO verwiesen wird, und hierauf wird im Schritt 132 (Fig. 12b) die Adresse der nächsten" leeren Zeile des PPR vom Leerzeilen-Pointer erhalten. Die leeren Zeilen des PPR werden dazu verwendet, um anfänglich die Befehle aufzunehmen bzw. zu halten, die vom S-100 ausgelesen werden, sogar bevor entschieden wird, ob es sich bei diesen Befehlen um Leitbahn-Aufrufe oder Muster-Aufrufe handelt. Wenn es sich um Leitbahn-Aufrufsbefehle handelt, werden sie entfernt und in dem 2JD FIFO plaziert. Wenn es sich um Muster-Aufrufsbefehle können sie bleiben. Die Bytes 4 und des PPR werden dazu verwendet, zeitweilig die S-100-Adressen zu speichern. Demgemäß werden die leeren Zeilen des PPR anfänglich lediglich als Zwischenspeicher verwendet. Die Adresse des PPR wird auf die nächste leere Zeile gesetzt, die vom Pointer erhalten wird, und die S-100-Adresse, die zuvor in einem Notizblock-Speicher gespeichert worden war (wie unten noch erläutert wird), wird vorübergehend in den Bytes 4 und 5 des PPR gespeichert. Dies ist die Adresse des höchstwertigen Bytes der Spaltenadresse einer Leitbahn oder eines Musters (oder es kann ein F sein, um den Start einer neuen Zeile von Bilddaten zu signalisieren). Dann wird im Schritt 134 das erste Byte (Spaltenadresse) der S-100-Daten in das Byte 3 des PPR übertragen. Es sei daran erinnert, daß das an höchstwertiger Stelle stehende Bit dieses Bytes eine 1 ist,
wenn es sich um einen Musterbefehl handelt r und eine Null, wenn es sich um einen Leitbahn-Befehl handelt. Demgemäß wird im Schritt 136 das höchstwertige Bit dieses Bytes inspiziert bzw. abgefragt . Nimmt man an, daß es sich bei den S-100-Daten um einen Leitbahn-Befehl handelt, so ist dessen erstes Byte gleich OXX und sein erstes Bit ist eine Null. Somit ist bekannt, daß der Befehl ein Leitbahnbefehl sein muß und gemäß Schritt 138 wird die LPR-Adresse auf die erste 2D-FIF0-Adresse, nämlich den hexadezimalen Ausdruck 0100 gesetzt. Jetzt werden die drei Bytes des Leitbahn-Aufrufs vom S-100 in den 2D FIFO übertragen (wobei für die Zwecke dieses Flußdiagramms angenommen wird, daß die Leitbahn-Befehle alle nur in Form von drei Bytes dargeboten werden). Das erste Byte der S-100-Daten OXX, das zunächst im Schritt 134 im PPR-Byte 3 gespeichert worden ist, wird im Schritt 140 in das LPR-Byte Null übertragen. Die S-100-Adresse wird im Schritt 142 durch Änderung der Bytes 4 und 5 des PPR inkrementiert. Jetzt wird das zweite Byte der S-100-Daten XX aus dem S-100 entnommen und in das 2D-FIF0-Byte 1 eingebracht, und die S-100-Adresse wird erneut inkrementiert, so daß das dritte Byte der S-100-Daten 1/OLL in das Byte 2 des 2D FIFO übertragen werden kann; dies geschieht in den Schritten 144, 145 und 146. Die 2D-FIF0-Adresse wird im Schritt 147 inkrementiert und im Schritt wird die S-100-Adresse durch Änderung derBytes 4 und 5 des PPR erneut inkrementiert und es wird das nächste Byte des S-100 (welches das erste Byte des nächsten 2D-Aufrufs oder der nächsten Befehls-Zeile ist) zum Byte 0 des 2D FIFO übertragen (Schritt 149). Wenn ein weiterer 2D-Befehl dem ersten folgt, ist das hochstwertxge Bit des Bytes Null des 2D- FIFO gleich Null und dieser folgende 2D-Befehl wird in die nächste Zeile des 2D FIFO eingesetzt. Wenn dieses hochstwertxge Bit des 2D-FIF0-Bytes Null gleich Eins ist, dann sind die folgenden Daten FO (F bedeutet vier binäre Einsen) und es ist bekannt, daß der nächste Datenblock im S-100 eine neue Abtastzeile von Befehlen ist.
Wie zuvor erwähnt, sind alle Leitbahn-Befehle zusammengruppiert worden und folgen auf sämtliche Befehlsaufrufe für eine gegebene Abtastzelle. Daher bedeutet das FO, daß das Lesen von Leitbahnbefehlen (und auch von Musterbefehlen; beendet ist und das System fährt fort, aktive Muster und Leitbahnbefehle wie in der Sequenz "A" zu verarbeiten (Fig. 12a, Schritte 151 und folgende). In dieser Sequenz wird die LPR-Adresse im Schritt 151 auf die erste Zeile des 2D FIFO gesetzt und die S-100-Adresse wird im Schritt
152 inkrementiert und im Notizblock-Speicher aufgehoben bzw. zwischengespeichert. Die jetzt nach dem Schritt im Notizblock-Speicher enthaltene Adresse ist die Adresse der nächsten Zeilen-Nummer YY YY, die auf das FO folgt, das in das Byte Null des 2D FIFO im Schritt 149 übertragen worden ist.
Wenn die DMA vervollständigt worden ist, was im Schritt
153 entschieden wird, wird die Verarbeitung der aktiven Muster wie zuvor beschrieben im Schritt 154 durchgeführt, wobei die aktiven Zeilen der Muster-Verarbeitungstabelle PPR verwendet werden, um Zeilen der Musterdaten aus der Muster-Bibliothek zu entnehmen und diese Daten in den Muster-Arbeitspuffer einzugeben. In ähnlicher Weise werden im Schritt 155 die Leitbahn-Befehle dadurch verarbeitet, daß diese von dem 2D FIFO in den Leitbahn-Arbeitspuffer expandiert werden.
Bei der Beendigung der Verarbeitung wird im Schritt 156 die Zeilenlese-Flag R11 inspiziert bzw. abgefragt. Wenn sie gesetzt ist, erfordert die nächste Zeile das Lesen von Befehlen. Wenn R11 gelöscht ist, sind keine Befehle auf der nächsten Zeile und der Muster-Arbeitspuffer wird im Schritt 157 gelöscht. Das Prozessor-Zoilenende wird im Schritt 158 gesetzt, wodurch die DMA autorisiert wird zu beginnen, und es wird im Schritt 159 Delta inkrementiert, so daß im Schritt 160 entschieden werden kann, ob eine
neue Zeile zu lesende Befehle besitzt oder nicht. Wenn Delta noch nicht Null ist, erfordert die nächste Zeile lediglich ein Verarbeiten von Mustern und die Expansion von Leitbahn-Befehlen, und dies wird nach der Vervollständigung der DMA erledigt. Dieser Zyklus (Schritte 154 bis 160) wird wiederholt, bis Delta gleich Null ist.
Wenn sich nach dem Inkrementieren von Delta im Schritt 160 zeigt, daß Delta gleich Null ist, wird im Schritt 161 die Zeilenlese-Flag Ri 1 gesetzt, e:; ist ein Zeilen-Match vorhanden und das System kehrt zum Schritt 130 (Fig. 12a) zurück. In den auf Schritt 130 folgenden Schritten werden Befehle auf der Zeile gelesen, deren Zeilen-Nummer im Notizblock-Speicher gespeichert worden ist. Nach Vervollständigung von Schritt 150 (alle 2D-Befehle gelesen) weist die S-100-Ädresse auf den Anfang der nächsten Zeile FO. Fortschreitend zu "A" (Schritt; 151) wird die S-100-Adresse inkrementiert, so daß sie auf die nächste Zeilen-Nummer YY weist. Nach der Beendigung der Verarbeitung zeigt jetzt der Schritt 156, daß R11 gesetzt ist und das System kehrt zum Schritt 115 zurück. Es wird die nächste Zeilen-Nummer gespeichert und unter der Annahme, daß sie nicht fortlaufend der vorausgehenden einen Befehl tragenden Zeile folgt, wird Delta nicht gleich Null sein, so daß R11 gelöscht (Schritt 128) und der Sequenz "B" gefolgt wird.
Es sei nun angenommen, daß beim Schritt 136 (Fig. 12b), in dem das höchstwertige Bit des ersten Bytes des Befehls untersucht wird, daß dieses Bit gleich Eins ist. Eine Eins in diesem Bit kann bedeuten, daß entweder ein Musteraufruf oder der Anfang einer neuen Zeile, d.h. ein FO vorliegt. Demgemäß werden im Schritt 170 (Fig. 12c), sämtliche nächsten vier Bits, d,h* der höchstwertige Abschnitt des PPR-Bytes 3 inspiziert bzw. untersucht, um festzustellen, ob die nächsten Daten eine neue Zeilen-Nummer F (alle Bits sind Einsen) oder einen Musterbefehl X (nicht alle Bits
BAD ORiGSMAL
sind Einsen) definieren. Die Abtastzeilen-Länge ist nicht groß genug, um eine Spaltenadresse zu liefern, in der alle vier der höchstwertigen Bits gleich Eins sind. Wenn der Schritt 170 eine neue Zeile von Befehlen erkennen läßt, dann geht das System zur Sequenz "A" und es beginnt die Muster- und Leitbahnbefehlsverarbeitung nach dem Setzen der LPR-Adresse und dem Inkrementieren der S-100-Adresse in den Schritten 151 und 152.
Wenn im Schritt 170 ein Musterbefehl bzw. -aufruf identifiziert wird, werden die PPR-Karten- und -Pointer-Bits aktualisiert, wie dies in Verbindung mit Fig. 8 beschrieben wurde. Der letzte Aktivzeilen-Pointer wird im Schritt in einem zeitweiligen Notizblock gespeichert und in den Schritten 172, 173 und 174 werden die Karten-Bits und die Pointer aktualisiert,der nächste Leerzeilen-Pointer in den Aktivzeilen-Pointer-Speicher übergeführt, die Karten-· Bits dieser PPR-Zeile vom Byte Eins in den nächsten Leerzeilen-Pointer übergeführt und die Spur (trail) aus dem letzten Aktivzeilen-Pointer-Speicher in Byte 1 dieser Zeile im PPR übergeführt. Das erste Byte dieses Muster-Aufrufs 1XX war im Schritt 134 zum PPR-Byte 3 übertragen worden und die S-100-Adresse dieses Bytes war im Schritt 132 in den PPR-Bytes 4 und 5 untergebracht worden. Jetzt wird die S-100-Adresse in den PPR-Bytes 4 und 5 im Schritt inkrementiert, um auf das zweite Byte des Muster-Aufrufs hinzuweisen und dieses zweite Byte wird vom S-100 zum Byte 2 des PPR im Schritt 176 übertragen. Die S-100-Adresse in den PPR-Bytes 4 und 5 wird im Schritt 177 erneut inkrementiert und das dritte Daten-Byte wird im Schritt 178 vom S-100 übertragen und es wird die LPR-Adresse auf dieses Byte gesetzt. Es sei daran erinnert, daß das dritte Daten-Byte die Muster-Nummer NN ist und daß diese Muster-Nummer als LPR-Adresse für den Pointer-Tabellen-Teil des LPR verwendet wird.
Die S-100-Adresse wird jetzt im Schritt 179 inkrementiert und diese inkrementiert S-100-Adresse wird in einem Notizblock gespeichert, da sie entweder auf das erste Byte des nächsten Befehls (gleichgültig ob Muster- oder 2D-Befehl) oder den Zeilen-Designator FO der nächsten Zeile hinweist. Jetzt wird das Byte Null der durch die Muster-Nummer NN adressierten LPR-Zeile zum PPR-Byte Null übertragen (Schritt 180), um das Muster-Höhen-Komplement HH in das PPR zu transportieren. Die LPR-Bytes 1 und 2 werden in den Schritten 181 und 182 zu den PPR-Bytes 4 bzw. 5 transportiert, so daß der PPR jetzt die Muster-Bibliotheks-Adresse SS SS des Musters enthält, für das die Daten auf dieser Zeile des PPR gespeichert sind.
Nach der Beendigung des Einlesens eines Musteraufrufs in das PPR kehrt das System zum Schritt 132 zurück, um einen zweiten Aufruf zu lesen und durchläuft die Schritte 136 und 170, um festzustellen, ob der nächste Aufruf ein weiterer Musteraufruf, eine neue Zeile oder ein Leitbahnaufruf ist. Nachfolgende Muster-Aufrufe (falls vorhanden) werden gelesen, wonach alle Leitbahn-Aufrufe (falls vorhanden) auf derselben Zeile gelesen werden. Nach dem Lesen aller Leitbahn-Aufrufsbefehle oder nach dem Lesen aller Muster-Aurrufsbefehle (wenn die Zeile keine Leitbahn-Befehle enthält),geht das System zur Sequenz "A",um die Verarbeitung durchzuführen.
Subtraktive Muster
Die Verwendung von mehreren Arbeitspuffern und insbesondere die Verwendung von Muster-Arbeitspuffern, die für jede Abtastzeile vorgelöscht werden, hat den Vorteil, daß ein Muster einem anderen überlagert werden kann, wie dies oben beschrieben wurde. Tatsächlich ist dies ein additiver Prozeß, bei dem ein Muster einem anderen (beispielsweise einer Leitbahn) überlagert werden kann. Dieses Konzept wird erfindungsgemäß erweitert, um die Verwendung von
-0S-
subtraktiven Mustern zu ermöglichen, so daß das System entweder überlagern oder subtrahieren oder beides an verschiedenen Punkten eines Bildes durchführen kann. Bei der Muster-Subtraktion wird ein Teil eines Musters entfernt (tatsächlich "ausradiert"). Eine Muster-Subtraktion ist beispielsweise nützlich, wenn ein Loch in einem festen oder kompakten Feld untergebracht werden soll. Dem Stand der Technik entsprechende Systeme ermöglichen lediglich das Aufbringen eines kompakten bzw. geschlossenen Musters auf ein leeres Feld. Unter Verwendung bekannter Technik kann ein festes bzw. geschlossenes bzw. kompaktes Muster, das eine große Fläche bedeckt, mit einer sehr kleinen Datenmenge erzeugt werden, während eine größere Datenmenge erforderlich ist, um dasselbe Muster mit einem oder mehreren Löchern in ihm zu erzeugen.Die Verwendung des Muster-Subtraktions-Konzepts gemäß der Erfindung erzeugt das kompakte Muster so, daß es seine gesamte Fläche ohne irgendein Loch oder Löcher bedeckt und es können getrennte Muster für das oder die Löcher erzeugt und dann von den Muster-Bits des kompakten Musters subtrahiert werden. Die Gesamtdaten für die Erzeugung des größeren kompakten Musters und die kleineren abzuziehenden Muster kann beträchtlich geringer sein als die Datenmenge, die erforderlich ist, um dieselben Ergebnisse gemäß dem Stand der Technik zu erzielen.
Fig. 13 zeigt Teile des Systems der Fig. 6, das so modifiziert ist, daß es sowohl die Addition als auch die Subtraktion von Mustern erlaubt.
Die Leitbahn- und Muster-Daten werden in einem Leitbahn-Befehls-Speicher 200, einem Muster-Daten-Speicher 202 und einem Muster-Daten-Speicher 204 gespeichert. Der Leitbahn-Befehls-Speicher 200 und der Muster-Daten-Speicher 202 können identisch mit den höheren Adressen-Nummern (oberhalb der Adresse 256) des Bibliotheks-Hinweis- bzw. Bibliotheks-
Pointer-RAM 60 der Fig. 6 bzw. mit der Muster-Daten-Speicher-Bibliothek 58 der Fig. 6 sein. Leitbahnbefehle werden aus dem Bilddaten-Speicher 64 (in Fig. 13 nicht dargestellt) für eine zeitweilige Speicherung im Speicher 200 ausgelesen, bevor sie in den Arbeitspuffer hinein gearbeitet werden. Der Muster-Daten-Speicher 202 enthält dieselbe Information wie die Muster-Daten-Speicher-Bibliothek 58 aus Fig. 6. Zusätzlich zu dem Muster-Daten-Speicher 202 ist ein zweiter Muster-Daten-Speicher 204 vorgesehen. Der zweite Muster-Speicher kann mit dem ersten Muster-Daten-Speicher 202 identisch sein. Alternativ hierzu kann er die Form eines Funktionsgenerators annehmen, der alle Daten empfängt und speichert, die erforderlich sind, um eine gegebene Musterkonfiguration zu definieren und der hiernach Datenzeilen eines entsprechenden Bit-Musters erzeugt. Für Zwecke der Beschreibung der additiven und subtraktiven Funktion sei jedoch angenommen, daß der Muster-Daten-Speicher 204 identisch mit dem Muster-Daten-Speicher 202 und der Muster-Daten-Speicher-Bibliothek 58 ist, die zuvor beschrieben wurde. Der Speicher 204 kann andere Muster enthalten als der Speicher 202. Information wird von den Speichervorrichtungen 200, 202 und 204 zu den entsprechenden Arbeitspuffern 206, 208, 210, 212 und 214 in der Weise übertragen, wie dies oben in Verbindung mit Fig. 6 beschrieben wurde. Die Puffer 206, 208 und 214 sind bei diesem Ausführungsbeispiel additiv während die Puffer 210 und 212 subtraktiv sind. Jeder Arbeitspuffer kann eine vollständige Datenzeile zusammenstellen, doch enthält er nur eine Zeile von Daten von einer speziellen Speichervorrichtung 200, 202 oder 204. Somit enthält der Leitbahn-Arbeitspuffer 206 eine volle Zeile einer Leitbahn, enthalten die additiven und subtraktiven Muster-Arbeitspuffer 208 und 210 eine vollständige Zeile von Musterdaten aus dem Speicher 202 und in entsprechender Weise enthalten die additiven und subtraktiven Arbeitspuffer 214, 212 vollständige Datenzeilen aus der Speichervorrichtung 204. In jeder der Speichervorrichtungen 202 und 204 sind
3 Z J yb Ub -98- .··-.;: -
die darin gespeicherten Daten als additiv oder subtraktiv beispielsweise dadurch identifiziert, daß die gespeicherten Musterdaten kodiert sind oder dadurch, daß additive Muster in einem Bereich des Speichers und subtraktive Muster in einem anderen Bereich gespeichert werden. Additive Muster-' daten vom Speicher 202 (die überlagert werden sollen) werden aus dem Muster-Daten-Speicher 202 einzig und allein in den additiven Muster-Arbeitspuffer 208 hinein expandiert, während subtraktive Muster-Daten aus dem Speicher 202 (die von dem gesamten Muster oder Bild für solche Bereiche subtrahiert werden sollen, die auf dem Bild statt Einsen Nullen enthalten) werden von dem Muster-Daten-Speicher 202 einzig und allein dem subtraktiven Muster-Arbeitspuffer 210 zugeführt. In entsprechender Weise werden für den Muster-Daten-Speicher 204 Daten für subtraktive Muster vom Speicher 204 einzig und allein dem subtraktiven Muster-Arbeitspuffer 212 und Daten für additive Muster vom Speicher 204 einzig und allein dem additiven Muster-Arbeitspuffer 214 übertragen. Alle Muster-Arbeitspuffer 208, 210, 212 und 214 werden für jede Zeile vorgelöscht, während der Leitbahn-Arbeitspuffer 206 nur dann geändert wird, wenn eine Änderung durch einen Leitbahn-Befehl befohlen wird.
Jede vollständige Zeile von Daten wird vom Leitbahn-Arbeitspuffer 206, dem additiven Muster-Arbeitspuffer 208 und dem additiven Muster-Arbeitspuffer 214 über eine ODER-Schaltung 220 und dann als erste Eingangssignale einer UND-Schaltung 2 22 zugeführt. Jede vollständige Zeile von Daten aus den subtraktiven Arbeitspuffern 210 und 212 werden durch eine NOR-Schaltung 224 geführt, deren Ausgangssignale als zweite Eingangssignale der UND-Schaltung 222 zugeführt werden. Die Ausgangssignale der UND-Schaltung werden dem Zeilen-Zusammenstell-Puffer 72 und dann dem Schieberegister 74 für eine Weitergabe zugeführt, wie sie oben in Verbindung mit Fig. 6 beschrieben wurde.
BAD ORIGINAL
Position
Für eine gegebene Bit-/ längs einer Abtastzeile werden die Daten von den drei additiven Puffern 206, 208 und 214 genauso gehandhabt, wie die Daten von den Leitbahn- und Muster-Puffern 68 und 66 aus Fig. 6. Mit anderen Worten liefert die ODER-Schaltung 220 dann, wenn irgendeiner dieser Puffer eine Eins in einer gegebenen Bit-Position aufweist, eine Eins in dieser Position. Die subtraktiven Puffer 210 und 212 sind so angeordnet, daß eine Eins in irgendeiner gegebenen Bit-Position das Zurücksetzen dieses Bits im Bild-Datenstrom befiehlt. Mit anderen Worten schaltet eine Eins in einer gegebenen Bit-Position einer Zeile, die von einem subtraktiven Puffer 210 oder 212 stammt, den Laser ab, während eine Eins in irgendeiner gegebenen Bit-Position in einem der additiven Puffer 206, 208 und 214 den Laser anschaltet (oder umgekehrt). Wenn für eine gegebene Bit-Position keiner der subtraktiven Puffer eine Eins aufweist (keiner ein.Rücksetzen befiehlt), so liefert die NOR-Schaltung 224 ein Freigabe-Eingangssignal für die UND-Schaltung 222 und das System arbeitet mit der drei Eingänge aufweisenden ODER-Schaltung 220 so, wie es oben in Verbindung mit der zwei Eingänge aufweisenden ODER-Schaltung von Fig. 6 beschrieben wurde. Wenn einer oder beide subtraktive Arbeits-Puffer 210, 212 ein Rücksetzen befehlen, liefert die NOR-Schaltung 224 ein Null-Ausgangssignal, das die UND-Schaltung 222 nicht freigibt und somit erzeugt die UND-Schaltung 222 unabhängig von den Daten in den additiven Puffern 206, 208 und 214 eine Null und somit eine Leerstelle auf dem Bild. Man sieht also, daß die Muster in den Muster-Arbeitspuffern 206, 208 und 214 tatsächlich additiv miteinander kombiniert werden und daß die Muster in den subtraktiven Puffern 210 und 212 subtraktiv mit den additiv kombinierten Musterdaten kombiniert werden.
Trapezoid-Erzeugung
In dem bisher beschriebenen System kann eine schräg verlaufende Linie für ihre Definition mehr Daten erfordern, als
für horizontale oder vertikale Leitbahnen erforderlich sind, doch kann eine solche schräg verlaufende Linie nicht ohne weiteres für eine Handhabung als Muster geeignet sein. Es wurde gefunden, daß schräg verlaufende Linien und andere trapezoidale Konfigurationen ohne weiteres durch Verfahren erzeugt werden können, die eine Reihe von Vorteilen hinsichtlich der Daten-Kompression und der Wirtschaftlichkeit der Hardware aufweisen. Für Zwecke dieser Erörterung ist ein Trapezoid eine vierseitige Figur, die an ihrer Oberseite und an ihrer Unterseite durch horizontale Linien und an ihren Seiten durch vertikale oder schräg verlaufende Linien definiert ist, die die obere und die untere Linie schneiden. In dieser Definition sind auch dreiseitige Figuren enthalten, bei denen es sich um Trapezoide handelt, bei denen entweder die obere oder die untere Linie die Länge Null besitzt. Eine schräg verlaufende Linie wird auf dem Bild durch ein Trapezoid geformt, das im wesentlichen gleich lange obere und untere Linien aufweist, die eng beabstandete, zueinander parallele oder nahezu parallele Linien schneiden, die zwischen der Oberseite und der Unterseite der Figur verlaufen.
In Fig. 14 ist ein Trapezoid abcd dargestellt, das eine horizontale obere Linie ab und eine horizontale Bodenlinie de aufweist, die beide die Seitenlinien ad bzw. bc schneiden. Es wurde gefunden, daß eine solche Figur sehr einfach unter erheblicher Einsparung von Daten, Rechenarbeit und Hardware durch die Definition von fünf Parametern festgelegt werden kann. Diese Parameter sind: X, die Spaltenadresse des Startpunktes a der linken Seite der ersten Zeile ab; R, die Neigung bzw. Steigung der linken Seite ad des Trapezoids; W, die Breite oder Länge der oberen horizontalen Seite ab, des Trapezoids; A die Änderungsrate der Breite des Trapezoids von Abtastzeile zu Abtastzeile; und H, die Höhe oder Gesamtzahl von Zeilen. Sind die Daten X, R, W, A und H gegeben, so kann das gesamte Trapezoid Abtastzeile um Abtastzeile
durch einfache Addition erzeugt werden. Somit ist die Startadresse X der zweiten Abtastzeile ef dieses Trapezoids einfach die Summe der Startadresse X der ersten Zeile
a.
und der Steigung der linken Seite: X = X + R. In gleicher Weise wird die Breite W ,- der zweiten Zeile ef des Trapezoids einfach dadurch erhalten, daß man die Breitenänderung Λ zur Breite W , der ersten Zeile addiert: W f = W , + Δ ·
Die Verwendung der Parameter W und ^ anstelle der Parameter, die die Adresse der rechten Seite einer jeden Zeile und die Steigung der rechten Seite definieren, führt zu einer Reihe von Vorteilen. Die Durchführung der Trapezοid-Erzeugung wird insbesondere dann erheblich vereinfacht, wenn man einen Lauflängen-Kode bzw. Sequenzlängen-Kode verwendet. Darüberhinaus wird beim Berechnen der Parameter zum Definieren eines solchen Trapezoids die Adresse der linken Seite und die Breite häufig basierend auf einer gegebenen Mittellinie ;und der Trapezoid-Breite und -Steigung berechnet. Es ist beträchtlich einfacher, die Größen X, R, W, Λ und H zu berechnen als Größen zu berechnen, die die Adressen von beiden Enden einer Zeile liefern. Demgemäß wird eine beträchtliche Verringerung der Rechnerzeit erzielt, die erforderlich ist, um solche Berechnungen durchzuführen.
Unter Verwendung von Trapezoiden kann eine Anzahl von verschiedenen Konfigurationen aufgebaut werden. Beispielsweise kann, wie in Fig.15 dargestellt, der Buchstabe "A" dadurch erzeugt werden, daß additiv drei Trapezoide erzeugt werden, nämlich das Trapezoid abcd) das Trapezoid abef und das Trapezoid ghij. Alternativ kann, wie in Fig. 16 dargestellt, ein kompaktes Trapezoid abc erzeugt und subtraktiv mit den Trapezoiden def und ghij kombiniert werden. Die Trapezoide abcd und abef aus Fig. 15 sind ebenfalls schräg verlaufende Linien jeder gewünschten Breite und Länge. Es ist klar, daß diese Darstellungen lediglich Beispiele für die große Vielzahl von Figuren sind, die durch eine oder mehrere additiv
ο ζ. ο ei υ uu - 102 - -:--"--"
oder subtraktiv miteinander kombinierte trapezoidale Figuren definiert werden können.
Um Trapezoid-Befehle zu umfassen, werden die Gruppe-III-Abtastzeile-um-Abtastzeile-Daten lediglich durch das Hinzufügen von Trapezoid-Befehlen und die Addition von Daten modifiziert, die dazu dienen, zwischen Trapezoid- und Muster-Befehlen zu unterscheiden. Somit haben die Bild- oder Gruppe-III-Daten ein allgemeines Format, das mit dem Gruppe-III-Kopfteil beginnt, auf den die Abtastzeilen-Nummer folgt, nach der einige Befehle in einer spezifierten Reihenfolge auftreten, d.h. zuerst alle Leitbahn-Befehle, dann alle Trapezoid-Befehle und schließlich alle Muster-Befehle.
Bei den Bild-Daten ist der Kopfteil derselbe, wie dies oben beschrieben wurde, nämlich FF 03 KK, wobei 03 die Gruppe-III-Daten definiert und KK die Bild-Nummer ist.
Die nächsten Bytes der Bild-Daten sind FO YY YY, wobei FO das Kontroll-Byte ist, das, wie zuvor beschrieben, spezifiziert, daß die nächsten beiden Bytes YY YY die Abtastzeilen-Nummer definieren, für die die folgenden Befehle durchgeführt werden. Dann folgt eine Anzahl von Leitbahn-Befehlen in dem zuvor beschriebenen Format OXX XX 1/OLL. Wie zuvor, bezeichnet die 0 in dem höchstwertigen Bit einen Leitbahn-Befehl. Erforderlichenfalls kann dieser drei Byte umfassende Leitbahn-Befehl durch einen fünf Byte umfassenden Leitbahn-Befehl ersetzt werden, bei dem das dritte Byte auf 00 gesetzt ist, worauf zwei Lauflängen-Kode-Bytes folgen. Somit hat ein fünf Byte umfassender Leitbahn-Befehl die Form OXX XX 00 1/OLL LL. Hier werden das vierte und das fünfte Bit ein doppelter Präzisions-Längen-Lauflängen-Kode, bei dem das fünfte Byte das niederwertigste Byte des Lauflängen-Kodes ist und das höchstwertige Bit des vierten Bytes dazu verwendet wird, zu spezifizieren, ob die Bildelemente bzw.
- 103 - -:- '-■"■
Bildpunkte (pixels) gesetzt oder zurückgesetzt werden sollen (= 1 oder =0).
Obwohl Leitbahn-Befehle in austauschbarer Weise in einer Reihe von Leitbahn-Befehlen angeordnet werden können, werden alle in einer Gruppe vor den Trapezoid- oder Muster-Befehlen untergebracht.
Auf den letzten Leitbahn-Befehl folgen ein oder mehrere Trapezoid-Befehle in dem folgenden Format:
1XX XX 00 RR RR RR RR 1/OLL LL DD DD DD DD HH HH
Wie bei den zuvor beschriebenen Muster-Befehlen sind die beiden ersten Bytes XX XX die Spalten-Adresse des ersten betroffenen Bildpunktes. Das höchstwertige Bit dieser Adresse wird auf eine Eins gesetzt, um bei der Unterscheidung von Trapezoid- und Muster-Befehlen von den Leitbahn-Befehlen zu helfen. Somit kennzeichnet eine Eins in diesem höchstwertigen Bit, daß kein Leitbahn-, sondern entweder ein Trapezoid- oder ein Muster-Befehl vorliegt. Das dritte Byte ist ein Null-Byte und unterscheidet zwischen Trapezoid-Befehlen und Muster-Befehlen, da 00 keine gültige Muster-Nummer ist. Es ist dieses dritte Byte, das in einem Muster-Befehl die Muster-Nummer identifizieren würde.
Alle Trapezoid-Befehle innerhalb einer Gruppe von Trapezoid-Befehlen müssen nicht gemäß einer Spalten-Adresse positioniert sein, sondern sind in einem Block enthalten, der hinter dem letzten Leitbahn-Befehl und vor dem ersten Muster-Befehl für eine spezielle Abtastzeile angeordnet ist. Die Bytes vier bis sieben RR RR RR RR umfassen eine mit Vorzeichen versehene BZ-Bit-Zweier-Komplement-Bruchzahl, die die Neigung bzw. Steigung der linken Seite des Trapezoids definiert. Die Verwendung eines mit Vorzeichen versehenen Zweier-Komplements erlaubt es, eine vereinfachte arithmetische Addition durch-
zuführen, wenn die Steigung der linken Seite zur Spalten-Adresse addiert wird. Wie zuvor erwähnt, wird eine neue Spalten-Adresse für jede nachfolgende Abtastzeile dadurch berechnet, daß der Steigungswert, wie er durch die Bytes vier bis sieben angegeben wird, zur Spalten-Adresse der vorausgehenden Zeile addiert wird. Wenn der Wert der Steigung Null ist, dann ändert sich die Spalten-Adresse in den nachfolgenden Abtastzeilen nicht, was eine vertikale linke Seite für das Muster zur Folge hat. Wenn der Wert der Steigung negativ ist, dann wird durch die einfache Addition die Spalten-Adresse verkleinert, was zu einer linken Kante führt, die zum linken Rand hin abfällt. In entsprechender Weise wird dann, wenn der Steigungswert positiv ist, die linke Kante des Trapezoids für wachsende Abtast-Zeilen-Nummern zum rechten Rand hin abfallen.
Die Bytes acht und neun 1/OLL LL des Trapezoid-Befehls umfassen einen Sequenzlängen-Kode, der die Anzahl von BiIdpunkten in der ersten Abtastzeile des Trapezoids oder in anderen Worten die Breite der obersten Linie des Trapezoids definiert. Wie bei den zuvor beschriebenen RLC-Befehlen, schaltet eine 1 im höchstwertigen Bit des Lauflängen-Kodes die spezifizierte Anzahl von Bildpunkten ein, während eine 0 im höchstwertigen Bit die spezifizierte Anzahl von Bildpunkten abschaltet und sie darüberhinaus aus irgendeinem vorhandenen Leitbahn- oder Muster-Befehl löscht, der evtl. dieselben Bildpunkte in der Abtast-Zeile trifft. Somit hat eine 0 im höchstwertigen Bit des Lauflängen-Kodes des Trapezoids ein subtraktives Trapezoid zur Folge, das in einem subtraktiven Arbeitspuffer zusammengestellt werden muß, während eine 1 in diesem Bit ein additives Trapezoid zur Folge hat, das in einem additiven Arbeitspuffer zusammenzustellen ist.
Die Bytes zehn mit dreizehn DD DD DD DD spezifizieren die Änderungsrate der Trapezoid-Breite RLC oder in anderen Worten den Steigungsunterschied zwischen der linken und der
BAD
rechten Kante des Trapezoids. Wenn der Wert dieser Breitenänderung Δ gleich Null ist, dann sind die linke und die rechte Kante des Trapezoids zueinander parallel. Wenn der Wert der Neigungs-Differenz negativ istr dann fallt die rechte Kante zum linken Rand hin schneller ab, als die linke Kante; d.h. das Trapezoid wird mit jeder Abtastzeile schmaler. Wenn der Wert von Δ positiv ist, dann wird das Trapezoid mit jeder Abtastzeile breiter. Tatsächlich ist die 4 -Neigung die Rate, mit der der Lauf längen-Kode sich mit jeder Abtastzeile ändert.
Die letzten beiden Bytes HH HH spezifizieren die Anzahl von Abtastzeilen im Trapezoid-Muster, oder mit anderen Worten, die Höhe des Trapezoids.
Die Muster-Befehle folgen alle auf die Trapezoid-Befehle und haben das oben beschriebene Format.
Wenn es nötig oderwünschenswert ist, kann auf den Gruppe-Il- oder Muster-Daten-Kopfteil FF 02 MM, auf den, wie oben beschrieben, die Muster-Identifizierungs-Daten NN WW HH 1/OLL usw. folgen, unmittelbar eine Nummer SS (zwischen dem Kopfteil und den Muster-Identifizierungs-Daten) folgen. Diese Nummer ist die Muster-Nummer des ersten "Auslösch"-Musters (die niederste Nummer eines jeglichen "Auslösch"-Musters). In einer solchen Situation werden alle Muster-Nummern NN, die gleich oder größer als SS sind, als Auslösch-Muster identifiziert und werden alle Muster-Nummern,.die kleiner als SS sind, als additive Muster identifiziert. Somit können die additiven und subtraktiven Muster in dem Muster-Befehlsformat durch identische Daten dargestellt und dadurch voneinander unterschieden werden, daß festgestellt wird, ob die Muster-Nummer gleich SS oder größer (subtraktiv) oder kleiner als SS (additiv) ist.
In Fig. 17 ist ein Blockdiagramm der Laser-Abtaststeuerung aus Fig. 6 dargestellt, die so modifiziert ist, daß sie
Einrichtungen zur Trapezoid-Erzeugung und additive und subtraktive Arbeitspuffer umfaßt, wobei bestimmte Blöcke weggelassen sind. Wie zuvor beschrieben, speist die Datenquelle 326 Daten in den Prozessor/Controller 350 und der Steuerung des Mikroprozessor-Programms, der Eingabe/Ausgabe-Steüer-Mikro-Kodes und der Kodierung und der Steuerungen innerhalb des Mikroprozessor/Controllers (in Fig. 17 nicht dargestellt) ein. Das System verwendet einen Musterdaten-Speicher-Bibliotheks-RAM 358, der in Verbindung mit der Muster-Verarbeitungs-Tabelle und -Karte 362 arbeitet, eine Bibliotheks-Pointer- bzw. Bibliotheks-Hinweis-Tabelle 360, die auch zeitweilig Leitbahnn-Daten speichert, einen Bilddaten-Speicher 364 und einen Notizblock-Speicher 381, wie sie alle zuvor in Verbindung mit Fig. 6 beschrieben wurden. Weiterhin ist eine Anzahl von Arbeitspuffern vorgesehen, die einen Leitbahn-Arbeitspuffer 368, einen additiven Muster-Arbeitspuffer 366, einen subtraktiven Muster-Arbeitspuffer 3 69 (alle identisch mit den zuvor beschriebenen) und einen additiven und einen subtraktiven Trapezoid-Arbeitspuffer bzw. 372 umfaßt. Die Trapezoid-Arbeitspuffer 370 und 372 sind im wesentlichen identisch mit den Muster-Arbeitspuffern 366 und 368 und werden wie die Muster-Arbeitspuffer nach jeder Übertragung einer Zeile von Daten in den Zeilen-Zusammenstell-Puffer 374 gelöscht bzw. zurückgesetzt. Die Übertragung von Daten aus den Arbeitspuffern in den Zeilen-Zusammenstell-Puffer 374 verläuft ebenso, wie dies in Verbindung mit FIg. 13 beschrieben wurde. Die Daten von den drei additiven Puffern 368, 366 und 370 werden über eine ODER-Schaltung 320 geführt und dann als ein Eingangssignal einer UND-Schaltung 322 zugeführt, während die Daten von den subtraktiven Arbeitspuffern 369 und 372 durch eine NOR-Schaltung 324 geführt werden, die das zweite Eingangssignal für die UND-Schaltung 322 liefert, die als ihr Ausgangssignal das Eingangssignal für den Zeilen-Zusammenstell-Puffer 374 erzeugt,der seinerseits das Schieberegister 376 speist.
BAD ORIGINAL
Um Trapezoid-Daten auf einer zeilenweisen Basis aus den in einem Trapezoid-Befehl enthaltenen Daten zu erzeugen, werden eine Trapezoid-Befehl-Speicher-Bibliothek oder -RAM 380, die bzw. der mit dem Prozessor/Controller 350 verbunden ist, und eine Trapezoid-Pointer-Tabelle und -Karte 382 verwendet, die ebenfalls mit dem Prozessor/Controller verbunden ist.
Die Erzeugung der Trapezoid-Zeilen-um-Zeilen-Daten wird in Verbindung mit dem Funktions-Blockdiagramm der Fig. 18 erläutert. Nach dem Lesen der Bit-Daten aus dem Bilddaten-Speicher 364 und der Identifizierung eines Trapezoid-Befehls durch die 1 im höchstwertigen Byte der Spaltenadresse XX XX und einer 00 im dritten Byte wird der gesamte Befehl in einer leeren Zeile der Trapezoid-Befehls-Speicher-Bibliothek bzw. des Trapezoid-RAM 380 gespeichert. Leere Zeilen im RAM 38o werden durch die RAM-Pointer-Tabelle und -Karte 382 identifiziert. Diese Pointer-Tabelle und -Karte arbeitet genauso wie die Muster-Verarbeitungs-Tabelle und -Karte 62, die oben in Verbindung mit den Fig. 6 und 8 beschrieben wurde. Die Trapezoid-Pointer-Tabelle und -Karte 382 enthält Zeilen von Adressen-Bytes SS SS, die zunächst Adressen SS SS von leeren Zeilen in dem Trapezoid-Befehls-Speicher-RAM ' 380 kennzeichnen. Jede Zeile der RAM-Pointer-Tabelle 382 enthält auch einen Satz von Karten-Bits. Somit enthält mit Ausnahme der Spalten-Adressen-Bits XX XX und der Höhe-Daten HH die RAM-Pointer-Tabelle 382 dieselben Daten wie die Muster-Verarbeitungs-Tabelle 62 (Fig. 6). Die Tabelle 382 arbeitet ebenfalls in Verbindung mit Notizblock-Pointern, die in Fig. 18 als Leerzeilen-Pointer 384 und Aktivzeilen-Pointer 386 gekennzeichnet sind. Jeder Trapezoid-Befehl wird in seiner Gesamtheit mit Ausnahme des dritten Null-Bytes (das nicht langer fir eine Unterscheidung von Muster-Befehlen benötigt wird) in der Trapezoid-Befehls-Speicher-Bibliothek 380 gespeichert. Die Spalten-Adresse XX XX wird aus dem Trapezoid-RAM 380 entnommen, zeitweilig in einem
Speicher 390 oder 39 2 gespeichert (für entsprechende additive und subtraktive Trapezoid-Arbeitspuffer 370, 372) und dann, wie dies durch die Summations-Schaltung 394 gekennzeichnet ist, zur Steigung RR RR RR RR der linken Seite addiert. Die Summe wird in den Trapezoid-RAM-Speicher zurückgeführt, der dann die Spaltenadresse des Startpunktes der nächsten Abtastzeile des Trapezoids enthält.
In entsprechender Weise wird die Trapezoid-Breite oder der Lauflängen-Kode aus dem Trapezoid-RAM entnommen, zeitweilig in den additiven und subtraktiven Arbeitspuffer-Speichern 390, 392 gespeichert und ebenfalls durch eine Summier-Schaltung 396 zur Steigungs-Differenz oder Änderungsrate, der Breite DD DD DD DD addiert. Die Summe wird dann in denselben Platz des Trapezoid-RAM zurückgebracht, der hierdurch die Trapezoid-Breite für die nächste Abtastzeile enthält. Die Trapezoid-Höhe HH HH wird dann dekrementiert und in den RAM-Speicher zurückgeführt.
Die arithmetischen Summen werden durch den Prozessor/Controller 350 ausgeführt. Die Spaltenadresse und die Breite, die in den zeitweiligen Speichern 390 und 392 enthalten sind, werden dazu verwendet, die zugehörigen bzw. geeigneten Bit-Muster in den subtraktiven und additiven Trapezoid-Arbeitspuf fern 382, 380 zu setzen, wie dies zuvor in Verbindung mit dem Setzen der Bit-Muster in den Muster-Arbeitspuffern beschrieben wurde.
In einer zur Zeit bevorzugten Ausführungsform bilden die zeitweiligen Speicher 390, 392 einen Teil des RLC-Befehls-Prozessors, der für eine Hochgeschwindigkeits-Expansion von Lauflängen- bzw. Sequenzlängen-Kodes in die verschiedenen Arbeitspuffer verwendet wird, wie dies unten beschrieben wird und in den Fig. 20 bis 28 dargestellt ist. Alle vier Trapezoid- und Muster-Arbeitspuffer werden nach jeder aus ihnen erfolgenden Datenübertragung zurückgesetzt bzw. gelöscht,
BAD ORIGINAL
wie dies bereits beschrieben wurde.
Das Setzen der Bit-Muster in den Muster- und Trapezoid-Arbeitspuffern wird ohne weiteres unter der Programmsteuerung des Prozessor/Controllers bewerkstelligt, oder es wird, wenn eine erhöhte Geschwindigkeit gewünscht wird, eine RLC-Befehls-Prozessor-Schaltung für eine spezielle Hardware-mäßige Verwirklichung des Setzens der Bit-Muster von den Spalten-Adressen und Trapezoid-Breiten auf einer Wort-um-Wort-Basis vorgesehen/ wie dies unten beschrieben und in den Fig. 20 bis 28 dargestellt ist.
Trapezoid-Flußdiagramme
Die Fig. 19a bis 19d umfassen Flußdiagramme, die im wesentlichen die Basis-Schritte darstellen, die unter der Steuerung des Prozessor/Controllers und des gespeicherten Programms verwendet werden, um Bilddaten, die Trapezoid-Befehle enthalten, aus dem Bilddaten-Speicher 364 von Fig. 17 auszulesen und zu verarbeiten. Nach der Vervollständigung bzw. Beendigung einer Abtastzeile und dem Inkrementieren des Abtastzeilen-Zählwertes gemäß Schritt 400 aus Fig. 19a wird im Schritt 402 festgestellt, ob der Arbeitspuffer-Inhalt in den Zeilen-Zusammenstell-Puffer 374 übertragen worden ist oder nicht. Dann wird in Schritt 403 festgestellt, ob das Setzen dar Bit-Muster im Leitbahn-Arbeitspuffer 368 beendet ist oder nicht. Genauso wie zuvor in Verbindung mit den Schritten 115 bis 120 der Fig. 12a beschrieben, wird im Schritt 404 die Zeilen-Nummer aus dem Speicher entnommen und es wird die vorhandene Zeilen-Nummer im Schritt 405 mit dem Zeilen-Zählwert verglichen; um festzustellen, ob im Schritt 406 eine neue Zeile von Bild-Daten gelesen werden muß oder nicht (Fig. 19b). Nachdem so, wie dies zuvor in Verbindung mit Fig. 12a bes.chrieben wurde, festgestellt worden ist, daß die neue Zeile Befehle enthält, werden im Schritt 407 (Fig. 19b) die Bild-Daten untersucht, um festzustellen, ob sie irgendwelche Leitbahn-Befehle
ό Z ό y_b U b - no - -:·- "-*
enthalten oder nicht. Leitbahn-Befehle werden im Schritt 408 in den Leitbahn-Befehls-Speicher FIFO (TCF) bewegt bzw. transportiert, der, wie oben beschrieben, ein Teil der Bibliotheks-Pointer-Tabelle 360 (Fig. 17) sein kann. Es sei daran erinnert, daß die Befehle für eine gegebene Zeile alle nach ihrem Typ gruppiert sind, wobei zuerst die Leitbahn-Befehle, dann die Trapezoid-Befehle und zuletzt die Muster-Befehle kommen. Demgemäß werden beim Lesen der Befehle aus dem Bilddaten-Speicher die Leitbahn-Befehle zuerst gelesen und es wird als erstes der Leitbahn-Arbeitspuffer verwendet.
Nachdem alle Leitbahn-Befehle der neuen Zeile von Bilddaten in den Zwischenspeicher geschoben worden sind, werden die Bilddaten im Schritt 409 daraufhin untersucht, ob sie irgendwelcßlY?rapezoid-Befehle enthalten. Alle neuen Trapezoid-Befehle werden initialisiert.
Die Trapezoid-Initialisierung (Fig. 19c) umfaßt die Übertragung von Trapezoid-Befehlen aus den Bilddaten auf der neuen Zeile zum Trapezoid-Befehls-Speicher-Bibliotheks-RAM 380. Alle Trapezoid-Befehls-Bytes mit Ausnahme des Null-Bytes 00 (das die Trapezoid-Befehle von den Muster-Befehlen unterscheidet) werden in der Trapezoid-Befehls-Speicher-Bibliothek mit Hilfe der Trapezoid-Pointer-Tabelle und -Karte 382 gespeichert. Diese Tabelle ist zuvor so eingestellt bzw. vorbereitet worden,daß sie Adressen SS SS von Zeilen in der Trapezoid-Befehls-Speicher-Bibliothek und einen Satz von Karten-Bits enthält, die genau so verwendet werden, wie dies zuvor in Verbindung mit den Karten-Bits der Muster-Verarbeitungs-Tabelle und -Karte 62 beschrieben wurde. Bei der Trapezoid-Initialisierung wird die Trapezoid-Pointer-Tabellen-Adresse im Schritt 412 von dem Pointer für die nächste leere Zeile erhalten und es wird in diese Tabelle hineingegangen, um im Schritt 413 die RAM-Adresse SS SS zu erhalten, die die Adresse einer leeren Zeile im RAM
BAD ORfGaNAL
380 ist. Der Trapezoid-Befehl wdrd im Schritt 414 zu dieser Adresse im RAM gebracht und die Karten-Bits der Tabelle 382 werden im Schritt 415 zur nächsten aktiven Zeile aktualisiert. Der Pointer 384 für die nächste leere Zeile und der Pointer 386 für die nächste aktive Zeile werden in den Schritten 416 und 417 ebenfalls aktualisiert, so daß der Leerzeilen-Pointer eine Adresse der Tabelle identifiziert, die eine RAM-Adresse SS SS enthält, die leer ist, während der Aktivzeilen-Pointer eine Zeile in der Pointer-Tabelle identifiziert, die die Adresse SS SS der Zeile des RAM 380 enthält, in die der letzte Trapezoid-Befehl eingegeben worden ist.
Das System kehrt jetzt zum Schritt 409 (Fig. 19b) zurück, um zusätzliche Trapezoid-Befehle, falls solche vorhanden sind, so lange zu lesen, bis alle neuen Trapezoid-Befehle in dieser Bilddaten-Zeile gelesen und initialisiert worden sind. Dann wird, wenn im Schritt 418 festgestellt worden ist, daß alle Trapezoid-Puffer-Bits gesetzt worden sind (in der Expansion der unmittelbar vorausgehenden Abtastzeile) im Schritt 419 die Trapezoid-Pointer-Tabelle und -Karte untersucht, um festzustellen, ob dort irgendwelche derartigen Befehle sind, die expandiert werden müssen, oder nicht. Wenn dies der Fall ist, beginnt das System mit einer Reihe von Expansionsschritten, die in Fig. 19d dargestellt sind. Bei der Trapezoid-Expansion (Fig. 19d) wird die Spaltenadresse XX einer gegebenen Abtastzeile des betreffenden Trapezoids in den Zwischenspeicher 392 (oder den unten beschriebenen RLC-Befehls-Prozessor) zur Verwendung beim Setzen der Bits des Trapezoid-Arbeitspuffers übertragen. Diese Spaltenadresse wird ebenfalls dadurch aktualisiert, daß zu ihr die Steigung der linken Seite des Trapezoids addiert wird; die aktualisierte Spaltenadresse wird in den RAM-Platz zurückgebracht, aus dem die frühere Adresse entnommen worden war. In entsprechender Weise wird die Trapezoid-Breite RLC auf dieser betreffenden Abtastzeile zeitweilig
in dem Arbeitspuffer-Speicher 390 gespeichert und in Verbindung mit der Spalten-Adresse dazu verwendet, das Arbeitspuffer-Bit-Muster zu setzen. Die Trapezoid-Breite wird ebenfalls dadurch aktualisiert, daß zu ihr die ^ Steigung DD DD DD DD addiert wird; die aktualisierte Breite wird in den RAM-Platz zurückgebracht, aus dem die frühere Breite genommen worden war.
Für die Trapezoid-Expansion wird der Pointer für die nächste aktive Zeile im Schritt 420 vom Notizblock erhalten und dazu verwendet, im Schritt 421 die RAM-Adresse aus der Pointer-Tabelle zu holen. Die RAM-Adresse wird dazu verwendet, in den RAM 380 hineinzugehen, die Spaltenadresse XX des Trapezoid-Befehls zu erhalten und diese Adresse im Schritt 422 zum zeitweiligen Puffer-Speicher 392 zu bewegen bzw. zu übertragen. Die in diesem Befehl enthaltene Steigung der linken Seite wird im Schritt 423 ebenfalls zur Spaltenadresse im Prozessor/Controller addiert. Der Lauflängen- oder Sequenzlängen-Kode dieser Spaltenadresse wird ebenfalls aus dem Trapezoid-Befehls-Speicher-RAM im Schritt 424 in den zeitweiligen Trapezoid-Befehls-Speicher-Prozessor übertragen und im Schritt 425 wird die Λ -Steigung zur Breite addiert und ebenfalls im RAM gespeichert. Die Trapezoid-Höhe wird dekrementiert und der dekrementierte Wert wird im Schritt 426 im RAM gespeichert. Im Schritt
427 wird entschieden, ob das betreffende Trapezoid fertig ist oder nicht, d.h., ob die Höhe auf Null dekrementiert worden ist oder nicht. Wenn sie auf Null dekrementiert ist, werden die Leerkarten-Bits der Pointer-Tabelle und der Pointer für die nächste Leerzeile des Notizblocks im Schritt
428 so aktualisiert, daß sie anzeigen, daß diese spezielle Zeile im Trapezoid-Befehls-Speicher-Bibliotheks-RAM 384 jetzt leer ist. Das System kehrt dann zum Punkt D zurück, um den Schritt 419 zu wiederholen und den nächsten alten Trapezoid-Befehl zu expandieren.
BAD ORIGINAL
Wenn das Trapezoid nicht fertig ist, werden die Aktiv-Karte und der Pointer für die nächste aktive Zeile im Schritt 428a aktualisiert und das System kehrt zurück, um den Schritt 419 zu wiederholen. Demgemäß werden alle Trapezoid-Befehle in der angegebenen Weise expandiert, wonach im Schritt 429 (Fig. 19b) die Bilddaten untersucht werden, um festzustellen, ob irgendwelche neuen Muster-Befehle auf dieser Zeile sind oder nicht. Neue Muster-Befehle werden genau in der oben beschriebenen Weise in einer Reihe von Schritte gehandhabt, die kollektiv mit 430 gekennzeichnet sind und genauer in Verbindung mit Fig. 12 beschrieben wurden.
Nach der Beendigung der Aktualisierung der Muster-Verarbeitungs-Tabelle ist die Initialisierung für alle Befehle, d.h. Leitbahn-, Trapezoid- und Muster-Befehle beendet und es können die entsprechenden Bit-Muster in den verschiedenen Arbeits-Puffern gesetzt werden. Demgemäß wird in den Schritten 431, 432 und 433 das Setzen von Bit-Mustern in jedem der Leitbahn-, Muster- und Trapezoid-Puffer begonnen. Nach Beendigung des Setzens des Muster-Arbeitspuffers (die Muster-Arbeitspuffer sind die letzten, die modifiziert werden müssen), was im Schritt 434 festgestellt wird, ist dde Verarbeitung für eine gegebene Abtastzeile beendet, werden die Daten ais den Arbeitspuffern in die Zeilen-Zusammenstell-Puffer übertragen und wird die nächste Abtastzeile untersucht, um festzustellen, ob sie irgendwelche neuen Befehle enthält oder nicht.
RLC-Befehls-Prozessor
Das Ausbilden bzw. Erstellen der Bit-Muster oder Bit-Zustände in den Arbeitspuffern erfordert dann, wenn es gemäß den herkömmlichen Verfahren durchgeführt wird, daß die Bits aus dem Arbeitspuffer-Speicher Bit um Bit verschoben werden, daß das Bit und der entsprechende Befehl für den Status eines solchen Bits untersucht werden, daß das Bit erforderlichenfalls modifiziert wird und daß das Bit in seine
w- w ν V
ursprüngliche Posit Lon in den Puffer zurückgelesen wird. Somit muß das Adressieren und das Handhaben von Daten des Speichers auf einer seriellen Basis erfolgen und es erfordert eine Rezirkulation aller Bits selbst dann, wenn nur ein Bit modifiziert werden muß. Darüberhinaus erfordert eine solche dem Stand der Technik entsprechende Anordnung, daß alle Befehle der Reihe nach entsprechend dem Speicherplatz vorsortiert werden, um mehrfache vollständige Rezirkulationen des gesamten Speichers zu vermeiden. Dieses erforderliche Vorsortieren gemäß der Platz-Reihenfolge verändert auch die Verwendung von überlappenden Befehlen. Die zuvor beschriebenen Anordnungen hinsichtlich des Befehls-Daten-Formats und der Befehls-Verarbeitung beseitigen nicht nur das Erfordernis der Vorsortierung von Befehlen gemäß der Speicherplatz-Sequenz, sondern ermöglichen auch die Verwendung einer befohlenen Modifikation von sich gegenseitig überlappenden Läufen bzw. Sequenzen (runs). Die Gruppe-II-Befehlsdaten (Trapezoid-Befehlsdaten oder Leitbahn-Befehlsdaten) verwenden beide, wie zuvor beschrieben, Spaltenadressen XX XX und Sequenzlängen-Kode, oder Daten, die ein Muster beschreiben, das Sequenzlängen-Kode enthält bzw. aus solchen besteht. Eine Sortierung dieser Befehle ist nicht erforderlich. Es ist lediglich erforderlich, jede Befehlsart zu gruppieren, d.h. alle Leitbahn-Befehle, alle Trapezoid-Befehle und alle Muster-Befehle jeweils lediglich innerhalb einer einzigen Gruppe anzuordnen; die Befehle müssen jedoch nicht gemäß ihrer Spalten-Adresse sortiert werden. Dies ist der Fall, weil jeder Befehl seine eigene Spaltenadresse trägt und hierdurch einen wahlfreien Zugriff zu den Arbeitspuffern für eine Expansion der Lauflängen-Kode ermöglicht. Jeder Befehl, der seine eigene Adresse besitzt, kann dazu verwendet werden, um Bits in einer Folge oder einer Reihe von Folgen unabhängig vom Speicherplatz und unabhängig vom Platz anderer zu steuernder Folgen zu steuern. Die Leitbahn- und Trapezoid-Befehle enthalten jeweils eine Adresse, einen Lauflängen- oder Sequenzlängen-Kode
BAD ORIGINAL
und ein Status- oder Farb-Bit (color bit), das den Status der Bits einer Folge bzw- Sequenz definiert. Die Muster-Befehle definieren eine einzelne Adresse und ein Muster, das selbst durch eine Sequenz von zueinander benachbarten bzw. aneinander angrenzenden Lauflängen-Kodes definiert ist. Der erste einer solchen Sequenz von angrenzenden Muster-Lauflärigen-Kodes wird durch die Adresse des Muster-Befehls lokalisiert. Der Ausgangspunkt bzw. die Startposition eines jeden nachfolgenden angrenzenden Lauflängen-Kodes eines Musters wird dadurch identifiziert, daß der unmittelbar vorausgehende Lauflängen-Kode zu seiner Startadresse addiert wird. Darüberhinaus können deswegen, weil jeder Lauflängen-Kode oder jede Sequenz von angrenzenden Lauflängen-Kodes ihre eigene Spaltenadresse besitzt, die Befehle überlappende Sequenzen bzw. Folgen von Daten-Bits identifizieren, so daß die Befehle nicht zuvor analysiert werden müssen, um eine solche Überlappung zu vermeiden.
Das Befehlsformat und die Arbeitspuffer-Anordnung liefern nicht nur Verbesserungen hinsichtlich der Geschwindigkeit der Handhabung von Befehlen, sondern es ergeben sich weitere Geschwindigkeitsverbesserungen aus der Art der Steuerung oder Modifikation des Status der Bits in den Arbeitspuffer-Speichern (d.h. der "Expansion" der RLC-Befehle). Die Steuerung der Bit-Zustände (bit states) wird dadurch beträchtlich verbessert, daß eine Anordnung verwendet wird, in der der Inhalt des Arbeitspuffer-Speichers auf einer Wort-für-Wort-Basis statt auf einer Bit-um-Bit-Basis adressiert wird, wobei alle Bits eines jeden Wortes parallel gehandhabt bzw. weiter verarbeitet werden. Während einer solchen Wort-Adressierung werden alle Bits des adressierten Worts, deren Modifizierung befohlen worden ist, somit gleichzeitig modifiziert, und diejenigen Bits, die keine Modifikation benötigen, werden für das einzelne Wort cjleichzeiLiy rezirkuliert. Man sieht, daß dann, wenn eine Wortlänge von 16 Bits verwendet wird, ein System zur Erzeugung der Bit-
ORiGIMAL
Zustände der Arbeitspuffer-Register auf einer parallelen Wort-für-Wort-Basis, das alle Bits eines Wortes gleichzeitig handhabt bzw. verarbeitet, etwa 16 mal schneller ist als ein System, das eine Bit-um-Bit-Modifikation verwendet; dies gilt sogar in dem Extremfall, daß alle Bits einer Zeile modifiziert werden müssen. Wenn weniger Bits als die aller Wörter in einer Zeile modifiziert werden müssen, ist der Geschwindigkeitsvorteil wesentlich größer, da gemäß der Erfindung nur diejenigen Wörter, die zu ändernde Bits aufweisen, gehandhabt bzw. einer Verarbeitung unterworfen werden müssen. Erfindungsgemäß wird dann, wenn eine Wortlänge von 32 Bits oder mehr eine größere Verbesserung hinsichtlich der Geschwindigkeit möglich. Die RLC-Expansion wird durch eine Hardware-Anordnung durchgeführt und verwendet den Controller-Prozessor für die . Primär-Steuerung der Expansion nicht. Dies ermöglicht eine zusätzliche Verbesserung hinsichtlich der Expansionszeit. Eine bevorzugte Ausführungsform eines erfindungsgemäßen Wort-um-Wort-RLC-Prozessors ist so organisiert, wie dies allgemein in Fig. 20 dargestellt ist. Der Inhalt eines Arbeitspuffer-Speichers oder -RAM520 wird wortweise, d.h. jeweils ein Wort gleichzeitig ausgelesen, wobei alle 16 Bits eines jeden Wortes parallel verarbeitet und zu denselben RAM-Adressen über einen 16-Bit-Wortlängen-Multiplexer 521 rezirkuliert bzw. zurückgeführt werden. Der Multiplexer leitet alle Bits eines Speicherworts entweder ohne Modifikation oder in der durch ein "Farb"-Bit (d.h. logische 1 oder 0) modifizierten Weise weiter. Das Färb- bzw. Color-Bit wird dem Multiplexer auf einer Leitung 522 von dem RLC-Befehl zugeführt, der zusammen mit dem Spalten-Adressen-Befehl von einem Befehlsgenerator 523 geliefert wird. Der Befehlsgenerator wird von den zuvor beschriebenen Systemkomponenten gebildet, soweit sie die Spalten-Adresse und die RLC-Befehle liefern, d.h. er umfaßt die Muster-Daten-Speicher-Bibliothek, den Zwischenspeicher-Bereich der Bibliotheks-Pointer-Tabelle (zum Speichern der Leitbahn-
Befehle) und die Trapezoid-Befehls-Speicher-Bibliothek.
Die Befehle werden über Speicher-Latches und Zähler 524 (die einen RLC-Wort-Abwärtszähler und einen Adressen-Wort-Aufwärtszähler umfassen) geführt, die mit einer arithmetischen Logikeinheit 525 zusammenarbeiten, um Steuer-Eingangssignale für einen Bit-Maskengenerator-PROM 526 zu liefern. Der PROM 526 sendet einen Satz von Signalen an die verschiedenen MUltiplexer-Steuereingänge, die einen der beiden Multiplexer-Eingänge für eine Rezirkulation bzw. Rückführung zum RAM auswählen. Somit führt der Multiplexer unter der Steuerung des PROM zum RAM entweder die RAM-Daten ungeändert oder die durch das Color-Eingangssignal modifizierten RAM-Daten zurück. Wie oben beschrieben, werden diese Daten nach der Erstellung der Zustände aller zu modifizierenden Bits in einer vollständigen Datenzeile des Arbeitspuffer-RAM zusammen mit Daten aus den anderen Arbeits-Puffern (in Fig. 20 nicht dargestellt), durch die beschriebene Logik-Schaltung den Zeilen-Zusammenstell-Puffern 527 zugeführt. Ein wesentlicher Vorteil dieses RLC-Befehlssystems besteht darin, daß es den Status nur derjenigen Bits erstellen bzw. neu definieren muß, die geändert werden müssen, und daß keinerlei Aktion für diejenigen Bits erforderlich ist, deren Status durch den RLC-Befehl nicht beeinflußt wird. Es sei daran erinnert, daß das System Befehle liefert (in Lauflängen-Kode oder RLC),die die Länge einer Sequenz bzw. einer Folge von aufeinanderfolgenden Bits mit dem gleichen Status definieren und einen Color-Kode umfassen, der den Status der Bits dieser Folge definiert (das höchstwertige Bit des Sequenzlängen-Kodes ist der Color-Kode); weiterhin umfassen diese Befehle die Spaltenadresse des Beginns der Folge bzw. Sequenz. Die Spaltenadresse, die der XX XX-Teil der verschiedenen Befehle ist, ist eine 15-Bit-Adresse, in der die vier geringwertigsten Bits, d.h. die Bits O mit
3 .ADR 0-3 , die Bit-Adresse innerhalb des Speicherworts des ersten Bits einer Folge definieren, und in der die
einem Bit befinden, das durch das Bezugszeichen 500 gekennzeichnet ist, wobei eine Folge bzw. Sequenz an einem Punkt 502 in demselben Wort endet. Die Sequenzlänge wird durch den schraffierten Bereich gekennzeichnet, der mit RLC bezeichnet ist. Ein zweiter Fall, der für die Analyse der Bit-Status-Steuerung auf einer Wort-für-Wort-Basis nützlich ist, ist in Fig. 21b dargestellt, in der sich eine Bit-Folge über zwei aufeinander folgende Speicherwörter 503, 504 erstreckt, wobei sie am Punkt 505 des ersten Worts 503 beginnt und im Punkt 506 des unmittelbar benachbart folgenden Wortes 504 endet, so daß sie sich über die Wortgrenze 507 zwischen den beiden Wörtern erstreckt.
Der dritte Fall ist in Fig. 21c dargestellt, in der die Folge von zu bildenden Bits beim Bit 508 eines ersten Worts 509 beginnt, sich über eine Reihe von vollständigen dazwischen liegenden Wörtern 510a bis 51On erstreckt und beim Bit 511 eines Schlußworts 512 endet.
Beim Bilden der Bit-Zustände auf einer Wort-für-Wort-Basis ist es kein Problem, die Zustände von Bits von solchen Wörtern zu steuern, die vollständig eine einzige "Farbe" (color) besitzen, d.h. einheitlich den Bit-Status 0 oder besitzen. Für diejenigen Wörter des Arbeitspuffer-Speichers, bei denen lediglich einige der Bits modifiziert werden müssen, müssen jedoch gewisse spezielle Verfahren angewendet werden. Dazwischen liegende Wörter 510a bis 51On, in denen alle Bits auf eine gegebene Color gesetzt sind, können direkt gehandhabt bzw. verarbeitet werden. Das Anfangs- und das Endwort einer Folge, wie z.B. die Wörter 509 und 512 werden unterschiedlich gehandhabt. Ein Satz von logischen Bedingungen für die Handhabung aller Wörter, je nach dem ob sie teilweise oder vollständig modifiziert werden müssen, kann in einer Wahrheitstabelle zusammengestellt werden.
nächsten elf höchstwertigen Bits, d.h. die Bits 4 mit 14 die Adresse des Speicherworts definieren, das den Start einer Folge enthält. Das höchstwertige Bit wird nicht für eine Wortadresse, sondern dazu verwendet, additive und subtraktive Funktionen zu unterscheiden. Für Leitbahnen und Trapezoide umfaßt ein Befehl, der dem RLC-Befehls-Prozessor vom Befehls-Generator zugeführt wird, einen Lauflängen-Kode, einen Color-Kode und eine Arbeitspuffer-Speicher-Adresse für jeden Lauflängen-Kode. Für die Muster-Befehle gibt es nur eine Adresse für eine Reihe von aufeinanderfolgenden Lauflängen-Ködes, die gegenseitig aneinander anschließende Folgen von Bits definieren, wobei jede Folge ihren eigenen Color-Kode aufweist und jede, mit Ausnahme der ersten mit demjeniaen Bit beginnt, das unmittelbar auf das letzte Bit der vorausgehenden Folge folgt. Für die Expansion von Leitbahn- und Trapezoid-Befehlen verwendet der RLC-Befehls-Prozessor lediglich die Befehlsadresse, um den Beginn der Folge von zu steuernden Bits festzustellen. Für Muster-Befehle wird die Befehlsadresse dazu verwendet, den Start der ersten der Reihe von aneinander anschließenden Bit-Folgen festzustellen, und der RLC-Befehls-Prozessor bestimmt selbst die Startposition einer jeden auf die erste Folge folgenden Folge dadurch, daß er effektiv eine jede Lauflänge zu der vorausgehenden Startadresse addiert. Demgemäß wird nur eine einzige Adresse für einen Befehl benötigt, der viele aneinander anschließende Folgen realisiert bzw. enthält.
Wie in Fig. 21 dargestellt, gibt es dann, wenn man einen Befehl hat, der eine Sequenzlänge und den Beginn einer solchen Sequenz definiert, drei mögliche Fälle,die Sequenzlänge mit Speicherwörtern in Beziehung zu setzen. Im ersten Fall, der in Fig. 21a dargestellt ist, ist die gesamte Bit-Folge, die gesteuert werden muß, in einem einzigen Speicherwort enthalten. Somit kann sich die Startadresse in einem einzigen, mit dem Bezugszeichen 501 bezeichneten Wort bei
Es werden drei Signale bei der Erstellung der Wahrheitstabelle verwendet, die bestimmte derjenigen Operationen spezifiziert, die beim Setzen der Bit-Muster in die Puffer-Speicher verwendet werden. Diese Signale, die als Status-Signale bezeichnet werden können, sind first word (dieses Signal kennzeichnet das Speicherwort, in dem eine Folge bzw. Sequenz beginnt), last word (dieses Signal kennzeichnet das letzte Wort einer Folge) und first word carry, das dann auftritt (nur während first word), wenn die arithmetische Summe der vier niedrigstwertigen Bits RLC 0-3 des Lauflängen-Kodes und der Bit-Positions-Adresse ADR 0-3 (der für niedrigst-wertigen Bits der Spalten-Adresse) eine Wortlänge übersteigt (16 Bits in dem erläuterten Beispiel). Das Lauflängen-Wort-Residual ist der Rest, der sich aus einer Division des Lauflängen-Kodes durch die Wortlänge ergibt. Für ein 16-Bit-Wort ist das Lauflängen-Wort-Residual durch die vier niedrigst-wertigen Bits definiert. Es wird ein Aufwärtszähler verwendet, um die Speicher-Wörter zu verfolgen, der bei der Rezirkulation eines jeden Wortes des Puffer-Speichers inkrementiert wird, und es wird ein Abwärts-Zähler verwendet, um die Wörter eines Lauflängen-Kodes zu verfolgen, der jedesmal beim Verarbeiten bzw. Handhaben der Bits eines Wortes des Lauflängen-Kodes dekrementiert wird. Ein neuer Satz von Status-Signalen wird jedesmal dann erzeugt, wenn ein Wort aus dem Arbeits-Puffer-Speicher rezirkuliert wird. Die Wahrheitstabelle hat folgende Form:
ABC
10 0 0
0 0
0 1 0 unzulässig
„,■I) G
GRiGIWAL
ABC 1 1 O
4 O O 1
5 1 O 1
O 1 1
unzulässig 6 1 1 1
In der Wahrheitstabelle bedeutet A das Signal first word, B das Signal first word carry und C das Signal last word. Das Signal first word wird gesetzt, wenn die Spaltenadresse und die RLC-Befehle vom Befehlsgenerator empfangen und in den RLC-Befehls-Prozessor geladen werden. Das Signal first word wird durch den ersten Schreibimpuls für den Arbeitspuffer-Speicher oder -RAM zurückgesetzt (wenn das erste rezirkulierte Speicherwort in den Speicher zurückgeschrieben ist). Das Signal first word carry ist das Übertrags-Ausgangssignal der oben erwähnten arithmetischen Summation und ist nur während des Signals first word gültig. Das Signal last word wird unabhängig vom Signal first word erzeugt, wenn die Bits 4, 5 und 6 des Lauflängen-JSode-Abwärts Zählers alle gleich Null sind. Da das Signal first word carry nur beim Vorhandensein eines Signals first word gültig ist, sind diejenigen Zustände der Wahrheitstabelle, die ein Signal first word carry, aber kein Signal first word aufweisen, nicht gültig. Die Wahrheitstabellen-Zustände sind folgende:
Im Zustand 1 ist weder ein Signal first word, noch ein Signal first word carry noch ein Signal last word vorhanden. Das bedeutet, daß das System dazwischenliegende Speicherwörter, wie z.B. die Wörter 51Oa bis 51On verarbeitet, in denen alle Bits modifiziert werden müssen. Somit modifiziert das System alle Bits eines im Zustand 1 gehandhabten Speicherworts unabhängig von der Bit-Position oder von RLC und inkrementiert dann die Wortadresse und dekrementiert den RLC-Wort-Zählwert.
ORIGINAL
Der Zustand bzw. Status 2 zeigt das Vorhandensein eines Signals first word an, ohne daß ein Signal carry oder ein Signal last word vorhanden ist. In diesem Fall modifiziert das System alle Bits in dem Speicherwort, beginnend mit der Bit-Position, die durch die Bit-Positions-Adresse gekennzeichnet ist. Die Wortadresse wird inkrementiert und der RLC-Wort-Zählwert wird dekrementiert. Eine aktualisierte oder neue Bit-Position wird dadurch erhalten, daß die vier niedrigstwertigen Bits des RLC RLC 0-3 und die vier Bits der Bit-Positions-Adresse ADR 0-3 addiert werden. Die Summe wird gespeichert.
Im Status 3 sind die Signal first word und first word carry vorhanden, während das Signal last word nicht vorhanden ist. Alle Bits im Speicherwort, beginnend bei der gekennzeichneten Bit-Positions-Adresse werden modifiziert und die Wortadresse wird inkrementiert, doch wird der RLC-Wort-Zählwert nicht dekrementiert. Im Status 3 zeigt das Signal first word carry an, daß die Summe der Bit-Positions-Adresse
ADR 0-3 und des Lauflängen-Wort-Residuals RLC 0-3 größer als 16 ist. Eine aktualisierte Bit-Positions-Adresse wird wiederum dadurch erzeugt, daß RLC 0-3 und die Bit-Positions-Adresse ADR 0-3 summiert werden und die Summe gespeichert wird.
Der Status 4 tritt dann auf, wenn das Signal last word vorhanden, aber die Signale first word und first word carry nicht vorhanden sind. Dies ist einer von zwei Endzuständen, bei denen das Ende einer Bit-Sequenz in dem zu verarbeitenden Speicherwort auftritt. Im Status 4 werden alle Bits in dem Wort bis zu der aktualisierten Bit-Position, jedoch ohne diese modifiziert. Die aktualisierte Bit-Position war in einem früheren Schritt durch die Summation von RLC 0-3 und ADR 0-3 erhalten worden. In diesem End-Status 4 erfolgt keine Änderung in der Wortadresse oder dem RLC-Wort-Zählwert.
Status 5 ist ein anderer Endstatus. Er entspricht dem Fall 1 von Fig. 21a, bei dem die Signale first word und last word auftreten, aber nicht das Signal first word carry. Alle Bits werden modifiziert, beginnend bei der Bit-Adresse für die volle Länge dss Lauflängen-Kodes. Es tritt keine Änderung in der Wortadresse oder im RLC-Wort-Zählwert ein. Eine aktualisierte Bit-Position wird durch Summation von RLC 0-3 und ADR 0-3 erzeugt und gespeichert.
Status 6 entspricht dem Fall 2 aus Fig. 21d, bei dem die Signale first word, last word und first word carry auftreten. In diesem Status erstreckt sich die Folge über die Wort-.grenze in das nächste Wort hinein, doch weil es ein letztes Wort gibt, endet die Folge in dem zweiten Wort. Im Status 6 werden alle Bits im ersten Speicherwort, beginnend bei der Bit-Positions-Adresse unabhängig von der Länge des RLC modifiziert. Die Wortadresse wird inkrementiert, doch erfolgt keine Änderung in dem RLC-Zählwert. Eine neue Bit-Positions-Adresse wird dadurch erzeugt, daß RLC 0-3 und ADR 0-3 addiert werden; das Ergebnis wird aespeichert.
Wie oben angegeben, handelt es sich bei den Zuständen 4 und 5 um Endzustände, die das Ende einer Folge kennzeichnen, während die Zustände Λ , 2, 3 und 6 Zwischenzustände sind. Bei dem beschriebenen System folgt Status 4 immer auf die Zustände 1, 2 oder 6, Status 1 immer auf Status 2 oder 3 und Status 4 immer auf Status 1 und Status 6.
Jeder Leitbahn- oder Trapezdid-Befehl besitzt eine Spaltenadresse und einen Lauflängen-Kode und wird einem individuellen Leitbahn- oder Trapezoid-RLC-Befehls-Prozessor zugeführt,, der dann den Lauflängen-Kode expandiert und, nachdem alle Befehle einer gegebenen Abtastzeile expandiert worden sind, die Daten Wort für Wort über 16-Bit-Datenvielfachleitungen (buses) vom Arbeitspuffer zu den Zeilen-Zusammenstell-Puffern überträgt. Jeder Musterbefehl für einen Muster-RLC-Befehls-
Prozessor besitzt eine einzelne Adresse und eine Anzahl von aufeinanderfolgenden Lauflängen-Kode. Ein jeder solcher Befehl wird dem RLC-Befehls-Prozessor mit immer nur einem Lauflängen-Kode gleichzeitig zugeführt, wobei nur der erste dieser Lauflängen-Kode von einer Start-Adresse begleitet ist. Alle RLC-Befehls-Prozessoren sind nahezu identisch, da sie nur geringfügige Änderungen, die unten beschrieben werden, benötigen, um Leitbahn-Befehls-Prozessoren (die als einzige nicht gelöscht werden) und additive und subtraktive Prozessoren zu unterscheiden. Die durch den RLC-Befehls-Prozessor durchgeführte Expansion definiert die aktualisierte Adresse des Starts der nächsten sich anschließenden Folge und speichert diese in den Adressen-ZwischensDeichern (latches). Demgemäß wird für einen Muster-RLC-Befehls-Prozessor, bei dem keine Adresse den zweiten und nachfolgenden Sequenzlängen-Kode begleitet, die bereits gespeicherte aktualisierte Adresse dazu verwendet, den Start bzw. Beginn einer solchen nachfolgenden Folge bzw. Sequenz zu identifizieren. Jeder Leitbahn- und Trapezoid-Befehl enthält jedoch seine eigene Adresse und diese Adresse wird in die Adressen-Zwischenspeicher eingegeben, wenn der Lauflängen-Kode in die RLC-Zwischenspeicher eingegeben wird. Daher arbeitet dieselbe RLC-Befehls-Prozessor-Anordnung entweder für einen RLC-Befehl, der seine eigene Adresse besitzt, oder für eine Reihe von RLC-Befehlen, die aneinander anschließende Läufe bzw. Folgen definiert, jedoch eine Adresse nur für die erste Folge aufweist.
Eine bevorzugte Ausführungsform eines RLC-Befehls-Prozessors ist im Blockdiagramm von Fig. 22 dargestellt. Die Bits 0-3 des Lauflängen-Kode-Befehls werden in einen Zwischenspeicher (latch) 528 eingegeben und die Bite 4 mit 6 des Lauflängen-Kode-Befehls werden in einen RLC-Wort-Abwärtszähler 529 eingespeist, der einen Zwischenspeicher für eine zeitweilige Speicherung der Befehls-Bits umfaßt. Das Color-Bit, das höchstwertige Bit RLC 7 wird in einen Color-Zwischenspeicher
BAD ORIGINAL
539 eingegeben. Wenn der RLC-Wort-Abwärtszähler, der in verschiedenen Zuständen in Abhängigkeit von der Wahrheitstabelle dekrementiert wird, den Wert Null erreicht, erzeugt er das last-word-Status-Signal.
Die Spaltenadresse umfaßt 12 höchstwertige Bits 4 mit 15, von denen alle mit Ausnahme des an höchster Stelle stehenden das Speicherwort identifizieren, in welchem das Start-Bit auftritt. Diese Bits werden einem Adressen-Aufwartszähler 530 zugeführt, der zeitweilige Bit-Speicher-Zwischenspeicher umfaßt. Die Bit-Positions-Adresse, die von den vier niedrigst-wertigen Bits der Spaltenadresse gebildet
Speicher wird, wird einem Bit-Adressen-Zwischen-/ 531 und weiterhin über einen 4-Bit-Bus 532, 533, dem Bit-Masken-Generator PROM 526 und der arithmetischen Logikeinheit 525 zugeführt.
Die Ausgangssignale der RLC-O-3- und ADR-O-3-Zwischenspeicher 528 und 531 werden beide der arithmetischen Logikeinheit 525 zugeführt, die ihre beiden Eingangssignale summiert und das Ergebnis in den Bit-Positions-Speicher-Zwischenspeicher 531 zurückspeist. Die Ausgangssignale des Bit-Positions-Zwischenspeichers 531 und des RLC-Lauflängen-Wort-Residual-Zwischenspeichers 528 werden ebenfalls direkt über 4—Bit-Busse 534, 535 und durch den Bus 533 direkt dem Bit-Masken-Generator PROM 526 zugeführt. Letzterer umfaßt im Endeffekt einen Logikbaum (logic tree), der eine Anzahl von Ausgangs-Leitungen liefert, die einen Vollwortlängen-Multiplexer-Steuerbus 536 bilden, wobei jede Leitung einen Status aufweist, der durch die im PROM 526 auf den Buses 533 und 535 von den Zwischenspeichern 531 und 528 und den Statussignal-Eingängen first word, first word carry und last word zugeführt werden.
Die Bit-Positions-Adresse wird dazu verwendet, die erste Bit-Leitung der 16-Bit-Masken-Generator-PROM-Ausgangsleitungen zu identifizieren, die den Multiplexer steuern. Tatsäch-
lieh legt der RLC 0-3 dann fest, wieviele der nachfolgen-
bzw, zu steuern sind.
den Leitungen des PROM-Ausgangs zur Steuerung di_enen/ Beispielsweise dienen bei einer Bit-Adresse von (dezimal) 5 ;und einem RLC 0-3 gleich (dezimal) 3 die PROM-Ausgangsleitungen 5, 6 und 7 zur Steuerung (beispielsweise dadurch, daß sie auf einer logischen Eins liegen). Bei einer Bit-Adresse 5 und einem RLC von 12, steuern die PROM-Ausgangs leitungen 5 mit 15. Dieselben Leitungen wurden bei einer Bit-Adresse von 5 und einem RLC 0-3 von 14 steuern, da die Bits nicht über das Ende des Worts hinaus oder über die letzte der Ausgangsleitungen des PROM hinaus steuern. Bei einer Eingangssignalsituation, bei der first word und last word vorhanden, first word carry jedoch nicht vorhanden ist, werden nur diejenigen Ausgangsleitungen des PROM gesteuert, die bei der Bit-Position der Bit-Adresse für eine Anzahl von Bits beginnen, die durch das Lauflängen-Wort-Residual bestimmt ist. Wenn alle drei Signale first word, first word carry und last word vorhanden sind, werden die Leitungen des PROM lediglich bis zur letzten PROM-Ausgangsleitung gesteuert. Der PROM ist so aufgebaut, daß dann, wenn ein last-word-Signal, jedoch kein first-word-Signal oder first-word-carry-Signal vorhanden ist, alle Ausgangsleitungen von der ersten Ausgangsleitung bis zur jedoch ausschließlich der Ausgangsleitung steuern, die durch die Bit-Positions-Adresse identifiziert ist.
Der Arbeitspuffer-Speicher oder RAM 520 wird mit Hilfe eines Adressen-Treiberpuffers 540 adressiert, der eine 11-Bit-Wort-Adresse vom Adressen-Aufwärtszähler 530 zur Auswahl eines speziellen Speicherworts des RAM erhält. Das zwölfte Bit der Wortadresse wird dazu verwendet, zwischen additiven und subtraktiven Befehlen zu unterscheiden, wie dies unten beschrieben wird. Im RAM 520 gespeicherte Wörter werden
1 ο
einzeln, d.h. immer ein Wort gleichzeitig (alle/Bits parallel) auf einem 16 Leitungen umfassenden RAM-Daten-Bus 541 ausgegeben, der sie sowohl einem RLC-Befehls-Prozessor-Ausgangs-
BAD ORIGINAL
Puffer 542 für eine Verbindung zur Logikschaltung, die den Zeilen-Zusammenstell-Puffer 527 (Fig. 20) speist, als auch der einen Seite des Multiplexers 521 zuführt. Der Color-Kode wird der anderen Seite des Multiplexers über die Leitung vom Ausgang des Color-Kode-Zwischenspeichers 539 zugeführt. Unter Steuerung der Signale, die von dem PROM auf einem 16-Leitungs-Bus 536 erzeugt werden, überträgt der Multiplexer entweder den Color-Kode oder die RAM-Daten auf einem 16-Bit-MBUS 544 zu einem RAM-Daten-Zwischenspeicher 543, von dem die Daten zu dem RAM-Datenbus 541 und dem RAM für eine Speicherung in demselben Speicherplatz zurückgeleitet werden, aus dem dieses Wort entnommen worden war. Um das überlappen von Trapezoiden oder Mustern zu ermöglichen, wird das Einschreiben von Nullen in Trapezoid- und Arbeitspuffer-RAMs während der Datenexpansion gehemmt. Dies verhindert, daß angegebene Bit-Positionen gemäß einem ersten Befehl eingesetzte Einsen entfernt bzw. beseitigt werden, wenn ein späterer Befehl für dieselbe Bilddaten-Zeile Nullen an denselben Bit-Positionen aufweist.
Ein LOADRLC-Befehl auf Leitung 549, der vom Befehls-Generator kommt, setzt einen ersten Wort-Zwischenspeicher bzw. ein erstes Wort-Flip-Flop 552. Für ein Muster werden mehrfache LOADRLC-Befehle vom Befehlsgenerator ohne eine entsprechende Adresse ausgesandt, wie es zuvor beschrieben wurde. Das Flip-Flop 552 wird durch einen RAM-Schreibbefehl gelöscht bzw. zurückgesetzt, der auftritt, sobald das erste rezirkulierte Wort in den RAM wieder eingelesen worden ist. Ein load-address-Befehl auf einer Leitung 551 erlaubt es dem Adressen-Aufwärtszähler 530 die Wortadresse vom Befehlsgenerator einzuladen, bzw. hereinzunehmen und liefert ein Eingangssignal für ein Gatter 550, das ein zweites Eingangssignal in derForm eines load-new-address-Befehls SMLOADADR .erhält. Das Ausgangssignal des Gatters 550 gibt den Bit-Positions-Adressen- Zwischenspeicher 531 frei, so daß er entweder die Bit-Position vom Befehlsgenerator oder die
JZJbbUb
aktualisierte Bit-Position von der arithmetischen Logikeinheit 525 empfangen kann.
Die Status-Signale last word, das auftritt, wenn der RLC-Wortzähler auf Null dekrementiert worden ist, first word, das vom first-word-Zwischenspeicher 552 abgegeben wird, und first word carry, das vom carry- bzw. Übertrags-Ausgang der arithmetischen Logikeinheit 525 auf einer Leitung 560 abgeleitet wird, definieren gemeinsam die Wahrheitstabelen-Zustände und werden so eingespeist, daß sie sowohl den Bit-Masken-Generator PROM 526 als auch den Betrieb einer Status Schaltung (state machine) 561 steuern, die ihrerseits die Zähler steuert. In Antwort auf die Wahrheitstabellen-Statussignale first word, first word carry und last word erzeugt die Status-Schaltung 561 die folgenden Ausgangsbefehle: DECRLC, der dazu dient,den RLC-Abwärtszähler zu dekrementieren, SMCNTEN, der dazu dient, den Adressen-Abwärtszähler zu inkrementieren, und SMLOADADR, der dazu dient, die von der arithmetischen Logikeinheit 525 berechnete aktualisierte Adresse zu speichern.
Das höchstwertige Bit der Adresse vom Adressen-Aufwärtszähler 530 wird dazu verwendet, zwischen additiven und subtraktiven Prozessoren in der unten beschriebenen Weise zu unterscheiden und ist in wesentlichen ein load-Freigabesignal. Es wird über eine Leitung 55 3 einem Koinzidenz-Gatter 554 für dessen Freigabe zugeführt, das ein Signal vom Befehlsgenerator erhält, um den RLC zu laden. Gatter 554 signalisiert demgemäß dem RLC-03-Zwischenspeicher 528, dem RLC-Wort-Abwärtszähler 529 und dem Color-Kode-Zwischenspeicher 539 jeweils die Information zu verriegeln oder tatsächlich zwischenzuspeichern, die an den entsprechenden Eingängen vorhanden ist. Ein Signal vom Gatter 554 liefert auch ein Signal zum Starten der RLC-Expansion.
BAD ORSGSNAL
Befehle vom Befehls-Generator werden den RLC-Befehls-Prozessor-Eingangs-'Zwischenspeichern (latches) einzeln zugeführt und expandiert. Nachdem jeder Befehl verarbeitet worden ist, sendet der RLC-Wort-Abwärtszähler 529 das Signal last word an eine Prozessor-Bereit-Schaltung 556, um ein Signal über die Leitung 557 zum Befehls-Generator zurückzuführen, das anzeigt, daß der Arbeitspuffer für den nächsten Befehl bereit ist. Wenn alle Befehle für eine gegebene Abtastzeile expandiert worden sind, sendet der Befehlsgenerator ein Zeilenende-Signal EOL auf der Leitung 558 an eine Schnittstellen-Steuerung 559. Die Steuerung 559 sendet ein DMAENABLE-Signal an die Zeilen-Zusammenstell-Puffer auf der Leitung 563, um dadurch zu signalisieren, daß die RLC-Expansion erledigt ist und daß eine Übertragung von Daten direkt von diesem Arbeitspuffer-Speicher zu den Zeilen-Zusammenstell-Puffern beginnen kann. In dem in Fig. 17 dargestellten System umfaßt jeder der fünf Arbeitspuffer seinen eigenen RLC-Befehlsprozessor. DMAENABLE-Signale von allen Arbeitspuffern werden einer UND-Funktion unterworfen, so daß die Übertragung von Daten von den Arbeitspuffern zu den Zeilen-Zusammenstell-Puffern nach dem Empfang des Signals DMAENABLE von allen Arbeitspuffern beginnt.
Nach dem Empfang des DMAENABLE-Signals von allen Arbeitspuffern senden die Zeilen-Zusammenstell-Puffer ein DMAMODE-Signal zur Steuerung 559 zurück. Die Adressenzähler des RAM 520 werden durch das Signal DMAENABLE auf Leitung 563 in Vorbereitung der Übertragung des ersten Speicherworts vom RAM über die Ausgangspuffer 542 zum Zeilen-Zusammenstell-Puf fer gelöscht bzw. zurückgesetzt. Die Steuerung 559 sendet ein DATAVALID-Signal auf der Leitung 566 zum Zeilen-Zusammenstell-Puf fer , um zu signalisieren, daß der Zeilen-Zusammenstell-Puffer jetzt die RAM-Daten vom Ausgangspuffer 542 verriegeln bzw. vorübergehend speichern kann. Die Daten vom Ausgangspuffer 542 werden von dem Zeilen-Zusammenstell-Puff er beim Empfang des DATAVALID-Signals zwischengespeichert,
doch wartet die Steuerung 559 bis zum Empfang eines Lesebestätigungssignals READACKN auf einer Leitung 557 von dem Zeilen-Zusammenstell-Puffer, das anzeigt, daß Daten von allen RLC-Befehlsprozessoren (wo mehr als ein Arbeitspuffer verwendet wird) empfangen und verriegelt bzw. zwischengespeichert worden sind. Das Lese-Bestätigungssignal veranlaßt die Steuerung 559 eine Inkrementierung des Adressenzählers über eine Leitung 564, und das Lesen des nächsten Wortes vom RAM über die Leitung 565 freizugeben. Bevor der Adressenzähler inkrementiert wird, wird das Wort in dem RAM in allen Fällen mit Ausnahme eines Leitbahn-Befehls gelöscht.
In den Fig. 23, 24, 25, 26, 27 und 28 sind Schaltungsdiagramme von Teilen des RLC-Befehls-Prozessors dargestellt, der im Blockdiagramm der Fig. 22 wiedergegeben ist. Fig. 23 besteht aus den Fig. 23a und 23b, die nebeneinander so anzuordnen sind, daß sich Fig. 23a links befindet. Die verschiedenen Eingangs-Befehls-Zwischenspeicher und -Zähler, die durch dieselben Bezugszeichen gekennzeichnet sind, wie sie auch in Fig. 22 verwendet wurden, umfassen den RLC-Wort-Abwärtszähler 529, den RLC-O-3-Bit-Zwischenspeicher 528, den Bit-Positions-Adressen-Zwischenspeicher 531 und den Adressen-Aufwärtszähler und die Zwischenspeicher 53Oa, 53Ob und 53Oc. Es wird eine active-low-Logik verwendet. Die Zähler und Zwischenspeicher (latches) werden durch ein Signal getaktet, das von einem Inverter 570 zugeführt wird, der das Puffer-Taktsignal BUFCLK erzeugt. Der Adressenzähler 530 wird durch ein Adressenzähler-Freigabesignal ADDRCNTEN freigegeben, bzw. aktiviert, das seinem Eingang P über einen Verstärker 571 zugeführt wird. Adressen werden in die Adreß-Zwischenspeicher und -Zähler unter der Steuerung eines Adressen-Ladesignals LOADADDR geladen, bzw. eingegeben, das vom Befehlsgenerator über ein Gatter 572 zugeführt wird, das auch ein Signal von einem EXCLUSIV- ODER-Gatter 573 empfängt, das Eingangssignale von einem FILL-Signal und
BAD ORIGINAL
dem höchstwertigen Bit der Adresse erhält. Die Eingangssignale für das EXCLUSIV-ODER-Gatter 573 werden auch über ein EXCLUSIV-ODER-Gatter 574 geführt, um ein Gatter 575 freizugeben, das dazu dient, den RLCLOAD-Befehl vom Befehlsgenerator weiterzuleiten und ein internes RLCLOAD-Signal zu liefern. Das RLCLOAD-Signal startet den Prozessor-Betrieb.
Das höchstwertige Bit der Wortadresse wird dazu verwendet, einen Befehl als additiv oder subtraktiv zu identifizieren,
so daß er nur in den entsprechenden additiven oder sub-Die traktiven Puffer eingegeben wird./ EXCLUSIV-ODER-Gatter 573, 574 werden dazu verwendet, jeden RLC-Befehls-Prozessor freizugeben und zwischen additiven und subtraktiven Befehlen zu unterscheiden. Das FILL-Eingangssignal für die Gatter 573, 574 ist eine feste logische Eins für einen additiven Puffer und eine feste logische Null für einen subtraktiven Puffer. Demgemäß wird eine logische Eins in dem höchstwertigen Bit der Wortadresse durch die Gatter 573 und 574 weitergeleitet, ■um die Gatter 572, 575 nur für diejenigen Puffer freizugeben, in denen das FILL-Signal auf logisch 1 (high) ist und umgekehrt« Die Adressenzähler werden durch das DMAENABLE-Signal gelöscht, wie dies oben beschrieben wurde. Die Ausgangssignale des RLC-O-3-Zwischenspeichers 528 und des ADR-O-S-Zwischenspeichers 531 (Fig. 23a) werden der arithmetischen Logikeinheit 525 (Fig. 23b) und ebenso dem Bitmasken-Generator-PROM zugeführt,, der aus den Chips 526a und 526b gebildet ist. Die Ausgangssignale des Masken-Generators-PROM 526a und 526b werden auf 16 Leitungen als BITMASK Q-F in dem hexadezimalen System geliefert, das bei diesem Ausführungsbeispiel Verwendung findet.
Der Bit-Masken-Generator-PROM erhält auch die drei Status-Signale als Eingangssignale, wobei last word von einem ripplecarry RCO des RLC-Wort-AbwärtsZählers 529, und first word vom Ausgang eines first-word-Flip-Flops 580 geliefert wird,
das durch den vom Gatter 575 kommenden RLCLOAD-Befehl gelöscht bzw. zurückgesetzt und durch einen Status-Schaltungs-Schreib-Befehl SMWRITE von der Status-Schaltung 561 getaktet wird. Das Signal first word carry wird vom Ausgang eines Koinzidenz-Gatters 582 (Fig. 23b) geliefert, das ein erstes Eingangssignal vom carry- bzw. Übertrags-Ausgang der arithmetischen Logikeinheit 525 und das Signal first word vom Flip-Flop 580 erhält.
Signal
Das Befehl-"erledigt "-/CMDDONE bzw. das Arbeitspuf fer-Bereit-Signal wird vom Ausgang eines Flip-Flops 584 geliefert, das durch das Status-Schaltungs-Schreib-Signal, das von der Status-Schaltung (s. Fig. 26) geliefert wird, getaktet und vom Ausgangssignal eines Gatters 585 in Antwort auf das Signal first word carry (low) vom Gatter 582 und das Signal last word (low) vom RLC-Wort-Abwärtszähler 529 zurückgesetzt wird. Somit erzeugt das Befehl-Erledigt-Flip-Flop das CMDDONE-Ausgangssignal nur in einem der beiden Endzustände 4 und 5, in welchem das Signal last word, jedoch nicht das Signal first word carry vorhanden ist.
Das Color-Signal für den Multiplexer wird durch ein BITSET-Signal gebildet, das von einem Flip-Flop 590 abgegeben wird, welches durch das RLCLOAD-Signal getaktet, durch das DMA-ENABLE-Signal zurückgesetzt und durch das höchstwertige Bit vom RLC, nämlich dem Color-Kode gesetzt wird.
Das Ausgangssignal der arithmetischen Einheit 525, die die niedrigst-wertigen Bits des RLC und die Bit-Adresse summiert, muß unter bestimmten Bedingungen in dem Bit-Positions-Adressen-Zwischenspeicher 531 gespeichert werden, wie dies oben beschrieben wurde. Zu diesem Zweck arbeitet ein Puffer 587 (Fig. 23b),der als Digitalschalter wirkt, mit einem entsprechenden Puffer 588 (Fig. 23a) so zusammen, daß sie
gemeinsam als Multiplexer wirken, um den Eingängen A, B, C, D des Bit-Positions-Adressen-Zwischenspeichers 531 entweder die Adressen-Bits, die sich aus der arithmetischen Summation der Logikeinheit 525 ergeben, oder die Adressen-Bits des Bit-Pos itions-Adressen-Befehls- zuzuführen, der vom Befehls-Generator kommt. Somit sind die Ausgänge 1Y1 bis 1Y4 der beiden Puffer 587, 588 mit den Eingängen A, B, C bzw. D des Zwischenspeicher 531 verbunden. Der Bit-Positions-Adressen-Zwischenspeicher 531 wird entweder durch den Adressen-Ladebefehl geladen, der über das Gatter 572 zugeführt wird, wenn zunächst Befehle in den RLC-Befehls-Prozessor eingeladen bzw. eingegeben werden, oder, während des Verarbeitens eines Befehls durch die Status-Schaltung, durch das SMLOADADDR-Signal, das von der Status-Schaltung kommt, wobei beide Befehle dem Lade-Eingang des Zwischenspeichers 531 über ein Gatter 550 zugeführt werden, das mit der active-low-Logik als ODER-Gatter arbeitet. Das anfängliche LOADADDR-Signal vom Gatter 572 wird mit wechselseitig exclusiven Zuständen dem Puffer 588 und über einen Inverter 589 dem Puffer 587 zugeführt, so daß der eine oder der andere dieser beiden Puffer die Bit-Position zum Zwischenspeicher 531 überträgt. Der Puffer 588 wird freigegeben, wenn ein Adressenbefehl vom Befehls-Generator geladen wird, um den Zwischenspeicher 531 zu veranlassen, die befohlene Bit-Position für die erste Wort-Modifikation zu speichern, während der Puffer 587 für nachfolgende Wörter freigegeben bzw. aktiviert (enabled) wird.
Ein DMA-Freigabe-Flip-Flop 592 (Fig. 23b) wird durch das DMAMODE-Signal, das vom Zeilen-Zusammenstell-Puffer stammt, vorgesetzt, durch das Puffer-Taktsignal getaktet und durch das ZeiTen^nde-Signal EOL vom Prozessor/Controller gesetzt, das signalisiert, daß die Übertragung von RLC-Befehlen vom Prozessor/Controller zum Arbeitspuffer vollständig bzw. beendet ist. Dieses Flip-Flop liefert das DMAENABLE-Signal und das hierzu inverse Signal von den Gattern 594 und 593.
Das DMAMODE-Signal wird auch dem Bit-Masken-Generator-PROM 526a und 526b zugeführt, um diesen während der Übertragung von Daten von den Arbeitspuffern zu den Zeilen-Zusammenstell-Puffern zu blockieren bzw. zu sperren (disable).
Fig. 24 zeigt die Schaltung des Multiplexers, der im Prinzip eine Schaltvorrichtung ist,die aus einer ersten und einer zweiten Reihe von Schaltern gebildet wird, wobei jedes Paar von einander entsprechenden Schaltern der beiden Reihen einen gemeinsamen Ausgang zum MBUS und zum Zwischenspeicher 543 (Fig. 22) besitzt. Somit umfaßt eine erste Reihe von Multiplexer-Schaltern Schaltergruppen 601, 602, 603 und 604, die einen ersten Satz von 16 Steuereingängen BITMASK 0-F, die vom Bit-Masken-Generator-PROM 526a und 526b kommen, und einen zweiten Satz von 16 Dateneingängen RAMD 0-F besitzen, die vom RAM-Daten-Bus 541 kommen (Fig. 22). Eine zweite Reihe von Multiplexer-Schaltergruppen 605, 606, 607 und 608 besitzt einen ersten Satz von 16 Steuereingängen, die von den Bit-Masken-Ausgängen 0 bis F kommen, und einen zweiten Satz von Daten-Eingängen, die alle mit dem Color-Kode angesteuert werden, der von einem Verstärker 610 geliefert wird, welcher ein BITSET-Eingangssignal erhält, das vom Ausgang des Color-Flip-Flops 590 geliefert wird (Fig. 23a). Entsprechende Schalter der beiden Reihen besitzen gemeinsame Ausgangsleitungen zum MBUS 0-F. Diese Schalter haben individuelle Freigabe/Sperr-Steuerleitungen, so daß jedes Datenbit individuell gesteuert werden kann. Wenn ein BITMASK-Eingang high, d.h. auf logisch ist, wird der entsprechende Schalter (Puffer) der Reihen 605 bis 608 aktiviert bzw. freigegeben, so daß er das Signal BITSET (color) zum MBUS leitet. Die Reihen 601 bis 604 sindgesperrt, wenn das Signal BITMASK auf einer logischen (high) ist. Wenn BITMASK auf einer Togischen 0 (low) ist, ist der entsprechende Schalter (Puffer) von den Reihen bis 604 freigegeben, um das Signal RAMDATA zu MBUS zu leiten. Der Multiplexer modifiziert den Status von nur denjenigen
SAD ORJGfNAL
Bits, die durch den RLC-Befehl ausgewählt sind und leitet alle anderen Bits in unveränderter Form weiter.
Wie in Fig. 25 dargestellt, umfaßt der RAM-Daten-Zwischenspeicher 543 aus Fig. 22 zwei Chips.543a und 543b, die die 16 Eingangssignale von den MBUS-Leitungen O bis F erhalten und 16 AusgangsSignaIe für den RAM-Daten-Bus 541 unter der Steuerung des RAMWRITE-Signals liefern, das zum Takten des Zwischenspeichers über einen Inverter 612 zugeführt wird, so daß die MBUS-Daten während des Befehls zum Wiedereinschreiben der Daten in den RAM verriegelt bzw. zwischengespeichert und freigegeben (enabled) werden. Die RAM-Speicher-Chips sind beim Fehlen eines aktiven (low) RAMWRITE-Signals immer im Lesezustand. Wenn das RAMWRITE-Signal aktiv (low) wird, wird der RAM-DATA-BUS 541 ein Eingangs-port und die Zwischenspeicher 543a und 543b werden aktiviert bzw. freigegeben, um ihren Inhalt in dem Zeitpunkt auf dem RAM-DATA-BUS zu plazieren, in welchem die MBUS-Daten in die Zwischenspeicher übertragen werden. Daher wird dann, wenn das Signal RAMWRITE auf logisch O (low) geht, der Inhalt des MBUS in den RAM übertragen, wo die Daten bei Beendigung (steigende Flanke) des RAMWRITE-Signals verriegelt bzw. zwischengespeichert werden.
Die Status-Schaltung 561, die die Zähler während der Datenexpansion steuert, ist in Fig. 26 dargestellt. Die Status-Schaltung umfaßt einen Dekoder 615, der Eingänge last word, first word, first word carry und DMAMODE besitzt, die mit diesem Dekoder so verbunden sind, daß Ausgangssignale gemäß den sechs Zuständen der Wahrheitstabelle erzeugt werden. Die Ausgangssignale sind ein Signal DECRLC zum Dekrementieren des RLC, das von einem Gatter 616 gebildet wird, und ein Adreß-Zähler-Freigabesignal SMCNTEN, das von einem Gatter 617 gebildetwird. Die Status-Schaltung umfaßt auch ein ODER-Gatter 618, das ein das Laden der aktualisierten Adresse bewirkendes Ausgangssignal SMLOADADDR erzeugt und
dessen erstes Eingangssignal das Signal first word und dessen zweites Eingangssignal das Schreibsignal SMWRITE ist. Das SMWRITE-Signal ist das ripple-carry-Ausgangssignal eines Modulo-3-Ring-Zählers 620. Das Lade- bzw. Schreib-Eingangssignal zum Setzen des Zählers 620 wird von einem Koinzidenzgatter 622 geliefert, das die Eingangssignale SMWRITE und CMDDONE erhält, wobei letzteres vom Flip-Flop 584 (Fig. 23a) kommt. Ein Start-Flip-Flop 623, das durch das CMDDONE-Signal zurückgesetzt, durch ein festes Signal P/U gesetzt und durch das RLCLOAD-Signal getaktet wird, liefert ein Start-Eingangssignal für den Status-Schaltungs-Dekoder 615. Das SMWRITE-Signal wird dem Status-Schaltungs-Dekoder-Chip 615 zugeführt, um seine Ausgänge beim dritten Zählwert des Ringzählers gemäß der System-Zeitsteuerung freizugeben, die unten beschrieben und in den Fig. 29, und 31 dargestellt ist.
In Fig. 27 ist die Schnittstellen-Steuerschaltung wiedergegeben, die in Fig. 22 allgemein mit dem Bezugszeichen 559 gekennzeichnet ist. Diese Status-Schaltung (state machine circuit) übernimmt nach Beendigung der Datenexpansion die Steuerung, um (für Trapezoide und Muster) das Löschen bzw. Zurücksetzen der Arbeitspuffer-Speicher und die Wort um Wort erfolgende übertragung der expandierten Daten aus dem RLC-Befehls-Prozessor zu den Zeilen-Zusammenstell-Puffern zu steuern. Ein Schieberegister 630 ist mit seinem Α-Eingang auf Masse gelegt, während seine anderen Eingänge einschließlich der Eingänge B und C mit einem festen hohen Pegel P/u verbunden sind. Das Schieberegister durch das Ausgangssignal eines Koinzidenz-Gatters 631 geladen, dessen Eingangssignale das Signal DMAENABLE und das vom Ausgang Q des Schieberegisters gelieferte Signal sind. Das Schieberegister wird durch das Ausgangssignal eines UND-Gatters 632 getaktet, das als erstes Eingangssignal den Puffer-Takt und als zweites Eingangssignal das Ausgangssignal einer Gatter-Schaltung 633 erhält, das die Eingangs-
Signale Q , Q , DMAENABLE und READACKN erhält. Wenn das
ei C
Register 630 geladen ist/ liegt der Ausgang Q auf einer
logischen O (low) und die Ausgänge Q, und Q liegen beide auf einer logischen 1 (high). Der Ausgang Q ist einfach
zum Takteinaan^ zurückgeführt, um eine Durchlaufzeit zu liefern, die die Stabilisation der Daten ermöglicht. Das Signal von Q, wird über einen Inverter 634 weitergeleitet, um das DATAVALID-Signal zu liefern. Das Signal des Ausgangs Q wird einem Koinzidenz-Gatter 636 zugeführt, das an seinem zweiten Eingang das DMAMODE-Signal erhält und ein Ausgangssignal für ein ODER-Gatter 637 liefert, das an seinem zweiten Eingang das SMCNTEN-Signal von der Daten-Expansions-Status-Schaltung erhält. Das Gatter 637 liefert als Ausgangssignal das ADDRCNTEN-Signal an den Verstärker 571 (Fig. 23a) um den Adressen-Aufwärtszähler beim Empfang von READACKN im DMAMODE oder beinEmpfang von SMCNTEN beim Daten-Expansions-Mode freizugeben. Das Signal des Q -Ausgangs wird als ein Eingangssignal einem UND-Gatter 640 zugeführt, das auch ein Festpegel-TRACEMODE-Signal über einen Inverter 641 empfängt und dessen Ausgang ein erstes Eingangssignal für ein ODER-Gatter 642 liefert, dessen zweites Eingangs- ·· signal vom SMWRITE-Signal gebildet wird, und das an seinem Ausgang das RAMWRITE-Signal liefert. Wenn das TRACEMODE-Signal geerdet ist "(wie dies für einen Leitbahn-RLC-Befehls-Prozessor der Fall ist) erzeugt das Gatter 642 nicht das RAMWRITE-Signal, das die Trapezoid- und Muster-Arbeitspuffer zurücksetzt. Das TRACEMODE-Signal· weist für die Trapezoid- und Muster-Arbeitspuffer eine logische 1 (high) auf. Das SMWRITE-Signal erzeugt das RAMWRITE-Signal (für alle Arbeitspuffer) während der Daten-Expansion, während der Q -Ausgang
des Schieberegisters 630 das RAMWRITE-Signal (nur für Muster- und Trapezoid-Arbeitspuffer) während der Daten-Übertragung (und dem Zurücksetzen) zu den Zeilen-Zusammenstell-Puffern erzeugt. _- ■
Das Signal DMAENABLE lädt das Schieberegister 631, so daß
Q auf logisch O (low) und Q, und Q auf logisch 1 (high) a jd c
gesetzt werden, und das Schieberegister bleibt in diesem Zustand, bis das Signal DMAENABLE weggenommen wird. Wenn der Zeilen-Zusammenstell-Puffer das DMAENABLE-Signal von allen RLC-Befehls-Prozessoren erhält, schickt er das DMAMODE-Signal zurück, um das Signal DMAENABLE zu löschen. Das Wegnehmen bzw. Löschen des DMAENABLE-Signals erlaubt es dem Schieberegister 630 mit dem Zählen zu beginnen, wobei es von seinem Zählwert Q nach Q, geht. Das Schiebe-
a ο
register hält an und wartet bei Q , bis es das READACKN-Signal erhält und geht dann nach Q . Wenn der Ausgang Q, auf logisch 0 (low) liegt, Q auf logisch 1 (high) ist,
ei
dann ist DMAENABLE auf logisch 1 (high), d.h. inaktiv und READACKN ist auf logisch 1 (high), d.h. ebenfalls inaktiv, da der Zeilen-Zusammenstell-Puffer den Empfang der Daten noch nicht bestätigt hat und das Gatter 634 das DATA-VALID-Signal liefert. Das Schieberegister 630 bleibt in seinem zweiten Zählzustand, wobei Q, auf logisch 0 (low) ist, und wenn das Signal READACKN auf logisch 0 geht, d.h. aktiv wird, wird das Schiebereaister weitergetaktet und Q geht auf logisch 0, um die Signale RAMWRITE und ADDRRCNTEN zu erzeugen, die es erlauben, daß der Adressenzähler beim nächsten Puffertakt inkrementiert wird, wenn das Signal RAMWRITE weggenommen bzw. zurückgesetzt wird. Beim nächsten Puffertakt wird die Adresse inkrementiert und die Signale ADDRCNTEN und RAMWRITE werden weggenommen.
Das Signal DMAMODE von den Zeilen-Zusammenstell-Puffern wird dem PROM 526a, 526b (Fig. 23b) zugeführt, um dessen Ausgänge während des Datenübertrags zu den Zeilen-Zusammenstell-Puf fern zu sperren. Das Signal DMAENABLE hat zuvor das Color-Flip-Flop 590 (Fig. 23a) zurückgesetzt, so daß der Multiplexer lediglich Nullen durchläßt, und daher alle Bits des Adressen-RAM-Wortes löscht bzw. zurücksetzt, wenn das Signal RAMWRITE freigegeben ist. Daher wird für alle
RLC-Befehls-Prozessoren mit Ausnahme des Leitbahn-RLC-Befehls-Prozessors jeder Wortplatz des Arbeitspuffers während des Datenübertragens von einem solchen Wortplatz zu den Zeilen-Zusammenstellpuffern gelöscht. Für eine noch größere Geschwindigkeit können die Ausgangspuffer 542 (Fig. 22) durch einen schaltbar gesteuerten Zwischenspeicher (latch) ersetzt werden, der zeitweilig jedes Datenwort speichert, während er auf das Signal READACKN von den Zeilen-Zusammenstell-Puffern wartet. Demgemäß kann der Puffer-Wort-Platz während des Übertragens von expandierten Daten zu den Zeilen-Zusammenstell-Puffern und während des Wartens auf das Signal READACKN und dem dritten Zyklus des Schieberegisters 630 gelöscht werden, um auf diese Weise" die Zeit zu eliminieren, die mit dem Warten auf das Signal READACKN verbunden ist.
Die in Fig. 28 dargestellte Schaltung verhindert bzw» sperrt das Einschreiben von Nullen in Trapezoid- und Musterarbeitspuffer. Das Signal BUFRDY, das als erstes Eingangssignal einem ODER-Gatter 650 zugeführt wird, wird zum Abwählen (Verhindern bzw. Sperren des Einschreibens) des RAM (durch das Gatter-Ausgangs-Signal RAMSEL) verwendet, wenn der Puffer bereit ist, neue RLC-Befehle anzunehmen, die sie jedoch noch nicht wirklich verarbeitet. Dies spart Leistung, da der RAM weniger Leistung aufnimmt, wenn er abgewählt ist, und einige der Arbeitspuffer können untätig sein, während eine Anzahl von Befehlen einem einzelnen Arbeitspuffer zugeleitet wird. Der RAM wird ebenfalls durch ein zweites Eingangssignal zum Gatter 650 gesperrt, das von einem Drei-Eingangs-Koinzidenz-Gatter 652 stammt, das die Eingangssignale BITSET zurücksetzt, Fehlen von DMAMODE, und Fehlen von TRACEMODE erhält. Das Sperren des Einschreibens von Nullen in die Muster- und Trapezoid-Arbeitspuffer-RAMs während der Daten-Expansion ermöglicht die überlagerung von Muster über Muster und von Trapezoiden über Trapezoide in einem einzelnen Arbeitspuffer. Wenn es überlappende
Lauflängen-Kode in den Bilddaten einer Abtastzeile eines Arbeitspuffer gibt, kann der erste zu expandierende Befehl Einsen in einer Reihe von Bit-Positionen aufweisen. Ein späterer RLC-Befehl für denselben Arbeitspuffer und dieselbe Datenzeile kann Nullen in denselben Bit-Positionen befehlen, doch wenn die überlagerung durchgeführt werden soll, dürfen diese Nullen die zuvor eingegebenen Einsen nicht beeinflussen. Demgemäß wird das Einschreiben von Nullen in Trapezoid- und Muster-Arbeitspuffer über das Gatter während der Daten-Expansion gesperrt bzw. verhindert. Selbstverständlich müssen Nullen nicht geschrieben werden, da Muster- und Trapezoid-Arbeitspuffer vor der Expansion von Befehlen auf jeder neuen Abtastzeile gelöscht, d.h. alle Bits auf Null gesetzt werden.
Die verschiedenen Schaltungen der Fig. 23 bis 27 sind standardmäßige TTL-Chips, die von verschiedenen Herstellern, beispielsweise Texas Instruments geliefert werden. Diese verschiedenen Chips werden in folgender Weise identifiziert:
Bezugszeichen Bauteil-Bezeichnung
529, 528, 620 74 LS169
531, 53Oa, 53Ob, 53Oc 74 LS161.
540, 587, 588 74 LS244
580, 584, 590, 592, 623 74 LS74
525 74 LS283
615 . 74 S138
630 74 S195
601-604 74 T.S125
605-608 74 LS126
543a, 543b 74 LS374
520 2148H-3
542 74 S05
526a, 526b Signetics 82S1OO
RLC-Befehls-Prozessor-Zeitsteuerung
In Fig. 29 ist die Arbeitsweise der Status-Schaltung 561 (die im einzelnen in Fig.26 dargestellt ist) zur Expansion von zwei verschiedenen Befehlen dargestellt, von denen jeder eine Modifikation von zwei nachfolgenden bzw. aufeinanderfolgenden Speicherwörtern bewirkt. Die Zeiten t bis t? stellen den Betrieb dar, bei dem die gesamte Folge von Bits, die modifiziert werden müssen, in zwei aufeinanderfolgenden Speicherwörtern enthalten ist, wobei die Signale first word, last word und first word carry gleichzeitig auftreten. Das System befindet sich bis zur Zeit t4 im Status 6 und geht dann in den Status 4 über. Unter Steuerung des Puffertaktes, der in Zeile a der Fig. 29 dargestellt ist, werden die Signale RLCLOAD (Zeile b) und first word (Zeile d) wahr (low) zur Zeit t.. , und der Modulo-3-Ringzähler 620 (Fig. 26) wird geladen, um das Zählen zu beginnen, wenn das Signal RLCLOAD zum Zeitpunkt t„ inaktiv (high) wird. Der Ringzähler zählt durch seine Zyklen abwärts, wie dies in Zeile e durch die Zahl 2, 1 und 0 dargestellt ist. Das Signal last word (Zeile f) wird im Zeitpunkt t„ bei der Beendigung des Ladens des Zwischenspexchers 529 aktiv. Das Signal first word carry (Zeile i) wird im Zeitpunkt t_ aktiv (high)· Beim Beginn der letzten Zählung der Ringzählers zum Zeitpunkt t~ wird sein Ausgangssignal SMWRITE (Zeile e) aktiv und veranlaßt den Status-Schaltungs-Dekoder 615 seine aktiven Ausgangssignale SMCNTEN (Zeile a) und SMLOADADDR (Zeile j) zu liefern. Die logische 1 (high) des Signals first word carry verhindert ein Setzen des Befehl-Erledigt-Flip-Flops 584 durch das SMWRITE - Signal zum Zeitpunkt t3. Die Signale first word, first word carry, SMCNTEN und SMLOADADDR werden alle im Zeitpunkt t, inaktiv. Der Ringzähler beginnt seinen nächsten Dreier-Zählzyklus und produziert seinen zweiten SMWRITE-Impuls im Zeitpunkt t[-, doch befindet sich das System im Status 4 und nur das Signal last word ist aktiv. Der Dekoder 615 erzeugt daher nur das SMCNTEN-Signal gemäß Zeile h. Das Befehl-Erledigt-
ORlGINAL
Flip-Flop 584, das dadurch gesetzt wurde, daß das Signal first word carry inaktiv und das Signal last word aktiv wurde, wird durch das Ansteigen des SMWRITE-Impuls im Zeitpunkt t, getaktet, so daß es das Befehl-Erledigt-Signal zum Zeitpunkt t, gemäß Zeile c erzeugt.
In Fig. 30 sind drei Zählabschnitte des Status-Schaltungs-Ringzählers 620 aus Fig. 26 wiedergegeben. Während des load-RLC-Impulses von tn bis t~ wird der Ringzähler geladen, werden die Wortadresse und der Lauflängen-Kode in die Zwischenspeicher eingegeben, wird das Signal first word gesetzt und wird festgestellt, ob die Signale first word carry und/oder last word vorhanden sind. Im Zeitpunkt t.. beginnt der Zähler seine drei Zählschritte umfassende Zählung, wobei sein dritter Zählschritt bei t„ beginnt und bei t_ endet, wobei der Zähler in diesem Zeitpunkt zum Anfangszustand zurückkehrt und saine nächste Dreier-Zählung beginnt. Die Adresse für den RAM wird bei t~, d.h. bei der hinteren Kante des dritten Zählschritts inkrementiert. Während der ersten beiden Zählschritte vom Zeitpunkt t^ bis zum Zeitpunkt
t. gibt das System den RAM zum Lesen frei und es wird entweder
4 BITSET
der Inhalt des RAM oder das Color-Bit/auf den MBUS in Abhängigkeit vom Status des Bit-Masken-Ausgangssignals geschaltet. Am Ende des zweiten Zählabschnitts im Zeitpunkt t., wird der Inhalt des MBUS in die Zwischenspeicher 543a, 543b eingesoeichert und es wird der übliche RAM-Schreibzyklus begonnen. Der dritte Zählschritt des Ringzählers beginnt im Zeitpunkt t4 (Fig. 30). Während dieses Zählschritts ist das Signal SMWRITE aktiv und der Inhalt der Zwischenspeicher 543a und 543b wird in den RAM eingeschrieben, das Adresseninkrement wird freigegeben und erforderlichenfalls wird RLC dekrementiert. Am Ende des dritten Zählschritts des Ringzählers wird die RAM-Adresse inkrementiert, wenn der Zähler erneut mit seiner Dreier-Zählung beginnt.
BAD ORIGINAL
In Fig. 29 stellt der Teil, der beim Zeitpunkt t7 beginnt und sich nach rechts erstreckt, die Arbeitsweise der Status-Schaltung 561 für die Modifikation von zwei benachbarten Worten dar, wenn kein Signal first word carry vorhanden ist. Dieser Teil der Zeichnung zeigt den Betrieb des Systems beginnend im Status 2 und dann weitergehend zum Status 4. Bei Beendigung des Signals RLCLOAD im Zeitpunkt to beginnt der Ringzähler seine Zählung. Beim Beginn ö
seines dritten Zählschritts im Zeitpunkt tg wird dann, wenn ein Signal first word,aber kein Signal last word und kein Signal first word carry vorhanden ist, das Signal SMWRITE zusammen mit den Signalen DECRLC, SMCNTEN und SMLOADADDR erzeugt. Im Zeitpunkt t1o, nach dem ersten vollständigen drei Zählschritte umfassenden Zyklus des Ringzählers ist das Signal first word inaktiv und das Signal last word wird aktiv und das System geht vom Status 2 in den Status 4 über. Im Zeitpunkt t- .., am Beginn des dritten Zählschritts des Ringzählers liefert die Status-Schaltung ihr Ausgangssignal SMCNTEN, um die RAM-Adresse zu inkrementieren. Das Befehl-Erledigt-Flip-Flop 584, das dadurch gesetzt worden ist, daß vor dem Zeitpunkt t^ das Signal last word aktiv und das Signal first word carry inaktiv war, wird durch das Signal SMWRITE getaktet, das im Zeitpunkt t11 beginnt, das Befehl-Erledigt-Signal beim nächsten Puffer-Takt t12 zu initiieren und somit den zweiten der Zweiwort-Modifikations-Arbeitsabläufe zu vervollständigen bzw. zu beenden, der in Fig. 29 dargestellt ist.
In Fig. 31 ist der Arbeitsablauf der Status-Schaltung 561 auf der linken Seite der Figur für eine Modifikation dargestellt, die sich über mehrere Wörter erstreckt, während auf der rechten Seite dieserPigur nur die Modifikation eines einzelnen Wortes im Status 5 wiedergegeben ist. Fig. 31 zeigt zwischen den Zeitpunkten t- und t„ den Betrieb der Status-Schaltung für die Modifikation eines Lauflängen-Kodes, der sich über vier Speicherwörter erstreckt. Der
JZJ3DUD
Zeitraum von t1 bis t. zeigt den Betrieb der Schaltung im Status 3, in welchem die Signale first word und first word carry jeweils aktiv sind, das Signal last word jedoch inaktiv ist. Zwischen den Zeitpunkten t. und tfi ist die Arbeitsweise der Schaltung im zweiten Wort im Status 1 und in entsprechender Weise zwischen den Zeitpunkten t,-
und to der Betrieb im dritten Wort ebenfalls im Status 1 ο
dargestellt. Alle Bits sowohl des zweiten als auch des dritten Wortes werden modifiziert. Zwischen den Zeitpunkten to und t1n ist der Betrieb der Schaltung für das letzte Speicherwort dieses Befehls dargestellt, wobei die Schaltung in diesem Zeitraum im Status 4 arbeitet.
Vom Zeitpunkt t1n bis zum Ende der Zeilen der Zeitsteuersignale zeigt Fig. 31 den Betrieb der Schaltung im Status 5, bei dem der gesamte Lauflängen-Kode in einem einzigen Wort auftritt. Hier sind die Signale first word und last word aktiv und das Signal first word carry ist inaktiv. Demgemäß liefert die Status-Schaltung lediglich das Status-Schaltungs-Adressen -Lade-Ausgangssignal SMLOADADDR, um die Summe von KLC 0-3 und ADR 0-3 zu speichern, und das Befehl-Erledigt-Flip-Flop wird dadurch gesetzt, daß das Signal last word vor dem SMWRITE-Zählschritt des Modulo-Drei-Ringzählers auftritt.
Fig. 32 zeigt die Schnittstellensteuerung 559 (die im einzelnen in Fig. 27 dargestellt ist) und die relative Zeitsteuerung ihrer Eingänge und Ausgänge unter derSteuerung des Puffer-Taktes, der in Zeile a dargestellt ist. Beim Empfang des EOL-Signals (Zeile b) im Zeitpunkt t1, welches der Eingangsbefehl auf Leitung 558 (Fig. 22) vom Befehlsgenerator zum DMA-Freigabe-Flip-Flop 592 (Fig. 23b) ist, liefert das Flip-Flop^OMAENABLE-Signal (Zeile c) beim nächsten Puffer-Takt im Zeitpunkt t2 und dieses Signal wird zu den Zeilen-Zusammenstell-Puffern ausgesandt. Wenn die Zeilen-Zusammenstell-Puffer das Signal DMAENABLE von
BAD ORIGINAL
allen Arbeitspuffern erhalten haben, senden sie das in Zeile d dargestellte Signal DMAMODE zurück, das im Zeitpunkt t3 das Signal DMAENABLE (Flip-Flop 592 in Fig. 23b) löscht, was es dem Schieberegister 630 erlaubt, beim Empfang von Takt-Eingangssignalen mit dem Zählen zu beginnen. Im Zeitpunkt t. beim zweiten Zählschritt des Schieberegisters 630 liefert letzteres das in Zeile e dargestellte DATA-VALID-Signal, das an die Zeilen-Zusammenstell-Puffer ausgesandt wird. Beim Empfang des DATAVALID-SignaIs und beim Zwischenspeichern der Ausgangsdaten vom RLC-Befehls-Prozessor schicken die Zeilen-Zusammenstell-Puffer im Zeitpunkt t,-das Signal READACKN zurück, das den dritten Zählschritt Q des Schieberegisters 630 triggert, das hierauf die in den Zeilen e und h dargestellten ADDRCNTEN- (vom Gatter 637 in Fig. 27) und das RAMWRITE-Ausgangssignal (vom Gatter 642 in Fig. 27) erzeugt. Das RAMWRITE-Signal befiehlt bei DMAMODE (jedoch nicht während der Datenexpansion) das Löschen des Inhalts der Trapezoid- und Muster-Arbeitspuffer, jedoch nicht öer Leitbahn-Arbeitspuffer.
Zum Zeitpunkt t~ (Fig. 32) werden die RAM-Adressen-Zähler des Arbeitspuffers gelöscht bzw. zurückgesetzt, um die Wort um Wort erfolgende Übertragung der expandierten Daten zu den Zeilen-Zusammenstell-Puffern vorzubereiten. Bei der hinteren Flanke des ADDRCNTEN-Signals im Zeitpunkt t, wird die RAM-Adresse inkrementiert und beim nächsten Puffertakt im Zeitpunkt t7 werden die RAM-Daten stabil. Die Daten werden dann gültig gehalten, bis das Signal READACKN von den Zeilen-Zusammenstell-Puffern erhalten wird und im Zeitpunkt tg werden alle Puffer-Speicher mit Ausnahme der Leitbahn-Puffer-Speicher gelöscht. Im Zeitpunkt tg bei der hinteren Flanke des Signals ADDRCNTEN wird die RAM-Adresse erneut inkrementiert und es wird das nächste RAM-Wort im Ausgangs-Puffer 542 plaziert (Fig. 22).
Die Zeilen-Zusammenstell-Puffer umfassen einen Zähler zum Zählen der übertragenen Worte, und wenn dieser Zähler den Empfang des letzten der bekannten Anzahl von Speicherworten signalisiert, wird das Signal DMAMODE weggenommen und es wird kein weiteres READACKN-Signal von den Zeilen-Zusammenstell-Puffern ausgesandt. Demgemäß bleibt das Schieberegister 6 30 in demselben Zustand bzw. Status ohne weitere Verschiebung, bis die nächste Zeile von Daten expandiert worden ist und übertragen werden muß. Das Wegnehmen des DMAMODE-SignaIs kippt ein Flip-Flop (nicht dargestellt), das ein Puffer-Bereit-Signal BUFRDY erzeugt, um zu veranlassen, daß der nächste Befehl vom Befehlsgenerator für die Expansion durch den RLC-Befehls-Prozessor ausgesandt wird. Erfindungsgemäß können auch andere Anordnungen verwendet werden, um das Ende der Wort um Wort erfolgenden Daten-Übertragung zu den Zeilen-Zusammenstell-Puffern zu signalisieren und die nächste Befehlszeile zum Eingeben in den RLC-Befehls-Prozessor freizugeben. Somit wird der Inhalt des RAM zu den Zeilen-Zusammenstell-Puffern Wort für Wort, d.h. immer nur ein Wort gleichzeitig übertragen, während das Schieberegister 630 wiederholte Male seinen Zyklus durchläuft, bis die gesamte Datenzeile übertragen worden ist.
Man sieht, daß die beschriebene Anordnung die Positionierung eines jeden Musters an jeder Stelle innerhalb des Bildes unter entweder additiver oder subtraktiver Überlappung anderer Muster, Trapezoide oder Leitbahn-Teile ermöglicht. Es ist nicht, wie manche dem Stand der Technik entsprechende System auf die Plazierung von Mustern in einer starr strukturierten Anordnung und nicht auf Muster beschränkt, die eine gleichförmige Größe besitzen. Muster mit vielen verschiedenen Gesamtgrößen können bei der beschriebenen Ausführungsform ohne weiteres verwendet werden. Die Datenkompression ist außerordentlich hoch. Sobald die Daten für ein gegebenes Bild in den Bibliotheks- und Bilddaten-
BAD ORIGINAL
Speichern gespeichert worden sind, können sie wiederholte Male für eine sich wiederholende Erzeugung dieses Bildes verwendet werden. Die übergeordnete Speicherung wie z.B. auf den Floppy-Discs 28, 30 oder äquivalenten Band-Speichereinrichtungen oder dergleichen wird in sehr starkem Maß verringert, da nur ein Muster einer jeden verschiedenen Form gespeichert werden muß, d.h. die Daten für ein gegebenes Muster erscheinen in dem Speicher selbst dann nur einmal, wenn dieses Muster in einem einzelnen Bild viele Male auftaucht. Die Vorbereitung der Befehle ist vereinfacht, es wird eine Speicherplatz-Sortierung vermieden und eine Überlappung auf einfache Weise ermöglicht. Schräg verlaufende Linien und andere trapezoidale Muster können schnell aus einem Minimum von Daten erzeugt werden und eine spezielle Hardware ermöglicht eine Hochgeschwindigkeits-Modifikation·der Arbeitspuffer-Speicher auf einer wortweisen Basis, wobei alle Bits eines jeden Worts parallel verarbeitet werden.
L e e r s e i t e

Claims (1)

  1. HELMUT SCHROETER .-KLAUS i&HMAWN .-"3 2 3 9606"
    DIPL.-PHYS. ■■" b'lPL.-lN'G.
    PATENTANWÄLTE - EUROPEAN P AT E N T ATTO R N E Y S
    ca-ex-14 St/L
    25. 10. 1982
    EXCELLON INDUSTRIES
    Abtastzeilen-Generator
    Patentansprüche
    .) Abtastzeilen-Generator zur Erzeugung eines Bildes in einer Vielzahl von Abtastzeilen von Bildelementen, wobei das Bild eine Vielzahl von Spuren bzw. Bahnen aufweist, die eine relativ geringe Änderung von einer Abtastzeile . zur nächsten aufweisen, und eine Vielzahl von Mustern, die eine vergleichsweise größere Änderung von einer Abtastzeile zur nächsten besitzen, dadurch gekennzeichnet, daß folgende Bestandteile vorgesehen sind:
    D-7070 SCHWÄBISCH GMUND KONTEN: D-8000 MÜNCHEN
    H. SCHROETER Telefon: (07171) 5690 Deutsche Bank AG München 70/37369 (BLZ 700 70010) K. LEHMANN Telefon: (0S9) 7252071
    Bocksgasse 49 Telex: 7248 868 pagdd Postscheckkonto München 167941-804 (BLZ 700 100 80) Lipowskystraße 10 Telex: 5212248 pawc d
    Leitbahn-Puffer-Einrichtungen, die Daten enthalten, welche die Bahn-Elemente auf einer Abtastzeile definieren,
    Muster-Puffer-Einrichtungen, die Daten enthalten, welche Muster-Elemente auf einer Abtastzeile definieren, Einrichtungen zum Erzeugen eines Daten-Stroms, der eine Vielzahl von Abtastzeilen zur Erzeugung eines Bildes steuert,
    Steuereinrichtungen zum Steuern des Daten-Stroms und
    Einrichtungen zum übertragen/sowohl von den Bahnais auch den Muster-Puffereinrichtungen zur Steuereinrichtung zum Steuern des Daten-Stroms.
    2. Generator nach Anspruch 1, dadurch gekennzeichnet , daß die Einrichtung zum übertragen Mittel umfaßt, die dazu dienen, entweder eine oder beide Puffer-Einrichtungen mit der Steuer-Einrichtung zu koppeln.
    3. Generator nach Anspruch 2, dadurch gekennzeichnet , daß die Steuereinrichtung einen Zeilen-Zusammenstell-Puffer umfaßt, daß die Einrichtung zum übertragen eine logische ODER-Schaltung zum übertragen von Daten aus den Bahn- und Muster-Puffer-Einrichtungen zum Zeilen-Zusammenstell-Puffer umfaßt, daß durch den Zeilen-Zusammenstell-Puffer sowohl die Bahn-Daten als auch die Muster-Daten für eine einzelne Abtast-Zeile zusammenstellbar sind und daß Einrichtungen zum Löschen der Muster-Puffer-Einrichtungen nach dem übertragen der Daten aus diesen Puffer-Einrichtungen heraus vorgesehen sind.
    4. Generator nach Anspruch 3, dadurch gekennzeichnet , daß er Trapezoid-Puffer-Einrichtungen umfaßt, die Daten enthalten, welche Trapezoid-Elemente
    auf einer Abtastzeile definieren, und daß Einrichtungen zum übertragen der Daten aus den Trapezoid-Puffer-Einrichtungen zu den Zeilen-Zusammenstell-Puffern vorgesehen sind.
    5. Generator nach Anspruch 1, dadurch g e k e η η -
    ζ e ichne t , daß er dritte Puffer-Einrichtungen umfaßt, die subtraktive Daten enthalten, welche Abtastzeilen-Elemente eines subtraktiven Musters definieren, das ein Loch in einer der Bahnen oder in einem der Muster definiert, und daß eine Einrichtung zum subtraktiven Kombinieren der subtraktiven Daten mit den Daten vorgesehen ist, die zur Steuereinrichtung übertragen werden.
    6. Generator nach Anspruch 5, dadurch gekennzeichnet , daß die Steuereinrichtung einen Zeilen-Zusammenstell-Puffer umfaßt, daß die Einrichtung zum übertragen eine logische ODER-Schaltung zum übertragen von Daten von den Bahn- und Muster-Puffer-Einrichtungen zum Zeilen-Zusammenstell-Puffer umfaßt, und daß die Einrichtungen zum subtraktiven Kombinieren eine logische UND-Schaltung zum übertragen der subtraktiven Daten und der Daten von der ODER-Schaltung zu dem Zeilen-Zusammenstell-Puffer aufweist. .
    7. Generator nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet , daß wenigstens eine der Puffer-Einrichtungen einen Speicher umfaßt, der eine Vielzahl von Speicherbereichen besitzt, die Speicherwörter definieren, von denen jedes aus einer Vielzahl von Bits zusammengesetzt ist, daß eine Vielzahl von Befehlen zum Spezifizieren von Bit-Zuständen in dem Speicher zur Verfügung steht, daß jeder Befehl einen Längen-Kode, der eine Folge von aufeinanderfolgenden Bits mit gleichem Zustand definiert, und einen Color-
    Kode umfaßt, der den Zustand der Bits dieser Folge festlegt, daß wenigstens einer dieser Befehle eine Start-Adresse, die die Wort-Adresse des Speicherworts, das den Beginn einer Folge enthält, und die Bit-Adresse in einem Speicher-Wort des ersten Bits einer Folge definiert, und daß eine Einrichtung zum Steuern des Zustande der Bits in dem Speicher vorgesehen ist, die folgende Bestandteile umfaßt:
    Einrichtungen zum Adressieren von Bits aus dem Speicher für wenigstens ein Wort gleichzeitig und eine Einrichtung, die auf die Befehle zum Steuern des Zustands der Bits eines Worts, das adressiert ist, anspricht, wobei die Einrichtung zum Steuern eine Einrichtung zum Erzeugen einer Bit-Maske, die die zu steuernden Bits eines gegebenen Wortes auswählt und eine Einrichtung umfaßt, die auf die Bit-1 Masken erzeugende Einrichtung und den Color-Kode in der Weise anspricht, daß sie die Zustände dieser Bits eines adressierten Wortes, das durch die Bit-Masken-Erzeugungseinrichtung ausgewählt ist, steuert.
    8. Generator nach Anspruch 1, dadurch g e k e η η zei'chnet , daß er eine Muster-Bibliotheks-Einrichtung zum Speichern von Muster-Daten, die die Elemente einer Vielzahl von Mustern definieren, eine Bilddaten-Einrichtung zum Erzeugen von Abtastzeilen-Daten, die Muster-Aufrufbefehle umfassen, die die Muster auf jeder Abtastzeile identifizieren, und Einrichtungen umfaßt, die auf jeden Muster-Aufrufbefehl in der Weise ansprechen, daß sie Muster-Daten aus der Muster-Bibliotheks-Einrichtung zu der Muster-Puffereinrichtung übertragen.
    9. Generator nach Anspruch 8, dadurch gekennzeichnet, daß die Abtastzeilen-Daten der
    Bilddaten-Einrichtung einen Trapezoid-Befehl umfassen, der ein Trapezoid definiert, und daß Trapezoid-PufferEinrichtungen, Einrichtungen, die auf den Trapezoid-Befehl in der Weise ansprechen, daß sie in den Trapezoid-Puf fer-Einrichtungen Daten speichern, die die Trapezoid-Elemente auf einer Abtastzeile definieren, und Einrichtungen vorgesehen sind, die dazu dienen, Daten aus den Trapezoid-Puffer-Einrichtungen zu den Steuer-Einrichtungen zu übertragen.
    10. Generator nach Anspruch 8, dadurch g e k e η η zeichnet, daß die Muster-Daten in der Bibiliotheks-Einrichtung in Lauflängen-Kodierung gespeichert sind.
    11. Generator nach Anspruch 8, dadurch gekennzeichnet , daß die Muster-Daten-Übertragungs-Einrichtung eine Pointer-Tabellen-Speichereinrichtung zum Speichern der Bibliotheks-Adressen der Muster in der. Muster-Bibliotheks-Einrichtung und eine Einrichtung umfaßt, die auf jeden Muster-Aufrufsbefehl in der Weise antwortet, daß sie aus der Muster-Bibliotheks-Einrichtung Muster-Elemente an einer Adresse entnimmt, die durch die Pointer-Tabellen-Speicher-Einrichtung festgelegt ist. '
    12. Generator nach Anspruch 11, dadurch gekennzeichnet , daß die Muster-Aufrufsbefehle ein Muster und die Spalten-Adresse eines Punktes des Musters identifizieren, daß die Einrichtungen zum Entnehmen von Muster-Daten-Elementen eine Muster-Verarbeitungs-Tabellen-Speicher-Einrichtung, eine Einrichtung zum Speichern in der Verarbeitungs-Tabellen-Speicher-Einrichtung von Bibliotheks-Adressen von Mustern in der Muster-Bibliotheks-Einrichtung, die in den Muster-Befehlen und den Zeilen-Spalten-Adressen von solchen Mustern identifiziert sind, sowie eine Einrichtung
    • ir·« -w »
    umfassen, die dazu dient, Daten-Elemente von Mustern, die in Muster-Aufrufsbefehlen identifiziert sind, aus der Bibliotheks-Einrichtung zu Plätzen in der Muster-Puffer-Einrichtung zu übertragen, die durch die Spalten-Adresse der Verarbeitungs-Tabellen-Speicher-Einrichtung identifiziert sind.
    13. Generator nach Anspruch 12, dadurch gekennzeichnet , daß jeder Muster-Aufrufs-Befehl die Spaltenadresse eines Punktes auf der Grenze eines Flächenbereichs identifiziert, der ein solches Muster umschließt.
    14. Generator nach Anspruch 13, dadurch gekennzeichnet, daß er Einrichtungen umfaßt, die auf jeden Muster-Aufrufsbefehl in der Weise antworten, daß sie in die Verarbeitungs-Tabellen-Speicher-Einrichtung Daten eingeben, die auf das Muster bezogen sind, das durch einen solchen Muster-Aufrufsbefehl identifiziert ist, und daß Einrichtungen zum Verwenden der Muster-Bibliotheks-Adresse, die in den Verarbeitungs-Tabellen-Speicher-Einrichtungen gespeichert ist, zum Auswählen einer Zeile von Muster-Daten zum übertragen aus der Muster-rBibliotheks-Einrichtung in die Puffer-Einrichtung vorgesehen sind.
    15. Generator nach Anspruch 12,dadurch gekennzeichnet , daß Einrichtungen vorgesehen sind, die dazu dienen, die Anzahl von Daten-Zeilen eines jeden Musters zu überwachen, die aus der Muster-Bibliothek s-Einrichtung übertragen werden.
    16. Generator nach Anspruch 12, dadurch gekennzeichnet, daß die Verarbeitungs-Tabellen-Speicher-Einrichtung eine Vielzahl von Speicher-Bereichen
    umfaßt, die aktive Bereiche mit aktiven Muster-Daten und leere Bereiche umschließt, die keine aktiven Muster-Daten aufweisen, daß jeder Bereich einen Karten-Abschnitt besitzt, der die Bereichs-Adresse eines anderen aktiven oder eines anderen leeren Bereichs identifiziert und daß die Karten-Abschnitte eine Spur von einem aktiven Bereich zu einem anderen und von einem leeren Bereich zu einem anderen bilden.
    17. Generator nach Anspruch 16, dadurch gekennzeichnet , daß er einen aktiven Pointer-Speicher zum zeitweiligen Speichern der Bereichs-Adresse eines der aktiven Bereiche und einen Leer-Pointer-Speicher zur zeitweiligen Speicherung der Bereichs-Adresse eines der leeren Bereiche umfaßt.
    18. Generator zur Erzeugung eines Bildes in einer Vielzahl von Abtastzeilen von Bild-Elementen, dadurch gekennzeichnet , daß er folgende Bestandteile umfaßt:
    erste Puffer-Einrichtungen, die Daten enthalten, welche Abtast-Zeilen-Elemente einer ersten Bildkomponente definieren, ·
    zweite Puffer-^Einrichtungen, die Daten enthalten, die Abtast-Zeilen-Elemente einer zweiten Bildkomponente definieren,
    Schreib-Einrichtungen zum Erzeugen eines Bildes, Steuer-Einrichtungen zum Steuern der Schreibeinrichtung und -
    Einrichtungen zum Übertragen von Daten sowohl von den ersten als auch den zweiten Puffer-Einrichtungen zu der Steuer-Einrichtung zum Steuern der Schreib-Einrichtung.
    19. Generator nach Anspruch 18, dadurch gekennzeichnet, daß er dritte Puffer-Einrichtungen umfaßt, die Daten enthalten, die Abtastzeilen-Elemente eines Trapezoids definieren, und daß die Einrichtungen zum übertragen von Daten-Einrichtungen zum übertragen von Daten aus der dritten Puffer-Einrichtung zur Steuer-Einrichtung umfassen.
    20. Generator nach Anspruch 18, dadurch g e k e η η -. zeichnet , daß die Einrichtungen zum Übertragen von Daten aus der Puffer-Einrichtung Einrichtungen zum additiven Kombinieren von Daten der Puffer-Einrichtung umfassen.
    21. Generator nach Anspruch 18, dadurch gekennzeichnet , daß die Einrichtungen zum übertragen von Daten aus der Puffer-Einrichtung Einrichtungen zum subtraktiven Kombinieren von Daten der ersten und zweiten Puffer-Einrichtungen umfassen.
    22. Generator nach Anspruch 18, dadurch gekennzeichnet , daß er dritte Puffer-Einrichtungen zum Zusammenstellen von Daten umfaßt, die die Abtastzeileri-Elemente einer Bild-Komponente definieren, und daß die Einrichtungen zum Übertragen- Einrichtungen zum additiven und subtraktiven Kombinieren von Daten der Puffer-Einrichtungen umfassen.
    23. Generator nach Anspruch 18, dadurch gekennzeichnet, daß er dritte Puffer-Einrichtungen zum Zusammenstellen von Daten umfaßt, die Abtastzeilen-Elemente einer dritten Bild-Komponente definieren, und daß die Einrichtungen zum übertragen Zeilen-Zusammenstell-Speicher-Einrichtungen zum Zusammenstellen von Elementen von Bild-Daten-Komponenten auf einer einzelnen Abtastzeile, Einrichtungen zum additiven Kombinieren von
    3.2 3 9.6 QG
    .. r- Λ - ■
    Daten aus der ersten und der zweiten Puffer-Einrichtung zum Erzielen von Daten, die erste Bild-Komponenten definieren, welche der zweiten Bild-Komponente überlagert sind, und Einrichtungen zum subtraktiven Kombinieren von Daten aus der dritten Puffer-Einrichtung umfassen, um Zusammenstell-Daten zu erzielen, die die überlagerten Komponenten definieren, von denen die dritte Komponente weggenommen.ist, und daß Einrichtungen zum Übertragen der Zusammenstell-Daten zu den Zeilen-Zusammenstell-Speicher-Einrichtungen vorgesehen sind.
    24. Generator nach Anspruch 18, dadurch gekennzeichnet, daß die Einrichtungen zum Übertragen Zeilen-Zusammenstell-Speicher-Einrichtungen zum Zusammenstellen von Elementen von beiden Bild - Komponenten auf einer einzelnen Abtastzeile umfassen und daß Einrichtungen zum übertragen von Daten von der ersten und/oder der zweiten Puffer-Einrichtung zu der Zeilen-Zusammenstell-Speicher-Einrichtung zum Zusammenstellen einer einzelnen Abtastzeile vorgesehen sind.
    25. Generator nach Anspruch 18, dadurch gekennzeichnet , daß die Einrichtung zum übertragen Einridhtungen umfaßt, die dazu dienen, entweder eine oder beide Puffer-Einrichtungen an die Steuer-Einrichtung anzukoppeln.
    26. Generator nach Anspruch 18, dadurch gekennzeichnet , daß die erste Bild-Komponente Muster umfaßt, daß Muster-Bibliotheks-Einrichtungen zum Speichern von Muster-Daten, die Elemente einer Vielzahl von solchen Mustern definieren, Bild^Daten-Einrichtungen zum Speichern von Abtast-Zeilen-Daten, die Muster-Aufrufsbefehle enthalten, die Muster identifizieren, welche auf jeder Abtastzeile beginnen und Einrichtungen vorgesehen sind, die auf jeden Muster-Aufrufsbefehl in der
    Weise ansprechen, daß sie Muster-Daten aus der Muster-Bibliotheks-Einrichtung zur ersten Puffer-Einrichtung übertragen.
    27. Generator nach Anspruch 26, dadurch gekennzeichnet , daß jeder Muster-Aufruf Daten umfaßt, die die Abtastzeilen-Adresse eines Punktes eines hierdurch identifizierten Musters definieren.
    28. Generator nach Anspruch 27, dadurch gekennzeichnet, daß die Abtastzeilen-Daten, die von der Bild-Daten-Einrichtung erzeugt werden, Befehle umfassen, die Elemente der zweiten Bild-Komponente auf dieser Abtastzeile identifizieren und daß Einrichtungen zum Übertragen von durch die zuletzt erwähnten Befehle identifizierten Daten zu der zweiten Puffer-Einrichtung vorgesehen sind.
    29. Generator nach Anspruch 26, dadurch gekennzeichnet , dajsaxe/Daten-übertragungs-Einrichtung Pointer-Tabellen-Speicher-Einrichtungen zum Speichern von Bibliotheks-Adressen von Mustern, die in der Muster-Bibliotheks-Einrichtung gespeichert sind, und Einrichtungen umfaßt, die auf jeden Muster-Aufruf in der Weise antworten, daß sie aus der Muster-Bibliotheks-Einrichtung Muster-Elemente an einer Bibliotheks-Adresse entnehmen, die durch die Pointer-Tabelle-Speicher-Einrichtung festgelegt ist.
    30. Generator nach Anspruch 29, dadurch gekennzeichnet , daß die Einrichtung zum Entnehmen von Muster-Daten-Elementen eine Muster-Verarbeitungs-Tabellen-Speicher-Einrichtung, eine Einrichtung zum Speichern in derVerarbeitungs-Tabellen-Speicher-Einrichtung von Bibliotheks-Adressen von Mustern, die in der Muster-Bibliotheks-Einrichtung gespeichert sind, und
    von Abtastzeilen-Spalten-Adressen dieser Muster und eine Einrichtung umfaßt, die dazu dient, Muster-Daten aus der Bibliotheks-Einrichtung zu Plätzen in der ersten Puffer-Einrichtung zu übertragen, die durch die Spalten-Adressen der Verarbeitungs-Tabellen-Speicher-Einrichtung identifiziert sind.
    31. Generator nach Anspruch 30, dadurch gekennzeichnet, daß die Muster-Verarbeitungs-Tabellen-Speicher-Einrichtung eine Vielzahl von aktiven Zeilen umfaßt, in denen aktive Muster-Daten gespeichert sind, wobei jede aktive Zeile einen Kartenabschnitt umfaßt, der die Adresse in der Verarbeitungs-Tabellen-Speichereinrichtung einer einzigen der anderen aktiven Zeilen speichert, sowie einen Aktiv-Pointer-Speicher zum zeitweiligen Speichern der Adresse in der Verarbeitungs-Tabellen-Speicher-Einrichtung der einen der aktiven Linien.
    32. Verfahren insbesondere unter Verwendung eines Generators nach einem der vorhergehenden Ansprüche, zur Erzeugung eines Datenstroms zur Steuerung einer Schreibvorrichtung, die dazu dient, ein Bild zu erzeugen, das eine Vielzahl von Mustern umfaßt, dadurch gekennzeichnet , daß an verschiedenen Adressen in einem Muster-Bibliotheks-Speicher Bit-Daten für jedes der Muster in aufeinanderfolgenden Zeilen von Daten-Bits gespeichert werden, daß in einem Pointer-Speicher eine Liste von Mustern in dem Bibliotheks-Speicher zusammen mit der Bibliotheks-. Speicher-Adresse eines pden Musters gespeichert wird, daß für jede Abtastzeile jedes Muster , das auf dieser Abtastzeile beginnt, und seine Position auf der Abtastzeile identifiziert werden, daß von dem Pointer-Speicher die Bibliotheks-Speicher-Adresse eines jeden identifizier taiMusters ausgewählt wird, daß in einem Muster-Verarbeitungs-Speicher Daten gespeichert werden, die
    Www f -* W ·*
    die Position auf der Abtastlinie eines jeden identifizierten Musters und seine Bibliotheks-Speicheradresse definieren, daß in einen Arbeitspuffer für jede Abtastzeile die Bibliotheks-Speicher-Bit-Daten eines jeden Musters eingegeben werden, für das eine Adresse in dem Muster-Verarbeitungs-Speicher gespeichert ist, daß diese Eingabe an der Abtastzeilen-Position gemacht ist, die in dem Verarbeitungs-Speicher gespeichert ist, und daß die Bit-Daten aus dem Arbeits-Puffer übertragen werden, um einen Datenstrom zu erzeugen.
    33. Verfahren nach Anspruch 32, dadurch gekennzeichnet , daß die Bit-Daten, die in dem Muster-Bibliotheks-Speicher gespeichert sind, in einem Laufbzw. Sequenzlängen-Kode kodiert sind.
    34. Verfahren nach Anspruch 32, dadurch gekennzeichnet, daß in dem Pointer-Speicher die An- . zahl von Zeilen eines jeden Musters gespeichert wird,, daß in dem Verarbeitungs-Speicher die Anzahl von Zeilen in jedem identifizierten Muster gespeichert wird, und daß die Größe der letzten Anzahl für jede aufeinanderfolgende Abtastzeile vermindert wird.
    35. Verfahren nach Anspruch 32, dadurch gekennzeichnet , daß der Arbeitspuffer nach jeder Übertragung von Bit-Daten aus ihm gelöscht wird.
    36. Verfahren nach Anspruch 32, dadurch gekennzeichnet, daß das zu erzeugende Bild zweite Komponenten umfaßt, bei denen es sich nicht um Muster handelt, und daß in einen zweiten Arbeitspuffer Daten eingegeben werden, die Abtastzeilen der zweiten Komponenten des zu erzeugenden Bildes definieren, und daß beim übertragen von Daten Daten von einem und/oder beiden der Arbeitspuffer zu einem Zeilen-Zusammenstell-
    :. 2239,60.6
    Puffer zur Steuerung des Schreibstrahls übertragen werden.
    37. Verfahren nach Anspruch 32, dadurch ge k e η η zeichnet , daß Karten-Daten im Zusammenhang mit Daten eines pden identifizierten Musters in dem Muster-Verarbeitungs-Speicher gespeichert werden, daß die Karten-Daten für jedes Muster in eindeutiger Weise den Platz in dem Muster-Verarbeitungs-Speicher von den Daten eines anderen Musters hierin identifizieren, um auf diese Weise eine Spur von Daten von einem Muster zu Daten eines anderen Musters in dam Muster-Verarbeitungs-Speicher zu liefern, und daß in einem Notizblock-Speicher ein Aktiv-Muster-Pointer gespeichert wird, der in eindeutiger Weise den Platz von Daten von einem der Muster in dem Muster-Verarbeitungs-Speicher kennzeichnen.
    38. Verfahren nach Anspruch 37, dadurch g e k e η η zeichne-t , daß in dem Muster-Verarbeitungs-Speicher Abtast-Zeilen-Positions- und Bibliotheks-Speicher-Adressen-Daten für ein anderes identifiziertes Muster gespeichert werden, daß Karten-Daten im Zusammenhäng mit den zuletzt erwähnten Muster-Daten gespeichert werden, die den Platz
    identifizieren, der durch den Aktiv-Pointer in dem Notizblock-Speicher gekennzeichnet ist, und daß der Aktiv-Pointer geändert wird, um den Platz der zuletzt erwähnten Muster-Daten zu kennzeichnen, wodurch der Aktiv-Pointer den Platz der Daten für das zuletzt identifizierte Muster kennzeichnet.
    39. Generator insbesondere nach einem der vorhergehenden Ansprüche, zur Erzeugung eines Bildes in einer Vielzahl von Abtastzeilen von aufeinanderfolgenden Bild-Elementen, wobei das Bild eine Vielzahl von Mustern umfaßt, dadurch g ek e η η ze i eh.η e t , daß er folgende Bestandteile umfaßt:
    ο L ο α υ uü
    einen Muster-Bibliotheks-Speicher zum Speichern von Muster-Zeilen von Daten, die Elemente einer jeden Zeile einer Vielzahl von Mustern des Bildes definieren,
    einen Bild-Daten-Speicher zum Speichern von Abtastzeilen-Daten, die Muster-Aufrufsbefehle aufweisen, die Muster identifizieren, die auf jeder Abtastzeile beginnen,
    Einrichtungen zum Lesen der Abtastzeilen-Daten aus dem Bild-Daten-Speicher Abtastzeile um Abtastzeile, Muster-Arbeitspuffer-Einrichtungen zum Speichern von Daten, die Bild-Elemente auf einer Abtastzeile definieren,
    Einrichtungen,.die auf jeden Muster-Aufrufsbefehl auf einer Abtastzeile, die aus dem Bilddatenspeicher ausgelesen TOrden ist, in der Weise antworten, daß sie eine Zeile von Muster-Daten aus dem Muster-Bibliotheks-Speicher zu der Muster-Arbeitspuffer-Einrichtung übertragen , wobei die Muster-Daten-Übertragungs-Einrichtung folgende Bestandteile umfaßt:
    einen Pointer-Speicher zum Speichern von Bibliotheks-Adressen von Mustern in dem Muster-Bibliotheks-Speicher,
    'einen Muster-Verarbeitungs-Speicher, eine Einrichtung, die auf jeden Muster-Aufruf einer Abtastzeile, der aus dem Bilddaten-Speicher ausgelesen wird, in der Weise reagiert, daß sie in dem Muster-Verarbeitungs-Speicher aktive Muster-Daten einschließlich der Bibliotheks-Adresse und der Abtastzeilen-Spalten-Adresse von Mustern speichert, die in den aus dem Bild-Daten-Speicher ausgelesenen Aufrufbefehlen identifiziert sind, und eine Einrichtung zum Übertragen von Daten von Bibliotheks-Adressen von aktiven Muster-Daten zu Plätzen in der Muster-Arbeitspuffer-Einrichtung, die durch die Spalten-Adressen der aktiven Muster-
    Daten identifiziert sind, sowie Schreib-Einrichtungen zum Erzeugen eines Bildes _: und Einrichtungen zum Steuern der Schreib-Einrichtungen durch Daten in der Muster-Arbeitspuffer-Einrichtung.
    40. Generator nach Anspruch 39, dadurch gekennzeichnet, daß jeder Muster-Aufruf die Spalten-Adresse eines Punktes auf der Grenze eines Bereichs identifiziert, der ein solches Muster umschließt.
    41. Generator nach Anspruch 39, dadurch gekennzeichnet , daß jeder Muster-Aufrufsbefehl die Spalten-Adresse einer Anfangs-Ecke eines Grenz-Rechtecks identifiziert, das ein solches Muster umschreibt.
    42. Generator nach Anspruch 39, dadurch gekennzeichnet, daß der Muster-Verarbeitungs-Speicher eine Vielzahl von aktiven Zeilen umfaßt, in denen aktive Muster-Daten gespeichert sind, daß jede aktive Zeile einen Karten-Abschnitt aufweist, der die Adresse in dem Muster-Verarbeitungs-Speicher einer einzigen der anderen aktiven Zeilen speichert, und daß ein Aktiv-Pointer-Speicher für die zeitweilige Speicherung der Adresse in dem Muster-Verarbeitungs-Speicher von einer der aktiven Zeilen vorgesehen ist.
    43. Generator nach Anspruch 42, dadurch gekennzeichnet , daß der Muster-Verarbeitungs-Speicher Einrichtungen zum Speichern der Anzahl von Datenzeilen in jedem Muster, von dem eine Adresse hierin gespeichert ist/ eine Einrichtung zum Ändern einer solchen Anzahl für jede Übertragung von Muster-Daten aus dem Muster-Bibliotheks-Speicher und Einrichtungen umfaßt, die dazu
    qlem
    dienen, nach/übertragen von Daten aus dem Muster-Bibliotheks-Speicher die Bereichs-Adresse zu ändern, die in
    \J L. \J
    tr ir
    - 16 -
    dem Aktiv-Zeilen-Karten-Abschnitt eines Bereichs identifiziert ist.
    44. Generator nach Anspruch 39, dadurch gekennzeichnet , daß das Bild eine Vielzahl von Bahnen bzw. Leitbahnen umfaßt, die eine relativ geringe Änderung von einer Abtastzeile zur nächsten aufweisen, daß die Abtastzeilen-Daten, die in dem Bilddaten-Speicher gespeichert sind, Bahnbefehle umfassen, die die Abtastzeilen-Daten für diese Bahnen identifizieren, daß Bahn-Arbeitspuffer-Einrichtungen zum Speichern der Bahndaten vorgesehen sind, die die Bild-Elemente einer Abtastzeile definieren, daß die Einrichtungen zum Steuern der Schreib-Vorrichtung einen Zeilen-Zusammenstell-Puffer, eine Einrichtung zum Speichern einer vollständigen Abtastzeile von Abtastdaten einschließlich von Bild-Elementen sowohl von Mustern als auch von Bahnen auf einer solchen Abtastzeile in dem Zeilen-Zusammenstell-Puffer und eine Einrichtung umfassen, die dazu dient, Daten entweder von einem/von beiden Arbeits-Puffern zum Zeilen-Zusammenstell-Puf fer zu übertragen.
    45. Generator nach Anspruch 44, dadurch gekennzeichnet , daß er zweite Muster-Arbeitspuffer-Einrichtungen zum Speichern von Daten umfaßt, die Bild-Elemente einer Abtastzeile definieren, und daß Einrichtungen zum subtraktiven Kombinieren der Daten dieser zweiten Muster-Arbeitspuffer-Einrichtung mit Daten \on wenigstens einer der Muster- oder Leitbahn-Arbeitspuffer-Einrichtungen vorgesehen sind.
    46. Verfahren zur Erzeugung eines Datenstroms für die Steuerung eines Rasters zur Erzeugung eines Bildes, das eine Vielzahl von Mustern umfaßt, insbesondere unter Verwendung einer Vorrichtung gemäß einem der
    vorhergehenden Ansprüche, dadurch gekennzeichnet, daß
    in einem ersten Puffer Daten gespeichert werden, die Abtastzeilen-Elemente einer ersten Art von Bild-Komponenten definieren,
    daß in einem zweiten Puffer Daten gespeichert werden, die Abtastzeilen-Elemente einer zweiten Art von Bild-Komponenten definieren, daß ein Raster zur Erzeugung eines Bildes erzeugt wird und
    daß die Erzeugung des Rasters in Übereinstimmung mit den Daten sowohl von den ersten als auch den zweiten Puffern gesteuert wird.
    47. Verfahren nach Anspruch 46, dadurch gekennzeichnet, daß die Steuerung der Erzeugung des Rasters eine Übertragung von Daten aus dem ersten und/ oder dem zweiten Puffer zu einem Zeilen-Zusammenstell-Puffer und die Verwendung von Daten in dem Zeilen-Zusammenstell-Puf fer zur Steuerung der Erzeugung des Rasters umfaßt.
    48. Verfahren nach Anspruch 46, dadurch gekennzeichnet , daß additiv Daten- aus dem ersten und dem zweiten Puffer für eine übertragung in einen Zeilen-Zusammenstell-Puffer kombiniert werden und daß bei der Steuerung der Erzeugung des Rasters Daten aus dem Zeilen-Zusammenstell-Puffer Verwendung finden.
    49. Verfahren nach Anspruch 46, dadurch gekennzeichnet , daß Daten aus dem ersten und dem zweiten Puffer für eine Speicherung in einen Zeilen-Zusammenstell-Puf fer subtraktiv kombiniert werden und daß die Steuerung der Erzeugung des Rasters unter Verwendung von Daten aus dem Zeilen-Zusammenstell-Puffer erfolgt.
    50. Verfahren nach einem der Ansprüche 46 bis 49, dadurch gekennzeichnet , daß beim Speichern in dem ersten Puffer die Zustände einer Folge von gleichen Bits in dem ersten Puffer
    für eine Länge
    gesteuert werden,die durch einen Sequenzlängen-Kode definiert ist und an einer Bit-Position beginnt, die durch eine Wort-Adresse und eine Bit-Adresse in einem solchen Wort definiert ist, und daß zum Steuern der Zustände
    Daten aus dem ersten Puffer einer Schaltvorrichtung wortweise, d.h. immer ein Wort gleichzeitig zugeführt werden,
    daß der Schaltvorrichtung ein Color-Signal zugeführt wird, das den Status kennzeichnet,.der für jedes Bit einer gegebenen Folge von Bits innerhalb des ersten Puffers gebildet werden soll,
    daß eine Gruppe von Steuer-Signalen in Antwort auf die Bit-Positions-Adresse und ein Sequenzlängen-Wort-Residual gebildet wird, und
    daß die Schaltvorrichtung so gesteuert wird, daß sie das eine oder das andere ihrer Eingangs-Signale dem ersten Puffer gemäß der Steuer-Signale zuführt.
    51. Verfahren nach Anspruch 50, dadurch gekennzeichnet, daß arithmetisch die Bit-Adresse und das Sequenzlängen-Wort-Residual summiert werden, um eine aktualisierte Bit-Adresse zu erzielen, und daß diese aktualisierte Bit-Adresse \erwendet wird, um die Steuer-Signale zu steuern, die an die Schalteinrichtung angelegt werden.
    52. Bildgenerator zur Erzeugung eines Bildes in einer Vielzahl von Abtastzeilen von Bild-Elementen, dadurch gekennzeichnet, daß er folgende Bestandteile umfaßt:
    Schreib-Einrichtungen zur Erzeugung eines Bildes, Steuer-Einrichtungen zur Steuerung der Schreib-Einrichtung,
    Bilddaten-Einrichtungen zur Erzeugung von Abtastzeilen-Daten, die ein Trapezoid definieren, wobei die Abtastzeilen-Daten Daten umfassen, die eine Spalten-Adresse eines Punktes auf dem Trapezoid, die Steigung einer Seite d?s Trapezoids, die Breite des Trapezoids entlang einer Abtastzeile, die Änderungsrate der Breite und die Höhe des Trapezoids definieren, und
    Einrichtungen, die auf die Abtastzeilen-Daten in der Weise ansprechen, daß sie die Steuer-Einrichtungen treiben, um die Schreib-Einrichtungen zur Erzeugung eines Trapezoids zu veranlassen.
    53. Generator nach Anspruch 52, dadurch gekennzeichnet , daß die Einrichtungen zum Treiben der Steuer-Einrichtungen folgende Bestandteile umfassen:
    Einrichtungen,
    Puffereinrichtungen/dieauf die Abtastzeilen-Daten in der Weise ansprechen, daß sie in den Puffer-Einrichtungen Elemente des Trapezoids längs einer Abtastzeile speichern, und Einrichtungen zur übertragung von Daten aus den Puffer-Einrichtungen zu den Steuer-Einrichtungen.
    54. Generator nach Anspruch 53 r dadurch g e k en η zeichnet , daß er Mittel zum Zurücksetzen der Puffer-Einrichtungen während des Übertragens von Daten aus ihnen umfaßt und daß die Einrichtungen zum Speichern Mittel umfassen, die dazu dienen, in den zurückgesetzten bzw. gelöschten Puffer-Einrichtungen Daten zu speichern, die Elemente des Trapezoids längs der nächsten Abtastzeile definieren.
    J Z J 3 D U D
    55. Generator nach Anspruch 53, dadurch gekennzeichnet, daß er Einrichtungen zum Addieren von Spalten-Adressen des Trapezoids auf einer Abtastzeile zur Steigung der einen Seite umfaßt, um aktualisierte Daten zu erzeugen, die die Spalten-Adresse des Trapezoids in der nächsten Abtastzeile definieren, daß Einrichtungen zum Addieren der Änderungsrate der Breite zur Breite des Trapezoids längs einer Abtastzeile zur Erzeugung von aktualisierten Daten vorgesehen sind, die die Breite des Trapezoids längs der nächsten Abtastzeile definieren, daß Einrichtungen zum Speichern der aktualisierten Daten und Einrichtungen vorgesehen sind, die auf die aktualisierten Daten in der Weise ansprechen, daß sie in Puffer-Einrichtungen Daten speichern, die Elemente des Trapezoids längs der nächsten Abtastzeile definieren.
    56. Generator nach einem der Ansprüche 53, 54 oder 55, dadurch gekennzeichnet, daß die Puffer-Einrichtungen einen Speicher umfassen, der eine Vielzahl von Wort-Speicher-Bereichen aufweist, die Speicher-Wörter definieren, von denen jedes aus einer Vielzahl von Bits zusammengesetzt ist, daß die zu steuernden Bits durch eine Vielzahl von Befehlen spezifiziert sind, daß jeder Befehl einen Längen-Kode, der eine Folge von aufeinanderfolgenden Bits mit gleichem Status definiert, einen Color-Kode, der den Status der Bits dieser Folge definiert, und eine Start-Adresse umfaßt, die die Wortadresse des Speicherworts definiert, das den Beginn einer Folge und innerhalb eines Speicherworts die Bit-Adresse des ersten Bits einer Folge enthält, und daß die Einrichtung zum Speichern folgende Bestandteile umfaßt:
    eine Einrichtung zum Rezirkulieren von Bits aus dem
    wenigstens
    Speicher für/jeweils ein Wort gleichzeitig und
    eine Einrichtung, die auf die Befehle zum Steuern des Status der Bits eines zu rezirkulierenden Worts anspricht und folgende Bestandteile umfaßt:
    Einrichtungen zum Erzeugen einer Bit-Maske, die diejenigen Bits eines gegebenen Worts auswählt, die gesteuert werden müssen, und eine Einrichtung, die auf die Bit-Masken-Erzeugungs-Einrichtungen und den Color-Kode in der Weise anspricht, daß sie den Status derjenigen Bits eines zu rezirkulierenden Worts steuert die durch die Bit-Masken-Erzeugungs-Einrichtung ausgewählt worden sind.
    57. Generator zur Erzeugung eines Bildes in einer Vielzahl von Abtastzeilen von Bild-Elementen, dadurch gekennzeichnet , daß er folgende Bestandteile umfaßt:
    Schreib-Einrichtungen zur Erzeugung eines Bildes, Steuer-Einrichtungen zur Steuerung der Schreib-Einrichtungen,
    Bilddaten-Befehls-Speicher-Einrichtungen zum Speichern von Bahn-, Muster- und Trapezoid-Befehlen, wobei jeder Bahnbefehl eine Spalten-Adresse und die Abtastzeilen-Breite von Abtastzeilen-Elementen einer Bahn definiert, jeder Muster-Befehl eine Muster-Identifikation und eine Spalten-Adresse eines Punktes eines Bereichs definiert, der ein Muster umgrenzt, und jeder Trapezoid-Befehl die Spalten-Adresse eines Punktes auf einem Trapezoid, die Neigung bzw. Steigung einer Seite des Trapezoids, die Breite des Trapezoids längs einer Abtastzeile, die Änderungsrate dieser Breite und die Höhe des Trapezoids definiert,
    Muster-Bibliotheks-Einrichtungen zum Speichern von Muster-Daten, die Elemente einer Vielzahl von Mustern definieren,
    ι|Ι M * ■ * ♦ V
    Trapezoid-Bibliotheks-Einrichtungen zum Speichern der Trapezoid-Befehle und zum Aktualisieren dieser Befehle für jede Abtastzeile,
    Bahn-Arbeitspuffer-Einrichtungen zum Speichern von Daten, die Elemente einer Bahn auf einer Abtastzeile definieren,
    Muster-Arbeitspuffer-Einrichtungen zum Speichern von Daten, die Elemente eines Musters auf einer Abtastzeile definieren,
    Trapezoid-Arbeitspuffer-Einrichtungen zum Speichern von Daten, die Elemente eines Trapezoids auf einer Abtastzeile definieren,
    Einrichtungen, die auf einen Bahn-Befehl dadurch reagieren, daß sie Bahn-Daten in den Bahn-Puffer-Einrichtungen speichern,
    Einrichtungen, die auf einen Muster-Befehl dadurch reagieren, daß sie Muster-Daten aus der Muster-Bibliotheks-Einrichtung in die Muster-Arbeitspuffer-Einrichtungen übertragen,
    Einrichtungen, die auf einen Trapezoid-Befehl dadurch reagieren, daß sie Trapezoid-Daten an die Trapezoid-Arbeitspuf fer-Einrichtungen übertragen, einen Zeilen-Zusammenstell-Puffer, eine Einrichtung zum übertragen von Daten aus jeder der Arbeitspuffer-Einrichtungen zu dem Zeilen-Zusammenstell-Puf fer und
    Einrichtungen, die auf Signale des Zeilen-Zusammenstell-Puf fers in der Weise reagieren, daß sie die Steuer-Einrichtung steuern.
    58. Generator nach Anspruch 57, dadurch gekennzeichnet , daß jede der Muster- und Trapezoid-Arbeitspuf fer-Einrichtungen gelöscht bzw. zurückgesetzt wird, wenn Daten aus ihr übertragen werden.
    59. Generator nach Anspruch 57 , dadurch gekennzeichnet / daß Daten aus den Arbeitspuffern additiv und subtraktiv für eine übertragung zu dem Zeilen-Zusammenstell-Puffer kombiniert werden.
    60. Digitales Bilderzeugungs-System, insbesondere unter Verwendung eines Generators gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es folgende Bestandteile umfaßt:
    einen Laser zur Erzeugung eines Licht-Energie-Strahls, ein Schreibmedium,
    Einrichtungen zum abtastenden Führen des Strahls über das Schreibmedium,
    Abtast-Steuereinrichtungen zur Erzeugung eines Stroms von digitalen Daten und
    eine Modulator-Einrichtung, die auf diesen Datenstrom in der Weise anspricht, daß sie den Abtaststrahl moduliert, wobei die Abtast-Steuereinrichtung folgende Bestandteile umfaßt:
    eine erste Puffer-Einrichtung, die Daten enthält, die Abtastzeilen-Elemente einer ersten Bild-Komponente definieren,
    eine zweite Puffer-Einrichtung, die Daten enthält, 'die Abtastzeilen-Elemente einer zweiten Bild-Komponente de f in i exen,
    Einrichtungen zum übertragen von Daten aus den Puffer-Einrichtungen zur Modulator-Einrichtung, die Einrichtungen zum additiven oder subtraktiven Kombinieren von Daten aus den Puffer-Einrichtungen umfaßt, wobei eine der Bild-Komponenten mit der anderen überlagert oder von der anderen weggenommen bzw. aus der anderen ausgenommen werden kann.
    61. System nach Anspruch 60, dadurch gekennzeichnet, daß es Einrichtungen zum Löschen bzw. Zurücksetzen wenigstens einer der Puffer-Einrichtungen bei
    der aus dieser Puffer-Einrichtung erfolgenden Übertragung von Daten, die Elemente auf einer Abtast-Zeile definieren, und Einrichtungen zum Speichern von Daten in diesen zurückgesetzten bzw. gelöschten Puffer-Einrichtungen umfaßt, die Elemente der nächsten Abtast-Zeile definieren.
    62. System nach Anspruch 60, dadurch gekennzeichnet , daß eine der Bild-Komponenten ein Trapezoid ist, von dem Daten, die Elemente einer Abtastzeile definieren, in der ersten Puffer-Einrichtung enthalten sind, und daß das System Einrichtungen umfaßt, die dazu dienen, die ersten Puffer-Einrichtungen während des Übertragens von Daten aus ihnen zu löschen und daß Einrichtungen vorgesehen sind, die dazu dienen, in den gelöschten ersten Puffer-Einrichtungen Daten zu speichern,die Elemente auf einer nachfolgenden Abtastzeile definieren.
    63. Vorrichtung zum Steuern des Status bzw. der Logikpegel von Bits,insbesondere für einen Generator"nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet , daß die Bits in einem Speicher enthalten sind, der eineVielzahl von Wort-Speicher-Bereichen aufweist, die Speicher-Wörter definieren, von denen jedes aus einer Vielzahl von Bits zusammengesetzt ist, daß die zu steuernden Bits durch eine Vielzahl von Befehlen spezifiziert sind, von denen jeder wenigstens einen Längen-Kode, der eine Folge von aufeinanderfolgenden Bits mit gleichen Zuständen bzw. Logikpegeln definiert, und einen Color-Kode umfaßt, der den Status bzw. den Logikpegel der Bits dieser Folge definiert, daß wenigstens einer dieser Befehle eine Start-Adresse umfaßt, die die Wort-Adresse des Speicherworts definiert, daß den Beginn einer Folge enthält, sowie die Bit-Adresse innerhalb eines Speicher-Worts des ersten Bits einer
    BAD ORIGINAL
    Folge, und daß die Vorrichtung folgende Bestandteile umfaßt:
    eine Einrichtung zum Adressieren von Bits aus dem Speicher zumindest für ein Wort gleichzeitig und eine Einrichtung, die auf die Befehle in der Weise anspricht, daß sie gleichzeitig den Status bzw. den Logikpegel einer Vielzahl von Bits eines adressierten Wortes steuert, und daß die Steuer-Einrichtung folgende Bestandteile umfaßt:
    Einrichtungen zur Erzeugung einer Bit-Maske, die die zu steuernden Bits eines gegebenen Wortes auswählt,· und
    Einrichtungen, die auf die Bit-Masken-Erzeugungs-Einrichtungen und den Color-Kode in der Weise ansprechen, daß sie den Status bzw. Logikpegel derjenigen Bits eines adressierten Wortes neu bilden, die durch die Masken-Erzeugungs-Einrichtung ausgewählt worden sind.
    64. Vorrichtung nach Anspruch 63, dadurch gekennzeichnet , daß sie Einrichtungen umfaßt, die die Bit-Masken-Erzeugungs-Einrichtungen so steuern, daß sie
    (a) alle Bits einer Gruppe von Bits eines ersten Speicher-Worts auswählen, wobei sich diese Gruppe von der Bit-Positions-Start-Adresse bis zum Ende des ersten Worts erstreckt,
    (b) alle Bits einer Endgruppe von Bits eines End-Speicher-Wortes auswählen, daß das Ende einer Folge von Bits enthält, wobei sich die Endgruppe vom Beginn dieses End-Wortes bis zum Ende der Folge erstreckt, und
    (c) alle Bits von Speicherwörtern zwischen dem ersten und dem letzten Wort auswählt.
    65. Vorrichtung nach Anspruch 63, dadurch gekennzeichnet , daß der Längen-Kode ein Lauflängen-Wort-Residual enthält und daß die Vorrichtung Einrichtungen zum Addieren der Bit-Adresse und des Lauflängen-Wort-Residuais zur Erzeugung einer aktualisierten Bit-Adresse und Einrichtungen enthält, die dazu dienen, die Bit-Masken-Erzeugungs-Einrichtung so zu steuern, daß sie Bits eines folgenden Längen-Kode-Befehls auswählt, der an der aktualisierten Bit-Adresse beginnt.
    66. Vorrichtung nach Anspruch 63, dadurch gekennzeichnet, daß die Einrichtung zum Erstellen bzw. Erneuern der Zustände bzw. Logikpegel Mittel umfaßt, die auf einem Color-Kode einer ersten Bedingung in der Weise ansprechen, daß sie den Status von Bits ändern, die durch die Bit-Masken-Erzeugungs-Einrichtung ausgewählt worden sind.
    67. Vorrichtung nach Anspruch 63, dadurch gekennzeichnet , daß die Einrichtungen zur Erstellung bzw. Erneuerung des Status bzw. des Logikpegels Einrichtungen umfassen, die auf einen Color-Kode einer ersten Bedingungen in der Weise ansprechen, daß sie adressierte Bits, die durch die Bit-Masken-Erzeugungs-Einrichtung ausgewählt worden sind, dazu veranlassen ohne eine Status- bzw. Logik-Pegel-Änderung gleich zu bleiben.
    68. Lauflängen-Kode-Befehls-Prozessor, der mit Wörtern mit N Bits arbeitet, insbesondere für einen Generator gemäß einem der vorhergehenden Ansprüche, dadurch gekennzeichnet , daß er folgende Bestandteile umfaßt:
    einen Color-Kode-Zwischenspeicher, einen Lauflängen-Wort-Abwärtszähler zur Erzeugung eines last-word-Signals bei einem vorgegebenen
    SAD
    Zählwert,
    einen Lauflängen-Wort-Residual-Zwischenspeicher, einen Bit-Positions-Adressen-Zwischenspeicher, einen Speicherwort-Adressen-Aufwärtszähler, einen first-word-Zwischenspeicher zur Erzeugung eines first-word-Signals,
    eine Status-Schaltung, die eine Vielzahl von Ausgängen aufweist, die durch eine Anzahl von Status-Signäl-Eingängen festgelegt sind, und die eine Anzahl von Eingängen aufweist, einen Bit-Masken-Generator, der eine Anzahl von Ausgangs-Steuer-Leitungen gleich der Anzahl von Bits in einem Wort und eine Anzahl von Eingängen aufweist, wobei die Ausgangs-Steuer-Leitungen Zustände besitzen, die durch die Bit-Masken-Generator-Eingänge gesteuert werden,
    Einrichtungen zum Zuführen einer Bit-Positions-Adresse von dem Bit-Positions-Adressen-Zwischenspeicher und eines Lauflängen-Wort-Residuais von dem Lauflängen-Wort-Residual-Zwischenspeicher zu den Bit-Masken-Generator-Eingängen,
    eine arithmetische Logikeinheit, die auf den Bit-Positions-Adressen-Zwischenspeicher und den Lauflängen-Wort-Residual-Zwischenspeicher in der Weise anspricht, daß sie den Inhalt dieser Zwischenspeicher summiert und ein first-word-carry-Signal erzeugt, daß das first-word-Signal, das first-word-carry-Signal und das last-word-Signal gemeinsam einen Satz von System-Status-Signalen bilden und den Eingängen der Status-Schaltung und dem Bit-Masken-Generator zugeführt werden,
    daß ein Speicher durch den Adressen-Aufwärtszähler adressierbar ist,
    daß ein Multiplexer Eingangssignale von dem Speicher und von dem Color-Kode-Zwischenspeicher erhält und eine Reihe von Steuer-Eingängen sowie eine Anzahl
    von Ausgängen aufweist, die mit dem Speicher verbunden sind, daß die Bit-Masken-Generator-Ausgangs-Steuer-Leitungen mit den Multiplexer-Steuer-Eingängen zur Steuerung derMultiplexer-Ausgänge verbunden sind, und
    daß Einrichtungen vorgesehen sind, die dazu dienen, den Bit-Masken-Generator, den Multiplexer und den Speicher beim Übertragen von Worten von dem Speicher auf einer Wort-für-Wort-Basis mit N Bits gleichzeitig zu dem Multiplexer und bei der Übertragung von Bits von dem Speicherwort oder dem Color-Kode vom Multiplexer zurück in den Speicher unter der Steuerung der Ausgangs-Leitungen des Bit-Masken-Generators zu steuern.
    69. Prozessor nach Anspruch 68, dadurch gekennzeichnet , daß die Status-Schaltung einen ersten Status bzw. Zustand annimmt, wenn jedes der Signale first word, first word carry und last word logisch falsch sind, daß der Bit-Masken-Generator in dem ersten Status Ausgangssignale erzeugt, die dazu dienen, alle Bits eines durch den Multiplexer laufenden Worts zu steuern, und daß die Status-Schaltung in dem ersten Status Ausgangssignale liefert, die dazu dienen, die Wort-Adresse des Adressen-Aufwärtszählerszu inkrementieren und den Zählwert des RLC-Wort-Abwärtszählers zu dekrementieren.
    70. Prozessor nach Anspruch 68,dadurch gekennzeichnet, daß die Status-Schaltung einen zweiten Status annimmt, wenn das Signal first word logisch richtig, das Signal first word carry logisch falsch und das Signal last word logisch falsch ist, daß der Bit-Masken-Generator in diesem zweiten Status Ausgangssignale erzeugt, die dazu dienen, alle Bits in einem den Multiplexer durchlaufenden Wort beginnend
    _ 29 -
    mit der Bit-Position, die durch die Bit-Adresse gekenn-■ zeichnet ist, zu steuern, und daß die Status-Schaltung in dem zweiten Status Ausgangssignale erzeugt, die dazu dienen, die Wort-Adresse zu inkrementieren, den Zählwert des RLC-Wort-AbwärtsZählers zu dekrementieren und das Lauflängen-Wort-Residual zur Bit-Positions-Adresse in der arithmetischen Logikeinheit zu addieren und die Summe zu speichern.
    71. Prozessor nach Anspruch 68, dadurch gekennzeichnet, daß die Status-Schaltung einen dritten Zustand annimmt, wenn das Signal first word logisch richtig, das Signal first word carry logisch richtig und das Signal last word logisch falsch ist, daß der Bit-Masken-Geherator in dem dritten Status Steuer-Signale liefert/ die dazu dienen, alle Bits in einem den Multiplexer durchlaufenden Wort beginnend bei der durch die Bit-Positions-Adresse gekennzeichneten Bit-Position zu steuern, und daß die Status-Schaltung in diesem dritten Status Ausgangssignale erzeugt,
    Wort-
    die dazu dienen, den Zählwert des/Adressen-Aufwärts-Zählers zu inkrementieren und die arithmetische Logikeinheit dazu zu veranlassen, das Lauflängen-Wort-Residual und di'e Bit-Positions-Adresse zu addieren, und die Summe zu speichern.
    72. Prozessor nach Anspruch 68, dadurch gekennzeichnet, daß die Status-Schaltung einen vierten Status annimmt, wenn das Signal first word logisch falsch, das Signal first word carry logisch falsch und das Signal last word logisch richtig ist, und daß der Bit-Masken-Generator in diesem vierten Status Ausgangs-Signale erzeugt, die den Multiplexer dazu veranlassen, alle Bits in einem ihn durchlaufenden Wort bis zu einer aktualisierten Bit-Position, jedoch ausschließlich dieserBit-Position zu steuern.
    73. Prozessor nach Anspruch 68, dadurch gekennzeichnet , daß die Status-Schaltung einen fünften Status annimmt, in welchem das Signal first word logisch richtig, das Signal first word carry logisch falsch und das Signal last word logisch richtig ist, daß der Bit-Masken-Generator in diesem fünften Status Ausgangs-Signale zur Steuerung eines durch den Multiplexerhindurchgehenden Wortes beginnend mit der Bit-Adresse und für eine Anzahl von Bits erzeugt, die durch den Lauflängen-Kode definiert ist, und daß die Status-Schaltung in diesem fünften Status Ausgangs-Signale erzeugt, die dazu dienen, die arithmetische Logikeinheit dazu zu veranlassen, das Lauflängen-Wort-Residual zu der Bit-Positions-Adresse zu addieren und die Summe zu speichern.
    74. Prozessor nach Anspruch 68, dadurch gekennzeichnet, daß die Status-Schaltung einen sechsten Status annimmt, wenn jedes der Signale first word, first word carry und last word logisch richtig ist, daß der Bit-Masken-Generator in diesem sechsten Status Ausgangs-Signale liefert, die dazu dienen, den Multiplexer zu veranlassen, alle Bits in einem ihn durchlaufenden Wort beginnend an der Bit-Position zu steuern, und daß die Status-Schaltung in dem sechsten Status ein Ausgangs-Signal erzeugt, das den Adressen-Aufwärtszähler inkrementiert.
    75. Verfahren zum Bilden bzw. Ändern des Status bzw. des Logikpegels von Bits in einer Folge von gleichen Bits in einem Speicher für eine Länge, die durch einen Lauflängen-Kode definiert ist und bei einer Bit-Position beginnt, die durch eine Wort-Adresse und eine Bit-Adresse innerhalb dieses Worts definiert ist, wobei ein Wort aus N Bits besteht, insbesondere unter Verwendung eines Prozessors nach einem der vorhergehenden Ansprüche,
    BAD ORIGINAL
    ■- 3.2 3 9.6 Q 6
    dadurch gekennzeichnet , daß Daten aus dem Speicher einem ersten Satz von Eingängen einer Schaltvorrichtung mit N Bits gleichzeitig zugeführt werden,
    daß einem zweiten Satz von Eingängen der Schaltvorrichtung ein Color-Signal zugeführt wird, das den zu bildenden Status bzw. Logikpegel für jedes Bit einer gegebenen Folge von Bits in dem Speicher kennzeichnet,
    daß eine Gruppe von Steuer-Signalen in Antwort auf die Bit-Positions-Adresse und ein Sequenz längen-Wort-Residual gebildet wird, und daß die Schaltvorrichtung so gesteuert wird, daß sie gleichzeitig in Abhängigkeit von den Steuersignalen das eine oder das andere ihrer Eingangssignale dem Speicher zuleitet.
    76. Verfahren nach Anspruch 75, dadurch gekennzeichnet, daß die Bit-Adresse und das Sequenzlängen-Wort-Residual arithmetisch addiert werden, um eine aktualisierte Bit-Adresse zu erhalten und daß die aktualisierte Bit-Adresse dazu verwendet wird, die Steuer-Signale zu steuern, die an die Schaltvorrichtung angelegt sind.
    77. Verfahren nach Anspruch 75, dadurch gekennzeichnet, daß Daten aus dem Speicher übertragen werden, daß der Speicher gelöscht wird und daß die Änderung von Zuständen bzw. Logikpegeln von Bits in dem Speicher in Antwort auf ein Color-Signal eines vorgegebenen Status bzw. Logikpegels verhindert wird, wodurch Lauf- bzw. Sequenzlängen-Kode überlappende Bit-Sequenzen Bit-Folgen in dem Speicher definieren können.
    78. Vorrichtung zum Setzen einer Folge von Bits in einen Speicher, in dem eine Vielzahl von Worten mit jeweils N Bits gespeichert ist, insbesondere für einen Generator nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet , daß die Vorrichtung folgende Bestandteile umfaßt:
    Rezirkulations-Einrichtungen zum Rezirkulieren von Daten aus dem Speicher mit jeweils N Bits gleichzeitig,
    Rezirkulations-Steuer-Einrichtungen, die dazu dienen, die Rezirkulations-Einrichtung dazu zu veranlassen, den Status bzw. Logikpegel eines jeden Bits eines von dem Speicher rezirkulierten Worts auszuwählen, erste und zweite Zahl-Einrichtungen, die dazu dienen, Daten zu speichern, die die Speicher-Adresse eines Worts, das rezirkuliert wird, und ein Wort einer Folge von Bits zu speichern, die in dem Speicher gesetzt werden sollen,
    eine erste Zwischenspeicher-Einrichtung zum Speichern der Bit-Positions-Adresse des ersten Bits einer
    ζμ setzenden Folge,
    eine
    /zweite Zwischenspeicher-Einrichtungen zum Speichern
    eines Sequenzlängen-Wort-Residuals, Einrichtungen zum Summieren der Bit-Positions-Adresse und des Wort-Residuals zur Definition einer aktualisierten Bit-Positions-Adresse, und in den Rezirkulations-Steuer-Einrichtungen enthaltene Vorrichtungen, die auf die Zähler-Einrichtungen, die erste und die zweite Zwischenspeicher-Einrichtung und die Summations-Einrichtung in der Weise ansprechen, daß sie die Rezirkulations-Steuer-Einrichtung steuern.
    79. Vorrichtung nach Anspruch 78, dadurch gekennzeichnet , daß die ersten und zweiten Zwischenspeicher-Einrichtungen Vorrichtungen jeweils zum
    ■ _... ;.. 3239506..
    Erzeugen eines first-word-Signals, das das erste Speicherwort darstellt,in dem Bits gesteuert werden müssen, und eines last-word-Signals umfassen, das das letzte Wort einer Folge von Bits darstellt, die gesteuert werden müssen, daß weiterhin Einrichtungen vorgesehen sind, die auf die Summations-Einrichtung und das first-word-Signal in der Weise ansprechen, daß sie ein first-word-carry-Signal erzeugen, daß die Rezirkulations-Einrichtung einen Multiplexer umfaßt, der Daten-EingangsSignale von einem Speicherwort und von einem Color-Kode erhält, der den Status bzw. Logikpegel von zu steuernden Bits definiert, und darüberhinaus Steuer-Eingangssignale von der Rezirkulations-Steuer-Einrichtung empfängt, und daß die Rezirku- ·<«·-■*■··■ lations-Einrichtung folgende Bestandteile umfaßt:
    einen Bit-Masken-Generator zur Erzeugung der Steuer-Eingangssignale und
    eine Status-Schaltung, die auf die Signale first word, first word carry und last word in der Weise anspricht, daß sie einen Satz von Status-Signalen erzeugt, um die erste Zähler-Einrichtung zu inkrementieren, die zweite Zähler-Einrichtung zu dekrementieren und die Speicherung der aktualisierten Bit-Adresse zu steuern.
    80. Vorrichtung zum selektiven Steuern des Status bzw. Logikpegels von Daten-Bits eines Speichers, der Daten-Bits an Speicherplätzen speichert, die Speicher-Adressen besitzen, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet , daß sie folgende Bestandteile umfaßt:
    Einrichtungen zur Erzeugung einer Vielzahl von Befehlen, von denen jeder einen Lauflängen- bzw. Sequenzlängen-Kode umfaßt, der eine Bit-Sequenz definiert, die eine Anzahl von Bits mit einem befohlenen Zustand bzw. Logikpegel in aufeinanderfolgenden Speicherplätzen enthält, wobei wenigstens
    .. 3239J)Ü6
    - 34 - .'Zl" Z I " " Z
    einer dieser Befehle auch eine Speicher-Adresse des ersten Bits von einer Bit-Sequenz und einen Color-Kode enthält, der den befohlenen Zustand von Bits in einer solchen Sequenz definiert, Einrichtungen, die auf einen Befehl in der Weise reagieren, daß sie den Speicher an der befohlenen Adresse adressieren und Zustände bzw. Logikpegel von Bits einer Gruppe von aufeinanderfolgenden Bits entsprechend dem Color-Kode und beginnend an der befohlenen Adresse etablieren bzw. herstellen, wobei diese Gruppe eine Anzahl von Bits enthält, die durch den Sequenzlängen-Kode definiert ist, wodurch ein Befehl ausgeführt werden kann, um die Zustände bzw. Logikpegel der Bits einer Sequenz unabhängig vom Speicherplatz zu steuern.
    81. Vorrichtung nach Anspruch 80, dadurch gekennzeichnet, daß ein zweiter dieser Befehle einen Sequenzlängen-Kode enthält, der eine zweite Bit-Sequenz definiert, die am Ende der ersten Bit-Sequenz beginnt, und daß Einrichtungen vorgesehen sind, die dazu dienen, die Befehlsadresse der einen Bit-Sequenz und die Anzahl von Bits dieser einen Bit-Sequenz zu summieren, um eine aktualisierte Adresse zu erzeugen, und daß die Einrichtungen zum Adressieren des Speichers und zum Etablieren der Zustände bzw. Logikpegel Mittel umfassen, die dazu dienen, die Zustände von Bits einer zweiten Gruppe von nachfolgenden Bits in dem Speicher zu steuern, die bei der aktualisierten Adresse beginnt.
    82. Vorrichtung nach Anspruch 80, dadurch gekennzeichnet , daß ein zweiter dieser Befehle einen zweiten Sequenzlängen-Kode umfaßt, der eine zweite Bit-Sequenz definiert, daß der zweite Befehl auch eine Speicher-Adresse des ersten Bits der zweiten Bit-Sequenz enthält, daß die Einrichtungen zur Erstellung
    BAD ORIGINAL
    bzw. Bildung der Zustände bzw. Logikpegel Einrichtungen umfassen, die auf jeden der Befehle, der eine Speicheradresse enthält, in der Weise ansprechen, daß sie den Speicher an einer solchen Speicher-Adresse adressieren und die Zustände bzw. Logikpegel von solchen Bits steuern, die bei dieser Adresse beginnen, wodurch diese Befehle, die eine.Speicher-Adresse enthalten, in willkürlicher Reihenfolge ausgeführt werden können.
    83. Vorrichtung nach Anspruch 80, dadurch g e k e η η ζ e i ch net, daß die Einrichtung zum Erstellen bzw. Ändern von Zuständen bzw. Logikpegeln Mittel umfaßt, die dazu dienen, gleichzeitig die Zustände bzw. Logikpegel eines jeden Bits einer Vielzahl von Bits einer Bit-Sequenz zu steuern.
    84. Vorrichtung nach Anspruch 80, dadurch gekennzeichnet, daß der Speicher in Wörtern einer ausgewählten Anzahl von Bits organisiert ist, und daß die Einrichtung zum Erstellen bzw. Ausbilden der Zustände bzw. Logikpegel Mittel umfaßt, die dazu dienen, gleichzeitig den Status bzw. Logikpegel einer Vielzahl von Bits eines dieser Wörter zu steuern.
    85. Vorrichtung nach Anspruch 80, dadurch gekennzeichnet , daß der Speicher in Wörtern mit N Bits organisiert ist und daß die Mittel zur Bildung bzw. Änderung von Zuständen, bzw. Logikpegeln Einrichtungen umfassen, die dazu dienen, den Speicher Wort für Wort zu adressieren und wenn jedes ein wort adressiert ist, gleichzeitig den Status bzw. Logikpegel aller Bits eines solchenWortes zu steuern.
    86. Vorrichtung nach Anspruch 85, dadurch g e k e η η ζ e ic h η e t , daß sie Einrichtungen umfaßt, die dazu dienen, parallel alle Bits eines Wortes aus dem
    Speicher zu übertragen, sowie Vorrichtungen, die dazu dienen, gleichzeitig alle Speicherplätze des übertragenden Wortes zu löschen.
    87. Vorrichtung nach Anspruch 80/ dadurch gekennzeichnet , daß das erste Bit einer Bitsequenz von einem der Befehle innerhalb der Bit-Sequenz eines zweiten dieser Befehle liegt, wobei wenigstens Teile von zwei Bit-Sequenzen einander gegenseitig in dem Speicher überlappen, und daß Mittel vorgesehen sind, die dazu dienen, ein Ändern des Status bzw. Logikpegels von Bits in dem Speicher ausgehend von einem gegebenen Status bzw. Logikpegel zu verhindern.
DE19823239606 1981-10-26 1982-10-26 Abtastzeilen-generator Withdrawn DE3239606A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31452481A 1981-10-26 1981-10-26
US06/413,167 US4566038A (en) 1981-10-26 1982-08-30 Scan line generator

Publications (1)

Publication Number Publication Date
DE3239606A1 true DE3239606A1 (de) 1983-05-05

Family

ID=26979403

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19823239606 Withdrawn DE3239606A1 (de) 1981-10-26 1982-10-26 Abtastzeilen-generator

Country Status (2)

Country Link
US (1) US4566038A (de)
DE (1) DE3239606A1 (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6552730B1 (en) * 1984-10-05 2003-04-22 Hitachi, Ltd. Method and apparatus for bit operational process
US4860109A (en) * 1987-01-07 1989-08-22 Matsushita Electric Industrial Co., Ltd. Image processing apparatus
US5812704A (en) * 1994-11-29 1998-09-22 Focus Automation Systems Inc. Method and apparatus for image overlap processing
JPH10240612A (ja) * 1997-02-27 1998-09-11 Canon Inc データ読出装置及び方法とそれを用いた印刷装置
US6819789B1 (en) 2000-11-08 2004-11-16 Orbotech Ltd. Scaling and registration calibration especially in printed circuit board fabrication
US7058474B2 (en) * 2000-11-08 2006-06-06 Orbotech Ltd. Multi-layer printed circuit board fabrication system and method
US6701197B2 (en) * 2000-11-08 2004-03-02 Orbotech Ltd. System and method for side to side registration in a printed circuit imager
TWI246382B (en) * 2000-11-08 2005-12-21 Orbotech Ltd Multi-layer printed circuit board fabrication system and method
US20050185852A1 (en) * 2004-02-20 2005-08-25 Jiliang Song Method and apparatus to generate complex borders
US7280055B2 (en) * 2005-04-22 2007-10-09 International Business Machines Corporation Method and apparatus for encoding binary data as a zero terminated string
JP4010334B2 (ja) * 2005-06-30 2007-11-21 セイコーエプソン株式会社 集積回路装置及び電子機器
US7561478B2 (en) 2005-06-30 2009-07-14 Seiko Epson Corporation Integrated circuit device and electronic instrument
US20070001984A1 (en) * 2005-06-30 2007-01-04 Seiko Epson Corporation Integrated circuit device and electronic instrument
US7593270B2 (en) * 2005-06-30 2009-09-22 Seiko Epson Corporation Integrated circuit device and electronic instrument
US20070001974A1 (en) * 2005-06-30 2007-01-04 Seiko Epson Corporation Integrated circuit device and electronic instrument
JP4010332B2 (ja) * 2005-06-30 2007-11-21 セイコーエプソン株式会社 集積回路装置及び電子機器
JP2007012869A (ja) 2005-06-30 2007-01-18 Seiko Epson Corp 集積回路装置及び電子機器
JP4010333B2 (ja) * 2005-06-30 2007-11-21 セイコーエプソン株式会社 集積回路装置及び電子機器
JP4661401B2 (ja) * 2005-06-30 2011-03-30 セイコーエプソン株式会社 集積回路装置及び電子機器
JP4010335B2 (ja) * 2005-06-30 2007-11-21 セイコーエプソン株式会社 集積回路装置及び電子機器
JP4186970B2 (ja) * 2005-06-30 2008-11-26 セイコーエプソン株式会社 集積回路装置及び電子機器
JP4345725B2 (ja) * 2005-06-30 2009-10-14 セイコーエプソン株式会社 表示装置及び電子機器
US20070016700A1 (en) * 2005-06-30 2007-01-18 Seiko Epson Corporation Integrated circuit device and electronic instrument
JP4830371B2 (ja) * 2005-06-30 2011-12-07 セイコーエプソン株式会社 集積回路装置及び電子機器
JP4010336B2 (ja) * 2005-06-30 2007-11-21 セイコーエプソン株式会社 集積回路装置及び電子機器
JP4151688B2 (ja) 2005-06-30 2008-09-17 セイコーエプソン株式会社 集積回路装置及び電子機器
KR100826695B1 (ko) 2005-06-30 2008-04-30 세이코 엡슨 가부시키가이샤 집적 회로 장치 및 전자 기기
JP4661400B2 (ja) * 2005-06-30 2011-03-30 セイコーエプソン株式会社 集積回路装置及び電子機器
US7564734B2 (en) * 2005-06-30 2009-07-21 Seiko Epson Corporation Integrated circuit device and electronic instrument
US20070001970A1 (en) * 2005-06-30 2007-01-04 Seiko Epson Corporation Integrated circuit device and electronic instrument
US20070001975A1 (en) * 2005-06-30 2007-01-04 Seiko Epson Corporation Integrated circuit device and electronic instrument
US7755587B2 (en) * 2005-06-30 2010-07-13 Seiko Epson Corporation Integrated circuit device and electronic instrument
US7764278B2 (en) * 2005-06-30 2010-07-27 Seiko Epson Corporation Integrated circuit device and electronic instrument
US7567479B2 (en) * 2005-06-30 2009-07-28 Seiko Epson Corporation Integrated circuit device and electronic instrument
KR100850614B1 (ko) * 2005-06-30 2008-08-05 세이코 엡슨 가부시키가이샤 집적 회로 장치 및 전자 기기
JP4158788B2 (ja) * 2005-06-30 2008-10-01 セイコーエプソン株式会社 集積回路装置及び電子機器
JP2007012925A (ja) * 2005-06-30 2007-01-18 Seiko Epson Corp 集積回路装置及び電子機器
KR100828792B1 (ko) * 2005-06-30 2008-05-09 세이코 엡슨 가부시키가이샤 집적 회로 장치 및 전자 기기
JP4665677B2 (ja) 2005-09-09 2011-04-06 セイコーエプソン株式会社 集積回路装置及び電子機器
US20070091379A1 (en) * 2005-10-21 2007-04-26 Mobilic Technology Corp. Universal fixed-pixel-size ISP scheme
US7602974B2 (en) * 2005-10-21 2009-10-13 Mobilic Technology (Cayman) Corp. Universal fixed-pixel-size ISP scheme
JP4586739B2 (ja) * 2006-02-10 2010-11-24 セイコーエプソン株式会社 半導体集積回路及び電子機器
US11115623B2 (en) * 2018-05-07 2021-09-07 Maxim Integrated Products, Inc. Systems and methods for asymmetric image splitter with line mark memory
US20230269082A1 (en) * 2022-02-18 2023-08-24 RISC Zero, Inc. Zero knowledge prover

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3438003A (en) * 1966-06-10 1969-04-08 Bunker Ramo Data compression system
US3474442A (en) * 1966-10-03 1969-10-21 Xerox Corp Format generator circuit
US3666888A (en) * 1968-06-26 1972-05-30 Communications Satellite Corp Pcm-tv system using a unique word for horizontal time synchronization
SE341284B (de) * 1968-10-24 1971-12-20 E Eriksson
US4135214A (en) * 1969-07-02 1979-01-16 Dacom, Inc. Method and apparatus for compressing facsimile transmission data
JPS4947565B1 (de) * 1970-01-30 1974-12-17
US4034400A (en) * 1970-09-23 1977-07-05 International Publishing Corporation Ltd. Apparatus for reproducing graphic material
US3870922A (en) * 1972-05-02 1975-03-11 Nippon Electric Co Graphic pattern generation for a tv-like scanned-graphic display equipment
DE2233796C3 (de) * 1972-07-10 1975-03-20 K.K. Ricoh, Tokio Verfahren zur Video-Signal-Kompression und Expansion und Vorrichtungen zur Durchführung des Verfahrens
US3906480A (en) * 1973-02-23 1975-09-16 Ibm Digital television display system employing coded vector graphics
US3996584A (en) * 1973-04-16 1976-12-07 Burroughs Corporation Data handling system having a plurality of interrelated character generators
GB1481226A (en) * 1973-08-31 1977-07-27 Kokusai Denshin Denwa Co Ltd System for coding two-dimensional information
US4070710A (en) * 1976-01-19 1978-01-24 Nugraphics, Inc. Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array
US4075620A (en) * 1976-04-29 1978-02-21 Gte Sylvania Incorporated Video display system
US4081842A (en) * 1976-06-14 1978-03-28 Eocom Corporation Facsimile system
US4204207A (en) * 1977-08-30 1980-05-20 Harris Corporation Video display of images with video enhancements thereto
US4204208A (en) * 1977-08-30 1980-05-20 Harris Corporation Display of video images
US4130887A (en) * 1977-11-14 1978-12-19 The United States Of America As Represented By The Secretary Of The Navy Digital plotting system for displaying character information
FR2426296A1 (fr) * 1978-05-18 1979-12-14 Thomson Csf Generateur de vecteurs pour console graphique
US4254467A (en) * 1979-06-04 1981-03-03 Xerox Corporation Vector to raster processor
US4410916A (en) * 1979-08-24 1983-10-18 Compression Labs, Inc. Dual mode facsimile coding system and method
US4228432A (en) * 1979-08-28 1980-10-14 The United States Of America As Represented By The Secretary Of The Navy Raster scan generator for plan view display

Also Published As

Publication number Publication date
US4566038A (en) 1986-01-21

Similar Documents

Publication Publication Date Title
DE3239606A1 (de) Abtastzeilen-generator
DE3111027C2 (de)
EP0096079B1 (de) Verfahren zur Aufbereitung von Punktrasterdaten für Zeichen- und/oder Bilddarstellungen
DE3804450C2 (de)
DE3339178C2 (de)
DE2760260C2 (de) Vorrichtung zum Anzeigen eines gerasterten Bildes
DE3144822C2 (de)
DE2708591C2 (de)
DE2951160C2 (de)
DE3729023C2 (de) Bildbearbeitungsgerät
DE2525155C2 (de) Anordnung zur computergesteuerten Rasterpunktdarstellung von codierter, Liniensegmente bezeichnender Vektorinformation als eine Folge von X/Y Koordinatenwerten
DE3342004C2 (de) Vorrichtung zum Eingeben von Videosignalen in einen Digitalspeicher
DE2725395B2 (de) Einrichtung zur Echtzeittransformation von m in Zeilen angeordneten Wörtern der Bitlänge n in n in Spalten angeordnete Wörter der Bitlänge n
DE2438202B2 (de) Vorrichtung zur Erzeugung eines vorbestimmten Textes von Zeicheninformation, welche auf dem Bildschirm einer Videowiedergabeeinheit darstellbar ist
DE1297915B (de) Datensichtgeraet
DE2521436B2 (de) Informationswiedergewinnungsanordnung
DE3716752C2 (de)
DE2645535A1 (de) Multiadressdigitalspeicher
DE3505117A1 (de) Vorrichtung und verfahren zum emulieren eines rechnertastatureingangs mit einem handschrifteingabeterminal
DE2754972A1 (de) Merkmalsfeststellsystem
DE3713627A1 (de) Bildspeicherschaltung, insbesondere zur verwendung beim drehen von bilddaten
DE2825321A1 (de) Rasterdrucker
DE3343348A1 (de) Anordnung zur datenuebertragung zwischen mehreren prozessoren und einem speicher
DE69709695T3 (de) Verfahren zur seitenzusammensetzung
DE1805992A1 (de) Verfahren zum Sortieren von Informationen und Anordnung zur Durchfuehrung dieses Verfahrens

Legal Events

Date Code Title Description
8141 Disposal/no request for examination