DE69524381T2 - Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache - Google Patents
Parallele Verarbeitung des Datenstroms der SeitenbeschreibungsspracheInfo
- Publication number
- DE69524381T2 DE69524381T2 DE69524381T DE69524381T DE69524381T2 DE 69524381 T2 DE69524381 T2 DE 69524381T2 DE 69524381 T DE69524381 T DE 69524381T DE 69524381 T DE69524381 T DE 69524381T DE 69524381 T2 DE69524381 T2 DE 69524381T2
- Authority
- DE
- Germany
- Prior art keywords
- data stream
- segments
- extended
- segment
- commands
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 47
- 238000000034 method Methods 0.000 claims description 170
- 230000008569 process Effects 0.000 claims description 136
- 230000004044 response Effects 0.000 claims description 57
- 238000013519 translation Methods 0.000 claims description 52
- 230000007704 transition Effects 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 10
- 238000005192 partition Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 229920000740 poly(D-lysine) polymer Polymers 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000033458 reproduction Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1296—Printer job scheduling or printer resource handling
-
- 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1214—Improving printing performance achieving reduced delay between job submission and print start at the submitting node
-
- 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/124—Parallel printing or parallel ripping
-
- 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- 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
- 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
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1857—Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
-
- 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/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0011—Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
-
- 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/0005—Accepting output data; Preparing data for the controlling system
- G06K2215/0014—Transforming the printer input data into internal codes
-
- 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/0062—Handling the output data combining generic and host data, e.g. filling a raster
- G06K2215/0065—Page or partial page composition
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)
- Record Information Processing For Printing (AREA)
- Facsimiles In General (AREA)
- Image Generation (AREA)
- Digital Computer Display Output (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Image Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die vorliegende Erfindung betrifft Einrichtungen und Verfahren zum Umsetzen eines Datenstroms in der Seitenbeschreibungssprache, der eines oder mehrere Bilder oder Seiten beschreibt, in eine Bitmap- Darstellung des Bildes zur Ausgabe auf Film, Papier, einem Videomonitor, einer Druckplatte usw. Die Erfindung kann in der Grafikindustrie, der Mikrographie, im Desktop-Publishing usw. angewandt werden. Die Erfindung betrifft insbesondere eine Mehrfach-Verarbeitungseinrichtung, die den Datenstrom in ein Zwischen- oder Bitmap-Format umsetzt.
- Die elektronische Wiedergabe durch Ausgabegeräte auf Hardcopy-Material erfordert eine schnelle Transformation von Layouts, die gewöhnlich in einer bestimmten Seitenbeschreibungssprache (PDL) definiert werden, in eine Bitmap-Darstellung der durch die Layouts beschriebenen Bilder. PDLs sind zum Beispiel PostScript (Warenzeichen der Adobe Inc.), AgfaScript (Warenzeichen der Agfa-Gevaert AG in Leverkusen), IPDS (Intelligent Printer Data Stream, Teil des Common Communications Support, definiert von IBM innerhalb des Kontexts der Systems Application Architecture). Eine Bitmap- Darstellung ist eine eindeutige Beziehung zwischen Bildpunkten, die von einem Ausgabegerät auf eine Druckausgabe geschrieben werden, und den elektronischen Signalen zur Veränderung der Dichte dieser Bildpunkte. Ein Bildpunkt eines Geräts ist das kleinste räumliche Element auf dem Hardcopy-Material, dessen Dichte durch das Ausgabegerät verändert werden kann. Wenn die Dichte des Bildpunkts eines Geräts zwei verschiedene Werte annehmen kann, z. B. schwarz und weiß, dann ist das Ausgabegerät ein Zweipegelgerät, und in der Bitmap- Darstellung ist für jeden Bildpunkt des Geräts ein Bit notwendig, das eine Null oder eine Eins darstellt. Wenn das Ausgabegerät bis zu sechzehn Dichtepegel pro Bildpunkt des Geräts wiedergeben kann, dann sind in der Bitmap mindestens vier Bit pro Bildpunkt des Geräts erforderlich. Ausgabegeräte, die 256 Dichtepegel wiedergeben, erfordern acht Bit pro Bildpunkt des Geräts. Farbausgabegeräte erfordern gewöhnlich eine Bitmap pro Farbkomponente, z. B. Cyan, Magenta, Gelb und Schwarz. Die Größe der Bitmap bzw. Bitmaps ist also eine Funktion der Anzahl von Dichtepegeln, die von dem Ausgabegerät dargestellt werden, und der Anzahl von Farbkomponenten. Die Größe hängt außerdem von der räumlichen Auflösung der Bildpunkte des Geräts ab. Die räumliche Auflösung des Geräts wird in Punkten pro Zoll oder Bildpunkten pro Millimeter ausgedrückt. Je höher die Auflösung ist, desto größer wird die Bitmap. Außerdem ist die Gesamtgröße der Druckausgabe entscheidend für die in der Bitmap erforderliche Anzahl von Speicherelementen. Bei einem Zweipegel-A4-Drucker mißt die Druckausgabe 297 mm mal 210 mm, mit einer Auflösung von 400 Punkten pro Zoll oder etwa 16 Bitpunkten pro mm, und eine Bitmap erfordert fast 15 Megabit (15 mal 22º Bit). Da zunehmend qualitativ hochwertige Wiedergaben verlangt werden, hat die räumliche Auflösung bis auf 600 Punkte pro Zoll, die Anzahl von Farbkomponenten auf vier, die Anzahl von Dichtepegeln pro Farbkomponenten auf sechzehn und die Größe auf A3 (420 mm mal 297 mm) zugenommen. Dadurch erhöht sich die erforderliche Menge an Speicher bis auf etwa 1062 Megabit. Diese große Speichermenge ist nicht nur für die Speicherkapazität problematisch, sondern auch für die Erzeugung dieser großen Datenmenge in der Bitmap, durch die das Bild auf der Druckausgabe dargestellt wird. Das Ausgabegerät setzt die Bitmap- Darstellung in ein sichtbares Bild auf einer Druckausgabe oder auf einem Anzeigemonitor um.
- Die Transformation eines PDL-Datenstroms in eine Bitmap-Darstellung geschieht in einem Bildbearbeitungsprozessor (RIP - Raster Image Processor). Diese Einrichtung empfängt einen PDL-Datenstrom, interpretiert seinen Inhalt und erzeugt eine Bitmap- Darstellung, die für das Ausgabegerät geeignet ist, d. h. die räumliche Auflösung, die Anzahl von Dichtepegeln, die Anzahl von Farbkomponenten und die Größe der Bitmap entspricht den Kenngrößen des Ausgabegeräts.
- Obwohl die Auflösung drastisch zugenommen hat, und deshalb auch die Datentransfermenge zwischen dem RIP und der Anzeige- oder Wiedergabeeinrichtung sowie zum RIP selbst, ist der RIP bei der Übersetzung des PDL- Datenstroms in eine Bitmap zum Engpaß geworden. Diese Entwicklung ist auf den höheren Durchsatz der derzeitigen Übertragungsmittel zurückzuführen. Der Durchsatz eines Übersetzungsvorgangs in einem RIP kann über die Datenmenge in dem PDL-Datenstrom pro Zeiteinheit definiert werden, die durch das RIP-System verarbeitet werden kann. In der Vergangenheit wurden verschiedene Maßnahmen zur Vergrößerung des Durchsatzes getroffen:
- 1) Der Durchsatz des Hardware-Prozessors, auf dem der Übersetzungsprozeß abläuft, kann durch Verwendung eines schnelleren Prozessors oder eigener Hardware vergrößert werden;
- 2) Programmiertechniken oder -sprachen können angewandt werden, um die Gesamtsystemleistung zu verbessern;
- 3) Der Umsetzungsprozeß kann sequenziell in Teilprozesse aufgeteilt werden, die auf verschiedenen Prozessoren ausgeführt werden.
- Der Nachteil der Verwendung eigener Hardware, z. B. zur Erzeugung einer Bitmap, ist die schlechte Wirtschaftlichkeit. Wenn es zu Änderungen der Anforderungen an Funktion, Leistung oder Vermarktung kommt, kann eine hohe Investition in Hardware-Aktualisierung notwendig sein. Ein System, das auf standardmäßigen Hardware- Komponenten und konfigurierbaren Softwaremodulen basiert, gestattet eine höhere Flexibilität, um schnell auf sich ändernde Anforderungen zu reagieren. Somit besteht ein großer Bedarf, den Durchsatz eines Bildbearbeitungsprozessors mit kostengünstigen fertigen Hardware-Komponenten und konfigurierbaren Softwaretechniken zu vergrößern. Auch die WO-A 94 11805 betrifft die Verarbeitung von PDL-Daten, es wird jedoch keine parallele Verarbeitung wie in der vorliegenden Anmeldung besprochen.
- Eine erste Aufgabe der Erfindung besteht deshalb darin, ein Verfahren zur Verbesserung der Leistung eines Bildbearbeitungsprozessors bereitzustellen.
- Eine weitere Aufgabe der Erfindung ist die Bereitstellung eines Verfahrens, bei dem mehrere Prozessoren gleichzeitig arbeiten können.
- Noch eine weitere Aufgabe der Erfindung ist die Bereitstellung eines Verfahrens, so daß die Leistung nahezu eine lineare Funktion der Anzahl von parallel arbeitenden Prozessoren ist.
- Eine besondere Aufgabe der Erfindung besteht darin, daß trotz der parallelen Verarbeitung die korrekte Seitenfolge, die zu dem Anzeige- oder Wiedergabegerät oder dem zugrundeliegenden System gesendet wurde, aufrechterhalten wird.
- Weitere Aufgaben und Vorteile der Erfindung werden aus der folgenden Beschreibung ersichtlich.
- Die oben angeführten Aufgaben können durch ein Verfahren mit den in Anspruch 1 dargelegten spezifischen Merkmalen realisiert werden. Ein Bildwiedergabesystem und ein Bildbearbeitungsprozessor, die das erfindungsgemäße Verfahren verwenden können, werden ebenfalls hier beschrieben und in dem unabhängigen Anspruch 13 beansprucht.
- Spezifische Merkmale für bevorzugte Ausführungsformen der Erfindung werden in den abhängigen Ansprüchen dargelegt.
- Der PDL-Datenstrom wird gewöhnlich in einen Übergangs- Datenstrom umgesetzt, der sich für eine Umsetzung in eine Bitmap-Darstellung zur Wiedergabe des durch den PDL-Datenstrom beschriebenen Bildes eignet.
- Die Erzeugung unabhängiger PDL-Datenstromsegmente hat den Vorteil, daß die Segmente gleichzeitig verarbeitet werden können und die Verarbeitungslast über verschiedene Teilprozesse verteilt werden kann, die parallel auf mehreren Prozessoren ablaufen. Bei einer bevorzugten Ausführungsform wird aus Steuerbefehlen ein Übersetzungszustand aufgebaut und durch die Teilprozesse aufrechterhalten, die die Segmente in Übergangs-Datenstromteile übersetzen. Dies hat den Vorteil, daß zwischen Teilprozessen keine Kommunikation erforderlich ist. Bei einer anderen Ausführungsform kann der Übersetzungszustand in einem zentralen Prozeß aufgebaut werden. Jeder Teilprozeß muß von diesem zentralen Prozeß den korrekten Übersetzungszustand erhalten. Bei einer besonders bevorzugten Ausführungsform wird die Übermittlung von Steuerbefehlen reduziert. Ferner wird die Verarbeitung erweiterter Steuerbefehle, wie unten definiert, vorzugsweise von einem Teilprozeß, möglicherweise für jeden Befehl unterschiedlich, ausgeführt. Ein zentraler Hauptprozeß wäre ein Engpaß, wenn er alle solchen Befehle verarbeiten müßte. Durch Verteilen erweiterter Steuerbefehle auf verschiedene Teilprozesse können diese Befehle darüber hinaus außerdem parallel oder gleichzeitig verarbeitet werden.
- Ein PDL-Datenstrom ist, wie bereits erwähnt, eine Folge elektronischer Signale, die in einer bestimmten Seitenbeschreibungssprache auf höherer Ebene beschreiben, wie ein Bild auf einer Druckausgabe oder auf einer Videoanzeigeeinheit aussehen muß. Das Bild kann nur aus Text bestehen, wie gedruckte Seiten. Das Bild kann außerdem Grafiken, Bilder, Halbtonbilder usw. enthalten. Beispiele für PDL sind PostScript, AgfaScript, IPDS. Ein Übergangs-Datenstrom ist eine Folge elektrischer Signale, die dasselbe Bild, aber auf einer niedrigeren Ebene beschreiben. Ein typisches Beispiel ist eine Anzeigeliste, die ein Bild als eine Kombination von Trapezen beschreibt. Die Umsetzung aus dem Übergangs- Datenstromformat in eine Bitmap-Darstellung kann dann auf effiziente Weise durchgeführt werden. Gemäß dem Verfahren der vorliegenden Erfindung kann der Übergangs-Datenstrom ebenfalls eine Bitmap-Darstellung des auf dem Ausgabemedium wiederzugebenden Bildes sein. Dementsprechend ist kein zusätzlicher Umsetzungsschritt aus dem Übergangs-Datenstromformat in eine Bitmap- Darstellung erforderlich. Der Unterschied zwischen Datenbefehlen und Steuerbefehlen wird in der nachfolgenden ausführlichen Beschreibung weiter besprochen.
- Ein unabhängiges PDL-Datenstromsegment ist ein Teil des vollständigen PDL-Datenstroms. Alle Datenbefehle aus dem PDL-Datenstrom können in derselben Sequenz in den Segmenten gefunden werden. Alle Datenbefehle, die einer Seite oder einem Bereich entsprechen, werden immer in nur einem Segment gruppiert. Ein Bereich ist ein disjunktiver Teil eines physischen Mediums. Ein Segment beschreibt also das vollständige Bild, das auf mindestens einem solchen Bereich wiedergegeben werden soll. Gemäß dem Verfahren der vorliegenden Erfindung wird also jeder Datenbefehl aus dem PDL-Datenstrom nur einem Segment zugewiesen. Im Gegensatz zu Steuerbefehlen, die über verschiedene Segmente hinweg vervielfältigt werden können, wird ein spezifischer Datenbefehl nicht über mehrere Segmente hinweg vervielfältigt oder verteilt und befindet sich nur in einem Segment. Ein Segment enthält gewöhnlich mehrere Datenbefehle, die die Beschreibung eines Bereichs bilden. Darüber hinaus kann ein Segment Datenbefehle enthalten, die mehr als einem Bereich entsprechen.
- Im Gegensatz zu Datenbefehlen können zusätzliche Steuerbefehle hinzugefügt werden, damit jedes Segment unabhängig wird. Gemäß dem Verfahren der vorliegenden Erfindung wird mindestens ein Steuerbefehl einmal oder mehrfach vervielfältigt und in zwei oder mehreren verschiedenen Segmenten gesendet. Außerdem ist es möglich, daß einige überflüssige Steuerbefehle aus den erzeugten Segmenten entfernt werden, um die Leistung zu steigern. Ein solches Segment beschreibt einen oder mehrere Bereiche oder eine oder mehrere Seiten. Wie bereits erwähnt, ist ein Bereich ein disjunktiver Teil eines physischen Mediums. Im einfachsten Fall beschreibt jedes Segment ein Bild, das auf einer einzelnen Seite gedruckt werden soll. Bei der Mikrographie werden verschiedene "Seiten" auf einem einzigen physischen Mikrofilm angeordnet. In diesem Fall kann das vollständige Bild auf einem Mikrofilm durch mehrere unabhängige PDL-Datenstromsegmente beschrieben werden. Außerdem ist es möglich, daß eine physische Seite aus zwei rechteckigen Textblöcken und einem Bereich um die Blöcke herum zusammengesetzt ist. Jeder einzelne Textblock kann durch ein unabhängiges PDL-Datenstromsegment beschrieben werden, das aus einem Textbild zusammengesetzt ist, und der Bereich um diese Blöcke kann ein anderes Bild darstellen, das durch ein unabhängiges PDL-Datenstromsegment beschrieben wird, das Grafiken, Referenzen, Positionsmarkierungen usw. umfaßt. Bei einer anderen Ausführungsform kann eine physische Seite in aufeinanderfolgende angrenzende, aber disjunktive Bänder aufgeteilt werden. Datenbefehle und Steuerbefehle, die sich auf das Bild in jedem einzelnen Band auswirken, können in einem unabhängigen PDL-Datenstromsegment angeordnet werden.
- Die Transformation des PDL-Datenstroms in unabhängige PDL-Datenstromsegmente geschieht vorzugsweise durch einen Hauptprozeß. Die Umsetzung einzelner unabhängiger PDL-Datenstromsegmente in Übergangs-Datenstromteile wird vorzugsweise von einem oder mehreren Teilprozessen durchgeführt. Der Hauptprozeß und die mehreren Teilprozesse können gleichzeitig auf einem oder mehreren Verarbeitungssystemen ablaufen. Die Anzahl von Prozessen kann größer oder gleich der Anzahl von Prozessoren sein. Dementsprechend kann die Übersetzung unabhängiger PDL-Datenstromsegmente parallel auf verschiedenen Prozessoren ablaufen. Durch die Wahl der Menge von Teilprozessen, der Menge von Prozessorsystemen und der Verteilung der Teilprozesse über die Prozessorsysteme kann der Grad der Parallelisierung abgestimmt werden. Bei Verwendung des erfindungsgemäßen Verfahrens ist der Durchsatz nahezu eine lineare Funktion der Anzahl von Prozessorsystemen.
- Die Erfindung wird im folgenden anhand von Beispielen unter Bezugnahme auf die beigefügte Zeichnung beschrieben. Es zeigt:
- Fig. 1 eine spezifische Ausführungsform zur Ausführung des Verfahrens gemäß der vorliegenden Erfindung.
- Mit Bezug auf Fig. 1 enthält ein PDL-Datenstrom 31 hauptsächlich Befehle und wahlweise z. B. Kommentare. Die Kommentare müssen gewöhnlich nicht weiter verarbeitet werden. Die Befehle können in Datenbefehle und Steuerbefehle aufgeteilt werden. Die Steuerbefehle können weiter in erweiterte Steuerbefehle und reduzierte Steuerbefehle aufgeteilt werden. Die Unterscheidung zwischen erweiterten und reduzierten Steuerbefehlen kann auf der Grundlage ihrer Semantik, aber auch auf der Grundlage ihrer Größe erfolgen.
- Datenbefehle beschreiben, welche Daten, wie zum Beispiel Text, Grafiken und Bilder, wiedergegeben werden müssen. Der Inhalt eines Datenbefehls kann die wiederzugebenden Daten vollständig beschreiben, der Datenbefehl umfaßt jedoch gewöhnlich eine implizite oder explizite Referenz auf erweiterte Datenstrukturen. Diese werden durch erweiterte Steuerbefehle definiert oder liegen permanent in dem Bildbearbeitungsprozessorsystem vor. Typische erweiterte Datenstrukturen sind verankerte oder heruntergeladene Schriftsatzbeschreibungen, Seitenteile, Formulare und Overlays.
- Während Datenbefehle beschreiben, welche Daten wiedergegeben werden müssen, definieren Steuerbefehle, wie die Daten wiedergegeben werden müssen. Zur Verarbeitung eines Datenbefehls müssen die Teilprozesse 36, 37, die PDL-Datenstromsegmente in Übergangs-Datenstromsegmente umsetzen, einen Übersetzungszustand behandeln, der diesen Datenbefehl betrifft. Der Übersetzungszustand wird aus den vorherigen Steuerbefehlen aufgebaut. Bei bestimmten PDLs wirken lokale Steuerbefehle nur einmal und werden von einem lokalen Vorgabe-Steuerbefehl ersetzt, wenn der erforderliche lokale Befehl nicht vorliegt. Lokale Steuerbefehle tragen nicht zu dem Übersetzungszustand bei. Solche PDLs definieren globale Steuerbefehle als wirksam, bis ihre Wirkung durch einen anderen globalen Steuerbefehl aufgehoben wird. Ihre Wirkung bleibt über nachfolgende Bereiche oder Seiten hinweg gültig, und dementsprechend tragen globale Steuerbefehle zu dem Übersetzungszustand bei.
- Die meisten PDL-Datenströme beschreiben nachfolgende Bereiche bereichs- oder seitenunabhängig. Es muß aber eine klare Trennung von Datenbefehlen, die zu einem Bereich gehören, möglich sein. Bei der Sprache IPDS wird zum Beispiel der Beginn von Datenbefehlen, die eine Seite betreffen, durch den Befehl "BeginPage" angegeben. Der letzte Datenbefehl, der mit einer Seite zusammenhängt, wird durch den Befehl "EndPage" angegeben. Die Teilprozesse 36, 37, die die Datenbefehle in Übergangs-Datenstromteile übersetzen, müssen über eine vollständige Kenntnis des Übersetzungszustands verfügen, was entscheidend für die korrekte Übersetzung der Datenbefehle aus dem PDL- Datenstrom in den Übergangs-Datenstrom ist. Der Übersetzungszustand ist aus allen vorherigen Steuerbefehlen zusammengesetzt, einschließlich der Steuerbefehle, die den Übersetzungszustand vorheriger Bereiche oder Seiten definieren. Jeder Teilprozeß muß entweder den Übersetzungszustand über verschiedene unabhängige PDL- Datenstromsegmente hinweg mitverfolgen oder muß durch den Inhalt jedes unabhängigen PDL-Datenstromsegments eine vollständige Kenntnis des Übersetzungszustands für das aktuelle unabhängige PDL-Datenstromsegment erhalten. Die erste Alternative ist nur schwer zu realisieren, da aufgrund der Vielzahl von Teilprozessen jeder Teilprozeß nur einen Teil der vollständigen Menge unabhängiger PDL-Datenstromsegmente übersetzt.
- Erweiterte Steuerbefehle können erweiterte Datenstrukturen gemäß der obigen Beschreibung definieren und löschen. Obwohl das Löschen einer erweiterten Datenstruktur durch einen kurzen Befehl angewiesen werden kann, wird ein solcher Löschbefehl vorzugsweise ebenfalls als ein erweiterter Steuerbefehl behandelt. Diese erweiterten Datenstrukturen werden vorzugsweise vorübergehend oder permanent auf einem Speichergerät 46, wie zum Beispiel einer Festplatte, einem anderen Magnetspeicher oder einem elektronischen Speichermedium, wie zum Beispiel RAM, ROM, PROM, EPROM, EEPROM usw. gespeichert. Vorzugsweise wird die Verwaltung erweiterter Datenstrukturen einem zentralen Speicherprozeß 45 zugewiesen. Als Alternative kann diese Aufgabe durch den Hauptprozeß 32 durchgeführt werden. Erweiterte Datenstrukturen können zu diesem zentralen Speicherprozeß 45, der die Strukturen in ein Datenformat umsetzt, das sich für das Speichermedium eignet, gesendet oder von diesem abgerufen werden. Es können mehrere Teilprozesse gleichzeitig erweiterte Datenstrukturen senden und abrufen.
- Mit Bezug auf Fig. 1 empfängt der Hauptprozeß 32 den PDL-Datenstrom 31 gewöhnlich von einem (nicht gezeigten) externen Gerät, auf dem eine Bedienungsperson interaktiv die auf der Druckausgabe wiederzugebenden Bilder spezifiziert hat. Der PDL- Datenstrom 31 kann außerdem durch ein Drucker-Spooler- Programm erzeugt werden, das z. B. auf Mikrofilm zu druckende Account-Informationen erzeugt. Gewöhnlich kann der Hauptprozeß 32 auch Fehler, Ausnahmen oder Statusinformationen auf Anforderung zu dem externen Gerät zurücksenden.
- Bei einer bevorzugten Ausführungsform erzeugt der Hauptprozeß 32 fehlerfreie unabhängige PDL-Datenstromsegmente, d. h. die Teilprozesse 36, 37 stoßen auf keine Ausnahmen, für die eine Kommunikation mit dem Hauptprozeß 32 notwendig ist. Dies bedeutet außerdem, daß Fehler, Unzulänglichkeiten oder Vorgabewerte, die in dem PDL-Datenstrom auftreten, vorzugsweise durch den Hauptprozeß 32 abgewickelt werden.
- Bei einer besonders bevorzugten Ausführungsform führt der Hauptprozeß 32 eine beschränkte Syntaxprüfung durch, um festzustellen, ob die ankommenden Befehle interpretiert werden können. Dazu kann eine Prüfung der Länge der Befehle, eine Prüfung von Kopfteilen usw. gehören. In diesem Fall muß jeder Teilprozeß Semantikprüfungen durchführen und dadurch bestimmen, ob die Datenbefehle tatsächlich in auf dem physischen Ausgabemedium wiederzugebende Bildteile umgesetzt werden können. Dazu gehört in der Regel eine Prüfung, ob die referenzierten Fonts oder Fontparameter definiert worden sind usw. Die Verteilung dieser Semantikprüfungen auf die Teilprozesse 36, 37 hat den Vorteil, daß der Hauptprozeß 32 entlastet wird.
- Fehlerantworten aus dem Teilprozeß 36, 37 zum Hauptprozeß 32 werden vorzugsweise über denselben Weg gesendet wie Steuerbefehlsantworten 44 (siehe unten). Der Hauptprozeß 32 analysiert den PDL-Datenstrom 31 und insbesondere die Steuerbefehle. Die Hauptaufgabe des Hauptprozesses 32 besteht darin, unabhängige PDL- Datenstromsegmente 33 zu erzeugen, so daß jedes Segment unabhängig von jedem anderen Segment verarbeitet werden kann. Diese Unabhängigkeit garantiert, daß eine parallele Verarbeitung, auch durch verschiedene Verarbeitungssysteme, machbar ist. Dazu kann man in jedes Segment eine vollständige Übersetzungszustandsbeschreibung einfügen, die die Datenbefehle in dem Segment betrifft. Da jedes unabhängige PDL-Datenstromsegment genug Datenbefehle enthält, um zu beschreiben, welche Bilder auf dem Bereich oder der Seite wiedergegeben werden müssen, und eine vollständige Menge von Steuerbefehlen, um anzuweisen, wie die Datenbefehle interpretiert werden müssen, können die unabhängigen PDL-Datenstromsegmente unabhängig voneinander verarbeitet werden. Vorzugsweise wird jedes unabhängige PDL- Datenstromsegment oder eine Referenz auf dieses Segment, die häufig durch einen Speicheradressenzeiger realisiert wird, durch den Hauptprozeß 32 in eine FIFO- Warteschlange (first in, first out) 34 eingereiht. Die FIFO-Organisation stellt sicher, daß die unabhängigen PDL-Datenstromsegmente von den Teilprozessen 36, 37 in derselben Reihenfolge gewählt werden, in der diese unabhängigen PDL-Datenstromsegmente von dem Hauptprozeß 32 erzeugt werden. Ein oder mehrere Teilprozesse 36, 37 können dann auf die FIFO-Warteschlange zugreifen und ein unabhängiges PDL-Datenstromsegment 35 zur Verarbeitung zuteilen. Da jedes unabhängige PDL- Datenstromsegment selbstständig ist, ist es gleichgültig, welcher Teilprozeß welches unabhängige PDL-Datenstromsegment entnimmt. Immer wenn ein Teilprozeß mit einem unabhängigen PDL-Datenstromsegment fertig ist, kann er der FIFO-Warteschlange ein weiteres unabhängiges PDL-Datenstromsegment entnehmen. Somit wird nicht ein spezifisches unabhängiges PDL- Datenstromsegment einem spezifischen Teilprozeß zugewiesen, sondern jeder Teilprozeß wählt das nächste unabhängige PDL-Datenstromsegment, das zur Verarbeitung verfügbar ist, aus der FIFO-Warteschlange. Dementsprechend wird die Last der Teilprozesse 36, 37 automatisch ausgeglichen und die Übersetzungsarbeit, die für verschiedene unabhängige PDL-Datenstromsegmente sehr unterschiedlich sein kann, gleichmäßig über die Teilprozesse 36, 37 verteilt. Da jedes unabhängige PDL- Datenstromsegment selbstständig ist, ist keine zusätzliche Kommunikation wechselseitig zwischen den Teilprozessen 36, 37 oder zwischen dem Hauptprozeß 32 und jedem Teilprozeß notwendig. Dies ist ein großer Vorteil, wenn die verschiedenen Teilprozesse 36, 37 über verschiedene Prozessoren verteilt sind. Die wechselseitige Kommunikation von Daten, z. B. unabhängigen PDL-Datenstromsegmenten, zwischen den Prozessoren erfolgt:
- - über eine gemeinsame Busstruktur, z. B. einen VME-Bus;
- - über Punkt-zu-Punkt-Strecken, z. B. RS232-C seriell, Parallel Centronics, usw.;
- - über Netzwerkverbindungen, z. B. Ethernet, Ethertalk, usw.
- Über diese Verbindung muß nur das vollständige unabhängige PDL-Datenstromsegment übertragen werden. Vorzugsweise besitzt jeder Prozessor einen unabhängigen Speicher, der erforderlich ist, um die Daten in einem unabhängigen PDL-Datenstromsegment, den Übergangs- Datenstromteil 38, der aus dem unabhängigen PDL- Datenstromsegment 35 erzeugt wird, und bestimmte lokale Datenstrukturen, die für die Übersetzung des unabhängigen PDL-Datenstromsegments in den Übergangs- Datenstrom erforderlich sind, zu halten.
- Der Hauptprozeß 32 und die Teilprozesse 36, 37 können frei über die verfügbaren Prozessorsysteme verteilt werden. Wenn zwei Prozessorsysteme A und B verfügbar sind, könnte der Hauptprozeß 32 auf dem Prozessorsystem A ablaufen, und ein Teilprozeß könnte auf dem Prozessorsystem B ablaufen. Wenn ein zweiter Teilprozeß installiert wäre, könnte dieser auf dem Prozessorsystem A gleichzeitig mit dem Hauptprozeß 32 ablaufen. Wenn ein dritter Teilprozeß installiert wäre, könnte dieser auf dem Prozessorsystem B gleichzeitig mit dem ersten Teilprozeß ablaufen. Bei einer bevorzugten Ausführungsform ist die Anzahl von Prozessorsystemen nicht kleiner als die Anzahl von Teilprozessen. Wenn zwei Prozesse auf einem Prozessorsystem ablaufen, nehmen sie vorzugsweise jeweils eine Partition des unabhängigen Speichers ein. Die Übertragung eines unabhängigen PDL-Datenstromsegments von dem Hauptprozeß 32 zu einem Teilprozeß auf demselben Prozessorsystem kann durch eine Speicherkopie des unabhängigen PDL- Datenstromsegments aus der Hauptprozeßpartition zu der Teilprozeßpartition erfolgen. Als Alternative können die Speicherblöcke, die das unabhängige PDL- Datenstromsegment enthalten, aus der Hauptprozeßpartition freigegeben und, vorzugsweise durch den Teilprozeß, der Teilprozeßpartition zugewiesen werden. Solche Blöcke können der Hauptprozeßpartition wieder zugewiesen werden, sobald der Teilprozeß mit der Verarbeitung des unabhängigen PDL-Datenstromsegments fertig ist. Auch wenn der Hauptprozeß 32 und der Teilprozeß nicht auf demselben Prozessorsystem ablaufen, ist es möglich, dem Teilprozeß einen Zeiger auf die Speicherstelle zu geben, an der das unabhängige PDL-Datenstromsegment verankert ist. Der Teilprozeß 36 oder 37 kann dann über den Bus, die Verbindung oder das Netzwerk, wodurch die beiden Prozessorsysteme verbunden sind, auf die Daten in dem unabhängigen PDL-Datenstromsegment zugreifen.
- Bei der oben beschriebenen ersten Ausführungsform baut der Hauptprozeß 32 aus Steuerbefehlen, die in dem PDL- Datenstrom vorliegen, einen Übersetzungszustand auf. Jeder Teilprozeß erhält eine vollständige Übersetzungszustandsbeschreibung durch Steuerbefehle in einem Kopfteil jedes unabhängigen PDL-Datenstromsegments. Die Übertragung von Steuerbefehlen, die den aktuellen Übersetzungszustand vollständig beschreiben, kann den folgenden Teilen eine große Last auferlegen:
- - dem Hauptprozeß 32, der die Steuerbefehle erzeugt;
- - dem Übertragungssystem zur Übermittlung der Steuerbefehle von dem Hauptprozeß 32 zu dem Teilprozeß; und
- - dem Teilprozeß für die Analyse der Steuerbefehle und den Aufbau eines aktuellen Zustands, der für die Verarbeitung der Datenbefehle in dem vorliegenden Segment geeignet ist.
- Eine Alternative könnte darin bestehen, den Übersetzungszustand zentral zu halten.
- Bei einer bevorzugten Ausführungsform baut jeder Teilprozeß lokal einen Teilprozeß-Übersetzungszustand auf und behält nach der Verarbeitung eines unabhängigen PDL-Datenstromsegments im Kontext des Teilprozeß- Übersetzungszustands die Zustandsinformationen als Startpunkt zur Verwendung während der Verarbeitung des nächsten unabhängigen PDL-Datenstromsegments bei. Vorzugsweise enthält der Kopfteil des unabhängigen PDL- Datenstromsegments Steuerbefehle, um den Teilprozeß- Übersetzungszustand für die korrekte Verarbeitung der Datenbefehle in dem unabhängigen PDL-Datenstromsegment geeignet einzustellen. Somit muß der Hauptprozeß 32 nur Änderungen zwischen einem aktuellen Hauptübersetzungszustand und dem Teilprozeß-Übersetzungszustand übermitteln. Bisher gibt es jedoch keinen Mechanismus, durch den der Hauptprozeß 32 den Teilprozeß- Übersetzungszustand erfahren kann, was erforderlich ist, um die Änderungen zu übermitteln. Außerdem kann jeder Teilprozeß einen anderen Teilprozeß- Übersetzungszustand aufweisen, und der Hauptprozeß 32 entscheidet nicht, durch welchen Teilprozeß ein spezifisches unabhängiges PDL-Datenstromsegment verarbeitet wird.
- Bei einer bevorzugten Ausführungsform gibt daher jeder Teilprozeß, der seinen Teilprozeß-Übersetzungszustand gemäß Steuerbefehlen verändert, diese Änderung als Antwort mittels einer Steuerbefehlantwort 44 an den Hauptprozeß 32 zurück. Der Hauptprozeß 32 sammelt diese Antworten für jeden Teilprozeß und verfolgt ein gemeinsames Übersetzungszustands-Level. Das gemeinsame Übersetzungszustands-Level ist definiert als der Übersetzungszustand, der aus denjenigen Steuerbefehlen aufgebaut wird, die von allen Teilprozessen verarbeitet und beantwortet wurden. Gemäß dieser Definition hat jeder Teilprozeß einen Teilprozeß-Übersetzungszustand erreicht, der mindestens so neu ist wie das gemeinsame Übersetzungszustands-Level. Deshalb kann der Hauptprozeß 32 Zustandsänderungen sicher auf der Grundlage des Unterschieds zwischen dem aktuellen Hauptübersetzungszustand und dem gemeinsamen Übersetzungszustands-Level durchführen. Diese Zustandsänderungen zeigen an, welche Steuerbefehle in dem nächsten unabhängigen PDL-Datenstromsegment, das erzeugt wird, übertragen werden müssen. Wenn mehr als ein Teilprozeß die unabhängigen PDL-Datenstromsegmente interpretiert, ist es sehr wahrscheinlich, daß mindestens ein Teilprozeß einen Teilprozeß- Übersetzungszustand erreicht hat, der neuer ist als das gemeinsame Übersetzungszustands-Level. Wenn ein solcher Teilprozeß ein nächstes unabhängiges PDL- Datenstromsegment zur Verarbeitung erhält, enthält dieses unabhängige PDL-Datenstromsegment Steuerbefehle, die bereits von dem Teilprozeß verarbeitet wurden. Der Teilprozeß verwirft vorzugsweise diese überflüssigen Steuerbefehle, führt keine Zustandsänderung durch und gibt keine Antwort an den Hauptprozeß 32 aus, da die Zustandsänderung und die Antwort bereits erzeugt wurden. Somit ist es klar, daß jeder Teilprozeß nur einmal auf jeden nicht überflüssigen Steuerbefehl antwortet. Ob ein Steuerbefehl überflüssig ist oder nicht, hängt von dem Übersetzungszustand des Teilprozesses ab. In diesem Fall kann der Hauptprozeß 32 mitverfolgen, wie oft auf einen spezifischen Steuerbefehl geantwortet wurde. Wenn diese Anzahl für einen spezifischen Steuerbefehl die Anzahl von Teilprozessen in dem System erreicht, aktualisiert dieser spezifische Steuerbefehl den gemeinsamen Übersetzungszustands-Level. Auf diese Weise muß der Hauptprozeß 32 nicht den Teilprozeß-Übersetzungszustand mitverfolgen, der von jedem Teilprozeß einzeln zurückgegeben wird. Dieser Prozeß reduziert auf der Grundlage der Antwort auf Steuerbefehle drastisch die Menge von Steuerbefehlen, die von dem Hauptprozeß 32 in den unabhängigen PDL-Datenstromsegmenten ausgegeben wird, und wird deshalb als Steuerbefehlreduktion bezeichnet.
- Eine weitere Steuerbefehlreduktion wird vorzugsweise durch den folgenden Prozeß erzielt. Der Hauptprozeß 32 analysiert nicht das Vorliegen jedes Steuerbefehls in dem PDL-Datenstrom, sondern seinen Wert. Wenn aus dem Inhalt des Steuerbefehls klar ist, daß er den Hauptübersetzungszustand nicht ändert, wird der Steuerbefehl in kein unabhängiges PDL-Datenstromsegment eingefügt. Auf diese Weise reduziert der Hauptprozeß 32 die Menge von Steuerbefehlen, ohne die Unabhängigkeit der PDL- Datenstromsegmente zu beeinträchtigen. Diese weitere Steuerbefehlreduktion führt zu einem zusätzlichen Verarbeitungsschritt für den Hauptprozeß 32. Abhängig von der Last dieser zusätzlichen Steuerbefehlverarbeitung durch den Hauptprozeß 32 im Gegensatz zu der Last des Übertragens der überflüssigen Steuerbefehle über die Segmente zu den Teilprozessen 36, 37, muß entschieden werden, ob diese Optimierung implementiert wird oder nicht. Wenn der Hauptprozeß 32 kein Engpaß ist, kann der Hauptübersetzungszustand aus einer vollständigen Analyse jedes Steuerbefehls aufgebaut werden, und diese Optimierung verbessert den Gesamtdurchsatz des Systems.
- Insofern als die unabhängigen PDL-Datenstromsegmente völlig unabhängig sein müssen, ist es notwendig, daß außerdem erweiterte Steuerbefehle in alle nachfolgenden unabhängigen PDL-Datenstromsegmente eingefügt werden. Die Einfügung erweiterter Steuerbefehle in diese nachfolgenden unabhängigen PDL-Datenstromsegmente hat drei wichtige Nachteile:
- 1) Solch ein erweiterter Steuerbefehl kann möglicherweise zu groß sein, um in mehr als ein unabhängiges PDL-Datenstromsegment eingefügt zu werden.
- 2) Die Verarbeitung erweiterter Steuerbefehle erfordert eine beträchtliche Verarbeitungszeit. Es sollte nicht allen Teilprozessen dieselbe Last auferlegt werden.
- 3) Die aus einem solchen erweiterten Steuerbefehl erzeugten erweiterten Datenstrukturen können möglicherweise zu groß sein, um von jedem Teilprozeß getrennt gespeichert zu werden.
- Bei einer bevorzugten Ausführungsform kann das erste und das zweite Problem gelöst werden, indem ein erweiterter Steuerbefehl nicht in ein unabhängiges PDL- Datenstromsegment eingefügt, sondern durch den Hauptprozeß 32 oder einen zentralen Prozeß verarbeitet wird. Das dritte Problem wird durch die zentrale Speicherung der aus dem erweiterten Steuerbefehl erzeugten erweiterten Datenstruktur gelöst. Die Nachteile dieser Lösung sind die folgenden:
- 1) Sie würde zu einer zusätzlichen Belastung des Hauptprozesses 32 führen;
- 2) es könnten nicht mehrere erweiterte Steuerbefehle gleichzeitig bearbeitet werden.
- Bei einer besonders bevorzugten Ausführungsform wird das erste und das zweite Problem gelöst, indem jeder einzelne erweiterte Steuerbefehl nur in ein unabhängiges PDL-Datenstromsegment eingefügt wird. Durch diese Wahlmöglichkeit ist nur diesem Teilprozeß, durch den er verarbeitet wird, der erweiterte Steuerbefehl bewußt. Wenn mehrere Teilprozesse parallel ablaufen, ist es möglich, daß mehrere erweiterte Steuerbefehle, wie zum Beispiel die Definition oder Erzeugung von Fonts, gleichzeitig verarbeitet werden. Das dritte Problem wird gelöst, indem die erweiterte Datenstruktur zur Speicherung auf einem Speichergerät 46 zu einem zentralen Speicherprozeß 45 gesendet wird. Vorzugsweise wird ein erweiterter Steuerbefehl in einem unabhängigen PDL-Datenstromsegment (d. h. einem "Dummy"- Segment) gespeichert, das darüber hinaus keine anderen erweiterten Steuerbefehle oder Datenbefehle enthält. Die Verarbeitung dieser Art von Segment führt zu einem leeren Übergangs-Datenstromteil und zusätzlich zu der Erzeugung einer erweiterten Datenstruktur, die zur Speicherung auf dem Speichergerät 46 zu dem zentralen Speicherprozeß 45 gesendet wird.
- Um andere Teilprozesse über die Existenz des erweiterten Steuerbefehls zu informieren, wird vorzugsweise ein spezifischer Steuerbefehl, der als der Steuerbefehl "version" bezeichnet wird, in alle nachfolgenden unabhängigen PDL-Datenstromsegmente eingefügt. Ein Version-Steuerbefehl hat dieselbe Syntax wie gewöhnliche Steuerbefehle, wird aber nur durch den Hauptprozeß 32 eingeführt und in unabhängige PDL- Datenstromsegmente eingeführt. Der Version-Steuerbefehl hat außerdem die Funktion, die erweiterten Datenstrukturen, die aus dem erweiterten Steuerbefehl erzeugt werden, allen Teilprozessen zur Verfügung zu stellen. Jeder Teilprozeß führt vorzugsweise eine lokale Tabelle, in der gültige erweiterte Datenstrukturen identifiziert werden. Diese Identifikation wird zum Zugriff auf die erweiterten Datenstrukturen über den zentralen Speicherprozeß 45 verwendet. Jeder Version- Steuerbefehl enthält eine solche Identifikation.
- Ein Version-Steuerbefehl wird für die Erzeugung und Entfernung einer erweiterten Datenstruktur eingeführt. Bei der Erzeugung wird ein Eintrag in der lokalen Tabelle des Teilprozesses hinzugefügt, der die erzeugte erweiterte Datenstruktur identifiziert. Bei der Entfernung wird der entsprechende Eintrag in der Tabelle entfernt. Es ist von äußerster Wichtigkeit, daß die Abfolge dieser Operationen ordnungsgemäß aufrechterhalten wird. Der Hauptprozeß 32 muß die richtige Abfolge beibehalten, so daß jeder Teilprozeß die Version-Steuerbefehle in der erforderlichen Reihenfolge erhält. Außerdem darf derselbe Teilprozeß nicht denselben Version-Steuerbefehl zwei- oder mehrmals vollständig verarbeiten und damit seine internen Tabellen aktualisieren.
- Gemäß der obigen Besprechung der Steuerbefehlreduktion wird in den Kopfteil jedes unabhängigen PDL- Datenstromsegments ein "Version"-Steuerbefehl eingefügt, und zwar vorzugsweise so lange, bis alle Teilprozesse 36, 37 dem Hauptprozeß 32 die Verarbeitung des "Version"-Steuerbefehls zurückgemeldet haben.
- Als Alternative führt der Hauptprozeß 32 eine Tabelle mit Identifikationen der gültigen erweiterten Datenstrukturen und sendet diese Tabelle über einen Kopfteil in jedem unabhängigen PDL-Datenstromsegment zu jedem Teilprozeß. Durch einen Antwortmechanismus, wie oben beschrieben, kann die Größe der über die unabhängigen PDL-Datenstromsegmente übermittelten Tabelle immer dann reduziert werden, wenn ein bestimmter gemeinsamer Tabellen-Level für alle Teilprozesse erreicht wird. Der Hauptprozeß 32 muß die Tabelle in derselben Abfolge aktualisieren in der sie aufgebaubaut wurde.
- Um erweiterte Datenstrukturen abzurufen, die mit einem erweiterten Steuerbefehl zusammenhängen, muß jeder Teilprozeß auf den zentralen Speicherprozeß 45 zugreifen.
- Außerdem kann beabsichtigt sein, daß ein Steuerbefehl in dem Eingangsdatenstrom eine erweiterte Datenstruktur entfernt oder überschreibt. Dazu kann es zum Beispiel dann kommen, wenn ein spezifischer Font nicht mehr benutzt wird oder wenn ein Overlay durch ein anderes Overlay ersetzt werden muß usw.
- Da eine erweiterte Datenstruktur durch Datenbefehle in einem nächsten unabhängigen PDL-Datenstromsegment S2 nach einem ersten unabhängigen PDL-Datenstromsegment S1, das den erweiterten Steuerbefehl enthält, referenziert werden kann und S2 möglicherweise von einem anderen Teilprozeß P2 verarbeitet wird, als ein erster Teilprozeß P1, der S1 verarbeitet, muß ein Mechanismus Synchronisation bereitgestellen, damit sich der andere Teilprozeß P2 nicht auf die erweiterte Datenstruktur bezieht, bevor sie durch den ersten Teilprozeß P1 erzeugt wurde. Andererseits darf ein Steuerbefehl in dem PDL-Datenstrom, der eine erweiterte Datenstruktur entfernen oder überschreiben soll, von keinem Teilprozeß verarbeitet werden, bevor andere Teilprozesse die Bearbeitung vorheriger unabhängiger PDL-Datenstromsegmente vollständig abgeschlossen haben. Außerdem dürfen unabhängige PDL-Datenstromsegmente nach der Entfernung durch einen Steuerbefehl nicht verarbeitet werden, bevor die Entfernung wirksam wird.
- Bei einer Ausführungsform wird, um die erforderliche Synchronisation bereitzustellen, ein "Segment"- Steuerbefehl eingeführt, der dieselbe Syntax hat wie gewöhnliche Steuerbefehle, aber nur vom Hauptprozeß 32 eingeführt und in unabhängige PDL-Datenstromsegmente eingefügt wird. In jedes unabhängige PDL- Datenstromsegment wird nur ein Segmentsteuerbefehl eingefügt. Jeder Segmentsteuerbefehl erhält eine systemweit eindeutige Identifikation, die als Segment- ID bezeichnet wird. Der Hauptprozeß 32 signalisiert dem zentralen Speicherprozeß 45 die Identifikation der erweiterten Datenstrukturen, die durch Datenbefehle referenziert werden, zusammen mit der Segment-ID des unabhängigen PDL-Datenstromsegments, in das diese Datenbefehle eingefügt werden. Der Hauptprozeß 32 muß deshalb die Datenbefehle als Teil dieses unabhängigen PDL-Datenstromsegments analysieren. Außerdem signalisiert der Hauptprozeß 32 dem zentralen Speicherprozeß 45 die Entfernung oder das Überschreiben einer erweiterten Datenstruktur zusammen mit der Segment-ID des unabhängigen PDL-Datenstromsegments, in das der erweiterte Steuerbefehl eingefügt wird. Der Hauptprozeß 32 signalisiert dem zentralen Speicherprozeß 45 die Erzeugung einer erweiterten Datenstruktur zusammen mit der Segment-ID des unabhängigen PDL-Datenstromsegments, in das der erweiterte Steuerbefehl eingefügt wird. Immer wenn eine erweiterte Datenstruktur entweder für Entfernungszwecke oder für Erzeugungszwecke oder für Verwendungszwecke durch einen Datenbefehl durch einen Teilprozeß referenziert wird, muß die Segment-ID des unabhängigen PDL-Datenstromsegments, in das dieser erweiterte Steuerbefehl oder Datenbefehl eingefügt wird, dem zentralen Speicherprozeß 45 signalisiert werden. Dementsprechend kann der zentrale Speicherprozeß 45 die Benutzung der erweiterten Datenstrukturen in den verschiedenen unabhängigen PDL-Datenstromsegmenten mitverfolgen. Der zentrale Speicherprozeß 45 suspendiert die Entfernung oder das Überschreiben einer erweiterten Datenstruktur immer dann, wenn sie immer noch in vorherigen unabhängigen PDL-Datenstromsegmenten referenziert werden soll, und so lange, bis diese erweiterte Datenstruktur nicht mehr von Datenbefehlen in vorherigen unabhängigen PDL-Datenstromsegmenten referenziert wird. Der zentrale Speicherprozeß 45 suspendiert die Erzeugung einer erweiterten Datenstruktur immer dann, wenn eine vorherige Entfernung noch nicht wirksam ist. Der zentrale Speicherprozeß 45 suspendiert die Benutzung erweiterter Datenstrukturen in nachfolgenden unabhängigen PDL- Datenstromsegmenten, bis die erweiterten Datenstrukturen erzeugt wurden. Der Nachteil dieser Lösung besteht darin, daß der Hauptprozeß 32 die Datenbefehle analysieren muß. Dadurch kann die Verarbeitungslast des Hauptprozesses 32 sehr groß werden.
- Bei einer besonders bevorzugten Ausführungsform wird ein "sync"-Steuerbefehl eingeführt, der dieselbe Syntax hat wie gewöhnliche Steuerbefehle, aber nur vom Hauptprozeß 32 eingeführt wird und in unabhängige PDL- Datenstromsegmente eingefügt wird. Jeder sync- Steuerbefehl erhält eine systemweit eindeutige Identifikation, die als sync-ID bezeichnet wird. Durch Verarbeitung eines sync-Steuerbefehls in einem unabhängigen PDL-Datenstromsegment meldet jeder Teilprozeß den Empfang des sync an den Hauptprozeß 32 zurück und benachrichtigt außerdem über die sync-ID. Eine sync-Steuerungsantwort kann auf dieselbe Weise wie eine Steuerbefehlantwort 44 erfolgen.
- Ein sync-Steuerbefehl kann an einer beliebigen Stelle in einem unabhängigen PDL-Datenstromsegment eingefügt werden. Zum Beispiel kann ein sync-Steuerbefehl in den Kopfteil eines unabhängigen PDL-Datenstromsegments oder in den Nachspann eines unabhängigen PDL- Datenstromsegments eingefügt werden.
- Bei einer bevorzugten Ausführungsform kann jedes unabhängige PDL-Datenstromsegment ein oder mehrere Teilsegmente enthalten. Alle Teilsegmente, die zu einem Segment gehören, werden durch denselben Teilprozeß verarbeitet. Obwohl jedes Segment oder eine Referenz darauf als Ganzes in die FIFO-Warteschlange 34 eingereiht wird, können nachfolgende Teilsegmente zur durch den Hauptprozeß 32 einzelne Verarbeitung freigegeben werden. Durch diese Möglichkeit können mehrere Teilsegmente eines sehr großen unabhängigen PDL-Datenstromsegments erzeugt, in Puffern gespeichert und durch den Hauptprozeß 32 zur Verarbeitung freigegeben werden, sogar bis der Pufferraum erschöpft wird. Obwohl der Hauptprozeß 32 nicht alle Teilsegmente, die zu dem sehr großen unabhängigen PDL- Datenstromsegment gehören, verarbeitet hat, verarbeitet der Teilprozeß, der das sehr große unabhängige PDL- Datenstromsegment ausgewählt hat, die freigegebenen Teilsegmente und gibt die Puffer der verarbeiteten Teilsegmente frei. Diese freigegebenen Puffer können dann von dem Hauptprozeß 32 für nachfolgende Teilsegmente des sehr großen unabhängigen PDL- Datenstromsegments verwendet werden.
- Ein Teilprozeß, der über ein zu verarbeitendes unabhängiges PDL-Datenstromsegment einen sync- Steuerbefehl empfängt, muß den Hauptprozeß 32 sofort benachrichtigen, wenn dieser sync-Steuerbefehl von diesem Teilprozeß bearbeitet wird. Sobald ein unabhängiges PDL-Datenstromsegment, das einen solchen sync-Steuerbefehl als Teil eines Teilsegments enthält, in die FIFO-Warteschlange 34 eingereiht wird, können die nachfolgenden Teilsegmente und die nächsten unabhängigen PDL-Datenstromsegmente weiter durch den Hauptprozeß 32 erzeugt werden. Bei einer bevorzugten Ausführungsform wird ihre Freigabe zur Verarbeitung, die durch den Hauptprozeß 32 gegeben wird, verzögert, bis der Hauptprozeß 32 eine Antwort von dem sync- Steuerbefehl empfängt. Sobald die Antwort empfangen wird, gibt der Hauptprozeß 32 die nachfolgenden Teilsegmente und die unabhängigen PDL-Datenstromsegmente, die für die Verarbeitung vorbereitet wurden, zur Verarbeitung durch die Teilprozesse frei, mit Ausnahme von Teilsegmenten oder unabhängigen PDL- Datenstromsegmenten, die einem anderen sync- Steuerbefehl folgen. Solche Teilsegmente können aktiviert werden, wenn für diesen anderen sync- Steuerbefehl eine Antwort empfangen wird.
- Als Alternative stoppt der Hauptprozeß 32 die Erzeugung neuer unabhängiger PDL-Datenstromsegmente und Teilsegmente, bis die sync-Steuerantwort empfangen wurde.
- Ein sync-Steuerbefehl wird am Ende eines unabhängigen PDL-Datenstromsegments eingefügt, das einen erweiterten Steuerbefehl enthält. Ein Teilprozeß, der den Empfang eines solchen sync-Steuerbefehls an den Hauptprozeß 32 zurückmeldet, bestätigt folgendes:
- a) daß der erweiterte Steuerbefehl verarbeitet wird, so daß sich eine erweiterte Datenstruktur ergibt; und
- b) daß die erweiterte Datenstruktur allen Teilprozessen über den zentralen Speicherprozeß 45 verfügbar ist.
- Erweiterte Steuerbefehle zur Entfernung oder zum Überschreiben erweiterter Datenstrukturen dürfen ebenfalls durch keinen Teilprozeß verarbeitet werden, bevor vorherige unabhängige PDL-Datenstromsegmente vollständig von anderen Teilprozessen verarbeitet wurden, oder zumindest diejenigen unabhängigen PDL- Datenstromsegmente, die die erweiterte Datenstruktur benutzen. Dementsprechend wird ein sync-Steuerbefehl vorzugsweise als ein Kopfteil-Teilsegment in ein unabhängiges PDL-Datenstromsegment eingefügt, das einen solchen erweiterten Steuerbefehl enthält. Der Hauptprozeß 32 gibt das Teilsegment, das den sync- Steuerbefehl enthält, zur Verarbeitung durch einen Teilprozeß frei und gibt keine weiteren Teilsegmente oder unabhängigen PDL-Datenstromsegmente frei. Bei einer bevorzugten Ausführungsform werden diese weiteren Teilsegmente und unabhängigen PDL-Datenstromsegmente von dem Hauptprozeß 32 erzeugt, aber nicht zur Verarbeitung freigegeben. Ein Teilprozeß, der das Teilsegment mit dem sync-Steuerbefehl verarbeitet, meldet den Empfang eines solchen sync-Steuerbefehls an einen Pufferabwicklungsprozeß oder direkt an den Hauptprozeß 32 zurück. Ein Abfolgemechanismus stellt sicher, daß der Hauptprozeß 32 auf die sync-Steuerantwort reagiert, nachdem alle vorherigen unabhängigen PDL-Datenstromsegmente und Teilsegmente dieses unabhängigen PDL-Datenstromsegments, oder zumindest diejenigen, die die erweiterten Datenstrukturen benutzen, verarbeitet wurden. Zu diesem Zeitpunkt gibt der Hauptprozeß 32 die nachfolgenden Teilsegmente zur Verarbeitung frei, so daß der erweiterte Steuerbefehl zum Entfernen oder Überschreiben erweiterter Datenstrukturen durch den Teilprozeß verarbeitet werden kann, der den sync-Steuerbefehl abgewickelt hat. Es ist also klar, daß die sync-Steuerantwort letztendlich nur dann durch den Hauptprozeß 32 verarbeitet werden kann, wenn alle vorherigen unabhängigen PDL- Datenstromsegmente durch die Teilprozesse 36, 37 verarbeitet wurden. Diese Konzeptanforderung wird unten weiter beschrieben.
- Ein unabhängiges PDL-Datenstromsegment, das einen erweiterten Steuerbefehl zum Entfernen oder Überschreiben einer erweiterten Datenstruktur enthält, erhält außerdem einen sync-Steuerbefehl in einem Abspann-Teilsegment des unabhängigen PDL- Datenstromsegments. Auf diese Weise wird die Verarbeitung der nachfolgenden Teilsegmente und der nächsten unabhängigen PDL-Datenstromsegmente verzögert, bis die Entfernung tatsächlich bewirkt worden ist.
- Wie oben beschrieben, erzeugt jeder Teilprozeß vier Arten oder Kategorien von Antwortdaten:
- 1. Steuerbefehlantworten;
- 2. Version-Steuerantworten;
- 3. Fehlerantworten; und
- 4. sync-Steuerantworten.
- Die Verkettung aller Antworten einer Kategorie führt zu einem Antwort-Datenstrom pro Antwort-Datentyp. Für jedes unabhängige PDL-Datenstromsegment wird ein Teil jedes Antwortdatenstroms erzeugt, der im folgenden als ein Antwortdatenteil bezeichnet wird. Wegen der Beschaffenheit der Antwortdaten ist es möglich, daß bestimmte Antwortdatenteile leer sind. Wegen der Parallelität der Teilprozesse 36, 37 ist es möglich, daß Antwortdatenteile für den entsprechenden Antwortdatenstrom nicht in derselben chronologischen Reihenfolge vorliegen, in der die entsprechenden unabhängigen PDL-Datenstromsegmente von dem Hauptprozeß 32 erzeugt wurden. Für Fehlerantworten ist es eine Systemanforderung, daß die Fehlerantwortteile zu einem Fehlerantwortdatenstrom kombiniert werden, so wie es durch die Reihenfolge des PDL-Datenstroms 31 auferlegt wird. Bei den sync-Steuerantworten besteht eine Konzeptanforderung darin, daß die sync- Steuerantwortteile zu einem sync-Steuerantwortdatenstrom kombiniert werden, so wie es durch die Reihenfolge der erzeugten unabhängigen PDL- Datenstromsegmente auferlegt wird. Es ist vorzuziehen, daß die vier Antwortdatenteile - Steuerbefehlantwort, Version-Steuerantwort, sync-Steuerantwort und Fehlerantwort - von dem Teilprozeß für jedes verarbeitete unabhängige PDL-Datenstromsegment zu einem Antwortdatenteil kombiniert werden. Der Hauptprozeß 32 nimmt diese Teile von den Teilprozessen 36, 37 an und ordnet sie in der richtigen Abfolge um.
- Außerdem wurde bereits beschrieben, daß jeder Teilprozeß einen Übergangs-Datenstromteil 38 erzeugt, der effizienter in eine Bitmap-Darstellung übersetzt werden kann. Für jedes unabhängige PDL- Datenstromsegment, das Datenbefehle enthält, wird ein Teil des Übergangs-Datenstroms erzeugt. Wegen der Beschaffenheit des unabhängigen PDL-Datenstromsegments (z. B. eines "Dummy"-Segments) ist es möglich, daß bestimmte Übergangs-Datenstromteile leer sind. Wegen der Parallelität der Teilprozesse 36, 37 ist es möglich, daß Übergangs-Datenstromteile nicht bereits in derselben chronologischen Reihenfolge vorliegen, in der die entsprechenden unabhängigen PDL-Datenstromsegmente durch den Hauptprozeß 32 erzeugt wurden. Es ist eine Systemanforderung, daß diese Teile in der Reihenfolge, die durch die Reihenfolge des PDL-Datenstroms auferlegt wird, zu einem Übergangs-Datenstrom 40 kombiniert werden. Ein Kombinationsprozeß 39, der die Übergangs- Datenstromteile von den Teilprozessen 36 oder 37 annimmt, ordnet diese Teile in die richtige Abfolge um.
- Bei einer ersten Ausführungsform nutzt der Kombinationsprozeß 39 Abfolgeinformationen aus, die ursprünglich durch den Hauptprozeß 32 erzeugt wurden. Bei einer ersten Ausführungsform kann der Hauptprozeß 32 jedes Mal, wenn er ein neues unabhängiges PDL- Datenstromsegment erzeugt, dem unabhängigen PDL- Datenstromsegment eine eindeutige, sich erhöhende Abfolgenummer zuweisen. Der Teilprozeß, der dieses unabhängige PDL-Datenstromsegment verarbeitet, leitet die Abfolgenummer zu dem Übergangs-Datenstromteil weiter. Der Kombinationsprozeß 39 entnimmt beim Empfang des unabhängigen PDL-Datenstromteils die Abfolgenummer und verwendet sie, um die ankommenden Übergangs-Datenstromteile in die richtige Reihenfolge umzuordnen. Die Abfolgenummern können außerdem zum Umordnen von Steuerbefehlantworten, Version-Steuerantworten, sync- Steuerantworten und Fehlerantworten dienen. Der Teilprozeß, der ein unabhängiges PDL-Datenstromsegment verarbeitet, kann die Abfolgenummer in den Antwortdatenteil einfügen. Der Hauptprozeß 32 entnimmt beim Empfang des Antwortdatenteils die Abfolgenummer und verwendet sie, um die ankommenden Antwortdatenteile in die richtige Reihenfolge umzuordnen.
- Bei einer zweiten Ausführungsform teilt ein separater Pufferabwicklungsprozeß, der Teil des Hauptprozesses 32 sein kann, drei Zeiger für jedes unabhängige PDL- Datenstromsegment zu. Ein erster Zeiger bezieht sich auf das unabhängige PDL-Datenstromsegment. Ein zweiter Zeiger bezieht sich auf den Antwortdatenteil, der von dem Teilprozeß erzeugt wird, der das unabhängige PDL- Datenstromsegment verarbeitet. Ein dritter Zeiger bezieht sich auf den Übergangs-Datenstromteil, der aus dem unabhängigen PDL-Datenstromsegment erzeugt wird. Jedesmal wenn ein Teilprozeß ein unabhängiges PDL- Datenstromsegment zur Verarbeitung zuteilt, erhält er diese drei Zeiger und verarbeitet das unabhängige PDL- Datenstromsegment. Bei Beendigung des unabhängigen PDL- Datenstromsegments durch den Teilprozeß sendet ein Pufferabwicklungsprozeß den Zeiger für den Übergangs- Datenstromteil immer dann zu dem Kombinationsprozeß, wenn dieser Zeiger dem nächsten Zeiger aus der FIFO- Warteschlange 34 entspricht. Der Pufferabwicklungsprozeß sendet außerdem den Zeiger für den Antwortdatenteil immer dann zu dem Hauptprozeß 32, wenn dieser Zeiger dem nächsten Zeiger aus der FIFO-Warteschlange 34 entspricht. Bei Beendigung der Verarbeitung dieses unabhängigen PDL-Datenstromsegments signalisiert der Teilprozeß diesen Umstand dem Pufferabwicklungsprozeß, der ihn wiederum dem Hauptprozeß 32 und dem Kombinationsprozeß 39 signalisiert. Vorzugsweise ist der Pufferabwicklungsprozeß ein separater Prozeß, so daß seine Last von dem Hauptdatenstrom ferngehalten wird, der einen Engpaß bilden kann.
- Der Kombinationsprozeß bietet den resultierenden umgeordneten Übergangs-Datenstrom 40 einem Bitmap- Erzeugungsprozeß 41 an, der eine Bitmap-Darstellung 42 erzeugt. Die Bitmap-Darstellung wird zu einer Markierungsmaschine 43 gesendet, die das durch die Bitmap-Darstellung dargestellte Bild auf die Druckausgabe schreibt, bei der es sich um Papier, fotografischen Film, ein wärmeempfindliches Medium usw. handeln kann. Sobald ein latentes Bild auf einem fotografischen Film oder Medium gebildet wurde, muß das Medium durch in der Technik bekannte Verfahren chemisch verarbeitet und entwickelt werden.
- Nach der ausführlichen Beschreibung bevorzugter Ausführungsformen der vorliegenden Erfindung ist für Fachleute nunmehr erkennbar, daß zahlreiche Modifikationen vorgenommen werden können, ohne den Schutzumfang der Erfindung zu verlassen, der in den folgenden Ansprüchen definiert wird.
Claims (14)
1. Verfahren zur Wiedergabe eines Bildes, das durch
einen PDL-Datenstrom beschrieben wird, mit den
folgenden Schritten:
- Erkennen von Datenbefehlen und Steuerbefehlen
in dem PDL-Datenstrom;
- Erzeugen mehrerer unabhängiger
PDL-Datenstromsegmente;
- Zuweisen jedes Datenbefehls zu einem der
Segmente;
- Zuweisen von Steuerbefehlen zu den Segmenten;
- Übersetzen jedes Segments in
Übergangs-Datenstromteile;
- Kombinieren der Teile zu einem
Übergangs-Datenstrom in einer Reihenfolge, die durch den PDL-
Datenstrom auferlegt wird; und
- Wiedergeben des Bildes aus dem
Übergangs-Datenstrom,
dadurch gekennzeichnet, daß mindestens einer
der erkannten Steuerbefehle mehr als einem der
unabhängigen PDL-Stromsegmente zugewiesen wird.
2. Verfahren nach Anspruch 1, weiterhin mit den
folgenden Schritten:
- Ableiten eines Übersetzungszustands von den
erkannten Steuerbefehlen;
- Erzeugen von Steuerbefehlen für jedes Segment,
die den Übersetzungszustand beschreiben.
3. Verfahren nach Anspruch 1, wobei
- die Segmente durch einen Hauptprozeß erzeugt
werden;
- die Segmente von einem oder mehreren
Teilprozessen übersetzt werden;
- jeder Teilprozeß Segmente zur Verarbeitung
auswählt.
4. Verfahren nach Anspruch 3, wobei
- der Hauptprozeß einen Hauptübersetzungszustand
von den Steuerbefehlen in dem PDL-Datenstrom
ableitet;
- jeder Teilprozeß einen Teilprozeß-
Übersetzungszustand von den Steuerbefehlen in
den unabhängigen PDL-Datenstromsegmenten
ableitet;
- jeder Teilprozeß eine Änderung des Teilprozeß-
Übersetzungszustands durch eine
Steuerbefehlantwort zu dem Hauptprozeß zurückgibt.
5. Verfahren nach Anspruch 4, wobei der Hauptprozeß
- einen gemeinsamen Übersetzungszustands-Level
aus den Steuerbefehlantworten berechnet;
- für jedes Segment Steuerbefehle erzeugt, die
den Unterschied zwischen dem
Hauptübersetzungszustand und dem gemeinsamen
Übersetzungszustands-Level beschreiben.
6. Verfahren nach Anspruch 4, wobei der Hauptprozeß
- den Inhalt von Steuerbefehlen analysiert;
- überflüssige Steuerbefehle aus den Segmenten
zurückweist.
7. Verfahren nach Anspruch 1, weiterhin mit den
folgenden Schritten:
- Erkennen von reduzierten Steuerbefehlen und
erweiterten Steuerbefehlen in den
Steuerbefehlen;
- Zuweisen jedes erweiterten Steuerbefehls zu
höchstens einem Segment;
- Erzeugen eines Version-Steuerbefehls für
mindestens ein Segment, der den erweiterten
Steuerbefehl angibt.
8. Verfahren nach Anspruch 7, weiterhin mit den
folgenden Schritten:
- Erzeugen eines sync-Steuerbefehls in dem
Segment, das den erweiterten Steuerbefehl
enthält;
- Verzögern der Übersetzung nachfolgender
Segmente, bis eine sync-Steuerantwort aus dem
sync-Steuerbefehl empfangen wurde.
9. Verfahren nach Anspruch 8, wobei die
sync-Steuerantwort erst dann empfangen wird, wenn alle
vorherigen Segmente verarbeitet wurden.
10. Verfahren nach Anspruch 7, weiterhin mit den
folgenden Schritten:
- Erzeugen eines Segment-Steuerbefehls in jedem
Segment;
- Erkennen von Befehlen zum Entfernen einer
erweiterten Datenstruktur unter den erweiterten
Steuerbefehlen;
- Suspendieren des Entfernens der erweiterten
Datenstruktur, bis für mindestens alle
vorherigen Segmente, die die erweiterte
Datenstruktur benutzen, für den Segment-Steuerbefehl
eine Antwort empfangen wurde.
11. Verfahren nach Anspruch 10, weiterhin mit den
folgenden Schritten:
- Erkennen von Befehlen zum Erzeugen einer
erweiterten Datenstruktur unter den erweiterten
Steuerbefehlen;
- Suspendieren des Erzeugens der erweiterten
Datenstruktur, bis ein vorhergehendes Entfernen
der erweiterten Datenstruktur abgeschlossen
wurde.
12. Verfahren nach Anspruch 11, weiterhin mit den
folgenden Schritten:
- Erkennen von Befehlen, die eine erweiterte
Datenstruktur benutzen, unter den
Datenbefehlen;
- Suspendieren der Benutzung der erweiterten
Datenstruktur, bis die erweiterte Datenstruktur
erzeugt wurde.
13. Bildwiedergabesystem, umfassend:
- ein Mittel zum Erkennen von Datenbefehlen und
Steuerbefehlen in einem PDL-Datenstrom;
- ein Mittel zum Erzeugen mehrerer unabhängiger
PDL-Datenstromsegmente;
- ein Mittel zum Zuweisen jedes Datenbefehls zu
einem der Segmente;
- ein Mittel zum Zuweisen von Steuerbefehlen zu
den Segmenten;
- ein Mittel zum Übersetzen jedes Segments in
Übergangs-Datenstromteile;
- ein Mittel zum Kombinieren der Teile zu einem
Übergangs-Datenstrom in einer Reihenfolge, die
durch den PDL-Datenstrom auferlegt wird; und
- ein Mittel zum Wiedergeben eines Bildes aus dem
Übergangs-Datenstrom;
wobei das Mittel zum Zuweisen von Steuerbefehlen zu
den Segmenten dazu dient, mindestens einen
Steuerbefehl mehr als einem der Segmente
zuzuweisen.
14. Bildwiedergabesystem nach Anspruch 13 mit
mindestens zwei Prozessoren, die jeweils ein
unabhängiges Speichermittel aufweisen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP95200724A EP0733965B1 (de) | 1995-03-23 | 1995-03-23 | Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69524381D1 DE69524381D1 (de) | 2002-01-17 |
DE69524381T2 true DE69524381T2 (de) | 2002-08-14 |
Family
ID=8220119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69524381T Expired - Lifetime DE69524381T2 (de) | 1995-03-23 | 1995-03-23 | Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache |
Country Status (4)
Country | Link |
---|---|
US (1) | US5652711A (de) |
EP (1) | EP0733965B1 (de) |
JP (1) | JP3194351B2 (de) |
DE (1) | DE69524381T2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10245530A1 (de) * | 2002-09-30 | 2004-04-15 | OCé PRINTING SYSTEMS GMBH | Verfahren, Softwareprodukt und Computer zum Erzeugen und Interpretieren eines IPDS-Datenstroms |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09167242A (ja) * | 1995-12-19 | 1997-06-24 | Fuji Xerox Co Ltd | 描画処理装置および方法 |
US6069705A (en) * | 1996-10-07 | 2000-05-30 | Texas Instruments Incorporated | Managing interpreter cofunctions on multiprocessor-based printer |
DE59600350D1 (de) * | 1996-12-20 | 1998-09-17 | Ad On Agentur Handelskommunika | Verfahren und Vorrichtung zur Erstellung einer Druckvorlage |
US5995719A (en) * | 1997-03-25 | 1999-11-30 | Barco Graphics Nv | Method for proofing imposed documents |
US6046818A (en) * | 1997-06-03 | 2000-04-04 | Adobe Systems Incorporated | Imposition in a raster image processor |
US6097498A (en) * | 1997-09-12 | 2000-08-01 | International Business Machines Corporation | Thin layer protocol™ for printer management |
WO1999019830A1 (en) * | 1997-10-15 | 1999-04-22 | Pixo Arts Corporation | Method, apparatus and computer program product for object-based raster imaging |
US6327050B1 (en) | 1999-04-23 | 2001-12-04 | Electronics For Imaging, Inc. | Printing method and apparatus having multiple raster image processors |
US6930795B1 (en) * | 1999-04-23 | 2005-08-16 | Electronics For Imaging, Inc. | Printing method and apparatus having multiple raster image processors |
JP3797524B2 (ja) * | 1998-12-22 | 2006-07-19 | 株式会社沖データ | 画像データ処理装置 |
US7126716B1 (en) * | 1999-08-20 | 2006-10-24 | Zih Corp. | Printer for printing labels, tags or the like |
GB2359642B (en) * | 2000-02-25 | 2005-02-02 | Hewlett Packard Co | Printing a plurality of data files |
US7324228B2 (en) | 2000-02-25 | 2008-01-29 | Hewlett-Packard Development Company, L.P. | System and method for downloading and for printing data from an external content source |
US7072052B1 (en) | 2000-07-21 | 2006-07-04 | Canon Kabushiki Kaisha | Efficient rasterization system and method |
US7110129B2 (en) * | 2001-01-26 | 2006-09-19 | International Business Machines Corporation | Method, system, and program for responding to an acknowledgement request from a printer driver |
DE60135200D1 (de) | 2001-01-31 | 2008-09-18 | Hewlett Packard Co | Verfahren und Gerät um Dokumente zu erstellen |
US6816276B2 (en) | 2001-03-08 | 2004-11-09 | Electronics For Imaging, Inc. | Efficiently scheduled multiple raster image processors |
US20020140958A1 (en) * | 2001-03-29 | 2002-10-03 | Lester Samuel M. | Page description language adapted for direct printing of multiple file formats |
GB2380911B (en) | 2001-10-13 | 2004-09-08 | Hewlett Packard Co | Performance of a multi-stage service within an information technology network |
US7365743B1 (en) | 2002-10-08 | 2008-04-29 | Adobe Systems Incorporated | Assignments for parallel rasterization |
US7298503B2 (en) * | 2002-12-17 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | Partitioning of print jobs for raster image processing |
US20040119997A1 (en) * | 2002-12-19 | 2004-06-24 | Christiansen Robert D | Organizing pipelines for raster image processing |
US20050094190A1 (en) * | 2003-10-20 | 2005-05-05 | International Business Machines Corporation | Method and system for transforming datastreams |
US7872767B2 (en) * | 2003-04-04 | 2011-01-18 | Xerox Corporation | Parallel printing system |
US7861156B2 (en) | 2003-05-29 | 2010-12-28 | Electronics For Imaging, Inc. | Methods and apparatus for parallel processing page description language data |
US7398054B2 (en) | 2003-08-29 | 2008-07-08 | Zih Corp. | Spatially selective UHF near field microstrip coupler device and RFID systems using device |
JP2005310115A (ja) * | 2004-03-25 | 2005-11-04 | Fuji Photo Film Co Ltd | 画像データ変換装置、画像データ変換プログラム、および画像出力システム |
JP4086813B2 (ja) * | 2004-06-09 | 2008-05-14 | キヤノン株式会社 | ネットワークプリントシステム及びネットワークプリントシステムにおけるグリッド網構築方法 |
US8596532B2 (en) * | 2004-06-10 | 2013-12-03 | Zih Corp. | Apparatus and method for communicating with an RFID transponder |
US8164785B2 (en) * | 2004-06-15 | 2012-04-24 | Sharp Laboratories Of America, Inc. | Method and apparatus for selecting printing devices according to resource availability |
US7821657B2 (en) * | 2004-09-14 | 2010-10-26 | Sharp Laboratories Of America, Inc. | Continuous raster image processing control across print jobs |
US8498012B2 (en) * | 2005-04-25 | 2013-07-30 | Xerox Corporation | Print job management systems and methods |
US8078103B2 (en) | 2005-10-31 | 2011-12-13 | Zih Corp. | Multi-element RFID coupler |
US7756036B2 (en) * | 2005-12-22 | 2010-07-13 | Intuitive Surgical Operations, Inc. | Synchronous data communication |
US7757028B2 (en) * | 2005-12-22 | 2010-07-13 | Intuitive Surgical Operations, Inc. | Multi-priority messaging |
US8054752B2 (en) * | 2005-12-22 | 2011-11-08 | Intuitive Surgical Operations, Inc. | Synchronous data communication |
US7586410B2 (en) * | 2006-03-09 | 2009-09-08 | Zih Corp. | RFID UHF stripline coupler |
US8711372B2 (en) * | 2006-08-31 | 2014-04-29 | Ricoh Co., Ltd. | Techniques for image segment accumulation in document rendering |
JP2008149592A (ja) * | 2006-12-19 | 2008-07-03 | Konica Minolta Business Technologies Inc | 画像形成装置及び印刷方法並びに制御プログラム |
US7839287B2 (en) * | 2007-03-30 | 2010-11-23 | Zih Corp. | Near-field miniature coupler |
US20090080025A1 (en) * | 2007-09-20 | 2009-03-26 | Boris Aronshtam | Parallel processing of page description language |
US8184304B2 (en) * | 2007-11-19 | 2012-05-22 | Moore Wallace North America, Inc. | System and method of operating a raster image processor |
US8359599B2 (en) * | 2007-11-20 | 2013-01-22 | Ricoh Production Print Solutions LLC | Methods and systems for efficient use and mapping of distributed shared resources |
US9108434B2 (en) * | 2007-12-18 | 2015-08-18 | Zih Corp. | RFID near-field antenna and associated systems |
US20100202008A1 (en) * | 2009-02-11 | 2010-08-12 | Boris Aronshtam | Comprehensive print job skeleton creation |
JP4818389B2 (ja) | 2009-04-07 | 2011-11-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列処理によりデータ処理を行う印刷装置および制御方法 |
US20100315666A1 (en) * | 2009-06-11 | 2010-12-16 | Yitzhak Lazer | High speed page transmission |
JP5424778B2 (ja) * | 2009-08-21 | 2014-02-26 | キヤノン株式会社 | 印刷データ処理装置、印刷データ処理方法、プログラム |
JP5393343B2 (ja) * | 2009-08-21 | 2014-01-22 | キヤノン株式会社 | 印刷データ処理装置、印刷データ処理方法、プログラム |
JP5450321B2 (ja) * | 2010-08-31 | 2014-03-26 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置および画像形成プログラム |
JP2012135878A (ja) | 2010-12-24 | 2012-07-19 | Canon Inc | 画像処理装置、情報処理方法及びプログラム |
JP5777375B2 (ja) | 2011-03-31 | 2015-09-09 | キヤノン株式会社 | 画像処理装置、画像処理装置のデータ処理方法、及びプログラム |
JP2012245734A (ja) | 2011-05-30 | 2012-12-13 | Canon Inc | 画像処理装置、画像処理方法及びプログラム |
CN108563405A (zh) | 2012-02-21 | 2018-09-21 | Zih公司 | 用于实现云连接打印机和应用程序框架的方法和设备 |
AU2013276977A1 (en) * | 2013-12-24 | 2015-07-09 | Canon Kabushiki Kaisha | Asynchronous group processing using z-banding |
JP5944034B2 (ja) * | 2015-07-08 | 2016-07-05 | キヤノン株式会社 | 画像処理装置、画像処理装置のデータ処理方法、及びプログラム |
AU2015258332A1 (en) * | 2015-11-23 | 2017-06-08 | Canon Kabushiki Kaisha | Method, apparatus and system for reproducing a document defined in a page description language |
US10187545B2 (en) | 2016-09-07 | 2019-01-22 | Zih Corp. | Method and apparatus to communicate data associated with media processing devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5359673A (en) * | 1991-12-27 | 1994-10-25 | Xerox Corporation | Method and apparatus for converting bitmap image documents to editable coded data using a standard notation to record document recognition ambiguities |
US5493634A (en) * | 1992-06-12 | 1996-02-20 | Xerox Corporation | Apparatus and method for multi-stage/multi-process decomposing |
US5469532A (en) * | 1992-11-16 | 1995-11-21 | Microsoft Corporation | System and method for font wrapping printer data |
JP3360905B2 (ja) * | 1993-01-04 | 2003-01-07 | ゼロックス・コーポレーション | プリンティングシステム |
US5402527A (en) * | 1993-04-23 | 1995-03-28 | Xerox Corporation | Apparatus and method for determining the page description language in which a print job is written |
-
1995
- 1995-03-23 DE DE69524381T patent/DE69524381T2/de not_active Expired - Lifetime
- 1995-03-23 EP EP95200724A patent/EP0733965B1/de not_active Expired - Lifetime
-
1996
- 1996-03-19 US US08/618,538 patent/US5652711A/en not_active Expired - Lifetime
- 1996-03-25 JP JP9477996A patent/JP3194351B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10245530A1 (de) * | 2002-09-30 | 2004-04-15 | OCé PRINTING SYSTEMS GMBH | Verfahren, Softwareprodukt und Computer zum Erzeugen und Interpretieren eines IPDS-Datenstroms |
DE10245530B4 (de) * | 2002-09-30 | 2006-04-27 | OCé PRINTING SYSTEMS GMBH | Verfahren, Softwareprodukt und Computer zum Erzeugen eines IPDS-Datenstromes |
US7372586B2 (en) | 2002-09-30 | 2008-05-13 | Oce Printing Systems Gmbh | Method, software product, and computer to generate and interpret an IPDS data stream |
Also Published As
Publication number | Publication date |
---|---|
EP0733965B1 (de) | 2001-12-05 |
US5652711A (en) | 1997-07-29 |
JPH08297560A (ja) | 1996-11-12 |
JP3194351B2 (ja) | 2001-07-30 |
EP0733965A1 (de) | 1996-09-25 |
DE69524381D1 (de) | 2002-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69524381T2 (de) | Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache | |
DE69428929T2 (de) | Gerät und Verfahren zur Verarbeitung einer Folge von Bilddaten in einem Drucksystem | |
DE69117112T2 (de) | Verfahren und Vorrichtung zur Bildwiedergabe | |
DE69024881T2 (de) | Drucker-Initialisierungssystem | |
DE68927396T2 (de) | Schriftzeichendaten-Steuerung | |
DE69401435T2 (de) | Veränderliche Datenfelder in einer Seitenbeschreibungssprache | |
DE69327746T2 (de) | Vorrichtung und Methode für das Aufgliedern einer Arbeitanweisung in einem Duckersystem | |
DE68926825T2 (de) | Druckapparat und -verfahren | |
DE69230985T2 (de) | Bildverarbeitungssystem mit mehreren Speicheranordnungen | |
DE69317698T2 (de) | Verfahren zum Übersetzen eines Vielzahl von Drucker-Seiten-beschreibende Sprachen | |
DE69328650T2 (de) | Betriebsverfahren und betriebsmittelorientiertes Druckersystem | |
DE69331871T2 (de) | Verfahren und Vorrichtung zur Datenverarbeitung für ein Bildschirmgerät mit reduzierten Pufferspeichersforderungen | |
EP0764310B1 (de) | Verfahren zur generierung einer contone-map | |
DE69730892T2 (de) | Verarbeitung von Rückzugspunkten zur Blatterstellung mit Techniken zur Speicherreduktion | |
DE69631720T2 (de) | Verfahren und Vorrichtung zum Drucken von Mehrfachkopien | |
DE3625390A1 (de) | Graphisches anzeigesystem mit beliebiger rberlappung von bildausschnitten | |
DE3820075A1 (de) | Verfahren zum gesteuerten reproduzieren von bildern in bitplangesteuerten laserprintern | |
DE69625986T2 (de) | System, Ausgabegerät, Verfahren, und rechnerlesbares Medium, die zum Steuern eines Druckers einen gespaltenen Druckertreiber verwenden | |
DE69627582T2 (de) | Druckersteuerungsvorrichtung und -verfahren | |
DE69628809T2 (de) | Verfahren und System für den digitalen Farbdruck | |
DE3686875T2 (de) | Regeleinrichtung fuer farben-kurvenschreiber. | |
DE10158419A1 (de) | Verfahren zum digitalen Drucken von zusammengesetzten Dokumenten | |
DE69632644T2 (de) | Bilderzeugung für seitendrucker | |
DE69327888T2 (de) | Verfahren und Gerät zum Drucken nach einer grafischen Sprache | |
DE69326713T2 (de) | Vorrichtung zur Übersetzung von Druckersteurungssprachen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: AGFA-GEVAERT, MORTSEL, BE |
|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: AGFA GRAPHICS N.V., MORTSEL, BE |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: KEANTOP LLC, DOVER, DEL., US |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, |