DE69524381T2 - Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache - Google Patents

Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache

Info

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
Application number
DE69524381T
Other languages
English (en)
Other versions
DE69524381D1 (de
Inventor
Pierre Vennekens
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Callahan Cellular LLC
Original Assignee
Agfa Gevaert NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agfa Gevaert NV filed Critical Agfa Gevaert NV
Publication of DE69524381D1 publication Critical patent/DE69524381D1/de
Application granted granted Critical
Publication of DE69524381T2 publication Critical patent/DE69524381T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1296Printer job scheduling or printer resource handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1214Improving printing performance achieving reduced delay between job submission and print start at the submitting node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/124Parallel printing or parallel ripping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0011Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0014Transforming the printer input data into internal codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0062Handling the output data combining generic and host data, e.g. filling a raster
    • G06K2215/0065Page 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

    Technisches Gebiet
  • 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.
  • Allgemeiner Stand der Technik
  • 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.
  • Aufgaben der Erfindung
  • 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.
  • Kurze Darstellung der Erfindung
  • 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.
  • Ausführliche Beschreibung der Erfindung
  • 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.
DE69524381T 1995-03-23 1995-03-23 Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache Expired - Lifetime DE69524381T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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,