DE69029923T2 - Rechnergesteuertes Zeichengerät - Google Patents
Rechnergesteuertes ZeichengerätInfo
- Publication number
- DE69029923T2 DE69029923T2 DE69029923T DE69029923T DE69029923T2 DE 69029923 T2 DE69029923 T2 DE 69029923T2 DE 69029923 T DE69029923 T DE 69029923T DE 69029923 T DE69029923 T DE 69029923T DE 69029923 T2 DE69029923 T2 DE 69029923T2
- Authority
- DE
- Germany
- Prior art keywords
- time
- plot
- commands
- plotter
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 15
- 238000000354 decomposition reaction Methods 0.000 claims description 7
- 238000003908 quality control method Methods 0.000 claims description 5
- 239000000872 buffer Substances 0.000 description 25
- 230000014509 gene expression Effects 0.000 description 20
- 239000003086 colorant Substances 0.000 description 15
- 239000013598 vector Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000005259 measurement Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 235000012489 doughnuts Nutrition 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007598 dipping method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000049 pigment Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/13—Digital output to plotter ; Cooperation and interconnection of the plotter with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0077—Raster outputting to the print element(s)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0082—Architecture adapted for a particular function
- G06K2215/0094—Colour printing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
- Record Information Processing For Printing (AREA)
Description
- Diese Erfindung betrifft das Gebiet der Computergraphik. Im besonderen ist sie ein Verfahren und eine Vorrichtung, um einen Computergraphik- Rasterplotter in einer Weise zu steuern, die die Qualität des Plots verbessert.
- Computergraphik kann als irgendeine Ausgabe eines Computers definiert werden, die in bildlicher Form präsentiert wird. Obwohl diese Definition Text nicht unbedingt ausschließt, ist die hauptsächliche Stärke der Computergraphik die Anzeige von graphischen Darstellungen, Bildern, Karten und anderen ähnlichen Arten von Daten.
- Einrichtungen, die zum Anzeigen der Computergraphikausgabe verwendet werden, umfassen Kathodenstrahlröhren (CRT), Flüssigkristallanzeigen (LCD) und Ein- oder Mehrfarbenplotter. Graphische Anzeigeeinheiten müssen imstande sein, sowohl eine hohe Dateneingabegeschwindigkeit hinzunehmen als auch diese Daten genau und sehr schnell anzuzeigen.
- Obwohl es möglich ist, einen Graphikplotter direkt von dem Computer, der den Plot erzeugt, zu steuern, hat dies oft eine Herabsetzung der Geschwindigkeit zur Folge, mit der der Plot gezeichnet wird. Plotter drucken typischerweise eine Linie des Plots zu einer gegebenen Zeit. Die Daten für jede dieser Linien müssen dem Plotter in einer besonderen "gerasterten" Form zugeführt werden. Die Geschwindigkeit, mit der der Computer Graphikdaten in gerasterte Form umwandeln kann, ist oft bedeutend kleiner als die maximale Geschwindigkeit, mit der der Plotter diese Daten drucken oder anzeigen kann. Wenn der Computer direkt an den Plotter angeschlossen ist, verlangsamt dieser Widerspruch in den Geschwindigkeiten die Ausgabegeschwindigkeit des Plotters in einer unerwünschten Weise.
- Eine Lösung für das Problem, Daten schnell genug zu rastern, um den Plotter mit hohen Geschwindigkeiten anzusteuern, hat darin bestanden, eine Zwischeneinheit oder "Controller" zwischen dem Computer, der die graphische Ausgabe erzeugt, und dem Plotter, der sie zeichnet, anzubringen. Einfach ausgedrückt, der Controller nimmt höhere Befehle, wie z.B. "ziehe eine Linie von X,Y-Koordinaten 2,7 nach X,Y-Koordinaten 6,9", von dem Computer an. Der Controller reduziert diese höheren Befehle in einfachere Befehle und entscheidet, wo Punkte oder Pixels gezeichnet oder aktiviert werden müssen, um eine solche Linie zu erzeugen. Nachdem das Punktmuster berechnet worden ist, weist der Controller den Plotter an, unter Verwendung des berechneten Punktmusters mit dem Drucken zu beginnen.
- Viele Controller verwenden zwei Stufen, um die gewünschte endgültige Ausgabe zu erzeugen. Fig. 1 der begleitenden Zeichnungen zeigt einen derartigen Controller. Der Controller empfängt über die Leitung 12 Graphikbefehle von dem Hostrechner 13. Der Parser 17 nimmt diese Befehle und zerlegt sie in einen einfacheren Satz von Befehlen. Dann teilt der Parser das beabsichtigte Ausgabebild in eine Reihe von sogenannten Rasterbändern. Die Größe dieser Bänder wird durch die einzelnen Pufferspeicher bestimmt, die mit dem Rastererzeuger 19 verbunden sind. Wenn z.B. der Rastererzeuger 19 über 256 kB RAM-Pufferspeicher verfügt, wird die Anzahl von Pixels, die auf jeder gegebenen Linie erzeugt werden kann multipliziert mit der Anzahl von Linien in jedem Band höchstens 256k betragen. Der Parser bestimmt ferner, welche Objekte in jedem Band gezeichnet werden. Sobald die Befehle und der Inhalt von allen Rasterbändern in einem gegebenen Plot berechnet sind, wird diese Information an den Rastererzeuger 19 weitergeleitet.
- Der Rastererzeuger 19 berechnet genau, welche Pixels in jedem Band eingeschaltet werden müssen, um das gewünschte Bild zu erzeugen (diese Berechnung wird für jede Farbtinte wiederholt, die der Plotter für jedes Rasterband verwenden kann). Sowie diese Berechnungen vollendet sind und der Rasterpufferspeicher für ein gegebenes Band gefüllt ist, beginnt der Rastererzeuger in einen anderen Rasterpufferspeicher zu schreiben, wenn ein solcher vorhanden ist. Wenn nur ein Rasterspeicher verfügbar ist, sendet der Rasterspeicher seinen Inhalt an den Plotter, während der Rastererzeuger wartet, um mehr Information zu erzeugen. Die meisten, wenn nicht alle, Controller besitzen mindestens zwei Pufferspeicher. Jeder Puffer wird nacheinander beschrieben und gibt seine Daten aus, sobald er gefüllt ist und wenn der Plotter die Daten annehmen kann. Dieser Vorgang des Berechnens der einzuschaltenden Pixels, des abwechselnden Füllens der Rasterspeicher 21 und 23 damit und des Richtens des Inhalts der Rasterspeicher an den Plotter 25 dauert an, bis alle graphische Information ausgegeben worden ist.
- Wenn nur ein Puffer vorhanden wäre, würden Plotabläufe häufig langsamer werden. Bei einigen bekannten Maschinen wurde dieses Problem gelöst, indem ein großer Rahmenpuffer erzeugt wurde, um Daten für den ganzen Plot auf einmal zu speichern. Diese Lösung ist von begrenztem Nutzen, da Plots oftmals die Speicherkapazität des Rahmenspeichers übersteigen.
- Es ist offensichtlich, daß, sowie die Komplexität der Ausgabe zunimmt, die Zeitdauer, die der Rastererzeuger 19 benötigt, um die genauen Pixeldarstellungen des Bildes für jede durch den Plotter benutzte Farbe zu berechnen, ebenfalls zunehmen wird. Wenn diese Komplexität einen bestimmten Punkt erreicht, ist der oder die Speicherpuffer imstande, seinen Inhalt viel schneller auszugeben als der Rastererzeuger 19 sie nachfüllen kann. Wenn dieser Zeitunterschied zunimmt, entstehen immer mehr Pausen in dem Druckprozeß, weil die Pufferspeicher auf mehr Datenausgabe warten.
- Bei vielen Arten von Plottern schaffen die Pausen, die auftreten, wenn der Rastererzeuger den Pufferspeicher nicht schnell genug füllen kann, um den Plotter in Bewegung zu halten, ernsthafte Probleme. Bei Laserplottern kann z.B. trockener Toner während der Pausen an der Aufschmelztrommel haften, was die Trommel zerstört und Reparatur oder Austausch erfordert. Bei elektrostatischen Plottern beginnt während der Pausen flüssiger Toner, das Papier zu durchfeuchten, was einen dunklen Farbstreifen erzeugt, wo das Papier angehalten wurde. Dieser Streifen wird als "Tonerbalken" bezeichnet. Selbst bei einer CRT- oder LCD-Anzeige ist die Pause des Cursors, während der Rastererzeuger weitere Daten erzeugt, wenn nicht schädlich, so doch wenigstens verwirrend. All diese Resultate sind eine unerwünschte Folge davon, daß keine ausreichende Ausgabe des Rastererzeugers vorhanden ist, um mit der maximalen Ausgabegeschwindigkeit der Ausgabeeinrichtung Schritt zu halten.
- Die Versuche, diese Probleme zu lösen, sind bis jetzt nicht zufriedenstellend gewesen. Einige Plotter besitzen eine benutzereinstellbare Geschwindigkeitssteuerung, die dem Bediener die Möglichkeit gibt, die Papierbewegung in dem Plotter zu verlangsamen, wodurch dem Rastererzeuger mehr Zeit gegeben wird, um die jeweiligen Puffer zu füllen. Dieses manuelle Verfahren verlangt leider von dem Bediener, den voraussichtlichen Plot vor seinem tatsächlichen Druck zu studieren und festzustellen, ob die Dichte von Zeichen und Farbe zu groß ist, um eine kontinuierliche Papierbewegung mit hoher Geschwindigkeit zu erlauben. Außerdem kann bei einem Plot, der mehrfache Durchgänge benötigt, wobei jeder Durchgang eine andere Farbtinte verwendet, der langsame Papiervorschub nur für einen Durchgang und nicht für die anderen erforderlich sein. Das Voreinstellen der Maschine auflangsame Geschwindigkeit wird in diesem Fall während der meisten Durchgänge Zeit verschwenden, um den einzigen langsamen Durchgang unterzubringen. Bei Laserplottern hat ein normales Verfahren darin bestanden, den Plot vorzeitig abzubrechen, wenn eine Situation eintritt, wo das Papier angehalten werden muß. Obwohl das vorzeitige Abbrechen die Aufschweißtrommel schützt, verlangt es, daß ein vollständig neuer Plot gezeichnet werden muß. Da die Komplexität des Plots sich nicht verändert hat, gibt es keine Gewähr, daß vorzeitige Abbrüche sich nicht wiederholen werden. Dies kostet offenkundig Computerzeit und Papier.
- Es besteht daher ein deutlicher Bedarf an einem Controller zur Verwendung mit Computergraphik-Ausgabeeinrichtungen, der vor dem Beginn entweder des Plottens oder des Anzeigens feststellen kann, ob die beabsichtigte Ausgabe schnell genug gerastert werden kann, um den Plotter mit seiner höchsten Geschwindigkeit anzusteuern, und wenn sie nicht so schnell gerastert werden kann, sollte der Controller feststellen, ob eine langsame Ausgabe besser ist oder ob eine Zwischenspeicherung auf irgendeinem Zwischenspeicher die maximal mögliche Ausgabegeschwindigkeit ergeben würde.
- JP-A-59-117643 offenbart einen Controller für einen Graphikplotter mit einem Graphikprozessor, der die für Datenverarbeitungen für jedes Band benötigte Zeit berechnet und die Geschwindigkeit steuert, mit der die gerasterten Daten nach Maßgabe des Ergebnisses der Berechnung an den Plotter geschickt werden.
- US-A-4,458, 330 offenbart ein Bandvektor-zu-Raster-Umwandlungssystem, bei dem dem System Vektoren zugeführt und in einem Vektorspeicher in Gruppen gespeichert werden. Die Vektoren werden seriell ausgelesen und in eine Serie von Koordinaten von Punkten längs des Vektors umgewandelt. Nachdem das ganze Vektorband gerastert worden ist, wird der Inhalt des Rasterspeichers an einen Plotter ausgegeben.
- Die vorliegende Erfindung stellt ein Verfahren zur Verfügung, um die Qualität von Computergraphikplots, die durch Computergraphikplotter und -anzeigen hervorgebracht werden, zu verbessern, wie in Anspruch 1 definiert.
- Die Erfindung stellt weiter eine Steuereinheit zur Verfügung, um die Qualität eines Plots, der durch einen Computergraphik-Rasterplotter hervorgebracht wird, zu verbessern, wie in Anspruch 2 definiert.
- Die vorliegende Erfindung ist ein Steuersystem für einen Computergraphik-Monochrom- oder Mehrfarbrasterplotter. Die Verwendung der vorliegenden Erfindung ist auch in Graphikplottern aller Arten, CRT- oder LCD-Anzeigeeinheiten und anderen derartigen Einrichtungen beabsichtigt.
- Das Steuersystem arbeitet in enger Verbindung mit dem Parser und dem Rastererzeuger. Graphikdaten werden von dem Hostrechner in einem höheren Datenformat empfangen, das in Bänder oder farbengetrennt sortiert sein kann oder nicht. Der Parser zerlegt, wenn erforderlich, die Daten in sortierte graphische Elemente. In dieser Beschreibung werden die Begriffe 'Elemente' und 'Ausdrücke' benutzt, um die Computerbefehle zu meinen, die die verschiedenen Objekte in dem Plot zeichnen. Diese Elemente sind oft einfachere Elemente als diejenigen, die benutzt werden, um die ursprüngliche Form der Daten zu beschreiben. Zum Beispiel können Polygone in Trapeze zerbrochen werden, und ein einziges großes Rechteck kann in mehrere kleine Rechtecke zerlegt werden. Plots werden in allgemeinen in eine Reihe von Bändern aufgespaltet, wobei die Länge jedes Bandes durch die Anzahl von Pixels auf jeder Linie und die Größe der Rasterpufferspeicher bestimmt wird. Graphische Objekte erstrecken sich oft über mehrere dieser Rasterbänder.
- Der Parser sortiert die Elemente, so daß nur die Elemente, die Objekte in dem momentanen Band zeichnen, an den Rastererzeuger geschickt werden. Da die größeren komplexeren graphischen Objekte an Bandgrenzen geteilt werden, werden sie in "Sortierfächer" gelegt. Für jedes Rasterband gibt es ein Sortierfach. Wenn der Zergliederungsprozeß beendet ist, beginnt das Rastern. Daten werden mit der Rate eines Sortierfaches zu einer Zeit an den Rastererzeuger gesendet, wobei das nächste Sortierfach durch die Richtung der Papierbewegung bestimmt wird. Bei der vorliegenden Erfindung werden Elemente nicht nach Farben getrennt, also werden alle Elemente für jeden Farbdurchlauf an den Rastererzeuger gesendet. Der Rastererzeuger bestimmt, welche Elemente unter Verwendung der Farbe des momentanen Durchlaufs auszuführen sind. In anderen Ausführungen dieser Erfindung können Elemente in einem farbseparierten Format an den Rastererzeuger geschickt werden.
- Die Vorrichtung der vorliegenden Erfindung arbeitet während der Sortierroutinen mit dem Parser zusammen. Während des Zerlegens wird eine Zeitmessung für jedes Element vorgenommen, und die zum Ausführen jedes Elements benötigte Gesamtzeit wird gespeichert. Die Routinen, die größere, unsortierte grahische Objekte in einfachere sortierte Objekte zerlegen, sind hierin als "Ausdruckerzeuger" bekannt. Wenn diese Ausdruckerzeuger bereit sind, einen neuen Ausdruck oder Element in ein Sortierfach einzufügen, tun sie zwei Dinge. Zuerst wird eine Routine aufgerufen, die die erforderliche Zeit bestimmt, um den Ausdruck oder das Element zu zeichnen. Die Zeitdaten werden einer Sortierroutine zugeführt, die bestimmt, welche Tintenfarbe benutzt werden muß, um die richtige Farbe für den Ausdruck zu erzeugen. Die Zeichenzeit, die für jede Tinte oder Toner benötigt wird, um den Ausdruck zu zeichnen, wird zu der Zeichenzeit für diese einzelne Tinte oder Toner für das einzelne Rasterband addiert, in dem der Ausdruck auszuführen ist. Somit wird eine laufende Gesamtzeit für jedes Band für jede Tinte unterhalten. Da jeder Ausdruck irgendeine minimale Menge von Verarbeitungszeit auch in den Bändern und Farbdurchläufen, in denen er nicht ausgeführt wird, benötigt, addiert die Sortierroutine diese Minimalzeit ebenfalls zu den Zeitsummen für jede Tintenfarbe.
- Das Ergebnis dieser Verarbeitung ist, daß es am Ende der Zerlegung des ganzen Plots eine Zeitschätzung der benötigten Rasterungszeit für jede Tintenfarbe in jedem Band gibt. Diese Information wird in einer Sortierfachtabelle gespeichert und durch den Controller benutzt, um die richtige Handlungsweise zum Ausgeben des Plots zu bestimmen.
- Der Controller hat zwei elementare Optionen, sobald er feststellt, daß die Rasterung nicht schnell genug vollendet werden kann, um den Plotter mit voller Geschwindigkeit direkt zu treiben. Die grundlegende Entscheidung, daß Daten nicht schnell genug gerastert werden können, um die maximale Ausgabegeschwindigkeit aufrechtzuerhalten, wird mit Hilfe der Zeichenzeitbestimmung vorgenommen. Die Geschwindigkeit, mit der Daten gerastert werden können, ist in der vorangehend beschriebenen Weise ermittelt worden. Wenn diese Schätzung der Rasterungszeit die Maximalgeschwindigkeit, mit der Daten gerastert werden können, übersteigt, muß eine der folgenden Optionen angewandt werden.
- Die erste Option ist, dem Rastererzeuger zu erlauben, alle Daten des Parsers zu rastern und die gerasterten Daten in einem externen Speicher irgendeiner Art zu speichern. Sobald alle Rasterdaten gespeichert sind, wird der externe Speicher benutzt, um die Rasterdaten mit der zum Hochgeschwindigkeitsplotten erforderlichen Rate an den Plotter zu senden. Diese Option wird "Spooling" genannt.
- Die zweite Option ist, die Papierbewegung durch den Plotter während des ganzen Plotprozesses oder alternativ während des einen oder anderen einzelnen Farbdurchlaufes zu verlangsamen. Diese Option wird "Geschwindigkeitssteuerung" genannt.
- Die Wahl, welche Option zu wählen ist, beruht auf dem Aufrechterhalten der größten Gesamtausgabe des Plotters. Eine Berechnung hinsichtlich der Gesamtzeit zum Vollenden des Plots für jede Ausgabeoption wird vorgenommen. Die Summen werden verglichen und die niedrigste wird ausgewählt. Der Benutzer kann die Wahl des Conrtollers jederzeit übergehen.
- Die vorliegende Erfindung wird nun in Form eines Beispiels mit Verweis auf die begleitenden Zeichnungen beschrieben.
- Inhalt der Zeichnungen:
- Fig. 1 ist ein Blockschaltbild eines bekannten Graphikplotter-Controllers.
- Fig. 2 ist ein Blockschaltbild eines Plotter-Steuersystems der vorliegenden Erfindung.
- Fig. 3 ist ein Flußdiagramm der Funktion eines bekannten Controllers.
- Fig. 4 ist ein höheres Flußdiagramm des Systems der vorliegenden Erfindung.
- Fig. 5 ist ein Flußdiagramm des Zeitberechnungsabschnitts des Systems der vorliegenden Erfindung.
- Fig. 6 ist ein Flußdiagramm des Steueroptions-Auswahlteils des vorliegenden Systems.
- Fig. 2 ist ein Blockschaltbild eines Graphikcontrollers 99, das die Hauptkomponenten zeigt, die die Betriebsumgebung der vorliegenden Erfindung umfassen. Der Controller besteht hauptsächlich aus der Parserplatine 100 und der Rastererzeugerplatine 150. Der Plotter 200 ist mit dem Ausgang der Rastererzeugerplatine 150 verbunden. Der externe Speicher 225 ist sowohl mit der Parserplatine 100 als auch mit der Rastererzeugerplatine 150 verbunden. Der Hostrechner (nicht gezeigt) ist mit der Parserplatine 100 verbunden.
- Die Parserplatine 100 empfängt über den Eingangs-E/A 101 höhere Graphikbefehle vom Hostrechner. Der Direktspeicherzugriffscontroller (DMA) 125 speichert die von dem Hostrechner empfangenen höheren Befehle in dem internen Speicher 115. Diese Befehle werden durch die CPU 110 in einfachere Befehle reduziert. Die einfacheren Befehle werden dann an den internen Speicher 115 zurückgegeben. Wenn die Speicherkapazität des internen Speichers überschritten ist, können diese Befehle in dem externen Speicher 225 gespeichert werden, indem sie über den Platten-E/A 103 übertragen werden. Sobald alle Befehle reduziert sind, werden sie über den Ausgangs-E/A 120 an die Rastererzeugerplatine 150 gesendet.
- Die einfachen Befehle werden an die CPU 160 übertragen. Nach Empfang der Daten und Befehle ermittelt die CPU 160 die Art des Objekts, das gezeichnet werden muß. Linien, Trapeze, Rechtecke und andere komplexere Objekte, die in diese aufgeführten einfachen Objekte zerlegt werden können, werden an den Zeichenchip 170 gesendet. Der Zeichenchip 170 entscheidet, welcher Teil jedes Objekts in jedem Band gezeichnet werden muß. Dieser Prozeß ist den Fachleuten als "dipping" bekannt. Die CPU 160 führt die gleiche Funktion für solche Objekte wie Kreise aus. Die CPU 160 bestimmt außerdem die Liniendicke für alle Objekte.
- Der Farbchip 180 empfängt die gerasterten Befehle entweder von der CPU 160 oder dem Zeichenchip 170. Die CPU 160 hat dem Farbchip 180 ferner mitgeteilt, welche Farbe(n) das (die) Objekt(e) haben soll(en). Der Farbchip 180 stellt dann durch Verweisen auf den Farbspeicher 182 fest, welche Pixelmuster von jedem Toner benötigt werden, um die gewünschte Farbe zu erzeugen. Die Muster werden dann mit dem gerasterten Befehl maskiert, um die richtige Farbe für das Objekt hervorzubringen. Ein Objekt kann nur einen Toner benötigen, oder es kann mehrere benötigen. Es sollte zur Kenntnis genommen werden, daß jeder Toner einen getrennten Durchlauf über dem ganzen Plot benötigt, um nacheinander die richtigen Farben aufzubauen.
- Die CPU 160, der Zeichenchip 170 und der Farbchip 180 arbeiten zu einer Zeit auf einem Band des ganzen Plots. Nur der Teil des ganzen Objekts, der in das nächste zu plottende Band paßt, wird auf die vorangehenden Punkte untersucht (Start/End-Punkt, Liniendicke, Farbe). Sowie das Band verarbeitet wird, speichert entweder der Speichercontroller 190 oder der Speichercontroller 192 die gerasterten Daten des Bandes in entweder dem Speicher 191 oder dem Speicher 193. Doppel- Speichercontroller und -speicher berücksichtigen die Betriebsart, wo ein Speicher seinen Inhalt an den Plotter sendet, während der andere Speicher mit Daten für das nächste Band gefüllt wird. Zum Zweck diesen Beschreibung definiert ein Rasterband die einzelnen Zeichenbänder, die im Speicher gespeichert werden. In diesem System ist die maximale Anzahl von Pixeis in jedem Rasterband pro Farbe/Toner gleich der Größe in Bits der Speicher 191 und 193.
- Die Gesamtfunktion eines bekannten Plotters wird durch das Flußdiagramm von Fig. 3 dargestellt. In Schritt 50 werden höhere Daten von dem Computer empfangen. Die vom Computer empfangenen Daten können sortiert oder nach Farben getrennt sein oder nicht. Im Zerlegungsschritt 52 werden die Daten in einfachere Elemente zerlegt und sortiert. Zum Beispiel können Polygone in Trapeze zerlegt werden, ein großes einzelnes Rechteck kann in mehrere kleine Rechtecke zerlegt werden usw. Diese Objekte werden in der Regel an Bandgrenzen geteilt. Wie vorangehend erörtert, betrifft die Vorstellung eines Bandes die Größe der Rasterpuffer. Wenn z.B. ein Band 200 Abtastlinien auf einem acht Punkte-pro-m (dpm) Plotter entspricht, dann wird ein 250 mm langer Plot (in der Papiervorschubrichtung) in 10 Bänder zerlegt werden. Nachdem die Daten zerlegt worden sind, beginnt die Rasterung 54. Während dieses Schrittes werden die zerlegten Daten gerastert, was bedeutet, daß die von dem Zerlegen gelieferten einfachen Formen in das genaue Muster von Pixelelementen ungewandelt werden, die benötigt werden, um das Objekt ein Band zu einer Zeit wiederherzustellen, in die Rasterpufferspeicher (Fig. 1) gelegt und dann bei Schritt 56 ausgegeben. Da zwei Rasterpufferspeicher vorhanden sind, wird ein Band gerastert, während der andere Pufferspeicher seine Daten an den Plot liefert. Dieses Abwechseln dauert an, bis alle Daten ausgegeben worden sind.
- Wenn während des Rasterungsschrittes das Rastern eines Bandes länger dauert als das Ausgeben des anderen, wird der Plotter nach Daten "hungern", und das Drucken wird anhalten, was die oben erörterten Probleme verursacht.
- Fig. 4 ist ein höheres Flußdiagramm, das zeigt, wie die vorliegende Erfindung in einen normalen Plotter einbezogen wird.
- Während des Zerlegens 62 wird, da komplexe Objekte an Bandgrenzen geteilt werden, ein Sortierfach für jedes Band eingerichtet. Nachdem das Teilen für jedes Objekt bestimmt ist, werden die Elemente, die benötigt werden, um diese einfacheren Objekte zu zeichnen, an einen Zeitberechner 64 geschickt, wo die zum Zeichnen dieses Elements benötigte Zeit berechnet wird. Die durch den Zeitbestimmungsschritt 64 hervorgebrachten Zeitdaten werden dann an den Sortierschritt 66 gesendet. Im Schritt 66 wird das richtige Sortierfach für das Element gefunden. Dann wird bei Schritt 68 die Farbe jedes Objekts untersucht, um zu bestimmen, welche Toner zum Zeichnen des Objekts benötigt werden. Bevor die Farbenbestimmung vorgenommen werden kann, muß die Qualität des Objekts, entweder durchsichtig oder undurchsichtig, bekannt sein. Die Begriffe "undurchsichtig" und "durchsichtig" haben hierin eine besondere Bedeutung. Objekte können in jedem gegebenen Punkt übereinanderliegen. Die Bereiche, wo eine solche Überlappung auftritt, können entweder in einer durchsichtigen oder undurchsichtigen Weise gezeichnet werden. Wenn durchsichtig, werden die Objekte jeweils völlig unabhängig gezeichnet, und die für jedes Objekt benötigten Toner dürfen überlappen. Wenn der überlappende Bereich undurchsichtig sein soll, überschreiben das zweite Objekt und sein Toner das erste Objekt vollständig. Dies erfolgt während der Rasterung, so daß während des undurchsichtigen Zeichnens keine wirkliche Pigmentüberlappung auftritt.
- Nachdem die Beschaffenheit und die Farbe des Objekts bestimmt sind, finden im Schritt 70 mehrere Aktionen statt. Die zum Zeichnen des Objekts benötigte Zeit wird zu der Summe für das Band addiert, worin das Objekt zu zeichnen ist, wobei eine getrennte Bandsumme für jede einzelne Farbe unterhalten wird. Die Zeichenzeit des Objekts wird nur für jeden zum Zeichnen des Objekts erforderlichen Tonerdurchlauf zu der Summe addiert. Da ein minimaler Zeitbetrag für jeden Ausdruck auch für die Tonerdurchläufe benötigt wird, an denen der Ausdruck nicht beteiligt ist, wird diese Minimalzeit zu den Zeitsummen jedes Tonerbanddurchlaufes addiert, an dem der Ausdruck nicht teilnimmt.
- Die Schritte 64 bis 70 werden wiederholt, bis alle Elemente verarbeitet sind. Am Ende des Zerlegens des ganzen Plots wird daher die zum Zeichnen jedes Bandes in jedem der vier Toner benötigte Zeit in der Sortierfachtabelle gespeichert.
- Nachdem die Zeit pro Tonerbanddurchlauf ermittelt ist, wird eine Handlungsweise gebraucht. Der Schritt 74, Qualitätssteuerungsentscheidung, stellt die ganze Entscheidungsfindung dar und wird unten im einzelnen beschrieben werden.
- Die vorliegende Erfindung umfaßt im Grunde zwei Funktionsblöcke: die Zeitberechnung für jedes Element in jedem Band für jeden Toner, und die Qualitätssteuerungsentscheidung auf der Basis der in dem ersten Schritt berechneten Zeiten. Die Einzelheiten dieser zwei Schritte werden nun erörtert. Der Code, der die Zeitberechnungen ausführt, ist in die unten in Tabelle 1 aufgeführten Blöcke oder Makros unterteilt. TABELLE 1
- Da bestimmte gemeinsame Operationen in jedem der in Tabelle 1 aufgeführten Blöcke ausgeführt werden, werden diese gemeinsamen Operationen zuerst erörtert, und eine funktionelle Erörterung der Blöcke wird folgen. Wann immer diese gemeinsamen Operationen während der ausführlichen Beschreibung der Makros erwähnt werden, sollte der Leser hinsichtlich der Ausführung dieser Operationen auf die folgenden Erörterungen Bezug nehmen.
- Um ein Objekt in den Rasterspeicher zu zeichnen oder zu "rastern", müssen Schreiboperationen in den Rasterspeicher mit dem geeigneten Muster aus Nullen und Einsen, das benötigt wird, um das Objekt genau darzustellen, durchgeführt werden. Bei der vorliegenden Erfindung erfolgt dieses, indem 16 Bit Schreiboperationen ausgeführt werden, die hierin als "16 Bit Wortschreibung" oder "Wortschreibung" bezeichnet werden. Für jede Wortschreibung wird eine bekannte Menge von Zeit benötigt. Die benötigte Zeitmenge, um Wortschreibungen für entweder das ganze Objekt oder einen Teil davon vorzunehmen, ist daher gleich der Anzahl von Wortschreibungen, die zum Zeichnen des Objekts benötigt wird, multipliziert mit der für jede Wortschreibung beötigten Zeitmenge.
- Bestimmen der Anzahl von 16 Bit Wortschreibungen in der Y-Dimension
- Viele Objekte sind im Grunde gefüllte Bereiche (feste Farbbereiche), die sowohl eine X- als auch eine Y-Dimension aufweisen. Ein gefülltes Rechteck ist dafür das einfachste Beispiel. Ein gefülltes Rechteck kann man sich als gegebene Anzahl von Reihen von Punkten vorstellen, die von einem unteren Wert zu einem höheren Wert in der Y-Dimension verlaufen und dann nacheinander Reihe für Reihe in der X-Dimension fortschreiten. Die Reihe definiert somit die Breite des Rechtecks, und die Anzahl der Reihen definiert die Höhe des Rechtecks. Jedes 16 Bit Wort enthält eine Reihe von 16 Punkten in der Y-Dimension. Aufeinanderfolgende Adressen werden längs derselben Reihe von Punkten direkt nebeneinander liegen, bis das Ende der Abtastlinie erreicht ist, Sobald die Anzahl der zum Zeichnen jeder Reihe des Objekts benötigten 16 Bit Wortschreibungen bekannt ist, ist die Gesamtzahl der zum Zeichnen des Objekts benötigten Wortschreibungen leicht zu berechnen, da sie gleich der Anzahl für jede Reihe mal der Anzahl von Reihen ist. Die Anzahl von 16 Bit Wortschreibungen für jede Reihe kann wie folgt bestimmt werden, wo
- Ymin = die kleinste Y-Koordinate für die Reihe und
- Ymax = die größte Y-Koordinate für die Reihe,
- (Ymax/16)-(Ymin/16)+1 = Anzahl von 16 Bit Wörtern/Reihe.
- Die Zeitberechnungen für viele Objekte umfassen die Anfangs- und Endewartezeit des Zeichenchips. Die Berechnungen müssen ferner die Zeit einschließen, die benötigt wird, um die Register des Zeichenchips zu laden, um ihn anzuweisen, ein einzelnes Obkekt zu zeichnen. Jede dieser Berechnungen ist eine einfache Addition eines empirisch bestimmten konstanten Wertes. Für die vorliegende Erfindung sind diese Zeiten 4.5µs für die Anfangs- und Endewartezeit und 9.4µs für das Laden der Register.
- Festsetzen von minimalen Einrichtungs- und Ladezeiten
- Um die meisten Objekte zu zeichnen, ist eine bestimmte minimale Zeitmenge erforderlich, um die Berechnungen vorzunehmen und den Rastererzeuger einzurichten. Für Objekte, die größer als eine bestimmte Minimalgröße sind, können einige dieser Operationen den Zeichenvorgang des vorherigen Objekts überlappen. Für Objekte unterhalb dieser Minimalgröße muß die für dieses Objekt berechnete Zeichenzeit auf eine bestimmte Mindestzeit erhöht werden, um den möglichen Verlust von überlappungszeit zu berücksichtigen. Diese Mindestzeiten werden empirisch ermittelt, indem eine Anzahl von Objekten mit der Minimalgröße gezeichnet und die dafür erforderliche Zeit gemessen wird. Das Festsetzen der Mindestzeit zum Zeichnen eines Objekts ist somit ein einfacher Vergleich der für das Objekt in der normalen Weise berechneten Gesamtzeit mit einer Konstanten (die empirisch ermittelte Mindestzeit), wobei die größere der zwei als die Zeichenzeit für das Objekt verwendet wird.
- Viele Objekte des gleichen Typs können in demselben Plot erscheinen. Einige dieser Objekt können genau die gleiche Größe und Form aufweisen und werden folglich genau die gleiche Zeitmenge zum Zeichnen benötigen. Außerdem ist festgestellt worden, daß viele davon in dem unteren Dimensionsbereich für solche Objekte sich befinden werden. Es wurde z.B. herausgefunden, daß für eine große Gruppe von Plots die meisten Rechtecke weniger als 200 Reihen von Punkten in der X-Richtung enthalten werden.
- Indem diese Tatsache ausgenutzt wird, können doppelte Berechnungen, die dasselbe Ergebnis liefern würden, beseitigt und die Verarbeitung beschleunigt werden. Zu Anfang der Controller-Operationen werden Tabellen aufgestellt, die die Zeiten enthalten werden, die erforderlich sind, um einzelne Obtekttypen in einem Größenbereich zu zeichnen. Während der Verarbeitung, wenn die zum Zeichnen eines Objekts benötigte Zeit ermittelt wird, prüft das Programm, um sehen, ob das Objekt dieselbe Art und Größe aufweist wie andere Objekte, deren Zeichenzeit bereits berechnet und in der Tabelle gespeichert wurde. Wenn ja, werden die Berechnungen nicht wiederholt. Stattdessen wird das zuvor berechnete Ergebnis aus der Tabelle zurückgewonnen. An diesem Punkt der Verarbeitung wird, wenn die Rasterungszeit des fraglichen Objekts aus der Tabelle zurückgewonnen werden kann, die Verarbeitung des neuen Elements angehalten, und das gespeicherte Ergebnis wird verwendet. Andernfalls wird die Verarbeitung fortgesetzt.
- Objekte mit schrägen Seiten erfordern eine Berechnung, um die Anfangs- und Endpunkte jeder Reihe von Punkten zu bestimmen, während das Zeichnen von einer Reihe von Punkten zur nächsten fortschreitet. Für eine schräge Linie kann z.B. jede Reihe von Punkten bei einem leicht abweichenden Y-Wert beginnen. Dies erfordert, daß nach dem Zeichnen jeder Punktreihe die Y-Anfangs- und Endwerte entweder etwas erhöht oder vermindert werden müssen, um die nächste Punktreihe in die Richtung der Schräge zu verschieben. Die für dieses Erhöhen oder Vermindern benötigte Zeit muß zu den anderen Zeiten addiert werden, die als zum Zeichnen des Objekts erforderlich berechnet wurden. Die Zeitmenge, die zu der Summe addiert werden muß, um der Zeit zwischen Abtastlinien für das ganze Objekt Rechnung zu tragen, ist gleich der Menge solcher Zeit, die für jede Reihe benötigt wird, mal der Anzahl von Reihen.
- BCMY- im Verhältnis zu RGB-Farbsystemen
- Zwei der gebräuchlisten Primärfarbensysteme, die in der Computergraphik verwendet werden, sind das BCMY-System, das die Farben Schwarz, Cyan, Magenta und Gelb als seine Primärfarben benutzt, und das RGB- Farbsystem, das die Farben Rot, Grün und Blau als seine Primärfarben benutzt. Beide Systeme können hierin verwendet werden, um die Farben von vielen Arten von Objekten zu spezifizieren, was leichte Unterschiede in den zum Rastern dieser Objekte benötigten Zeiten zur Folge hat. Der Hauptunterschied in diesen Berechnungen betrifft die als "Wegwerfzeit" bezeichnete Konstante, die unten erörtert wird.
- Sobald die zum Rastern eines einzelnen Objekts benötigte Zeit berechnet ist, muß sie zu der laufenden Summen addiert werden, die für das Rasterband, das das Objekt enthält, geführt wird. Am Ende der ersten Verarbeitungsphase wird diese laufende Summe eine Schätzung der Zeit sein, die zum Rastern aller in einem gegebenen Rasterband enthaltenen Objekte benötigt wird.
- Verschiedene Farben werden erzeugt, indem verschiedene Mengen des von der Graphikeinrichtung benutzten Primärfarbensatzes gemischt werden. Cyan und Gelb können somit gemischt werden, um verschiedene Schattierungen von Grün zu erzeugen. In Rasterplottern benötigen diese verschiedenen Farben verschiedene Punktmuster, wobei sich verändernde Punktdichten veranderliche Farbdichten erzeugen. Dies verlangt ein getrenntes Auftragen von Toner oder Tinte für jede Primärfarbe, was wiederum einen getrennten Durchgang des Plotter-Schreibkopfes entlang der Länge des Plots erfordert, um Punkte in jeder der getrennten Farben aufzubringen. Oftmals müssen die Daten für jeden Durchgang getrennt gerastert werden, um das Punktmuster zu erzeugen, das benötigt wird, um bei den richtigen Farben anzukommen.
- Dieser Vorgang bezieht sich auf die Vorstellungen von durchsichtiger Rasterung im Verhältnis zu undurchsichtiger Rasterung. Bei der undurchsichtigen Rasterung wird jedes neue Objekt so dargestellt, daß Objekte, die früher gezeichnet wurden und die es überlagert, völlig verdunkelt werden. Bei der durchsichtigen Rasterung werden die neuen Objekte in einer Weise dargestellt, die es erlaubt, Objekte, die unter andere Objekte gezeichnet sind, zu sehen. Für die undurchsichtige Rasterung muß daher das Muster aus Einsen und Nullen, das durch die Rasterung von vorangehenden Objekten im Rasterpufferspeicher zurückgelassen wurde, durch das Punktmuster ersetzt werden, das von dem momentan gerasterten Objekt benötigt wird. Für die durchsichtige Rasterung werden die Ergebnisse von vorangehenden Rasterungsoperationen im Rasterpufferspeicher belassen, wobei nur diejenigen Punkte, die zum Rastern des momentanen Objekts benötigt werden, eingefügt werden. Eine weitere Erschwerung ist, daß Punkte von jeder der Primärfarben sich auf dem Papier einander überschneiden können. Für die undurchsichtige Rasterung muß das Muster aus Einsen und Nullen im Rasterpufferspeicher von den vorangehenden Rasterungsoperationen durch diejenigen ersetzt werden, die für für das momentane Objekt während jedes Farbdurchgangs benötigt werden. Für die durchsichtige Rasterung muß das Muster aus Einsen, das benötigt wird, um die für das momentane Objekt erforderlichen Farbpunkte zu erzeugen, hinzugefügt werden. Dies bedeutet, daß während Primärfarbendurchgängen, in denen das momentane Objekt nicht beteiligt ist, keine Rasterung durchgeführt wird.
- Die benötigte Zeit, um ein Objekt während jedes Farbdurchgangs zu rastern, muß daher nur zu den Zeiten für die Farbdurchgänge addiert werden, in denen das Objekt gerastert werden muß. Für undurchsichtige Objekte muß die Objektzeit zu den Zeiten für alle Durchgänge addiert werden, da das Objekt in jedem der Durchgänge gerastert werden muß. Für durchsichtige Objekte muß die Zeit des momentanen Objekts nur zu den Durchgängen addiert werden, die das momentane Objekt zeichnen müssen. Dies wird durch Untersuchen der Farbe des Objekts bestimmt, wenn seine Zeit zu dem Sortierfach, das seinen Ausdruck enthalten wird, zu addieren ist, und auch durch Erwägen, ob das Objekt durchsichtig oder undurchsichtig zu zeichnen ist. Der Rastererzeuger benötigt etwas Zeit, um den Ausdruck zu lesen, selbst während Farbdurchgängen, für die der Ausdruck nicht gerastert werden muß. Diese "Wegwerfzeit" muß zu der laufenden Summe für diese Durchgänge addiert werden. Die Menge dieser Zeit wird sich abhängig davon verändern, ob die Farbe des Objekts in Form von BCMY oder RBG definiert wird. Diese Wegwerfzeiten werden empirisch ermittelt, indem die Zeit gemessen wird, die benötigt wird, um Ausdrücke während eines Durchgangs zu verarbeiten, der ihre Rasterung nicht verlangt. Jedes der in der vorliegenden Ausführung enthaltenen Timingmakros wird nun in einiger Ausführlichkeit erörtert. Auf die in den vorangehenden Abschnitten erörterten Begriffe und Berechnungen wird in diesen Erörterungen verwiesen werden, da sie für jedes der einzelnen Makros gelten. Es sollte zur Kenntnis genommen werden, daß jedes dieser Makros sich auf eine einzelne Art von graphischem Objekt bezieht und daß sie beim Berechnen der zum Rastern eines Objekts dieser Art benötigten Zeit benutzt werden. Verschiedene Rastererzeugerstrukturen werden einen unterschiedlichen Satz von graphischen Objekten verwenden, um die gewünschten Bilder zu erzeugen, und werden folglich einen unterschiedlichen Satz von Berechnungen verwenden, um Rasterungszeiten zu bestimmen. Außerdem werden verschiedene Sätze von Rastererzeugerhardware verschiedene Timingeigenschaften aufweisen, und diese müssen in den bei jedem Rastererzeuger verwendeten Zeitberechnungen widergespiegelt werden. Es sollte auch zur Kenntnis genommen werden, daß, während in der vorliegenden Ausführung Makrodefinitionen für diese Berechnungen benutzt werden, Unterprogrammaufrufe oder In-Line-Code genauso einfach verwendet werden könnten, was hauptsächlich eine Änderung im Programmierstil zur Folge hat.
- Bevor in irgendeines dieser Makros eingetreten wird, werden die vom Hostrechner empfangenen komplexeren Befehle in einfachere Elemente zerlegt. Dies wird in Fig. 5 als Schritt 502 gezeigt. Sobald die Befehle zu einfachen Elementen reduziert sind, wird der Elementtyp gegen ein Timingmakro abgeglichen, und das Makro wird ausgeführt (Fig. 5, Schritt 504). Die einzelnen Timingmakros führen ihre Zeitberechnungen in der unten beschriebenen Weise durch.
- Dieses Makro wird verwendet, um die Rasterungszeit für ein Rechteck zu berechnen. Zuerst wird die Anzahl von Wortschreibungen für eine einzige Punktreihe berechnet, indem die Anzahl von 16 Bit Wortschreibungen in der Y-Dimension ermittelt wird. Dann werden die Dimensionen des Rechtecks geprüft und ein Tabellensuchen wird durchgeführt, um zu sehen, ob ein ähnliches Rechteck bereits gerastert worden ist. Wenn es erforderlich ist, fortzufahren, wird die Wortschreibzeit berechnet. Die Anfangs- und Endelatenz- und Registerladezeit wird dann addiert und, wenn erforderlich, auf die minimale Einrichtungs- und Ladezeit gesetzt.
- Dieses Makro wird verwendet, um die Rasterungszeit für einen Linienoder Vektorausdruck zu berechnen, der eine Breite von eins hat und sich nur in der X-Dimension erstreckt. Zuerst werden die Dimensionen des Vektors geprüft und ein Tabellensuchen wird durchgeführt. Wenn es nötig ist, fortzufahren, wird die Anzahl der benötigten Wortschreibungen berechnet. Diese wird gleich der Zahl der in der X-Dimension zu zeichnenden Punkte sein, da in diesem Fall eine Wortschreibung für jeden Punkt vorgenommen werden muß. Dann wird die Wortschreibzeit berechnet. Die Anfangs- und Endelatenz- und Registerladezeiten werden dann addiert und die Summe, wenn erforderlich, auf die vordefinierte minimale Einrichtungs- und Ladezeit zurückgesetzt.
- Dieses Makro berechnet die Rasterungszeit für einen Linien- oder Vektorausdruck, der eine Breite von eins hat und sich nur in der Y-Dimension erstreckt. Zuerst wird die Anzahl von Wortschreibungen für den Vektor berechnet. Dann werden die Dimensionen des Vektors mit denen in der Tabelle verglichen. Wenn es nötig ist fortzufahren, wird die Wortschreibzeit berechnet. Die Anfangs- und Endelatenz- und Registerladezeit wird addiert und die Summe, wenn zutreffend, auf die minimale Einrichtungs- und Ladezeit gesetzt.
- Dieses Makro berechnet die Rasterungszeit für ein Trapez. Zuerst wird die Anzahl von Wortschreibungen sowohl für die obere als auch die untere Punktreihe berechnet. Dann wird in Betracht gezogen, ob das Trapez ganz in dem sichtbaren Zeichenbereich enthalten ist oder sich außerhalb dieses Bereiches erstreckt. Diese Erwägung beeinflußt die für jede Punktreihe durchgeführte Anzahl von Wortschreibungen. Die Anzahl von Wortschreibungen wird sich dem Mittelwert der oberen und unteren Reihe nähern, wenn das Trapez ganz innerhalb des sichtbaren Bereiches liegt, wird aber gleich der größeren der zwei sein, wenn das Trapez nicht gänzlich innerhalb dieses Bereiches liegt. Dann wird das nötige Tabellensuchen durchgeführt. Wenn es erforderlich ist, fortzufahren, wird die Wortschreibzeit berechnet. Die Zeit zwischen Abtastlinien wird zusammen mit den Anfangs- und Endelatenz- und Registerladezeiten zu dieser Summe addiert. Die Endsumme wird, wenn nötig, auf eine minimale Einrichtungs- und Ladezeit gesetzt.
- Dieses Makro berechnet die Rasterungszeit für einen Vektorausdruck, der eine Breite von eins hat und sich sowohl in der X- als auch in der Y-Richtung erstreckt. Zuerst wird der Absolutwert des Wertes Delta-Y für den Vektor berechnet. Dann wird in der Tabelle nachgesehen. Wenn es nötig ist, fortzufahren, wird die Wortschreibzeit für den Vektor berechnet. Die Zeit zwischen Abtastlinien wird zusammen mit den Anfangs- und Endelatenz- und Registerladezeiten addiert. Zum Schluß wird die Summe mit einer minimalen Einrichtungs- und Ladezeit verglichen und, wenn nötig, auf das Minimum gesetzt.
- Dieses Makro berechnet die benötigte Zeit, um eine einzelne "Zelle" einer größeren "Zellenmatrix" zu rastern, die das BCMY-Farbsystem benutzt, um ihre Farben zu definieren. Eine Zellenmatrix ist eine zweidimensionale rechtwinklige Anordnung von gefüllten Rechtecken, von denen jedes eine andere Farbe sein kann. Zuerst wird die Wortschreibzeit berechnet. Die Anfangs- und Endelatenz- und Registerladezeit werden getrennt addiert und als die "Einrichtungszeit" gespeichert. Diese Ergebnisse, die Rasterungszeit pro Zelle und die Einrichtungszeit werden gespeichert und später durch das Makro WEIGH_CELL_COLOR benutzt.
- Dieses Makro berechnet die benötigte Zeit, um eine einzelne "Zelle" einer größeren "Zellenmatrix" zu rastern, die das RGB-Farbsystem benutzt, um ihre Farben zu definieren. Es führt genau dieselben Berechnungen aus wie WEIGH_CELL_TIME aber die Ergebnisse werden später durch WEIGH_CELL_RGB anstatt von WEIGH_CELL_COLOR benutzt.
- Dieses Makro berechnet die benötigte Zeit, um ein einzelnes Pixel einer größeren "Abtastreihe" zu rastern, die das BCMY-Farbsystem verwendet, um ihre Farben zu definieren. Eine Abtastreihe ist eine eindimensionale Reihe von Pixels, von denen jedes eine andere Farbe sein kann. Zuerst wird die Wortschreibzeit berechnet. Dann wird die Anfangs- und Endelatenz- und Registerladezeit berechnet. Die Ergebnisse werden gespeichert und später von dem Makro WEIGH_CELL_COLOR benutzt.
- Dieses Makro berechnet die benötigte Zeit, um ein einzelnes Pixel einer größeren "Abtastreihe" zu rastern, die das RGB-Farbsystem verwendet, um ihre Farben zu definieren. Es führt genau dieselben Berechnungen wie WEIGH_SCAN_TIME aus, aber die Ergebnisse werden später durch WEIGH_CELL_RGB anstatt von WEIGH_CELL_COLOR benutzt.
- Dieses Makro wird von den Zellenmatrix- und Abtastausdrucksgeneratoren benutzt, um die richtige Rasterungszeit für jede Zelle oder Pixel zu den passenden laufenden Summen jedes Tonerduchlaufs zu addieren. Dieses Makro wird für Zellenmatrizen oder Abtastreihen benutzt, die das BCMY-Farbsystem benutzen. Zuerst lokalisiert es den Eingang in die Sortierfachtabelle für das passende Rasterband. Dann multipliziert es die zum Rastern jeder Zelle benötigte Zeit mit der Anzahl von Zellen. Diese Zellen werden alle dieselbe Farbe aufweisen und aneinander angrenzen. Dann addiert es die Einrichtungszeit für die ganze Gruppe von Zellen einmal, da die ganze Gruppe in einem Vorgang gerastert werden kann. Dann setzt es, wenn nötig, die Zeit auf die vordefinierte mmimale Einrichtungs- und Ladezeit zurück. Zum Schluß wird die berechnete Zeit zu den laufenden Summen für jeden der passenden Farbdurchläufe addiert.
- Dieses Makro wird von den Zellenmatrix- und Abtastreihen-Ausdruckgeneratoren benutzt, um die Rasterungszeit für jede Zelle oder Pixel zu den passenden laufenden Summen für jeden Tonerdurchgang zu addieren. Es wird für Zellenmatrizen oder Abtastzeilen verwendet, die ihre Farben mit dem RGB-Farbsystem definieren. Es führt genau dieselbe Folge von Berechnungen aus wie WEIGH_CELL_COLOR benutzt aber für seine Wegwerfzeit eine andere Konstante.
- Dieses Makro wird von den CMYK-Rasterausdruckgeneratoren verwendet, um die Rasterungszeit für eine einzelne Punktreihe in einem CMYK-Rasterobjekt zu berechnen. Ein CMYK-Rasterobjekt ist eine zweidimensionale Anordnung von Pixels, die mit dem BCMY-Farbsystem farbsepariert worden ist. Zuerst wird die Länge der momentanen Punktreihe mit der vorangehenden Reihe verglichen, die bereits verarbeitet worden ist. Wenn sie identisch ist, wird das Ergebnis der vorangehenden Berechnung wiederverwendet. Andernfalls wird die momentane Länge mit einer empirisch ermittelten Konstanten multipliziert, und das Ergebnis wird zur Verwendung in den Berechnungen, die die nächste Punktreihe betreffen, gespeichert.
- Dieses Makro wird von den CMYK-Rasterausdruckgeneratoren verwendet, um die Rasterungszeit für jede Punktreihe zu den passenden laufenden Summen jedes Tonerdurchlaufes zu addieren. Diese Routine verwendet Flags, um zu bestimmen, welche Toner benötigt werden, um die Farbe des Objekts zu erzeugen. Dann addiert es die berechnete Zeit zu den laufenden Summen für jeden der passenden Farbdurchläufe.
- Dieses Makro wird von den Rasterstempel-Ausdruckgeneratoren verwendet, um die Rasterungszeit für einen "Rasterstempel" zu berechnen. Ein Rasterstempel ist eine zweidimensionale Anordnung von farbigen Punkten, die nicht farbsepariert worden sind. Diese werden zuerst definiert und dann in einer ähnlichen Weise benutzt wie Bitmap-Zeichen in vielen Computergraphikanwendungen gehandhabt werden. Zuerst wird die Wortschreibzeit berechnet. Dann werden die Anfangs- und Endelatenzzeit und die Registerladezeit addiert. Diese Summe wird verglichen und, wenn nötig, auf eine minimale Einrichtungs- und Ladezeit zurückgesetzt.
- Dieses Makro berechnet die Rasterungszeit für einen gefüllten Kreis, der gänzlich innerhalb des momentanen Rasterbandes liegt. Es prüft zuerst, ob der Radius des Kreises innerhalb eines bestimmten Bereiches liegt, für den empirische Zeitmessungen vorgenommen wurden. Wenn ja, benutzt es eine dieser Messungen als sein Ergebnis. Wenn nein, multipliziert es den Radius mit einer empirisch ermittelten Konstanten, um zu seinem Ergebnis zu kommen.
- Dieses Makro berechnet die Rasterungszeit für einen gefüllten Kreis, der nicht vollständig innerhalb des momentanen Rasterbandes liegt. Zuerst bestimmt es den Teil des Kreises, der innerhalb des momentanen Rasterbandes liegt. Es benutzt sowohl die Bandnummer als auch den Log2 der in jedem Band enthaltenen Anzahl von Abtastlinien, um die X-Werte für die erste und letzte Abtastlinie zu berechnen, in denen der Kreis in dem Rasterband gezeichnet wird. Dann nimmt es das Minimum entweder des maximalen X-Wertes des Kreises oder des X-Wertes der letzten Abtastlinie in dem Rasterband und subtrahiert von dieser Zahl das Maximum entweder des minimalen X-Wertes des Kreises oder des X- Wertes der ersten Abtastlinie, in der der Kreis in dem Rasterband gezeichnet wird. Das Ergebnis davon ist die X-Dimension des Kreises in diesem Rasterband. Das Makro prüft dann, ob die Dimension innerhalb eines bestimmten Bereiches liegt, für den empirische Zeitmessungen gemacht wurden. Wenn ja, benutzt es eine der empirischen Messungen als sein Ergebnis. Wenn nein, multipliziert es den Radius mit einer empirisch ermittelten Konstanten, um zu seinem Ergebnis zu kommen.
- Dieses Makro wird benutzt, um die Rasterungszeit für einen hohlen Kreis, ähnlich einer Ringröhre, zu berechnen, der gänzlich innerhalb des momentanen Rasterbandes liegt. Es multipliziert einfach den Radius mit sowohl einer empirisch ermittelten Konstanten als auch mit der Breite des gefüllten Bereiches des Kreises, um zu seinem Ergebnis zu kommen.
- WEIGH_PVIS_HOLL_CIRC (Fig. 5, Schritt 540; App. A, 5. 13) Dieses Makro wird benutzt, um die Rasterungszeit für einen hohlen Kreis, ähnlich einer Ringröhre, zu berechnen, der nicht vollständig innerhalb des momentanen Rasterbandes liegt. Es ermittelt zuerst den Teil, der innerhalb des momentanen Rasterbandes liegt. Es benutzt sowohl die Bandnummer als auch den Log2 der in jedem Band enthaltenen Anzahl von Abtastlinien, um die X-Werte für die erste und letzte Abtastlinie in dem Rasterband zu berechnen. Dann nimmt es das Minimum entweder des maximalen X-Wertes des Kreises oder des X-Wertes der letzten Abtastlinie in dem Rasterband und subtrahiert von dieser Zahl das Maximum entweder des minimalen X-Wertes des Kreises oder des X- Wertes der ersten Abtastlinie in dem Rasterband. Das Ergebnis davon ist die X-Dimension des Kreises in diesem Rasterband. Dann multipliziert es diese Dimension mit einer empirisch ermittelten Konstanten und mit der Breite des gefüllten Bereiches des Kreises, um zu seinem Ergebnis zu kommen.
- Dieses Makro berechnet die Rasterungszeit für eine Linie, deren Breite größer als eins ist und die nur eine Y-Dimension hat. Zuerst berechnet es die Wortschreibzeit. Dann addiert es die Anfangs- und Endelatenzzeit und die Registerladezeit. Das Ergebnis wird, wenn nötig, auf das Minimum für das Einrichten und Laden gesetzt.
- Dieses Makro berechnet die Rasterungszeit für eine Linie, deren Breite größer als eins ist und die eine X-Dimension hat. Es führt genau dieselben Berechnungen aus wie WEIGH_MW_YONLY.
- Dieses Makro berechnet die Rasterungszeit für eine Linie, deren Breite größer als eins ist und die sich sowohl in der X- als auch in der Y- Dimension erstreckt und ihren maximalen X-Wert in dem momentanen Rasterband hat. Es ruft einfach die Unterroutine "weigh_mw_top" auf, um seinen Wert zu berechnen.
- Dieses Makro berechnet die Rasterungszeit für eine Linie, deren Breite größer als eins ist und die sich sowohl in der X- als auch in der Y- Dimension erstreckt und ihren maximalen X-Wert nicht in dem momentanen Rasterband hat. Es benutzt einen Unterporgammaufruf an "weigh_mw_ middle, um sein Ergebnis zu berechnen.
- Dieses Makro wird von weigh_mw_top und weigh_mw_middle benutzt, um die Rasterungszeit für ein Dreieck zu berechnen, das einen Teil einer Linie bildet, deren Breite größer als eins ist und die sich sowohl in der X- als auch in der Y-Dimension erstreckt. Zuerst berechnet es den Absolutwert sowohl der X- als auch der Y-Dimension des Dreiecks. Dann berechnet es die Anzahl der für die Unterseite des Dreiecks benötigten Wortschreibungen. Dann benutzt es entweder diesen Wert oder eine Hälfte dieses Wertes, um die Wortschreibzeit für eine einzelne Punktreihe zu berechnen, je nachdem, ob die Linie vollständig innerhalb des sichtbaren Zeichenbereiches liegt oder nicht, wie in WEIGH_TRAP für Trapeze unter denselben Bedingungen. Dann berechnet es die Zeit zwischen Abtastlinien und addiert diese Zeit und die Anfangs- und Endelatenzzeit zu der Summe. Das Ergebnis wird zu einer laufenden Summe der Linie addiert, die ein an die Makros zu sendender Parameter ist.
- Dieses Makro wird von weigh_mw_top und weigh_mw_middle benutzt, um die Rasterungszeit eines Parallelogramms berechnen, das einen Teil einer Linie bildet, deren Breite gröSer als eins ist und die sich sowohl in der X- als auch in der Y-Dimension erstreckt. zuerst berechnet es den Absolutwert der X- und der Y-Dimension des Parallelogramms. Dann wird die Anzahl der für eine einzelne Punktreihe benötigten Wortschreibungen berechnet. Dann wird entweder dieser Wert oder eine Hälfte dieses Wertes benutzt, um die Wortschreibzeit für eine einzelne Punktreihe zu berechnen, je nachdem, ob die Linie vollständig innerhalb des sichtbaren Zeichenbereiches liegt oder nicht, wie in WEIGH_TRAP für Trapeze unter denselben Bedingungen. Dann wird die Zeit zwischen Abtastlinien berechnet und zusammen mit der Anfangs- und Endelatenzzeit addiert. Zum Schluß wird das Ergebnis zu einer laufenden Summe der Linie addiert, die an das Makro gesendet wird.
- Dieses Unterprogramm wird benutzt, um die Rasterungszeit für eine Linie zu berechnen, deren Breite größer als eins ist, die sich in der X- und der Y-Dimension erstreckt und die ihren minimalen X-Wert in dem momentanen Rasterband hat. Es verwendet die Makros WEIGH CORNER und WEIGH MIDDLE, um das meiste seiner Arbeit zu erledigen. Die Länge und Breite definieren einen rechteckigen Bereich, der nicht mit der X- und Y-Achse ausgerichtet ist. Dieser Bereich hat folglich vier "Ecken", die seine Grenzen anzeigen. Sie wird in drei verbundene Bereiche gezeichnet, wobei die Bereiche ein oberes Dreieck, ein zentrales Parallelogramm und ein unteres umgekehrtes Dreieck sind. Das Programm beginnt, indem es in der X-Richtung voranschreitend die Indexe der Rasterbänder berechnet, die den minimalen X-Wert der Linie und den X- Wert der nächsten Ecke enthalten. Dieser Bereich ist dreieckig. Es prüft dann, ob das ganze Dreieck in dem momentanen Rasterband enthalten ist, und wenn nicht, berechnet es die Dimensionen des Teils, der es ist. Dann verwndet es WEIGH_CORNER, um die Rasterungszeit für diesen dreieckigen Bereich zu berechnen. Wenn der ganze Bereich in dem momentanen Rasterband enthalten ist, addiert es eine empirisch ermittelte "Pausenzeit", die die zum Einrichten des Zeichenchips benötigte Zeit ist, um das Rastern des nächsten Bereiches der Linie fortzusetzen, hierin als das "Mittel"-Parallelogramm bekannt. Als nächstes wird der Index des Rasterbandes, das die nächste Ecke enthält, berechnet und benutzt, um zu prüfen, ob der ganze Mittelbereich, der ein Parallelogramm ist, im dem momentanen Rasterband enthalten ist. Wenn nicht, berechnet es die Dimensionen des Teils, der es ist, und benutzt WEIGH MIDDLE, um seine Rasterungszeit zu berechnen und sie zu der bisherigen Gesamtzeit für die Linie zu addieren. Wenn der ganze Bereich in dem momentanen Rasterband enthalten ist, addiert es die Pausenzeit und berechnet den Index des Rasterbandes, das den maximalen X-Wert der Linie enthält, die das Ende des Endbereiches der Linie definieren wird, hierin als das umgekehrte "Boden"-Dreieck bekannt. Dann prüft es, ob der ganze Boden in dem momentanen Rasterband enthalten ist, und wenn nicht, berechnet es die Dimensionen der Teils, des es ist. Es benutzt WEIGH_CORNER, um die Rasterungszeit für den Bodenbereich zu berechnen, und addiert diese Zeit zu der bis dahin berechneten Summe. Zum Schluß addiert es die Registerladezeit und setzt, wenn nötig, die Summe auf ein vordefiniertes Minimum.
- Dieses Unterprogramm wird benutzt, um die Rasterungszeit für eine Linie zu berechnen, deren Breite größer als eins ist, die sich in der X- und der Y-Dimension erstreckt und die ihren minimalen X-Wert nicht im momentanen Rasterband hat. Es verwendet die Makros WEIGH CORNER und WEIGH_MIDDLE, um das meiste seiner Arbeit zu erledigen. Es führt dieselben Berechnungen durch wie sie in weigh_mw_top für die zwei "Mittel"- und "Boden"-Bereiche benutzt wurden.
- Dieses Unterprogramm wird zu Beginn der Controller-Verarbeitung benutzt, um die Tabellen von gemeinsamen Werten für viele Arten von Objekten einzurichten. Dazu muß es Speicherblöcke für solche Tabellen zuweisen und die geeigneten Werte dort einsetzen. Es verwendet mehrere der oben erörterten Makros, um die genauen Werte zu berechnen, die eingesetzt werden müssen.
- Dieses Unterprogramm wird am Ende der Controller-Verarbeitung verwendet, um die in gr_mit_autoquality zugewiesenen Speicherbl;cke freizusetzen.
- Die Ergebnisse aus den Makros der Nummern 506 bis 514, 524, 526 und 530 bis 548 werden dann im Schritt 550 verarbeitet, um ihre Farbe und die erforderlichen Toner zu bestimmen, um diese Farben zu erzeugen. Nachdem die Toneranforderungen festgelegt sind, wird im Schritt 560 die Rasterungszeit für diese Elemente zu der Sortierfachtabelle der passenden Toner addiert. Der Ergebnisse der Makros 516 bis 522 und 528 werden im Schritt 570 für spätere Berechnungen gespeichert. Diese Schritte vollenden die Zeitberechnungen.
- Nachdem die Zeitinformation berechnet worden ist, kann die geeignete Aktion gewählt werden, um gute Plotqualität sicherzustellen. Sobald festgestellt worden ist, daß Daten nicht schnell genug gerastert werden können, um den Plotter direkt mit voller Geschwindigkeit zu treiben, stehen zwei grundsätzliche Wahlmöglicheiten zur Verfügung. Die erste ist, den Papiervorschub zu verlangsamen, und die zweite ist, vor dem Beginn des Papiervorschubes die ganze Rasterung zu vollenden und die Rasterdaten auf Platte zu speichern. Die Wahl zwischen diesen Möglichkeiten wird von mehreren Faktoren beeinflußt. Der Benutzer kann diese Wahlmöglichkeiten auf nur eine beschränken, indem der Controller in einer bestimmten Weise konfiguriert wird. Dies könnte der Fall sein, wenn der Benutzer wünscht, daß sich das Papier nur mit der schnellstmöglichen Geschwindigkeit bewegt. Außerdem verfügen einige Plotter nicht über die Fähigkeit, langsamer gemacht zu werden. Die Verfügbarkeit und Größe des Speichers (Platte), wo die Rasterdaten zu speichern sind, bestimmt, ob der ganze Plot vor dem Beginn des Plottens gespoolt werden kann oder nicht. Im allgemeinen wird, wenn beide Möglichkeiten zur Verfügung stehen, die Möglichkeit mit dem höchsten Durchsatz (Erzeugen eines Plots von annehmbarer Qualität in der kürzesten Zeit) gewählt werden. Für jeden Tonerdurchgang wird nur eine einzige Wahl getroffen werden. Für Teiltonerdurchgänge gibt es kein Verlangsamen des Papieres oder Rasterspooling.
- Der erste Schritt zum Treffen dieser Wahl ist, alle Sortierfächer zu untersuchen, die tatsächlich Daten enthalten (es sollte beachtet werden, daß viele Sortierfächer keine Daten enthalten). In jedem Sortierfach ist die Zeit gespeichert, die zur Rasterung des damit verbundenen Bandes benötigt wird. Der Durchlauf (es gibt einen Durchlauf pro Tonerfarbe), der die längste Rasterungszeit benötigt, wird zurückgeladen und in weiteren Berechnungen verwendet. Diese Zeiten werden zu den Zeiten addiert, die benötigt werden, um eine "Bandumschaltung" (wechseln zu dem nächsten Band) durchzuführen. Die Bandumschaltzeit ist im Grunde Totzeit zwischen der Rasterung des momentanen Bandes und dem nachfolgenden Band. Die Gesamtlänge des Plots muß ebenfalls bestimmt werden, um die für jeden Tonerdurchgang benötigte Zeit zu finden. Die Anzahl von herzustellenden Exemplaren des Plots wird ebenfalls in Betracht gezogen. Wenn das Papier für den ersten Plot verlangsamt wird, wird das Papier für jede Kopie des Plots langsamer laufen, nicht nur die erste. Wenn entschieden wird, die Rasterdaten zu speichern, können die Rasterdaten für jede Kopie mit der höchsten Geschwindigkeit ausgegeben werden. Diese Option wird auch durch den Plotter beeinflußt, da manche Plotter, besonders diejenigen, die geschnittene Papierblätter im Gegensatz zu einer Papierrolle verwenden, verlangen, daß alle Tonerdurchgänge für jede getrennte Kopie vollendet sein müssen, bevor die nächste Kopie begonnen werden kann. Für diese Plotter kann es am besten sein, alle Tonerdurchgänge vor dem Beginn des Papiervorschubes zu spoolen, so daß alle Kopien mit maximaler Geschwindigkeit bei einer minimalen Verzögerung zwischen jeder Kopie ausgegeben werden können.
- Die zum Drucken des Plots benötigten Zeiten müssen sowohl für das Spoolen aller Rasterdaten als auch das Steuern der Papiervorschubgeschwindigkeit berechnet werden. Für beide Optionen wird eine getrennte Gesamtzeit berechnet, und sie Summen werden dann verglichen, um sehen, welche das schnellere Plotten ergeben wird. Für die Spoolingoption muß die Plattenverwaltung, die eine Folge des Spoolingprozesses ist, in Erwägung gezogen werden. Für die Option der Geschwindigkeitssteuerung wird, vorausgesetzt, daß nur ein bestimmter Satz von Geschwindigkeiten von jedem Plotter unterstützt wird, die Geschwindigkeit, die gerade unterhalb der maximalen Rasterungsgeschwindigkeit für das langsamste Band des Plots liegt, für die Vergleichsoperationen ausgewählt. Die Gesamtplotgeschwindigkeit, diese Papiervorschubgeschwindigkeit und die Länge des Plots vorausgesetzt, muß als nächstes berechnet werden. Zum Beispiel wird bei 12 mm/s (Papiergeschwindigkeit) ein 300 mm Plot 24 Sekunden benötigen. Jedes zusätzliche Papier, das am Anfang oder am Ende des Plots und zwischen Kopien einzurechnen ist, muß ebenfalls eingerechnet werden. Für Plots, die mehrfache Durchläufe benötigen, müssen sowohl die zum Rückspulen des Papiers benötigte Zeit als auch die zum Plotten von Passungsmarken benötigte Zeit ebenfalls eingerechnet werden. Passungsmarken sind kleine Blöcke oder Linien, die während des ersten Tonerdurchlaufs gedruckt und als Markierungen oder Abstandsanzeiger während nachfolgender Tonerdurchläufe benutzt werden. Sie sind erforderlich, da sich das Papier bei jedem Durchlauf etwas dehnt, was einen ständigen Neuabgleich erfordert. Da das Plotten von Passungsmarken parallel mit dem Spooling für den ersten Farbdurchlauf vorgenommen wird, wird die für den ersten Durchlauf benötigte Zeit wirksam reduziert. Am Ende dieser Berechnungen kann die Wahl getroffen werden, ob für jeden Farbdurchlauf aller Kopien des Plots die Rasterdaten des Plots gespoolt werden oder seine Geschwindigkeit gesteuert wird. Verschiedene Durchläufe werden typischerweise verschiedene Spool-/Geschwindigkeitsauswahlen erfordern, um gute Plotqualität mit optimalem Plotterdurchsatz zu erreichen.
- Die Funktion des Qualitätssteuerungs-Auswahlprogramrns wird nun mit Verweis auf Fig. 6 beschrieben.
- Der Initialisierungsschritt 600 initialisiert das Programm für die Nicht-Spool-Option und das Drucken des Plots mit voller Geschwindigkeit. Eine Prüfung wird vorgenommen, um zu sehen, ob die Gesamtzeit zur Rasterung des Plots die Grenze der Zeitzählvariablen überschritten hat. Wenn diese Variable negativ geworden ist, dann ist der Plot einfach zu komplex für jede Option außer dem Spoolen der Daten auf den externen Plattenspeicher, und alle anderen Schritte in dem Steueroptionsprogramm werden übersprungen.
- Bei Schritt 602 wird das Band, das die meiste Zeit zum Rastern benötigt, für jeden der vier Toner in dem Plotter ausgewählt. Bei Schritt 606 wird die Zeit, um auf ein anderes Band zu schalten, zu der im Schritt 602 zurückgewonnenen Zeit addiert. Diese Zeit wird in ihre äquivalente Plottergeschwindigkeit in mmls umgewandelt. Wenn mehrfache Kopien verlangt werden, wird die im Schritt 608 berechnete Zeit mit der Anzahl von Kopien multipliziert (Schritt 610), und die zusätzliche Zeit, die erforderlich ist, um das Papier um den benötigten Betrag zwischen Kopien zu bewegen und das Ende der Kopien zu puffern, wird addiert (Schritt 612).
- Bei Schritt 614 wird die Spoolingzeit für die Rasterdaten des ganzen Durchlaufs berechnet. Die Spoolingzeit wird dann bei Schritt 616 zu der Gesamtzeichenzeit jeder Farbe addiert. Der erste Durchlauf kann die Zeit zum Setzen der Passungsmarken ausnutzen, so daß diese Zeit von der Rasterzeit abgezogen wird. Schließlich wird bei Schritt 618 die benötigte Zeit, um die Plotdaten an den Plotter zu schicken, zu der laufenden Summe addiert Diese Summe ist die Gesamtzeit, um den ganzen Durchlauf mit Spooling zu plotten.
- Bei Schritt 620 wird die Papiergeschwidigkeit für den Plotter ausgewählt. Diese Geschwindigkeit muß gerade unterhalb der Geschwindigkeit liegen, mit der Daten gerastert werden können. Die Gesamtzeit, um den ganzen Durchlauf mit dieser Geschwindigkeit auszugeben, wird die Vergleichszeit. Diese Gesamtzeit wird bei Schritt 622 berechnet.
- Bei Schritt 624 wird die endgültige Spoolzeit mit der endgültigen Geschwindigkeitssteuerzeit verglichen. Wenn die Geschwindigkeitssteuerzeit kleiner als die Spoolzeit ist, wird bei Schritt 628 ein Vergleich vorgenommen, um zu sehen, ob die maximale Zeichengeschwindigkeit kleiner als die minimale Papiergeschwindigkeit des Plotters ist. Wenn nicht, wird bei Schritt 632 die Wahl getroffen, die Geschwindigkeit des Plotters für diese Farbe zu steuern. Wenn andererseits bei Schritt 624 festgestellt wird, daß die Spoolzeit kleiner als die Geschwindigkeitssteuerzeit ist, wird bei Schritt 630 das Spooling gewählt, es sei denn, daß die gespoolten Daten nicht auf die externe Platte passen, was bei Schritt 626 geprüft wird. In diesem Fall wird wieder die Geschwindigkeitssteuerung 632 gewählt.
- Obwohl die Erfindung in der spezifischen Umgebung eines Mehrfarbenplotters beschrieben worden ist, kann sie zur Verwendung mit solchen Anzeigeeinrichtungen wie CRTS und LCDS ohne weiteres angepaßt werden.
Claims (5)
1. Verfahren zum Verbessern der Qualität von Computergraphikplots,
die von Computergraphikplottern und -anzeigen hervorgebracht werden,
die von einem Hostrechner empfangene höhere Daten und Befehle
zerlegen und die zerlegten Daten und Befehle rastern, wobei die
gerasterten Daten und Befehle durch den Plotter benutzt werden, um den Plot
zu erzeugen, wobei das Verfahren umfaßt:
Schätzen der zum Rastern der zerlegten Daten und Befehle benötigten
Zeit;
Vergleichen der geschätzten Zeit zum Rastern der Daten und Befehle mit
einer bekannten Zeit, innerhalb der die Daten und Befehle durch den
Plotter gerastert werden können, um imstande zu sein, den Plot bei
einer bekannten Maximalgeschwindigkeit zu erzeugen;
Erzeugen des Plots bei der Maximalgeschwindigkeit, wenn die geschätzte
Zeit kleiner als die bekannte Zeit ist;
wenn die geschützte Zeit größer als die bekannte Zeit ist:
Erzeugen des Plots bei einer langsameren Geschwindigkeit als die
Maximalgeschwindigkeit oder
Speichern aller gerasteren Daten und Befehle in einem externen
Speicher, bevor sie benutzt werden, um den Plot bei maximaler
Geschwindigkeit zu erzeugen, wenn die Gesamtzeit, um die Daten zu speichern und
den Plot bei maximaler Geschwindigkeit zu erzeugen, kleiner als die
Gesamtzeit ist, um den Plot bei der langsameren Geschwindigkeit zu
erzeugen.
2. Steuereinheit zum Verbessern der Qualität eines von einem
Computergraphik-Rasterplotter erzeugten Plots, wobei der Plotter höhere
Zeichenbefehle empfängt, diese Zeichenbefehle in einer
Zerlegungseinrichtung in einfache Befehle zerlegt und diese einfachen Befehle in
einer Rasterungseinrichtung rastert, um den Plot zu erzeugen, wobei
die Steuereinheit umfaßt:
eine Einrichtung (64), die die zum Rastern der einfachen Befehle
benötigte Zeit berechnet, wobei die Zeitberechnungseinrichtung mit
einer Zerlegungseinrichtung (100) verbunden ist, und
eine Plotqualitätssteuereinrichtung (74), die mit der
Zeitberechnungseinrichtung (64) verbunden ist, wobei die
Plotqualitätssteuereinrichtung umfaßt:
eine Einrichtung, die die zum Rastern der Befehle benötigte berechnete
Zeit mit einer bekannten Zeit vergleicht, innerhalb der die Befehle
durch den Plotter gerastert werden können, um imstande zu sein, den
Plot bei einer bekannten Maximalgeschwindigkeit zu erzeugen,
eine Einrichtung, die den Plotter anweist, bei maximaler
Geschwindigkeit zu plotten, wenn die berechnete Zeit zum Rastern der Befehle
kleiner als die bekannte Zeit ist,
eine Einrichtung, die den Plotter anweist, bei einer aus einem
vordefinierten Satz von langsameren Geschwindigkeiten zu plotten, wenn die
berechnete Zeit größer als die bekannte Zeit ist, und
eine Einrichtung, die die Rasterungseinrichtung anweist, die
gerasterten Befehle zu speichern, bevor diese gerasterten Befehle zum Treiben
des Plotters benutzt werden, wenn die berechnete Zeit die bekannte
Zeit überschreitet und wenn die Gesamtzeit, um die gerasterten
Befehle zu speichern und den Plot bei maximaler Geschwindigkeit zu
erzeugen, kleiner als die Gesamtzeit ist, um den Plot bei der langsameren
Geschwindigkeit zu erzeugen.
3. Steuereinheit nach Anspruch 2, bei der der
Computergraphik-Rasterplotter ein Mehrfarben-Rasterplotter ist.
4. Steuereinheit nach Anspruch 2 oder 3, bei der der Plotter mit
jeder aus einer vordefinierten Gruppe von Geschwindigkeiten getrieben
werden kann.
5. Steuereinheit nach einem der Ansprüche 2 bis 4, bei der eine
externe Speichereinrichtung (255) damit verbunden ist, um
Computergraphikbefehle und Daten in gerasterter Form zu speichern.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/430,229 US5138561A (en) | 1989-11-01 | 1989-11-01 | Computer graphics plotter control |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69029923D1 DE69029923D1 (de) | 1997-03-27 |
DE69029923T2 true DE69029923T2 (de) | 1997-07-24 |
Family
ID=23706632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69029923T Expired - Fee Related DE69029923T2 (de) | 1989-11-01 | 1990-11-01 | Rechnergesteuertes Zeichengerät |
Country Status (4)
Country | Link |
---|---|
US (1) | US5138561A (de) |
EP (1) | EP0427466B1 (de) |
JP (1) | JP3174314B2 (de) |
DE (1) | DE69029923T2 (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2939059B2 (ja) * | 1992-06-19 | 1999-08-25 | キヤノン株式会社 | 情報処理装置並びに電子機器および情報処理方法 |
US6750980B1 (en) | 1992-06-19 | 2004-06-15 | Akihiro Shimura | Information processing apparatus and output apparatus |
US5500928A (en) * | 1993-03-01 | 1996-03-19 | Xionics Document Technologies, Inc. | Digital printing system and process using adaptive compression |
US5751594A (en) * | 1993-03-16 | 1998-05-12 | Emc Corporation | Aperture control system for printed circuit board fabrication |
US5473741A (en) * | 1993-08-30 | 1995-12-05 | Graphic Systems Technology, Inc. | Method for determining the time to perform raster image processing |
KR0137705B1 (ko) * | 1994-11-17 | 1998-05-15 | 김광호 | 밴드 버퍼링방식 화상형성장치 및 그 프린팅방법 |
JP3721612B2 (ja) * | 1995-09-08 | 2005-11-30 | 富士ゼロックス株式会社 | 画像形成装置 |
JP2993411B2 (ja) * | 1995-10-19 | 1999-12-20 | 富士ゼロックス株式会社 | 画像形成装置 |
US5768487A (en) * | 1995-10-31 | 1998-06-16 | Seiko Epson Corporation | System and method using a split printer driver to control a computer printer device |
US5913018A (en) * | 1996-07-24 | 1999-06-15 | Adobe Systems Incorporated | Print band rendering system |
US6100998A (en) * | 1996-11-29 | 2000-08-08 | Fuji Xerox Co., Ltd. | Print processor with efficient memory use |
JP3780103B2 (ja) | 1997-09-03 | 2006-05-31 | キヤノン株式会社 | 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム |
JP3466434B2 (ja) * | 1997-09-11 | 2003-11-10 | シャープ株式会社 | 印刷制御方法及び印刷システム |
US6160559A (en) * | 1997-09-30 | 2000-12-12 | Intel Corporation | Method and apparatus for providing frame-time feedback to graphics application programs |
US6184908B1 (en) * | 1998-04-27 | 2001-02-06 | Ati Technologies, Inc. | Method and apparatus for co-processing video graphics data |
US6762855B1 (en) * | 2000-07-07 | 2004-07-13 | Eastman Kodak Company | Variable speed printing system |
JP4413036B2 (ja) * | 2004-02-25 | 2010-02-10 | 新光電気工業株式会社 | 描画装置、描画データ生成装置、描画方法、および描画データ生成方法 |
JP5586934B2 (ja) * | 2009-12-16 | 2014-09-10 | キヤノン株式会社 | 情報処理方法、情報処理装置、及びコンピュータプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4062648A (en) * | 1977-01-04 | 1977-12-13 | Hewlett-Packard Company | Plotter with adaptive velocity means for improving plotted line quality |
US4458330A (en) * | 1981-05-13 | 1984-07-03 | Intergraph Corporation | Banded vector to raster converter |
JPH0630998B2 (ja) * | 1983-03-29 | 1994-04-27 | セイコー電子工業株式会社 | ラスタ式プロッタの描画速度制御装置 |
JPS62264371A (ja) * | 1986-05-13 | 1987-11-17 | Fuji Xerox Co Ltd | ラスタデ−タの出力制御方法および装置 |
-
1989
- 1989-11-01 US US07/430,229 patent/US5138561A/en not_active Expired - Fee Related
-
1990
- 1990-10-25 JP JP28825890A patent/JP3174314B2/ja not_active Expired - Fee Related
- 1990-11-01 EP EP90312006A patent/EP0427466B1/de not_active Expired - Lifetime
- 1990-11-01 DE DE69029923T patent/DE69029923T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0427466B1 (de) | 1997-02-12 |
JP3174314B2 (ja) | 2001-06-11 |
EP0427466A3 (en) | 1992-06-03 |
US5138561A (en) | 1992-08-11 |
EP0427466A2 (de) | 1991-05-15 |
DE69029923D1 (de) | 1997-03-27 |
JPH03214365A (ja) | 1991-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69029923T2 (de) | Rechnergesteuertes Zeichengerät | |
DE4106458C2 (de) | Graphische Datenverarbeitungseinrichtung zum Erzeugen eines Tones eines Randbildelements aus Vektordaten | |
DE69515923T2 (de) | Automatische Optimierung von Papierbildern | |
DE69625760T2 (de) | Architektur einer Bilddarstellungsliste mit einer zweidimensionalen Zonenmatrix | |
DE69421363T2 (de) | Druckvorrichtung | |
DE69702805T2 (de) | Vielseitige Massstabsveränderung von Zeichnungen | |
DE69425338T2 (de) | Verfahren und Vorrichtung zum Einsparen von Druckerspeicher | |
DE69826044T2 (de) | Vektorkartenplanarisierung und -einfang | |
DE69025005T2 (de) | Seitendruckerspeicherzuweisung | |
DE69524143T2 (de) | Verfahren und Vorrichtung zur Vermeidung von Datenunterversorgung in einen Seitendrucker | |
DE69529263T2 (de) | Tintenstrahlaufzeichnungsgerät und Verfahren unter Verwendung verschiedener Tintenarten | |
DE69621097T2 (de) | Drucker-Treiber-Architektur zur Verkleinerung von Bandspeichern | |
DE69225830T2 (de) | Bildverarbeitungsgerät | |
DE69321398T2 (de) | Datenverarbeitungssystem und Ausgangseinheit | |
DE60033480T2 (de) | Drucken mit tintenstrahl | |
DE19513105A1 (de) | Verfahren zur Generierung einer Contone-Map | |
DE69329477T2 (de) | Ausgabeverfahren und -gerät | |
DE69129431T2 (de) | Ausgangsvorrichtung | |
DE102010051808B4 (de) | Multileveldruckverfahren mit Rasterbitmap und Zuordnungsverfahren zu Multilevelrastern | |
DE2825321C3 (de) | Rasterdrucker | |
DE69628809T2 (de) | Verfahren und System für den digitalen Farbdruck | |
DE69627582T2 (de) | Druckersteuerungsvorrichtung und -verfahren | |
DE69429972T2 (de) | Druckgerät und -verfahren | |
DE3686875T2 (de) | Regeleinrichtung fuer farben-kurvenschreiber. | |
DE69225048T2 (de) | Druckerseitenzusammensetzung mit Farben und Text |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |