PatentDe  


Dokumentenidentifikation DE69425338T2 15.03.2001
EP-Veröffentlichungsnummer 0613102
Titel Verfahren und Vorrichtung zum Einsparen von Druckerspeicher
Anmelder Adobe Systems, Inc., Mountain View, Calif., US
Erfinder Cooper, Michael David, San Jose, California 95136, US;
Hodgson, Michael L., Saratoga, California 95070, US;
Ong, Patrick Swee-Hock, Palo Alto, California 94306, US;
Sandman, Jr., James G., Los Altos, California 94022, US;
Rovner, Paul D., Palo Alto, California 94303, US
Vertreter Zenz, Helber, Hosbach & Partner, 45128 Essen
DE-Aktenzeichen 69425338
Vertragsstaaten DE, FR, GB, IT, NL, SE
Sprache des Dokument EN
EP-Anmeldetag 22.02.1994
EP-Aktenzeichen 943012385
EP-Offenlegungsdatum 31.08.1994
EP date of grant 26.07.2000
Veröffentlichungstag im Patentblatt 15.03.2001
IPC-Hauptklasse G06K 15/00

Beschreibung[de]
GEBIET DER ERFINDUNG

Diese Erfindung bezieht sich auf Drucker und insbesondere auf ein Verfahren und eine Einrichtung zum Minimieren der Speichermenge, die zum Liefern von graphischen Informationen an einen sich mit einer vorgegebenen Geschwindigkeit bewegenden Druckmechanismus erforderlich ist.

HINTERGRUND DER ERFINDUNG

Seitendrucker, wie z. B. Laserdrucker, empfangen Daten in Form einer Seitenbeschreibungssprache, bevor der Druckvorgang anfängt. Mittels einer Seitenbeschreibungssprache wird eine Seite durch Grafiken, Text und Bilder dargestellt, wobei unter Verwendung von aufeinanderfolgenden Kommandos der Sprache spezifiziert werden kann, daß sie irgendwo auf der Seite und in irgendeiner Reihenfolge angeordnet sein können. Die Seitenbeschreibungssprachkommandos reflektieren die Art und Weise, in der die Seite zusammengesetzt ist. Vor dem Drucken müssen die empfangenen Daten aber derart gerastert werden, daß der Druckmechanismus (die "Druckmaschine") in dem Drucker die Seite drucken kann, während das Papier sich gleichmäßig in einer Richtung, normalerweise von oben nach unten, bewegt.

Das Rastern ist der Vorgang, bei dem die Daten, die eine Seite oder einen Abschnitt einer Seite darstellen, in eine Serie von individuellen Punkten oder Pixeln über die gedruckte Seite konvertiert werden, um eine Rasterabtastzeile zu bilden, wobei aufeinanderfolgende Rasterabtastzeilen eine nach der anderen die Seite herunter produziert werden. Der komplette Satz von Abtastzeilen für eine Seite macht die Rasterdaten für die Seite aus. Das Rastern wird in dem Seitendrucker von einem Rastergenerator durchgeführt.

Viele Seitendrucker rastern und speichern alle Rasterdaten für eine Seite, ehe sie anfangen, Daten an die Druckmaschine des Druckers zu senden. Die Druckmaschine muß mit einer vorgegebenen Geschwindigkeit laufen. Daher sichert das vorherige Berechnen der ganzen Seite von Rasterdaten, daß jede Rasterabtastzeile zum Senden bereit ist, wenn sie von der Druckmaschine benötigt wird.

Um die Rasterdaten für eine komplette Seite zu speichern, kann ein beträchtlicher Speicher erforderlich sein. Laserprinter drucken gewöhnlich ca. 516 cm² (80 Quadratzoll) grafische Informationen auf einer Seite mit einer Auflösung von 120 Punkten pro cm (300 Punkten pro Zoll) sowohl horizontal als auch vertikal. Wenn mit einem Bit angezeigt wird, ob jeweils ein Punkt gedruckt oder nicht gedruckt werden soll, so sind über 875 K Bytes (ein Byte entspricht acht Bits) erforderlich, um die Rasterdaten für eine komplette Seite zu speichern. Urn die Druckgeschwindigkeit zu erhöhen, kann eine zweite Rasterdatenseite berechnet und in einem zusätzlichen Speicher gespeichert werden, während die Rasterdaten für die erste Seite stufenweise an die Druckmaschine gesendet werden. Eine zweite Seite verdoppelt die Speicheranforderungen.

Die neue Druckertechnologie ermöglicht ein Halbton- Farbdrucken mit einer Auflösung von 600 · 600 Punkten (oder Pixeln), das mindestens 24 Bits pro Pixel benötigen kann. Falls die komplette Seite gespeichert wird, um den hohen Farbauflösungsanforderungen zu genügen, werden mehr als 80 Mio, Bytes des Speichers pro Seite benötigt; 160 Mio. Bytes des Speichers sind somit nötig, um zwei Seiten zu speichern. Selbst im Verhältnis zu den Kosten eines Hochleistungs- Farbdruckers ist dies kostspielig.

Bei Einstiegsdruckern sind die Speicheranforderungen geringer, aber der Anteil der Kosten für den Speicher relativ zu anderen Druckerkosten ist höher. Um den Benutzern verbesserte Drucker zu niedrigeren Kosten zur Verfügung zu stellen, müssen die Speicheranforderungen reduziert werden.

Mehrere Verfahren sind benutzt worden, um die Druckerspeicheranforderungen zu reduzieren, während die "Druckerüberlauf"-Fehler minimiert werden. Ein Druckerüberlauf-Fehler kommt vor, wenn das Rastern mit der vorgegebenen Geschwindigkeit der Druckmaschine nicht Schritt hält. Ein Druckerüberlauf verhindert das Drucken des Rests der Seite. Bei einem (von Cuzzo, et al., US-Patent 5.129.049, beschriebenen) Verfahren, das als Grundlage für den Oberbegriff der angefügten unabhängigen Ansprüche dient, wird die zweite Seite in einem Format gespeichert, das kompakter ist als das Rasterbild, so daß weniger Speicher hierfür benötigt wird als für das Rasterbild der ersten kompletten Seite. Die zweite Seite könnte in den ursprünglichen Seitenbeschreibungssprachkommandos gespeichert werden, aber dies würde nicht den Vorteil der Überlappung der Verarbeitungszeit bringen, bei der das Rastern der zweiten Seite während des Druckens der ersten Seite erfolgt. Statt dessen werden die Seitenbeschreibungssprachkommandos für die zweite Seite nach dem Eingang in eine "Anzeigeliste" genannte Zwischendarstellung konvertiert. Eine Anzeigeliste ist eine Sequenz von Anzeigelistenkommandos. Anzeigelistenkommandos sind relativ einfache Zeichenkommandos, die schneller gerastert werden als die ursprünglichen Seitenbeschreibungssprachkommandos. Die Seitendarstellung der Anzeigeliste ist kompakter als eine komplette Rasterdatenseite.

Die Anzeigelistenkommandos für die Seite können nach ihrer Position auf der Seite sortiert werden, sobald sie erstellt sind. Durch das Sortieren können die Anzeigelisten kommandos für eine Seite in mehrere Unterlisten aufgeteilt werden. Jede Unterliste wird für eine bestimmte Fläche auf der Seite lokalisiert. Dies führt zu Anzeigelistenkommandos, die für jede Fläche lokalisiert sind, und daher zu einem weiteren, unten beschriebenen Verfahren zum Einsparen von Speicher.

Anstelle des Rasterns der kompletten Anzeigeliste für eine Seite vor dem Drucken wird die Seite in zusammenhängende horizontale Streifen eingeteilt, und es werden nur einige der Streifen vor dem Beginn des Druckvorgangs gerastert. Alle Informationen für einen gegebenen Streifen sind in den Anzeigelistenkommandos für diesen Streifen enthalten. Weitere Streifen werden gerastert, nachdem mit dem Drucken angefangen worden ist, aber bevor sie von der Druckmaschine angefordert werden. Durch das Messen oder Schätzen der Rasterzeiten und das Verfolgen der laufenden Gesamtmenge dürfen einige Streifen etwas länger zum Rastern brauchen als andere mit der gleichen Größe, vorausgesetzt daß die Gesamtzeit der Druckmaschine voraus bleibt. Dieses Verfahren wird in dem oben erwähnten Patent von Cuzzo, et al. beschrieben und als eine Referenz hierin aufgenommen. Falls die Rasterzeit zum Rastern während des laufenden Betriebs zu lang ist, können ein oder mehrere Streifen komplett vorgerastert werden. Diese Lösung stellt sicher, daß der Druckvorgang nie wegen des Ablaufens der Rasterzeit scheitert, und Druckerüberläufe werden vermieden.

Im Stand der Technik wird die Rasterzeit oftmals geschätzt statt das Rastern durchzuführen und die tatsächlich benötigte Zeit zu messen. Die tatsächliche Rasterzeit kann ohne das Speichern der sich aus dem Vorgang ergebenen Rasterdaten gemessen werden. Gute Schätzungen werden aus Formeln erworben, die auf den Parametern basieren, die den Rastervorgang treiben. Zeitschätzungen müssen mögliche Prozessorunterbrechungen zum Behandeln unabhängiger Aufgaben, wie z. B. Kommunikation, berücksichtigen.

Obwohl Druckerüberläufe vermieden und die durchschnittlichen Speicheranforderungen minimiert werden, kann bei den bekannten Verfahren in schwierigen Fällen noch immer Speicherkapazität fehlen. Bei dem extremen Fall einer komplexen Seite, bei der jeder Streifen vorgerastert werden muß, benötigt der Drucker so viel Speicher wie ein Drucker, der kein speicher-einsparendes Verfahren verwendet. Sogar in weniger extremen Fällen erfordert das Minimieren der Anzahl von mißlungenen Fällen eine Erhöhung der verfügbaren Speichermenge.

In EP 0 470 782 wird ein Beispiel für ein bekanntes Bildwiedergabeverfahren und Einrichtungen für einen Drucker offenbart. Gemäß dieser Lösung wird ein Bitmap-Bild nur für einen Abschnitt einer kompletten Seite aus einer Seitenbeschreibungssprachdarstellung der Seite erzeugt und an den Drucker gesendet, während das Bitmap-Bild eines weiteren Abschnittes der Seite erzeugt wird. Die Bildwiedergabelösung gemäß dieser Referenz kann zu manchen Kosteneinsparungen führen im Vergleich zu anderen Lösungen zum Konvertieren aller Seitenbeschreibungssprachkommandos in grafische Reihenfolgen (was weniger Speicher als die entsprechenden Bitmaps erfordert), die daraufhin in Bitmaps konvertiert werden, anstatt des direkten Konvertierens der Seitenbeschreibungssprachkommandos in die endgültigen Bitmaps, die an den Drucker zum Drucken gesendet werden.

Es ist daher eine Aufgabe der vorligenden Erfindung, ein verbessertes Verfahren und System zum Minimieren der Speicheranforderungen an Seitendrucker zu liefern.

Es ist eine weitere Aufgabe dieser Erfindung, ein verbessertes Verfahren und System zum Verhindern des Verlusts der Druckausgabe komplexer, von Seitendruckern mit einem begrenzten Speicher gedruckter Seiten zu liefern.

ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG

Ein Seitendrucker wird beschrieben, der alternative Darstellungen für die Druckdaten in jedem der mehreren, die Seite bildenden Seitenstreifen verwendet. Der Drucker enthält einen Rastergenerator, der einen Prozessor und eine bestimmte Gesamtspeichermenge zum Speichern von Daten in alternativen Darstellungen in dem Speicher umfaßt. Aus jedem Streifen stellt der Rastergenerator letzten Endes eine Rasterdatendarstellung bereit, aus der Rasterabtastzeilen an die Druckmaschine geliefert werden.

Die Daten werden als eine Serie von Seitenbeschreibungssprachkommandos an den Drucker geliefert. Die Seitenbeschreibungssprachkommandos werden von dem Rastergenerator nach dem Eingang in eine Zwischenanzeigeliste mit Zeichnungsgrundelementen konvertiert, die daraufhin aufgeteilt und in jeweils einem Streifen zugeordnete Kommandos sortiert werden. Abhängig von den Speicheranforderungen der Daten für eine gegebene Seite behält der Generator jeden Streifen in seiner Anzeigelistendarstellung oder konvertiert ihn in eine von mehreren anderen Zwischendarstellungen.

Sollte die Anzeigelistendarstellung der Daten den Speicher, der ihrer Speicherung zugeteilt ist, während der Eingabe füllen, werden ein oder mehrere Streifen aus dem Anzeigelistenformat in das Rasterformat konvertiert und unter Verwendung eines verlustlosen Kompressionsalgorithmus komprimiert. Falls die Speicherung der komprimierten Streifen danach über den verfügbaren Speicher hinausgeht, können die Rasterdaten unter Verwendung eines verlustbehafteten Kompressionsalgorithmus, der sichert, daß Datensätze erzeugt werden, die in die Speicherzuteilung passen, weiter kompri miert werden. Die zusätzlichen Anzeigelistenkommandos werden dann durch die Dekompression der komprimierten Streifen, die Verarbeitung der neuen Anzeigelistenkommandos und die Rekompression der Daten unter Verwendung von verlustloser bzw. verlustbehafteter Kompression gerastert. Falls die Anzeigelistenkommandos den Speicher während der Eingabe nicht zum Überlauf bringen, werden die kompletten Streifen gerastert und einzeln in der Reihenfolge komprimiert, in der sie gedruckt werden. Die Zeit zum Rastern jedes Streifens kann von dem Prozessor geschätzt und gespeichert werden, oder der Prozessor kann tatsächlich die Zeit für jeden Streifen berechnen und speichern. Sollte der Speicher für die komprimierten Streifen zu irgendeinem Zeitpunkt während des Vorgangs überlaufen, können die Rasterzeiten für die übrigen Streifen bestimmt oder geschätzt und daraufhin ohne Speichern der Rasterausgabe gespeichert werden.

Beruhend auf den gespeicherten Rasterzeiten bestimmt der Prozessor für jeden Streifen, ob dieser Streifen während des laufenden Betriebs an den Drucker gerastert werden soll, ob er vorher berechnet und als verlustlos komprimierte Rasterdaten gespeichert werden soll, ob er in eine verlustbehaftet komprimierte vorher berechnete Version zurückfallen soll, oder ob er ihn als unkomprimierte Rasterdaten speichern soll.

BESCHREIBUNG DER ZEICHNUNGEN

Fig. 1 zeigt, wie alternative Darstellungen von Daten verwendet werden, um Streifen auf einer gedruckten Seite darzustellen.

Fig. 2 ist eine Blockdarstellung eines Druckers, der die Erfindung verkörpert.

Fig. 3 ist eine Grobblockdarstellung des Verfahrens der Erfindung.

AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG

Es wird auf Fig. 1 Bezug genommen, in der ein die Erfindung verkörpender Seitendrucker, der Seitenbeschreibungssprachkommandos 12 empfängt und die Seitenbeschreibungssprachkommandos in Anzeigelistenkommandos 16 konvertiert, in Überblick gezeigt ist. Die Anzeigelistenkommandos werden in Streifendarstellungen 14-1 bis 14-10 gespeichert, die den Streifen 15-1 bis 15-10 auf der gedruckten Seite entsprechen und zuweilen in andere Darstellungen konvertiert werden. Falls die Speicherung ein einschränkender Faktor wird, werden die Anzeigelistenkommandos 16 in Rasterdaten oder komprimierte Rasterdaten in den Streifendarstellungen 14-1 bis 14-10 konvertiert. Die Streifendarstellungen 14-1 bis 14-10 bilden zusammen eine Zwischenseitendarstellung 5 der eine gedruckte Seite 10 beschreibenden Daten. Die Seite wird gedruckt, indem die verschiedenen Streifendarstellungen 14-1 bis 14-10 sequentiell in Rasterdaten zurück konvertiert werden. Die Rasterdaten für eine Rasterabtastzeile oder einen Streifen können vor dem Drucken vorübergehend in einem Rasterpuffer 11 gespeichert werden.

Die Seitendaten werden aus einem Host-Computer in Form einer Sequenz der Seitenbeschreibungssprachkommandos 12 empfangen. Die Seitenbeschreibungssprachkommandos 12 können eine Kombination aus Text- und Grafikkommandos sowie eingebetteten Bildern sein. Jedes beliebige einzelne Seitenbeschreibungssprachkommando kann Text, Grafiken oder Bilder irgendwo derart auf der Seite anbringen, daß mit dem Drucken nicht angefangen werden kann, bevor alle Seitenbeschreibungssprachkommandos 12 für eine komplette Seite empfangen und verarbeitet worden sind.

Bei dem veranschaulichten Beispiel wird die Seite logisch in zehn Seitenstreifen 15-1 bis 15-10 eingeteilt. Jeder Streifen hat eine vorgebene, über die Seite verlaufende obere und untere Grenze. Die Streifen haben typischerweise die gleiche Größe. Jedes Seitenbeschreibungssprachkommando wird, sobald es empfangen wird, in eine Serie von Anzeigelistenkommandos 16 übersetzt. Die Anzeigelistenkommandos 16 werden so erzeugt, daß jedes Kommando sich nur auf einen einzigen Streifen bezieht. Die Daten 14-1 bis 14-10 stellen die entsprechenden Streifen 15-1 bis 15-10 dar. Falls sich somit der Druckbeitrag aus einem Seitenbeschreibungssprachkommando vertikal über die ganze Seite streckt, führt dies dazu, daß mindestens ein Anzeigelistekommando für jeden Seitenstreifen 15-1 bis 15-10 erzeugt wird. Wie es unten erläutert ist, können die Anzeigenlistenkommandos für einen Streifen in eine andere Art von den Streifen darstellenden Daten konvertiert werden, falls die Speicherung zu einer Einschränkung wird. Sollte der Speicher aber kein einschränkender Faktor sein, werden alle Darstellungen 14-1 bis 14-10 nach Fertigstellung der Eingabe der Seitenbeschreibungssprachkommandos 12 die Form von Anzeigelistenkommandos haben. Sollte eine Darstellung 14-1 in der Anzeigelistenform belassen werden, wird sie nicht in einen anderen Speicherbereich kopiert, sondern mit der Zwischendarstellung der Seite 5 durch einen Datenzeiger verbunden.

Sobald irgendein Anzeigelistenkommando 16 erzeugt worden ist, wird es einer der einzelnen Streifendarstellungen 14-1 bis 14-10 direkt hinzugefügt. Da die gedruckte Seite 10 aus den Anzeigelistenkommandos 16 genauso gut gedruckt werden kann, wie sie aus den ursprünglichen Seitenbeschreibungssprachkommandos 12 hätte gedruckt werden können, ist die komplette Anzeigeliste für einen Streifen eine alternative Darstellung für diesen Streifen, und der ganze Satz von Anzeigelistenkommandos 16 für alle Streifen ist eine alternative Darstellung für die komplette gedruckte Seite 10.

Die Verwendung von alternativen Darstellungen für Streifen ist ein Schlüsselkonzept der Erfindung. Die Druckmaschine braucht letzten Endes eine Rasterdatendarstellung für jeden Streifen, der in einem Rasterpuffer 11 gespeichert werden kann. In der Rasterdatendarstellung wird die Seite als eine Matrix von Zahlen beschrieben, wobei jede Zahl einem auf der Seite zu druckenden Einzelpixel oder -punkt entspricht. Die Zahl gibt die an dieser Stelle zu druckende Farbe oder Intensität an.

Die Rasterdaten für einen Streifen enthalten in der Regel Bereiche mit wiederholten Pixeln oder Mustern von Pixeln, die komprimiert werden können. Es gibt z. B. ganze Rasterzeilen mit Leerpixeln zwischen den Textzeilen. Hier könnte unter Verwendung einer Kurzschreibweise für eine Leerzeile Speicherplatz für Rasterdaten aus dem Text eingespart werden. Viel Mühe wurde der Bildkompression gewidmet und viele durchdachte Verfahren sind entwickelt worden. Der Text "Digital Image Processing" von W. K. Pratt (John Wiley and Sons, 1978) gibt einen Überblick über die Techniken. "Transform Coding of Images" von R. J. Clark (Academic Press, 1985) erläutert speziellere Bearbeitungsverfahren.

Die Kompressionstechniken werden in zwei Kategorien eingeteilt, verlustlose und verlustbehaftete. Ein verlustlo ses Kompressionsverfahren erlaubt, daß die Daten, die komprimiert waren, genau rekonstruiert werden, wenn Sie dekomprimiert werden. Die verlustlose Kompression ist reversibel im Gegensatz zu der verlustbehafteten Kompression, die irreversibel ist. Verlustbehaftete Techniken schaffen nur eine ungefähre Rekonstruktion nach der Dekompression. Die ungefähre Rekonstruktion ist oft annehmbar für Bilder, weil das Auge kleine Abweichungen in dem Bild nicht entdeckt. Verlustbehaftete Techniken werden entweder verwendet, um größere Kompressionsfaktoren zu schaffen, als verlustlose Techniken schaffen würden, oder um ein vorhersagbares Verhältnis zwischen der unkomprimierten und der komprimierten Größe zu liefern. Viele verlustbehaftete Techniken erlauben eine große Auswahl an Kompromissen zwischen der Genauigkeit des wiederhergestellten Bildes und dem Kompressionsverhältnis. Praktischerweise kann eine vorgegebene Speichermenge, die wesentlich weniger als eine ganze Seite von Rasterbildern enthält, in einem Drucker bereitgestellt werden, während sichergestellt wird, daß der Benutzer annehmbare Druckergebnisse empfängt.

Es ist außerdem ein Schlüssel zu der Erfindung, daß verlustlos und verlustbehaftet komprimierte Rasterdaten zwei oder mehrere alternative Darstellungen der Seitenstreifen bereitstellen. Die verlustbehafteten Kompressionstechniken können verschiedene Darstellungen mit verschiedenen Kompressionsfaktoren liefern. Speichereinsparungen werden dem Verschlechterungsgrad entgegengesetzt, den die verlustbehafteten Kompressionstechniken bewirken. Die hochkomprimierte Speicherung kann jedoch unter Umständen verwendet werden, wenn der Speicher sehr beansprucht wird.

Die Lauflängencodierung in Kombination mit der Huffman- Codierung, die im Stand der Technik bekannt ist, ist für die vorliegende Erfindung ein angemessenes Beispiel Für verlustlose Kompression. Als eine angemessene verlustbehaftete Kompressionstechnik kann ein Verfahren erwähnt werden, das von der "Joint Photographic Experts Group" (JPEG) der "International Standards Organization" (ISO) als eine Norm geschaffen wurde.

Das nächste Schlüsselkonzept ist, daß es nach der Identifizierung der alternativen Darstellungen für Seitenstreifen möglich ist, eine Zwischendarstellung einer ganzen Seite zu schaffen, die erlaubt, daß verschiedene Streifendarstellungsarten in den verschiedenen Kombinationen enthalten sind, die am besten zu den Charakterika einer beliebigen gedruckten Seite passen.

Das Verfahren der Erfindung zeichnet sich durch die Auswahl der alternativen Arten von Streifendarstellungen aus, so daß der verfügbare Speicher nie überschritten wird und Druckerüberläufe immer vermieden werden. Innerhalb dieser zwei absoluten Einschränkungen wählt das Verfahren der Erfindung zuerst die Alternativen aus, die die für das Verarbeiten der Seite erforderliche Verarbeitungszeit minimiert. Falls eine Seite einfach ist und nicht die Speichergrenzen herausfordert, erfolgt die Verarbeitung schnell. Falls eine Seite ungewöhnlich komplex ist und der Speicher intensiv gebraucht wird, kann die Verarbeitung wesentlich langsamer erfolgen und die Qualität verringert werden, aber der Benutzer erhält immer eine vollständige ausgedruckte Seitenausgabe.

Gemäß Fig. 2 hat ein die Erfindung verkörpender Seitendrucker eine Eingabe/Ausgabe-Schnittstelle (I/O-Schnittstelle) 30 zum Empfangen der Seitenbeschreibungssprachkommandos über ein Kabel oder ein Netzwerk aus dem Host-Computer, die die Seitenbeschreibungssprachkommandos an den gemeinsamen Bus 34 ausgibt. Fehlernachrichten und Steuerinformationen bezüglich der Übertragung von Daten werden über die I/O-Schnittstelle 30 zu dem Host zurückübertragen.

Sobald ein Seitenbeschreibungssprachkommando empfangen worden ist, wird es über den gemeinsamen Bus 34 in den Speicher mit wahlfreiem Zugriff (RAM) 32 gespeichert. Ein Mikroprozessor 36 an dem gemeinsamen Bus 34 berechnet und steuert die Erzeugung der Rasterdaten und liefert die Rasterdaten an die Druckmaschinen-Steuereinrichtung 38, die wiederum die Rasterdaten an die das Bild auf Papier übertragende elektromechanische Druckmaschine 40 weiterleitet.

Das Programm für den Mikroprozessor 36 ist permanent in einem Nur-Lese-Speicher (ROM) 42 gespeichert. Die Eingabedaten, die Zwischenergebnisse mit den Zwischenseitendarstellungen, die Rasterpufferdaten für den an die Druckmaschinen- Steuereinrichtung zu sendenden gegenwärtig dekomprimierten Streifen sowie alle anderen variablen Daten werden in dem gemeinsamen RAM 32 gespeichert. Ein Merkmal der Erfindung ist die Fähigkeit, den Speicher am effizientesten dadurch zu verwenden, daß sich verschiedene Darstellungen den Speicherraum in einem einzigen Speicher teilen. Speicherzuteilung ist der Vorgang, bei dem ein Speicher zu verschiedenen Zwecken in Abschnitte aufgeteilt wird. Eine "Zuteilungs- Abbildung" genannte Tabelle kann an einem gegebenen Platz in dem Speicher vorhanden sein, um aufzuzeichnen, wie der Rest des Speichers zu jedem Zweck zugeordnet ist. Die Speicherzuteilungen können dynamisch während des Vorgangs geändert werden. Dies ist ein Vorteil gegenüber der Verwendung separater Speicher für jede Darstellung, da jeder separate Speicher für seinen individuellen schlimmsten Fall ausgelegt sein muß. Mit separaten Speichern kann der eingesparte Platz in einem Speicher nicht von einem anderen verwendet werden.

Der Mikroprozessor 36, der ROM 42, der RAM 32 und der gemeinsame Bus 34 arbeiten zusammen als ein Rastergenerator, um die Eingabeseitenbeschreibungssprachkommandos in die die Druckmaschinen-Steuereinrichtung 38 treibenden Rasterdaten zu konvertieren. Der Mikroprozessor 36 kann ein handelsübli cher Standardmikroprozessor, wie z. B. einer der Familie Motorola 68000 oder der Familie Intel i860, sein. Der RAM 32 wird mit herkömmlichen Halbleiter-Chips des dynamischen Speichers mit wahlfreiem Zugriff (DRAM) gebaut. Die anderen erforderlichen Bauteile sind übliche kommerzielle digitale Halbleiter-Chips oder bekannte, bei der Verbindungstechnologie der gedruckten Schaltungen verwendete anwendungsspezifische integrierte Schaltungen (ASICs).

Gemäß Fig. 3 beginnt die Seitenverarbeitung mit dem Schritt 52 der Konvertierung der Seitenbeschreibungssprachkommandos 50 aus dem Host in die Anzeigelistenkommandos 53. Während die Anzeigelistenkommandos erzeugt werden, werden sie gleichzeitig in Unterlisten sortiert, indem neue Kommandos mit einer einem jeweiligen Streifen zugeordneten verbundenen Liste verknüpft werden.

Bei Schritt 54 wird die Anzeigeliste ununterbrochen auf Überlauf überprüft, um zu sehen, ob der zugeordnete Höchstspeicher überschritten wird. Die Rasterzeit für jeden Streifen wird gemessen oder geschätzt und für die spätere Verwendung gespeichert. Falls die Anzeigeliste während der Eingabe nicht überläuft, werden die Rasterzeitabschätzungen überprüft, um zu sehen, ob es irgendwelche problematischen Streifen gibt. Ein problematischer Streifen ist ein Streifen, der nicht in einer kürzeren Zeit gerastert werden kann als die zum Drucken benötigte Zeit. Die eventuell vorhandenen problematischen Streifen werden bei Schritt 55 einer nach dem anderen in der Reihenfolge komprimiert, in der sie gedruckt werden sollen. Sobald ein Streifen komprimiert worden ist, wird der zur Speicherung der Streifen verwendete kumulative Speicher bei Schritt 56 überprüft. Falls alle Streifen abgeschlossen werden, ohne daß der der Zwischendarstellung der Seite zuteilte. Speicher aufgebraucht wird, kann die komplette komprimierte Seite bei Schritt 74 gedruckt werden. Die Zeit, die zur Dekompression zum Drucken bei Schritt 74 erforderlich ist, ist vorhersagbar und so schnell, daß jeder Streifen in einen Rasterdatenpuffer rechtzeitig dekomprimiert werden kann, um die Rasterdaten an die Druckmaschinen-Steuereinrichtung zu übertragen. Alternativ arbeiten einige Dekompressionsverfahren so schnell oder können durch die Verwendung einer ASIC-Durchführung so schnell gemacht werden, daß die komprimierten Rasterdaten dekomprimiert und direkt an die Druckmaschine gesendet werden können, ohne in einen Zwischenrasterdatenpuffer gebracht zu werden. Mit einem Speicher, der weder durch Konvertierung noch durch Kompression überschritten wird, ist die Verarbeitung einfach abzuschätzen und weniger komplex.

Sollte der Test bei Schritt 56 anzeigen, daß der Speicher für die als komprimierte Rasterdaten gespeicherten Streifen dabei ist, an irgendeiner Stelle in dem Kompressionsvorgang überzulaufen, werden die Rasterzeiten für die übrigen Streifen bei Schritt 60 geschätzt oder gemessen. Bei diesem Schritt werden Abschätzungen bevorzugt, aber die Zeiten können auch gemessen werden, ohne daß die Rasterausgabe gespeichert werden muß. Die Abschätzungen oder Messungen ergeben eine komplette Liste der Zeiten zum Rastern jedes einzelnen Streifens. Unter Verwendung dieser Streifenrasterzeiten wird bei Schritt 62 eine Entscheidung getroffen, wie mit der Seite zu verfahren ist. Falls ein oder mehrere Streifen schneller gerastert werden können als die Zeit, die die Druckmaschinen-Steuereinrichtung zum Konsumieren eines Rasterdatenstreifens benötigt, gibt es keinen Grund, die komprimierten Daten für diese Streifen zu speichern; stattdessen können sie während des laufenden Betriebs erzeugt werden, so wie sie benötigt werden. Der in dieser Weise entlastete Speicher kann den komprimierten Rasterdaten für andere Streifen, die nicht rechtzeitig gerastert werden können, neu zugewiesen werden, oder er kann der Speicherung der nächsten Seite eingehender Daten zugeordnet werden, so daß die Durchflußleistung durch Überlappung der Verarbeitung erhöht wird. Wenn alle Daten für die Zwischendarstellung der Seite jetzt Streifen für Streifen bei Schritt 65 schnell genug gerastert werden können, um der Druckmaschine voraus zu bleiben, wird die Seite bei Schritt 74 gedruckt.

Sollte der Test bei Schritt 62 aber ergeben, daß der Speicher noch immer unzureichend ist, müssen die komprimierten Rasterdatenstreifen unter Verwendung einer verlustbehafteten Kompression bei Schritt 63 erneut verarbeitet werden. Die verlustbehaftete Kompression stellt sicher, daß den Speicheranforderungen entsprochen wird, selbst wenn sich die Qualität der gedruckten Seite geringfügig verschlechtert. Falls die Speicheranforderungen überschritten werden, bevor alle Streifen wieder verarbeitet worden sind, kann die Zwischendarstellung der gleichen Seite eine Kombination aus unkomprimierten Rasterdaten, verlustbehaftet komprimierten Rasterdaten, verlustlos komprimierten Rasterdaten oder Anzeigelistenkommandodarstellungen verschiedener Streifen sein. Unmittelbar vor dem Drucken bei Schritt 74 muß jede Darstellung in Rasterdaten für den Streifen konvertiert werden.

Dies umfaßt all die Fälle, bei denen der Test bei Schritt 54 anzeigte, daß die Anzeigelistenkommandos nicht Gefahr laufen, den Speicher zum Überlauf zu bringen. Falls die Anzeigelistenkommandos nicht Gefahr laufen, einen Überlauf zu bewirken, werden ein oder mehrere Streifen gerastert und komprimiert, um die Speicherung für die übrige Anzeigelistenkommandoeingabe zu entlasten. Bis die Anzeigeliste komplett ist, können Anzeigelistenkommandos eintreffen, die auf einen oder mehrere der schon gerasterten und komprimierten Streifen einwirken. Um das Rastern zu vollenden, wenn ein oder mehrere neue Anzeigelistenkommandos für einen komprimierten Streifen eintreffen, um die Anzeigelistenspeicherzuteilung wieder zu füllen, wie es bei dem Test bei Schritt 78 bestimmt ist, muß dieser Streifen bei Schritt 76 dekomprimiert werden. Daraufhin werden die neuen gerasterten Daten hinzugefügt und der Streifen bei Schritt 66 wieder komprimiert. Der aus Dekompression, Rastern und Kompression bestehende Zyklus kann für den gleichen Streifen sowie für andere Streifen auf einer Seite wiederholt werden, bis alle Anzeigelistenkommandos für die Seite gerastert worden sind.

Nach dem Kompressionsvorgang bei Schritt 66 wird ein Test bei Schritt 68 durchgeführt, um sicherzustellen, daß die komprimierten Rasterdaten nicht wieder damit drohen, den Speicher zum Überlauf zu bringen. Sollte dies nicht der Fall sein, wird das Rastern daraufhin durch den Dekompressionszyklus bei Schritt 76 sowie den Änderungs- und Rekompressionszyklus bei Schritt 66 vollendet, wie es beschrieben worden ist. Die komprimierten Streifen werden danach bei Sch ritt 74 gedruckt.

Falls der Test bei Schritt 68 ergibt, daß durch Speicherung der komprimierten Streifen der verfügbare Speicher überzulaufen droht, werden die Rasterdaten bei Schritt 72 unter Verwendung eines verlustbehafteten Kompressionsalgorithmus weiter komprimiert. Auch hier kann das Kompressionsverhältnis so gewählt werden, daß sichergestellt ist, daß die sich ergebenden Datensätze in die Speicherzuteilung passen. Die zusätzlichen Anzeigelistenkommandos werden durch die Dekompression der verlustbehaftet komprimierten Streifen, die Verarbeitung der neuen Kommandos und die Rekompression der Daten mittels einer verlustbehafteten Kompression so gerastert, wie es nötig ist; Schritt 72 umfaßt all diese Stufen. Wenn die aktive Anzeigeliste für die Seite fertiggestellt ist, kann die Seite bei Schritt 74 gedruckt werden.

Jeder Dekompressions- und Kompressionszyklus der Schritte 66 und 72 wird wahrscheinlich eine längere Verarbeitungszeit benötigen als in dem Fall, wenn Anzeigelisten kommandos bei Schritt 68 keinen Überlauf ergeben würden. Die zusätzliche Zeit stellt einen Kompromiß gegenüber dem Aufwand für einen zusätzlichen Speicher dar, der vielleicht nur bei sehr wenigen Teilen von wenigen Dokumenten verwendet würde.

Das Drucken bei Schritt 74 wird somit in jedem Fall vollendet, ohne daß ein einer ganzen Seite von Rasterdaten entsprechender Speicher benötigt wird, und ohne daß ein Druckerüberlauf vorkommt.

Es sei angemerkt, daß das Verfahren der Erfindung durch ein bevorzugtes Ausführungsbeispiel unter Verwendung eines allgemeinen Schemas mit zusätzlichen alternativen Streifendarstellungen beschrieben ist. Andere alternative Darstellungen können die Verarbeitungszeit für eine gegebene Speichermenge weiter optimieren.

Es ist klar, daß die oben stehende Beschreibung nur eine Veranschaulichung eines bevorzugten Ausführungsbeispiels der Erfindung ist. Obwohl die Erfindung in einer Laserdrucker-Umgebung beschrieben worden ist, kann sie, ebenso gut in anderen Arten von Druckmaschinen eingesetzt werden. Die vorliegende Erfindung soll daher stellvertretend für alle solchen Alternativen und Varianten stehen, die zu dem Umfang der angefügten Ansprüche gehören.


Anspruch[de]

1. Ein Drucker mit einem Eingang (30) zum Empfangen einer Seitenbeschreibung (12), die in einer Seitenbeschreibungssprache kodiert ist, wobei der Eingang (30) dem Drucker eine Sequenz von aufeinanderfolgenden Kommandos in der Seitenbeschreibungssprache zur Verfügung stellt, mit einer Druckmaschine (40) zum Drucken von Seiten, die aus einer Sequenz von Rasterabtastzeilen zusammengesetzt sind, mit Mitteln zum Konvertieren der Seitenbeschreibungssprachkommandos in Anzeigelistenkommandos und mit einem Rastergenerator (32, 34, 36, 42) zum Konvertieren der empfangenen Seitenbeschreibungssprachkommandos (12) in eine Sequenz von Rasterabtastzeilen in einem für das Drucken erforderlichen Format, wobei der Drucker gekennzeichnet ist durch:

Mittel zum Konvertieren der an dem Eingang (30) empfangenen Seitenbeschreibungssprachkommandos in eine Mehrzahl von Zwischendarstellungen (5), wobei die Mittel so betrieben werden können, daß sie Seitenbeschreibungssprachkommandos (12) in Zwischendarstellungen (5) konvertieren, die die Anzeigelistenkommandos (16), komprimierte Rasterdaten (14-2, 14-3) und unkomprimierte Rasterdaten (14-4) enthalten, wobei die Mittel so arbeiten, daß sie die Zwischendarstellungen (5) für die Seitendarstellung derart auswählen, daß der in dem Drucker verfügbare Speicher niemals überschritten wird und Drucküberläufe stets vermieden werden;

Mittel zum Ordnen der Mehrzahl von Zwischendarstellungen (5) entsprechend ihrer Position auf der Seite (10);

Mittel zum Konvertieren der Mehrzahl von Zwischendarstellungen (5) in Rasterabtastzeilen; und

Mittel zum Liefern der Rasterabtastzeilen an die Druckmaschine (40) bei einer vorgegebenen Rate.

2. Der Drucker nach Anspruch 1, wobei die Mittel zum Konvertieren der Seitenbeschreibungssprachkommandos so betrie ben werden können, daß sie Seitenbeschreibungssprachkommandos in Zwischendarstellungen konvertieren, die verlustlos komprimierte Rasterdaten (14-2) und verlustbehaftet komprimierte Rasterdaten (14-3) enthalten.

3. Der Drucker nach Anspruch 2, wobei eine Seite (10) logisch in Streifen (15) unterteilt ist, wobei jeder Streifen (15-1) einem vorgegebenen zusammenhängenden Bereich der Seite (10) entspricht, und wobei die Darstellung der zu druckenden Seite eine Liste dieser Streifen enthält.

4. Der Drucker nach Anspruch 3, wobei der Rastergenerator (32, 34, 36, 42) Mittel zum Abschätzen des erforderlichen Speichers und/oder der Rasterzeit enthält, der bzw. die abwechselnden Zwischendarstellungen für jeden Streifen zugeordnet ist, und zum davon ausgehenden Bestimmen der Arten von Zwischendarstellungen für die Darstellung jedes Streifens, um die Speicher- oder Zeitanforderungen zu minimieren, während die Konversion der Zwischendarstellungen in Rasterabtastzeilen bei einer Rate ermöglicht wird, die zum Bereitstellen der Rasterabtastzeilen an die Druckmaschine bei der vorgegebenen Rate ausreichend ist.

5. Der Drucker nach Anspruch 4, wobei die Mittel zum Abschätzen des erforderlichen Speichers und/oder der Rasterzeit Formeln verwenden, die auf die Zwischendarstellungen angewendet werden.

6. Der Drucker nach Anspruch 5, wobei die Abschätzmittel die Abschätzungen berechnen, indem abwechselnde Zwischenformatdarstellungen für jeden Streifen berechnet und die sich ergebenden Zeit- und/oder Rauminformationen gespeichert werden.

7. Ein Verfahren zum Verringern der Speicheranforderungen für einen Drucker, wobei der Drucker eine Seitenbeschrei bungssprachdarstellung (12) einer Seite (10) empfängt, wobei die Seitenbeschreibungssprachdarstellung (10) eine Sequenz von Seitenbeschreibungssprachkommandos umfaßt, welche der Drucker in eine Rasterdatendarstellung dieser Seite (10) zum Drucken konvertiert, und wobei der Drucker Mittel zum Konvertieren der Seitenbeschreibungssprachkommandos in Anzeigelistenkommandos aufweist, wobei das Verfahren gekennzeichnet ist durch:

Konvertieren der Seitenbeschreibungssprachkommandos für die Seite in eine Mehrzahl von Zwischendarstellungen (5), die die Anzeigelistenkommandos (16), komprimierte Rasterdaten (14-2, 14-3) und unkomprimierte Rasterdaten (14-4) umfassen, so daß der verfügbare Speicher in dem Drucker niemals überschritten wird und Drucküberläufe stets vermieden werden;

Rastern wenigstens eines Abschnitts der Zwischendarstellungen (5), um eine Rasterdatendarstellung zu bilden; und

Liefern der Rasterdatendarstellung an eine Druckmaschine (40) zum Drucken.

8. Das Verfahren zum Verringern der Speicheranforderungen für einen Drucker nach Anspruch 7, wobei der Drucker zum Speichern von Anzeigelistenkommandos (16), unkomprimierten gerasterten Daten (14-4) und komprimierten gerasterten Daten (14-2, 14-3) zugewiesenen Speicher (32) aufweist, wobei das Verfahren ferner umfaßt:

(1) Konvertieren der Seitenbeschreibungssprachdarstellung (12) der Seite (10) in Anzeigelistenkommandos (16) und Speichern der Anzeigelistenkommandos (16) in den den Anzeigelistenkommandos zugewiesenen Speicher (32), bis dieser Speicher aufgebraucht ist;

(2) Rastern der Anzeigelistenkommandos (16) aus der Anzeigelistenspeicherzuweisung, um Rasterdaten zu bilden, und Speichern der Rasterdaten in die Rasterdatenspeicherzuwei sung, womit der den Anzeigelistenkommandos (16) zugewiesene Speicher für eine weitere Verwendung freigegeben wird;

(3) Komprimieren der Rasterdaten in der Rasterdatenspeicherzuweisung, um komprimierte Rasterdaten (14-2, 14-3) zu bilden, und Speichern der komprimierten Rasterdaten (14- 2, 14-3) in die Speicherzuweisung für komprimierte Rasterdaten, womit die Rasterdatenzuweisung für eine weitere Verwendung freigegeben wird;

(4) Fortsetzen der Konvertierung der Seitenbeschreibungssprachkommandos (12) in zweite Anzeigelistenkommandos (16), bis entweder die Anzeigelistenspeicherzuweisung wieder aufgebraucht oder die Konversion abgeschlossen ist;

(5) Dekomprimieren der komprimierten Rasterdaten (14-2, 14-3) in der Speicherzuweisung für komprimierte Rasterdaten und Senden der dekomprimierten Daten an die Druckmaschine (40) zum Drucken oder Speichern der dekomprimierten Daten in den Rasterdatenspeicher (32), wobei in beiden Fällen der Speicher für komprimierte Rasterdaten für weitere Verwendung freigegeben wird;

(6) Rastern der zweiten Anzeigelistenkommandos (16) und Kombinieren der sich ergebenden Rasterdaten mit den Rasterdaten in der Rasterdatenspeicherzuweisung;

(7) erneute Ausführung der Schritte (4) bis (6), sofern die Konvertierung im Schritt (4) nicht abgeschlossen wurde; oder

(8) Drucken der Seite aus dem Rasterdatenspeicher oder dem Speicher für komprimierte Rasterdaten oder aus beiden, sofern die Konvertierung im Schritt (4) die Seitenbeschreibungssprachdaten (12) für die gesamte Seite (10) konvertiert hat.

9. Das Verfahren nach Anspruch 7, wobei die Zwischendarstellungen (5) ferner eine Anzeigelistendarstellung (16) und eine Darstellung unkomprimierter Rasterdaten (14-4) umfassen.

10. Das Verfahren nach Anspruch 7, ferner umfassend:

Berechnen einer Abschätzung darüber, wie schnell die Anzeigeliste erzeugt werden kann, für den Abschnitt der Anzeigelistendarstellung (16);

Vergleichen der Abschätzung mit einer vorgegebenen Rate, um zu bestimmen, ob der Abschnitt der Anzeigelistendarstellung (16) gerastert werden soll, bevor das Drucken beginnt; und

Rastern des Abschnitts der Anzeigelistendarstellung (16) der Seite (10), um eine Rasterdatendarstellung zu bilden, sofern der Vergleich ergibt, daß die Anzeigeliste nicht bei der vorgegebenen Rate wiedergegeben werden kann.

11. Das Verfahren nach Anspruch 7, wobei der Drucker eine fest vorgegebene Speichermenge (32) aufweist, wobei das Verfahren ferner umfaßt:

logisches Unterteilen der Seite in Streifen (15) Identifizieren jedes Streifens (15-1) als wettlauffähig (raceable) oder nicht-wettlauffähig, wobei ein Streifen nur dann als wettlauffähig identifiziert wird, wenn die Anzeigeliste (16) für den Streifen wenigstens so schnell wie die vorgegebene Rate wiedergegeben werden kann;

Wiedergeben der Anzeigeliste (16) jedes nicht-wettlauffähigen Streifens in Rasterdaten und Komprimieren der Rasterdaten zur Speicherung in einem Speicher unter Verwendung eines verlustlosen Kompressionsverfahrens (14-3) oder eines verlustbehafteten Kompressionsverfahrens (14-2), wobei das verlustbehaftete Kompressionsverfahren (14-2) verwendet wird, wenn der Speicher (32) nicht genügend verfügbaren Speicherraum zum Speichern der Rasterdaten unter Verwendung einer verlustlosen Kompression (14-3) aufweist;

Speichern der komprimierten Rasterdaten (14-2, 14-3) in den Speicher (32); und

Drucken der Seite (10), indem die Streifen (15) aufeinanderfolgend gedruckt werden, wobei die wettlauffähigen Streifen aus ihren jeweiligen Anzeigelisten wiedergegeben werden, während die komprimierten Rasterdaten für jeden nicht-wettlauffähigen Streifen aus dem Streifen dekomprimiert werden.







IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com