-
Die vorliegende Erfindung betrifft
das digitale Drucken von Seiten mit variablem Informationsgehalt, mit
unbeschränkter
Veränderungsmöglichkeit
von Seite zu Seite. Genauer gesagt betrifft die vorliegende Erfindung
ein Verfahren und eine Vorrichtung zum Zusammenführen einer Vielzahl von komprimierten
Daten, wobei das Zusammenführen
ohne einem Dekomprimieren der Daten ausgeführt wird.
-
Neuere digitale Druckgeräte haben
es ermöglicht,
Seitenfolgen zu drucken, wobei jede gedruckte Seite vollständig unterschiedlich
zu ihrer vorherigen ist. Dies ist von besonderer Bedeutung für die Herstellung
von personalisierten gedruckten Sachen, beispielsweise für direkte
Sendezwecke. Ein derartiges System zum Drucken von personalisierten
mehrseitigen Dokumenten sollte die folgenden Merkmale aufweisen:
- – die
Möglichkeit
Teile dieser Dokumente für
eine Wiederbenutzung in anderen Dokumenten als Seitenelemente zu
speichern;
- – eine
nahezu unbeschränkte
Anzahl von Seiten in diesen Dokumenten (bis zu mehreren hundert
Seiten);
- – keine
inhärenten
Einschränkungen
an die Menge der personalisierten Daten pro Seite; und
- – einen
hohen Freiheitsgrad in dem Design der Personalisierung (eine große Anzahl
an Bereichen, überlappenden
Bereichen, etc.).
-
Ein derartiges Drucksystem kann konzeptionell
als ein auf einem Seitenelement basierendes Drucksystem beschrieben
werden: ein Dokument wird aus Seiten gebildet, und jede Seite wird
aus einer Anzahl von Elementen gebildet, welche in dem System in
einer komprimierten Rasterform gespeichert werden. In einem typischen
Arbeitsablauf, in welchem die vorliegende Erfindung verwendet werden
kann, stellt ein Vordrucksystem die gesamte Beschreibung der Seiten
und die graphischen Datenelemente her, welche die Seitenelemente
bilden.
-
Eine Seite wird typischerweise beschrieben
unter Verwendung einer Seitenbeschreibungssprache ("PDL"), wie beispielsweise
PostSkript® und "PDF®" von Adobe Systems,
Inc., Mountain View, Kalifornien, HP PCL von Hewlett-Packard, Inc.,
Palo Alto, Kalifornien oder durch ein Format wie beispielsweise
GROTM ("Graphics
Objects"), das ursprüngliche
interne Format, verwendet von Barco Graphics NV, Gent, Belgien,
dem Anmelder der vorliegenden Erfindung. Ein PostSkript-Ordner beispielsweise
enthält
eine Sequenzliste von Befehlen, welche, falls sie interpretiert
werden, graphische Objekte erzeugen, wie beispielsweise Linienarbeit
(mit einem Text), CT-Bilder, Pfade (ein Satz an Vektor- oder Spline-Segmenten,
welche eine Form oder einen Satz an Liniensegmenten beschreiben),
Grenzkästchen
("unsichtbare" Rechtecke, welche
die Grenzen eines Objektes definieren ), etc. Die Pfade können Attribute
aufweisen, wie beispielsweise einen Strich oder eine Füllung, und
können
u. a. Grenzen der Objekte, die Objekte selber und Clipping-Masken
definieren, welche definieren, welcher Teil des Objektes sichtbar
ist, wenn sie mit einem Objekt im Zusammenhang stehen. Derartige Konzepte sind
den Fachleuten hinlänglich
bekannt. Das Interpretieren des PostSkript erzeugt gewöhnlicherweise
eine Anzeigeliste von Objekten, und diese Objekte werden normalerweise
vor dem Drucken oder der Anzeige gerastert. Auf die gleiche Weise
kann eine Anzeigeliste von Objekten durch Interpretieren der Seitenbeschreibungsordner
in anderen Seitenbeschreibungssprachen erzeugt werden. Das kombinierte
Interpretieren der PDL und das Rastern wird als Rasterbildverfahren
("RIP") bezeichnet und
die Software und/oder das Hardwaresystem zum Durchführen desselben
wird Rasterbildprozessor ("RIP") genannt.
-
Das die Druckmaschine antreibende
System muß einen
Datenfluß mit
der Geschwindigkeit der Druckmaschine erzeugen. Dies bedeutet, dass
die Datenrate des Systems sehr hoch ist und vollständig durch
die Bildgeschwindigkeit und die Auflösung der Druckgeräte diktiert
wird. Der Xeikon DCP 32D (Xeikon NV, Mortsel, Belgien) beispielsweise
druckt vollständige
Duplex Cyan-, magenta-, gelb- und schwarz-farbige ("CMYK") Blätter der
Größe A4 mit
600 Punkten pro Inch und mit 4 Bit pro Stelle pro Trennung, mit
einer Geschwindigkeit von 35 Duplex (d. h. doppelseitig)-Blättern pro
Minute. Die für
den Antrieb dieses Gerätes
notwendige Ausgabebandbreite ist über 80 MByte pro Sekunde. Falls
wir eine 50% Überlappung
der verschiedenen Objekte mit dem Hintergrund-Hauptobjekt annehmen,
muß die
Rasterbild-Bandbreite wenigstens 120 MByte pro Sekunde betragen.
Die benötigte
I/O-Busbandbreite ist die Summe der Eingabe- und Ausgabebandbreite,
plus die benötige
Bandbreite durch den Zusammenführprozeß und andere
Verfahren. Somit muß die
I/O-Busbandbreite des Computersystems größer als 200 MByte pro Sekunde
betragen, was weit über
der Reichweite der Standardcomputersysteme liegt, welche heutzutage
erhältlich
sind. In näherer
Zukunft werden jedoch schnellere Druckgeräte erhältlich sein. In den letzten
fünf Jahren
hat die Vergrößerung der
Datenraten von Druckgeräten die
Vergrößerung der
erhältlichen
erschwinglichen Computerleistung ausgestochen.
-
Der Barco Graphics PrintStreamer
I:
-
Der Barco Graphics PrintStreamer
I (Barco Graphics NV, Gent, Belgien, der Anmelder der vorliegenden
Erfindung) ist ein anerkanntes Hardwaresystem mit einem Computerboard
pro Druckgeräte-Druckkopf, wobei
jedes Board mit seinem eigenen redundanten Array beziehungsweise
Feld einer unabhängigen
Disk ("RAID")-Einheit verbunden
ist. Die nachher durch das RIP-Verfahren gerasterten und gescreenten
Seiten werden auf diesen Disks in einer lauflängen-codierten ("RLE") komprimierten Form
gespeichert. Zum Druckzeitpunkt kann ein "Master"-Hintergrundelement mit einem "variablen" Vordergrundelement
mit exakt derselben Bitmapgröße kombiniert
werden. Beide Elemente werden vollständig vor der Zusammenführung dekomprimiert.
-
Der Nachteil eines derartigen Systems
besteht in der begrenzten Flexibilität in dem Design der personalisierten
Daten: es können
keine mehrfach "variablen" Elemente vorhanden
sein, welche verschiedene Teile einer Mehrzahl an "Master"-Elementen auf einer
Seite abdecken. Das bereits existierende System kann auch nicht
sehr genau skaliert werden, und es ist nicht eindeutig, wie gut
es an schneller arbeitende Druckgeräte angepaßt werden kann.
-
Der Barco Graphics PrintStreamer
I ist ein Beispiel für
eine beschränkte
Art eines variablen Datensystems, welches das Konzept eines Master-Seitendesigns
und variable Daten aufweist, und welches in 2(a) illustriert ist, welche mit der
Bezeichnung Stand der Technik bezeichnet ist. Die Masterseite 211 ist
designed und veränderliche
beziehungsweise variable Komponenten sind über der Masterseite 211 zusammengeführt. Zwei
Beispiele von veränderbaren
Daten V1 und V2, bezeichnet mit dem Bezugszeichen 213 und 219,
sind jeweils dargestellt. Das zusammengeführte Ergebnis 215 ist
für den
Fall des Zusammenführens
von 213 (V1) mit der Masterseite 211 dargestellt
und auch das zusammengeführte
Ergebnis 217 ist für
den Fall des Zusammenführens
von 219 (V2) mit der Masterseite 211 dargestellt.
Eine wünschenswerte
mehr flexiblere Anordnung ist in 2(b) dargestellt,
welche keinen Stand der Technik darstellt. In dieser zweiten Anordnung
existiert das Konzept von "fest" und "variabel" nicht länger, obwohl
es selbstverständlich
aufgenommen werden kann. Irgendein Element kann als Seite (oder
Unterseite) gedruckt werden, und irgendein Element kann mit anderen
Elementen zum Bilden einer neuen Seite zusammengeführt werden.
Die Reihenfolge des Zusammenführens
und der Modus des Zusammenführens
(Überdrucken,
Knockout, etc.) bestimmt, wie die abschließende Seite ausschauen wird.
In dem einfachen Beispiel in 2(b) sind
die Elemente 201, 203 und 207 miteinander
kombiniert, zunächst 201,
dann 203 und danach 207. In einem derartigen Fall
ist das abschließende zusammengeführte Bild
das mit dem Bezugszeichen 205 bezeichnete Bild.
-
Komprimierung der RIP-behandelten
Daten:
-
Eine Möglichkeit, das Bandbreitenproblem
zu überwinden
besteht darin, die mittels dem RIP-Verfahren behandelten Daten beziehungsweise
gerasterten Daten vor einem Abspeichern und Übertragen der Daten an das
Druckgerät
zu komprimieren. Mit einem Komprimierungsfaktor von 10 oder höher wird
die Bandbreite beim Laufen einer Software auf einem herkömmlichen
Computersystem verwaltbar. Das Problem mit den Rasterbildern besteht
darin, dass sie zwei Arten von Objekten mit vollkommen verschiedenen
Charakteristiken enthalten: 1) Linienarbeitsdaten ("LW") für Text,
Logos, Graphen, Blockdiagrammen, etc., und 2) ununterbrochene Ton
("Conton-", "CT-")-Daten für Bilder,
Mischungen etc. Da die Charakteristiken dieser zwei Arten von Daten vollkommen
verschieden sind, ist das für
diese Arten von Daten verwendete typische Komprimierungsverfahren
auch unterschiedlich. Die folgende Tabelle faßt die Charakteristiken und
die heutzutage typischerweise verwendeten Komprimierungsverfahren
zusammen:
-
-
Die europäische Patentanmeldung EP-0
691 784, mit der Überschrift
LOSSY AND LOSSLESS COMPRESSION IN RASTER IMAGE PROCESSOR, von dem
Erfinder Deschuytere, und das US-Patent mit der Nummer 5,239,625
(24. August, 1993) mit dem Titel APPARATUS AND METHOD TO MERGE IMAGES
RASTERIZED AT DIFFERENT RESOLUTIONS, von dem Erfinder Bogart et
al., beschreiben eine Trennung von LW-Daten von CT-Daten in dem
RIP-Verfahren und eine getrennte Handhabe beider Datenströme. Das
Problem bei dem Deschuytere-Patent besteht darin, dass Halbtonlinienarbeiten
als CT-Daten gehandhabt werden. Der Qualitätsverlust bei den Halbton LW-Daten
aufgrund der Joint Photographic Expert-Group ("JPEG")-Komprimierung,
welche für
das CT-Verfahren verwendet wird, ist in den meisten Hochleistungsanwendungen
nicht akzeptabel. Bei dem Bogart et al. Patent muß jeder
Job zweimal mit dem RIP-Verfahren gerastert werden, einmal um die
Linienarbeits-Bitmap zu erzeugen und einmal um die Conton-Bitmap
zu erzeugen. Bei den meisten Arbeitsabläufen ist das RIP-Verfahren
bereits ein Engpaß,
so dass ein zweimaliges RIP-Verfahren nicht akzeptabel ist.
-
Zusammenführen von
variablen Daten zum Druckzeitpunkt:
-
Die Anzahl von Vertreibern, welche
Drucksysteme verkaufen, die wirklich variable Daten nach einem RIP-Verfahren
handhaben, ist gegenwärtig
(1997) beschränkt,
wobei der Barco Graphics PrintStreamer I ein Beispiel (siehe oben)
darstellt. Die europäische
Patentanmeldung EP-A-0 703 524 mit dem Titel VARIABLE DATA FIELDS
IN A PAGE DESKRIPTION LANGUAGE, von den Erfindern Herregods et al.,
beschreibt ein weiteres Beispiel. Das von Herregods et al. beschriebene
System führt
variable Daten unter Verwendung von Bitmapbetrieben wie folgt zusammen:
- – ein
einzelnes Master wird mittels eines RIP-Verfahrens behandelt und
als unkomprimierte Bitmap in einem Speicherbaustein gespeichert;
- – Teile
dieser Bitmap werden in einem Cachespeicher mit bestimmten PostSkript-Anweisungen
kopiert;
- – der
PostSkript-Code für
die variablen Daten wird mittels einem RIP-Verfahren behandelt und
Teile in dem Cachespeicher gespeicherten Masterbitmap überschrieben;
und
- – nach
dem Drucken werden die Teile der Masterbitmap, welche geändert wurden,
wieder hergestellt.
-
Die letzten beiden Schritte werden
beispielsweise für
alle variablen Daten wiederholt.
-
Die Flexibilität des Systems von Herregods
et al. ist begrenzt: das System kann keine personalisierten Dokumente
in sortierter Reihenfolge drucken, da das System die erforderliche
Bandbreite zum Regenerieren der Masterbitmap mit der Geschwindigkeit
des Druckgerätes
nicht liefern kann. Zudem werden die Master- und die variablen Daten
mit speziellen Operatoren in dem PostSkript-Ordner kombiniert, so
dass eine Wiederverwendung von Objekten in unterschiedlichen Aufträgen so gut
wie unmöglich
ist. Es wäre
vorteilhaft, ein Verfahren zu haben, bei welchem nicht notwendigerweise
ein Link zwischen den verschiedenen Seitenelementen vorhanden ist,
welche eine abschließende
Seite aufbauen, bis zum eigentlichen Zusammenführen, so dass verschiedene
Elemente von verschiedenen Seitenbeschreibungsordnern herrühren können und
unter Verwendung verschiedener Vordruckpakete etc. erzeugt werden
können.
-
Zusammenführen von
komprimierten Daten:
-
Die Kombination von verschiedenen
Seitenelementen in eine einzelne Seite wird typischerweise durch zunächst Dekomprimieren
der verschiedenen Seitenelemente, Kombinieren derselben und danach
möglicherweise
wiederum Komprimieren der gesamten Seite durchgeführt. Da
eine Dekomprimierung rechnerintensiv ist, erfordert dies oftmals
eine reine Softwarelösung
für die
durchgeführte
Kombination, um diese in Echtzeit zu einem Hochgeschwindigkeits-Digitaldrucker
zu senden. Ein zusätzliches
Problem bei dem Dekomprimieren vor einem Zusammenführen besteht
darin, dass die zu kombinierende Datenmenge deutlich ansteigt, was
eine Belastung für
die Speicherbandbreite darstellt, welche wiederum eine reine Softwarelösung erfordern
kann. Dies bedeutet, dass eine Dekomprimierung vor der Kombination
von verschiedenen Seitenelementen den Nachteil aufweist, dass es
eine große
Menge an Speicherplatz und eine hohe Bandbreite für die Datenübertragung
erfordert.
-
Es wäre daher vorteilhaft, ein Verfahren
und eine Vorrichtung zum Zusammenführen verschiedener Seitenelemente
zu besitzen, wobei die Seitenelemente komprimiert werden, und wobei
das Zusammenführen im
wesentlichen ohne einer Dekomprimierung der Daten ausgeführt wird,
wodurch sowohl Rechnerzeit als auch Speicherplatz eingespart werden.
-
Die Druckschrift US-A-4 493 049 beschreibt
ein Verfahren und eine Vorrichtung zum Vorbereiten einer Vielzahl
von Seitenelementen, welche auf einer Seite kombiniert werden sollen.
Die Seitenelemente werden zunächst
gerastert und komprimiert und danach in komprimierter Form gespeichert.
Die komprimierten Elemente werden dann ausgewählt und in komprimierter Form
zusammengeführt,
um in einer komprimierten gerasterten Seite zu resultieren. Vor
dem Drucken wird die Seite dekomprimiert.
-
Auf einem weiteren Gebiet ist auch
bekannt: ein Laufbildvideo, bei welchem die Notwendigkeit besteht,
gleichzeitig mehrfache Laufbildvideos von verschiedenen Quellen
zu erhalten, und diese auf einem einzelnen Bildschirm über einen
Satz an überlagerten
Videofenstern zu zeigen. Das US-Patent Nummer 5,257,113 (26 Oktober,
1993), mit dem Titel VIDEO MIXING TECHNIQUE USING JPEG COMPRESSED
DATA, von den Erfindern Chen et al., beschreibt ein Verfahren und
eine Vorrichtung zur Anzeige einer Vielzahl von Videofenstern (beispielsweise
30 Rahmen/Sekunde NTSC oder 25 Rahmen pro Sekunde PAL) auf einem Anzeigebildschirm,
wobei die Daten für
die Fenster in dem komprimierten Datenbereich gemischt werden. Alle Betriebe
werden auf 8 × 8
DCT-Blöcken
durchgeführt.
Chang und Messerschmitt führen
auch eine Übertragung
und eine Videokonferenz in ihren Veröffentlichungen auf der Bearbeitung
von JPEG und MPEG komprimierten Bildern in dem DCT-Bereich durch
(siehe "Manipulation
and compositing of MC-DCT compressed video", IEEE Journal on Selected Areas in
Communications, Band 13, Nr. 1, Januar 1995). In der Veröffentlichung
von Chang und Messerschmitt werden Formeln für eine opaque (d. h. Knockout)
und semi-transparente (d. h. mit einem Alphakanal) Kombination von
komprimierten Bildern auf einer Block-zu-Block-Basis präsentiert,
alle in dem DCT-Bereich.
Ferner beschreiben sie, wie man ein DCT-komprimiertes Bild über eine
Anzahl von Pixeln übertragen
kann, falls die zusätzliche
Heruntersetzung in dem Ausgangszustand akzeptabel ist. Das Patent
von Chang et al. und die Veröffentlichung
von Chang und Messerschmitt beziehen sich auf Laufbildvideos, jedoch
beschreiben sie nicht die Schritte und/oder die Vorrichtung, welche
für eine
effektive Verwendung dieser Ideen für Echtzeitdrucken notwendig
sind. Derartige zusätzliche
Schritte und Vorrichtungen sind für einen Fachmann nicht entnehmbar.
Die rechnerische Komplexität
der Formeln von Chang und Messerschmitt für ein pixelweites Zusammenführen ist
zu groß für die Druckanwendung,
so dass weiterhin die Notwendigkeit für eine unterschiedliche Technik
für eine
pixelweite Knockout-Überlappung
besteht. Zusätzlich
ist es für
die Druckanwendung vorteilhaft, Objekte mit irgendeiner gewöhnlichen
Form, wie oben beschrieben wurde, beispielsweise durch eine graphische
Kunst-Clipping-Maske schnell zusammenführen zu können, eine Anforderung, welche
der Stand der Technik nicht wirklich berücksichtigt. Im Stand der Technik
wird auch nicht beschrieben, wie man das Zusammenführen von
DCT-codierten Daten durch Mittel beschleunigen kann, was einem ermöglicht,
schnell die DCT-Blöcke an irgendeiner
Position zu lokalisieren. Ebenfalls verbleibt die Notwendigkeit
im Stand der Technik an einem Mechanismus, welcher einem ermöglicht,
die optimale Bildqualität zu
erhalten, mit dem Druck mitzukommen und um schubweise einige Teile
einer Seite im voraus zusammenzuführen, falls eine Seite zu komplex
ist.
-
Somit sind diese Techniken gemäß dem Stand
der Technik für
die vorliegende Druckanwendung nicht brauchbar und es besteht kein
Hinweis in dem Stand der Technik, wie diese Techniken gemäß dem Stand
der Technik für
die Druckanwendung angepaßt
werden könnten.
-
Somit besteht beim Kombinieren von
Seitenelementen für
ein schnelles Drucken die Notwendigkeit an einem Verfahren und einer
Vorrichtung, welche das Kombinieren im wesentlichen in dem komprimierten
Bereich durchführen,
während
es möglich
ist, die Elemente geometrisch genau auszurichten. Es besteht ebenfalls
die Notwendigkeit, die variablen Elemente mit einer willkürlichen
Form zusammenführen
zu können.
-
Es ist ein Aspekt der vorliegenden
Erfindung ein computerimplementiertes Verfahren zum Zusammenführen von
Seitenelementen in Seiten zu liefern, welches gemäß Anspruch
1 ausgebildet ist. Das Verfahren ist derart flexibel, dass es in
einem beschriebenen bevorzugten Ausführungsbeispiel in einem Standard-Computersystem
implementiert ist, während
es als Hardware implementiert werden kann, und somit kann es auf
einer Reihe von Computersystemen implementiert werden. Die Fähigkeit
des Verfahrens mit schnellen digitalen Farbdrucksystemen schrittzuhalten
ist ein Resultat davon, dass die Daten im wesentlichen komprimiert
in allen Zuständen
des Zusammenführverfahrens
verbleiben, bis zur abschließenden
Dekomprimierung der zusammengeführten
Seiten für
den Druckvorgang.
-
Ein enthaltenes Ausführungsbeispiel
beschreibt ein Verfahren zum Erzeugen einer oder mehrerer Seiten
für eine
digitale Druckpresse, wobei das Verfahren die Schritte des Vorbereitens
einer Vielzahl von Seitenelementen aufweist, wobei jedes davon vorzugsweise
als Seitenbeschreibungs-Sprachenordner
definiert wird. Mehrseitige Seitenbeschreibungsordner können wahlweise
zum Erzeugen einer Serie von Seitenelementen verwendet werden. Tinteneigenschaften
(Knockout, Überdrucken,
etc.) sind mitumfaßt,
um die Überlappung von
verschiedenen Seitenelementen zu ermöglichen. Eine Technik zum Definieren
von nicht-rechteckigen Seitenelementen beinhaltet die Verwendung
eines transparenten weißen
Hintergrundes. Ein weiterer Schritt besteht in dem Rastern (RIP-Verfahren)
und Komprimieren der Seitenelemente bei der Auflösung des Ausgabegerätes zum
Bilden von komprimierten Seitenelementen. Die komprimierten Seitenelemente
werden in einem Seitenelementenspeicher gespeichert, welcher auf
eine (oder mehrere) der vielen Möglichkeiten
implementiert werden kann, umfassend als ein Discspeicher, ein Direktzugriffsarray
eines unabhängigen
Disc(RAID)-Systems, ein schneller optischer Speicher, etc..
-
Gemäß dem Verfahren wird ein Zusammenführungsskript
(Seitenlayoutskript) geschaffen, welches eine oder mehrere Seiten
durch Spezifizieren der Seitenelemente und deren Attribute mit samt
Position, Ausrichtung, Überdruckreihenfolge
und Zusammenführungsmodus
(Überdrucken,
Knockout, auf den Tinteneigenschaften basierendes Überdrucken,
Transparenz, etc.) beschreibt. Theoretisch gibt es keine Grenze
bei der Anzahl oder Größe der von
irgendeiner Seite umfaßten
Elemente.
-
Für
jede Seite werden die Seitenelemente, welche in der Seite enthalten
sind, gemäß dem Seitenlayoutskript
zusammengeführt,
wobei das Zusammenführen
komprimierte Bilddaten erzeugt, welche die Seite darstellen, wobei
der Zusammenführungsschritt
im wesentlichen in dem komprimierten Bereich auftritt. Dies bedeutet,
dass während
des Zusammenführungsverfahrens
die Seitenelemente komprimiert bleiben, außer dass gelegentlich einige
Grenzpixel dekomprimiert werden müssen, wenn eine sehr genaue Positionierung oder
Masken von willkürlich
geformten Objekten enthalten sind. Die durch das Zusammenführen erzeugten komprimierten
Bilddaten werden in Rasterbilddaten dekomprimiert und die Rasterbilddaten
werden auf dem Ausgabegerät
(die digitale Druckpresse) gedruckt. Die Schritte Zusammenführen, Dekomprimieren
und Drucken werden für
jede Seite wiederholt, welche gedruckt werden muß.
-
Ein Ausführungsbeispiel des Verfahrens
besteht darin, dass nicht notwendigerweise ein Link zwischen den
verschiedenen Seitenelementen besteht, bis zu dem Moment, zu welchem
sie gemäß dem Zusammenführungsskript
zusammengebracht werden, so dass verschiedene Elemente von verschiedenen
Seitenbeschreibungsordnern herkommen können und unter Verwendung verschiedener
Vordruckpakete, etc. erzeugt werden können.
-
Gemäß einem weiteren Ausführungsbeispiel
umfassen die Seitenelemente in dem oben beschriebenen Verfahren
Linienarbeitsdaten. Gemäß einem
weiteren Aspekt umfassen die Seitenelemente CT-Daten. Gemäß einem
weiteren Aspekt stehen die CT-Daten mit ihren Maskendaten zum Definieren
einer Maske um die CT-Daten herum in Zusammenhang. Gemäß einem
weiteren Aspekt umfassen die Seitenelemente LW-Daten, CT-Daten und Maskendaten.
Für die
letzte Situation ist ein Ausführungsbeispiel
des Verfahrens zum Erzeugen einer oder mehrerer Seiten für eine digitale
Druckpresse enthalten, welches in dem RIP-Verfahrensschritt den
Schritt des Trennens der Linienarbeitsdaten und der CT-Daten, Komprimieren
der gerasterten Linienarbeitsdaten unter Verwendung eines Linienarbeits-Komprimierungsverfahrens
zum Bilden von komprimierten Linienarbeits-Seitenelementendaten
und Komprimieren der gerasterten CT-Daten unter Verwendung eines CT-Komprimierungsverfahrens
zum Bilden von komprimierten CT-Seitenelementendaten umfaßt, wobei
das komprimierte Seitenelement somit die komprimierten Linienarbeits-Seitenelementdaten,
die komprimierten CT-Seitenelementdaten
und die Maskendaten beinhaltet. In einer Implementierung wird eine
CT-Auswahlmaske erzeugt, komprimiert und in das komprimierte Seitenelement
eingefügt,
wobei die CT-Auswahlmaske sich auf die Pixel in dem Seitenelement
derart bezieht, dass jedes Pixel in dem Seitenelement als ein LW-
oder CT-Pixel identifiziert werden kann.
-
In der beschriebenen Implementierung
beinhaltet das Zusammenführen
der komprimierten Seitenelemente ein Zusammenführen der Maskendaten, ein Zusammenführen der
komprimierten Linienarbeits-Seitenelementdaten von allen Seitenelementen
zum Bilden von komprimierten zusammengeführten Linienarbeitsdaten und
ein Zusammenführen
der komprimierten CT-Seitenelementdaten von allen Seitenelementen
zum Bilden von komprimierten zusammengeführten CT-Daten. Die zusammengeführten Maskendaten,
die komprimierten zusammengeführten
Linienarbeitsdaten und die komprimierten zusammengeführten CT-Daten
befinden sich in den komprimierten Bilddaten. Die komprimierten
zusammengeführten
Linienarbeitsdaten und die komprimierten zusammengeführten CT-Daten
werden dekomprimiert und mit den Rasterbilddaten kombiniert.
-
Gemäß einem Ausführungsbeispiel
sind die zusammengeführten
Maskendaten eine zusammengeführte
CT-Auswahlmaske und die Kombination ist eine Auswahl von Pixeln
für das
Drucken von den dekomprimierten Linienarbeits- oder dekomprimierten
CT- Daten gemäß dem Wert
der zusammengeführten
CT-Auswahlmaske für
die Pixel.
-
Gemäß einem weiteren umfaßten Ausführungsbeispiel
ist das Linienarbeits-Komprimierungsverfahren ein Weglängen-Codierungsverfahren
(RLE) und das CT-Komprimierungsverfahren ist ein auf einem Block basierendes
Verfahren. Ein derartiges auf einem Block basierendes Verfahren
heißt
JPEG, welches auf 8 × 8 Blöcken arbeitet.
-
Zur Verbesserung werden zusätzliche
Daten gemäß einem
weiteren umfaßten
Aspekt zu den komprimierten Seitenelementen hinzugefügt, wobei
die zusätzlichen
Daten ein schnelles Lokalisieren einer gewünschten Stelle ermöglichen.
Für den
Fall von komprimierten Linienarbeits-Seitenelementdaten, welche unter Verwendung
eines RLE-Verfahrens
komprimiert wurden, beinhalten die zusätzlichen Daten eine Nachschlagetabelle
mit einem Offset zu dem Start jeder Reihe. Für den Fall von komprimierten
Linienarbeits-Seitenelementdaten,
welche unter Verwendung des JPEG-Verfahrens
komprimiert wurden, beinhalten die zusätzlichen Daten Neustartmarkierungen
in den JPEG-Daten.
-
Ein weiteres Ausführungsbeispiel der vorliegenden
Erfindung ermöglicht
ein rasches Zusammenführen
durch Sicherstellen, dass die relative Positionierung der CT-Daten
auf den Grenzen der Blöcke
stattfindet, welche durch das CT-Komprimierungsverfahren (der CT-Blöcke) definiert
sind. Ferner wird ein Ausführungsbeispiel
des Verfahrens beschrieben, welches eine Umpositionierung des CT-Seitenelementes
derart umfaßt, dass
ein Zusammenführen
auf den CT-Blockgrenzen auftritt.
-
Gemäß einem weiteren Ausführungsbeispiel
des Verfahrens befinden sich die Linienarbeitsdaten in den Seitenelementen
an einer Linienarbeitsauflösung,
und die CT-Daten in den Seitenelementen befinden sich an einer CT-Auflösung, wobei
die Linienarbeitsauflösung
dieselbe ist wie die CT-Auflösung. Gemäß einem
weiteren Aspekt unterscheidet sich die Linienarbeitsauflösung von
der CT-Auflösung
und befindet sich bei der Auflösung
der digitalen Druckpresse.
-
Gemäß einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung ist das CT-Komprimierungsverfahren ein
JPEG-Verfahren und
verwendet einen Satz an einer oder mehrerer Quantisierungstabellen,
wobei jede Tabelle einer Komprimierungsqualität entspricht. Gemäß einem
besonderen Ausführungsbeispiel
beziehen sich die Tabellen in dem Satz an Quantisierungstabellen
durch einen Satz an Verhältnissen
derart aufeinander, dass jegliche Umquantisierung unter Verwendung
einer der Verhältnisse
rechnerisch effizient ist.
-
Ein Ausführungsbeispiel des Verfahrens
der vorliegenden Erfindung umfaßt
die Fähigkeit,
die Elemente zusammenzuführen,
welche durch willkürliche
Formen definiert sind. Gemäß einem
Ausführungsbeispiel
ist die willkürliche
Form für
CT-Daten eines Seitenelements durch eine Maske definiert, welche
auf viele Arten implementiert werden kann, inklusive als eine Bitmap
und als ein Clipping-Pfad. In einem enthaltenen Ausführungsbeispiel
ist die Maske als CT-Gültigkeitsmaske
implementiert, welche definiert, welche CT-Pixel in den CT-Daten eines Seitenelements
gültig
sind. Die CT-Gültigkeitsmaske
ist ein Teil des Seitenelements. Gemäß einem enthaltenem Ausführungsbeispiel
wird die CT-Gültigkeitsmaske
mit einem blockbasierenden CT-Komprimierungsverfahren
als Teil des Zusammenführungsbetriebes
zum Definieren von Grenzblöcken
und inneren Blöcken
von komprimierten CT-Seitenelementdaten verwendet. Die Grenzblöcke werden
unterschiedlich von den inneren Blöcken zusammengeführt und
gemäß einem
speziellen Ausführungsbeispiel
werden die Grenzblöcke
durch zunächst
Dekomprimierung derselben zu Grenzblöcken zusammengeführt, welche
zusammengeführt
werden sollen.
-
Ein weiterer Aspekt der vorliegenden
Erfindung betrifft eine Vorrichtung zum Zusammenführen von Seitenelementen
in komprimierte zusammengeführte
Daten gemäß Anspruch
26. Ein Ausführungsbeispiel
der Vorrichtung ist enthalten, welches eine erste Speichereinrichtung
aufweist, in welcher Seitenelemente in einem komprimierten Format
gespeichert werden. Eine zweite Speichereinrichtung ist enthalten,
wobei ein Seitenzusammenstellungsskript darin gespeichert wird.
Das Seitenzusammenstellungsskript spezifiziert die Identifizierer,
die Stellen und die Druckreihenfolge der ausgewählten Seitenelemente, welche
in den zu bildenden komprimierten zusammengeführten Daten enthalten sind.
Auf Grundlage dessen, was durch das Seitenzusammenstellungsskript
spezifiziert wird, ruft ein Zusammenführungssystem die komprimierten
Daten von den einzelnen Seitenelementen, welche in der ersten Speichereinrichtung
gespeichert sind, ab und führt
diese gemäß dem Seitenzusammenstellungsskript
in komprimierte zusammengeführte
Daten zusammen, wobei das Zusammenführen im wesentlichen in dem
komprimierten Bereich derart abläuft,
dass im wesentlichen keine Dekomprimierung stattfindet.
-
Gemäß einem bevorzugten Ausführungsbeispiel
ist die erste Speichereinrichtung ein RAID-System und die zweite
Speichereinrichtung ein Laufwerk. Gemäß einem weiteren bevorzugten
Ausführungsbeispiel
ist wenigstens einer der Speichereinrichtungen ein Speichermodul.
Das Zusammenführungssystem
kann als auf einem Prozessor laufende Software oder als Teil eines
Hardwareschaltkreises implementiert werden, welcher einen separaten
Prozessor zum Ausführen
der Funktion aufweisen kann. Falls die Zusammenführungsmittel einen Prozessor
und ein Speichermodul aufweisen, umfaßt das Speichermodul einen
Satz an auf einem Prozessor laufenden Computerinstruktionen. Dieser
Satz an Computerinstruktionen bzw. Computeranweisungen veranlaßt den Prozessor
das Seitenzusammenstellungsskript zu lesen und die Seitenelemente
abzurufen, wie in dem Seitenzusammenstellungsskript spezifiziert
ist. Die Komprimierungsmittel können
ebenfalls hinzugefügt
werden und als auf einem Prozessor laufende Software implementiert
werden oder als ein Teil des Hardwareschaltkreises, welcher einen
separaten Prozessor aufweisen kann, zum Dekomprimieren der komprimierten
zusammengeführten
Daten, um diese auszudrucken. Falls die Dekomprimierungsmittel einen
Prozessor und ein Speichermodul aufweisen, umfaßt das Speichermodul einen
Satz an auf einem Prozessor laufenden Computerinstruktionen. Dieser
Satz an Computerinstruktionen veranlaßt den Prozessor dazu, die
komprimierten zusammengeführten
Daten zu dekomprimieren. In Fällen,
in denen unterschiedliche Komprimierungsverfahren für die Linienarbeitsdaten
und die CT-Daten, welche in einem oder mehreren Seitenelementen
enthalten sind, verwendet werden, werden gemäß einem Ausführungsbeispiel
die Zusammenführungsmittel
verdoppelt und gemäß einem
weiteren Ausführungsbeispiel
besitzen die Zusammenführungsmittel
zwei Betriebsmodi, abhängig
von dem vorhandenen Format.
-
Ein weiterer Aspekt der vorliegenden
Erfindung besteht in einem vollständigen System zum Zusammenführen und
Drucken von Daten auf einem Druckgerät, gemäß Anspruch 31. Gemäß einem
bevorzugten für
das gesamte System beschriebenen Ausführungsbeispiel wird ein RIP-Verfahren
(und Kompressor) zum Bilden der komprimierten CT- und der komprimierten
Linienarbeitsdaten von den Seitenelementordnern zum Erzeugen von
komprimierten Seitenelementen verwendet, welche die komprimierten
CT- und komprimierten Linienarbeitsdaten umfassen. Das RIP-Verfahren
erzeugt vorzugsweise, jedoch nicht notwendigerweise, Pixeldaten,
welche ungescreent sind und in Druckfarben, beispielsweise CMYK,
getrennt sind. Das beschriebene System umfaßt auch einen Seitenelementenspeicher,
in welchem diese komprimierten Seitenelemente gespeichert werden
und wobei der Elementenspeicher gemäß einem Ausführungsbeispiel
ein RAID-Untersystem ist.
Durch ein Seitenlayoutskript, welches durch ein Zusammenführungssystem
gespeichert und interpretiert wird, wird bestimmt, welche Seitenelemente
in welche Seitenelemente zusammengeführt werden und die Stellen
jedes Elements auf der Seite bestimmt. Das beschriebene Ausführungsbeispiel
bezüglich
des Zusammenführungssystems
umfaßt
ein Lese-Untersystem zum Abrufen der erforderlichen Seitenelemente
von dem Seitenelementenspeicher in einen Seitenelement-Cachespeicher,
und einen Zusammenführer
zum Zusammenführen
von komprimierten Linienarbeitsdaten und komprimierten CT-Daten,
wobei der Zusammenführer
die komprimierten Linienarbeitsdaten und die komprimierten CT-Daten von dem Seitenelement-Cachespeicher erhält. Der
Cachespeicher ist vorzugsweise als Speichermodul ausgebildet. Der
Zusammenführer
führt ausgewählte Seitenelemente
gemäß dem Seitenlayoutskript
zusammen, wobei das Zusammenführen
im wesentlichen in dem komprimierten Bereich zum Erzeugen von komprimierten
Seitendaten erfolgt, welche die abschließenden komprimierten Linienarbeits-Seitendaten und abschließenden komprimierten
CT-Seitendaten beinhalten. Das beschriebene Ausführungsbeispiel bezüglich des
Zusammenführungssystems
beinhaltet einen Dekompressor, welcher die abschließenden Linienarbeits-
und komprimierten CT-Seitendaten zum Erzeugen von vollständigen dekomprimierten
LW-Seitendaten und vollständigen
dekomprimierten CT-Seitendaten jeweils dekomprimiert. Diese dekomprimierten
vollständigen
Seiten werden in eine einzelne abschließende Seite in einem Kombinierer/Screener
kombiniert, welcher auch die Seitendaten screent. Die gescreenten
Seitendaten werden zu den Druckköpfen
des Druckgerätes
mit der durch die Druckköpfe
des Druckgerätes
geforderten Rate beziehungsweise Geschwindigkeit geführt.
-
Die bevorzugten Ausführungsbeispiele
des Verfahrens und des Gerätes
beziehungsweise der Vorrichtung der vorliegenden Erfindung wurden
als Beispiele unter der Annahme einer JPEG-Komprimierung für die CT-Daten und eines RLEs
für die
Linienarbeiten beschrieben. Das beschriebene Verfahren und die beschriebene
Vorrichtung sind nicht auf diese besonderen Komprimierungsformate
beschränkt.
Sie können
mit irgendeinem Komprimierungsformat verwendet werden, solange das
Format ein Einfügen
von Bitstreams, welche die komprimierten Bilddarstellungen darstellen,
in einem ähnlich
formatierten Bitstream ermöglichen.
Wo diese Bitstreams eingefügt
werden sollen, kann dann durch eine Markierung (wenn es das Komprimierungsformat
erlaubt) oder einem Pointer (getrennt von dem Format gehalten) spezifiziert
werden.
-
1 ist
ein Blockdiagramm eines typischen Computersystems, in welchem die
vorliegende Erfindung verkörpert
werden könnte;
-
2(a) illustriert
eine Technik einer Masterseite, auf welcher eine variable Seite
(zwei Beispiele sind dargestellt) zusammengeführt werden kann. Das zusammengeführte Ergebnis
ist die Seite mit dem variablen Element V1, welches in einem Fall
zusammengeführt
ist, und die Seite mit dem variablen Element V2, welches in einem
anderen Fall zusammengeführt
ist;
-
2(b) illustriert
ein Beispiel einer Verwendung einer flexiblen Technik, welche für die drei
Seitenelemente verwendet wird, welche zusammengeführt sind,
resultierend in einem zusammengeführten Bild. Es gibt kein Konzept
einer festen Masterseite, auf welcher die variablen Elemente zusammengeführt sind,
obwohl diese Konzepte untergebracht werden könnten;
-
3 illustriert
ein vereinfachtes Beispiel von zwei CT-Seitenelementen, welche zusammengeführt werden
sollen;
-
4 illustriert
einen Datenstrom bestehend aus komprimierten Blockdarstellungen,
wobei jede von diesen eine vorangestellte Neustartmarkierung ("RST") aufweist;
-
5(a) und 5(b) zeigen Ausrichtblockgrenzen
von CT-Bildern zum Zusammenführen
gemäß einem Aspekt
der vorliegenden Erfindung;
-
6(a) und 6(b) illustrieren eine Vergrößerung eines
CT-Bildes vor einem Zusammenführen
gemäß einem
weiteren Aspekt der vorliegenden Erfindung;
-
7 zeigt
einen Datenstrom, bei welchem lediglich einer Auswahl von komprimierten
Blockdarstellungen eine Markierung vorangestellt ist, gemäß einem
weiteren Aspekt der vorliegenden Erfindung;
-
8 zeigt
ein Beispiel von lauflängen-codierten
Linienarbeitsdaten vor und nach einem Zusammenführen gemäß einem weiteren Aspekt der
vorliegenden Erfindung;
-
9(a)–(e)zeigen ein Beispiel eines Seitenelementes
und die in einem Seitenelementordner gespeicherten Strukturen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. 9(a) zeigt
ein Beispiel eines Seitenelementes, 9(b) zeigt
die CT-Daten des Elementes aus 9(a), 9(c) zeigt die CT-Gültigkeitsmaske
für die
CT-Daten in dem Element aus 9(a), 9(d) zeigt die LW-Daten
des Elementes aus 9(a) und 9(e) zeigt die CT-Auswahlmaske,
welche in den LW-Daten des Elementes aus 9(a) enthalten ist;
-
10 zeigt
ein typisches System für
eine Dokumentherstellung, welches ein Ausführungsbeispiel der vorliegenden
Erfindung umfaßt;
-
11 zeigt
drei wechselwirkende Fäden
beziehungsweise Muster, wobei die Muster Teil des schnellen Zusammenführungssystems
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung sind;
-
12 zeigt
ein Ausführungsbeispiel
des schnellen Zusammenführungssystems
in detaillierterer Darstellung;
-
13 zeigt
die Strukturen, welche in dem Speichermodul für den Seitenelement-Cachespeicher gebildet
sind, das Seitenelement-Beispielsfeld, das Seitenelementfeld und
das Seitenbeschreibungsfeld gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung; und
-
14 ist
ein Blockdiagramm einer Vorrichtung gemäß einem Aspekt der vorliegenden
Erfindung.
-
Beschreibung des gesamten
Systems:
-
Die beschriebene Erfindung kann als
Teil eines kompletten Systems für
eine Druckfabrik basierend auf einer digitalen Druckpresse verwendet
werden. Ein Beispiel eines derartigen Systems ist in 10 illustriert und mit
dem Bezugszeichen 1001 versehen. Im folgenden wird eine
allgemeine Beschreibung der Bauteile eines derartigen Systems und
der Wechselwirkung zwischen diesen Bauteilen gegeben. In der folgenden
allgemeinen Beschreibung werden die Hauptbauteile eines Ausführungsbeispiels
der vorliegenden Erfindung detaillierter beschrieben, dargestellt
als schnelles Zusammenführungssystem
1003 im Inneren des gestrichelten Kästchens.
-
10 ist
der Ausgangspunkt der Beschreibung eines bevorzugten Ausführungsbeispiels
und stellt keineswegs die einzig mögliche Ausgestaltung dar oder
die einzige Art, wie das Element 1003 in einem vollständigen System
verwendet werden kann.
-
Die Vordruck-Arbeitsstation 1005:
-
Drei Arbeitsstationen, welche mit
dem Bezugszeichen 1005 bezeichnet sind, sind in 10 dargestellt, wobei alle
mit einem lokalen Netz ("LAN") 1007 verbunden
sind. Mehrere oder wenigere Arbeitsstationen können Bestandteil des Systems
sein. Die Arbeitsstation 1005 kann ein Standardcomputer
sein und kann mehrere Softwaremodule aufweisen, inklusive einer
Standardvordruck-Software wie beispielsweise Adobe Photoshop und/oder
Adobe Pagemaker, von der Firma Adobe, Inc. of Mountain View, Kalifornien,
und/oder QuarkXpress, von der Firma Quark, Inc. aus Denver, Colorado.
Nachdem ein gesamtes Dokument, als Buch bezeichnet, designed worden
ist, wird eine derartige Standard-Vordrucksoftware durch einen Designer
verwendet, um die verschiedenen einzelnen Seitenelemente der Seiten
des Buches zu bilden, wobei jedes einzelne Element so designed wird,
als ob es eine einzelne Seite wäre.
Die Seitenelementdaten werden dann an einen RIP-System so gesendet,
als ob der Designer einen Standarddrucker verwenden würde. Somit
können
einige Seitenelement-Seiten sehr klein sein -- nämlich die Abmessungen des einzelnen
Seitenelementes.
-
Das Gesamtdesign eines Buches wird
durch den Designer in einem Seitenlayoutskript spezifiziert. Der Aufbau
des Seitenlayoutskriptes wird weiter unten in der Beschreibung ausführlicher
beschrieben werden. Zum Drucken einer Datenbank, bei welcher viele
verschiedene Beispiele einiger Elemente als verschiedene Elemente
agieren, bildet der Benutzer Formen für das Layout des Dokumentes
und eine spezielle Software wird zum Erzeugen von Beispielen der
eigentlichen Seiten als Seitenelemente verwendet. Diese Software
erzeugt für
den Fall von "variablen" Daten einen Satz
an Seiten, wobei jede einzelne Seite ein besonderes Beispiel des
Seitenelementes ist, welches die variablen Daten annimmt. Es sei
an dieser Stelle bemerkt, dass für das
System keine Vorstellung von "variablen
Daten" oder einer "Masterseite" wie in Systemen
gemäß dem Stand
der Technik, wie beispielsweise dem Barco Graphics PrintStreamer
I, vorhanden ist. In dem vorliegenden neuen System, welches einige
Aspekte der vorliegenden Erfindung verkörpert, sind alle Seitenelemente "gleichwertig" in der Art, in welcher
sie hergestellt werden. Die Reihenfolge und der Zusammenführungsmodus derartiger
Elemente bestimmen, wie die abschließende Seite ausschauen wird.
-
Es sei darauf hingewiesen, dass zwei
RIP-Systeme 1009 verbunden mit dem LAN 1007 in
dem System in 10 dargestellt
sind, und mehrere oder wenigere RIP-Systeme verwendet werden können, oder
das RIP-System kann Teil der Arbeitsstation 1005 oder Teil
des Computersystems sein, welches zur Verkörperung des schnellen Zusammenführungssystems 1003 verwendet
wird. Jeder Drucktreiber in den Arbeitsstations-Softwaremodulen,
welche zum Design verwendet werden, erzeugt eine Objektbeschreibung
in einem Standard PDL, wie beispielsweise Adobe PostSkript oder
Adobe PDF, oder der Druckertreiber kann an eine eigene PDL, wie
beispielsweise HP PCL oder GRO, ausgeben. Die einzige Anforderung
in diesem bevorzugten Ausführungsbeispiel
besteht darin, dass die PDL dem RIP-System (1009), welches
für ein
RIP-Verfahren der PDL verwendet wird, ermöglicht, die LW-Daten von den
CT-Daten zu unterscheiden. Jedoch existiert eine weitaus größere Flexibilität in der
Seitengestaltung, wenn die PDL auch dem RIP-System 1009 ermöglicht,
ein Überdrucken
von Farben von einer Maskierung bzw. Abdeckung von Farben, und eine
abdeckende weiße
Farbe von einem leeren Hintergrund derart zu unterscheiden, dass
das RIP-System 1009 die Überdruckinformationen in den
Seitenelementen codieren kann. Dies ist in dem vorliegenden Ausführungsbeispiel
der Fall.
-
Somit gestaltet der Designer einzelne
Seitenelemente als PDL-Files.
Im allgemeinen können
diese einzelseitige oder mehrseitige PDL-Files sein. Beispielsweise
werden mehrseitige PDL-Files vorzugsweise für "variable" Datenelemente verwendet, wobei "variabel" bedeutet, dass ein
herkömmliches
Designmuster existiert, welches verschiedene Werte in verschiedenen
Beispielen annehmen kann. In einem derartigen Fall kann jede Seite
ein unterschiedliches Beispiel darstellen. Mehrseitige PDL-Files
werden als Elementenfeld behandelt, in welchem auf jedes Element
(jede Seite) einzeln zugegriffen werden kann. Es sei im folgenden
beispielsweise angenommen, dass ein personalisierter Formbrief in
einer Verkaufspromotion verwendet wird. Eines der Elemente eines
derartigen Designs könnte
die Unterschrift des Verfassers eines derartigen Briefes sein, und der
Brief könnte
von einer von mehreren Verkaufspersonen verwendet (unterschrieben)
werden. Das Unterschriftselement kann für dieses Ausführungsbeispiel
als mehrseitiges PDL-File ausgestaltet sein, wobei jede Seite die
Größe der größtmöglichen
zu druckenden Unterschrift aufweist, wobei jede Seite die Unterschrift
einer bestimmten Verkaufsperson enthält. Falls dieser File Verkaufsperson
Unterschrift genannt wird, würde
eine solche Unterschrift, beispielsweise die 25igste, als Verkaufsperson
Unterschrift [25] bezeichnet werden. Zur Erinnerung sei darauf hingewiesen,
dass in dem bevorzugten Ausführungsbeispiel
wirklich kein Konzept einer Masterseite und verschiedene Elemente
vorhanden sind; alle Seitenelemente sind äquivalent und die Reihenfolge
der Zusammenführungsart
definiert das abschließende
Erscheinungsbild. Mehrseitige PDL-Files sind einfach ein bequemer
Weg mit einem Satz an Elementen umzugehen.
-
Das RIP-System 1009:
-
Die Seitenelementbeschreibungen (in
der Form von einseitigen oder mehrseitigen PDL-Files) werden an
ein oder mehrere Rasterbild-Bearbeitungssysteme ("RIP") 1009 gesendet. 10 zeigt dieses Senden über ein
LAN-Netz 1007 und dies ist offensichtlich nicht die einzige
mögliche
Ausgestaltung. Sobald die Daten empfangen werden, trennt gemäß dem vorliegenden
bevorzugten Ausführungsbeispiel
das RIP-System 1009 die LW-Daten von den CT-Daten unter
Verwendung der internen Anzeigeliste des RIP-Systems 1009,
und erzeugt drei getrennte Rasterbilder für jede Farbtrennung. Das RIP-System
erzeugt Pixeldaten, welche ungescreent sind. Ein Screenen wird nach
einem Zusammenführen
und vor dem Drucken ausgeführt.
Die Anzahl der Trennungen hängt
von dem speziell eingesetzten Zieldruckgerät ab und kann vier (beispielsweise CMYK), sechs
(beispielsweise CMYK plus zwei PANTONE-Tinten), sieben (beispielsweise
CMYK plus RGB, was als "hifi"-Farbe bezeichnet
wird) etc. betragen. Die ausgegebenen Rasterbilder werden abhängig von
der Art der Daten komprimiert. Gemäß dem bevorzugten Ausführungsbeispiel,
welches bei einem Vierfarben-Duplexdruck erhalten wird, sind die
drei Arten von Ausgaben für
jede Trennung, welche durch das RIP-System 1009 erzeugt
werden, folgende:
-
CT-Daten: Die CT-Daten werden mit
dem JPEG-Algorithmus komprimiert. Das JPEG-Format ermöglicht,
dass irgendeinem codierten Block eine spezielle 16-Bit Ausrichtungsmarkierung
(auch Neustartmarkierung genannt) vorangestellt wird, bezeichnet
als RST. Diese 16-Bit Ausrichtungsmarkierung erleichtert das Suchen über einen
JPEG-Bitstrom; man sucht nach dem speziellen 16-Bit RST-Wert durch
Vergleichen jedes 16-Bit Wortes des Bitstroms. Gemäß dem vorliegenden
bevorzugten Ausführungsbeispiel
werden die JPEG-Daten mit Neustartmarkierungen derart angereichert,
dass das Zusammenführungssystem
schnell irgendeine (x, y)-Position in dem komprimierten Rasterbild
lokalisieren kann. Das Setzen einer RST-Markierung vor jeden Block
würde die
Komprimierungsrate erheblich verschlechtern. Somit werden gemäß dem bevorzugten
Ausführungsbeispiel
zu der RIP-Zeit RST-Markierungen zu jeder Anzahl, beispielsweise
n, an Blöcken
hinzugefügt
und zu der Zusammenführungszeit
werden RST-Markierungen an die Grenzen der Objekte hinzugefügt, falls
notwendig. Dies wird ausführlicher
im folgenden beschrieben werden, Die CT-Auflösung kann gleich groß oder geringer
sein als die Geräteauflösung. Für die Implementierung
für das
oben erwähnte
Xeikon-Druckgerät,
welches mit 600 Punkten pro Inch (dpi) druckt, besitzen die CT-Daten
eine Auflösung
von 300 dpi.
-
CT-Gültigkeitsmaske: Die CT-Gültigkeitsmaske
ist eine binäre
Maske bei einer CT-Auflösung,
welche markiert, welche der CT-Pixel
gültige
Daten enthalten. Dies ermöglicht
dem Zusammenführungssystem schneller
die CT-Daten der überlappenden
Elemente zusammenzuführen,
falls die 8 × 8
Pixel-Blöcke mit
gültigen
CT-Daten nicht überlappen.
Die CT-Gültigkeitsmaske
kann helfen, die Artifakten der mit einem Verlust behafteten Komprimierung
zu verringern und das CT-Zusammenführen durch
Gültigmachen
bestimmter durch LW-Daten abgedeckter CT-Daten zu beschleunigen
(beispielsweise wird das durch den Text abgedeckte CT gültig gemacht;
siehe 9). Die CT-Gültigkeitsmaske
kann eine willkürliche
Grenze aufweisen, sie kann durch getrennte Bereiche hergestellt
werden, welche irgendeine Form besitzen können. Das Gültigmachen von CT unter bestimmten
LW reduziert die Gültigkeitsmaskengrenze
und verringert somit die CT-Zusammenführungskomplexität. Die Komprimierungsartifakten
werden ebenfalls aufgrund der geringeren Grenzen zwischen verschiedenen
CTs, nach einer CT-Zusammenführung,
verringert. Andererseits könnte
dies überschwingende
Artifakte aufgrund der mit einem Verlust behafteten Komprimierung
einführen.
Man verwendet einfach die CT-Gültigkeitsmaske,
um zu indizieren, welche bestehenden CT-Pixel nicht gültig sind.
Somit wird die CT-Gültigkeitsmaske
als 8 × 8
Blöcke
von Pixeln gespeichert, wobei ein spezieller Code für einen
Block verwendet wird, in welchem alle 64 Pixel gültig sind, und ein anderer
Code für
den Fall verwendet wird, dass alle 64 Blöcke ungültig sind. Nachfolgende Reihen
von gültigen
oder ungültigen
Blöcken
werden durch eine Lauflängencodierung
(RLE) komprimiert. Andere Blöcke
werden als 8 × 8
Bitmaps gespeichert. Ebenfalls wird die CT-Gültigkeitsmaske vorzugsweise über die
CT- Auswahlmaske
hinaus derart ausgedehnt, dass sie den 8 × 8 JPEG-Blockgrenzen der CT-Daten folgt.
-
LW-Daten: LW-Daten werden mit einem
RLE-Algorithmus komprimiert, wobei die Daten-Header eine Tabelle
mit dem Offset an dem Beginn jeder Linie in dem Strom derart aufweisen,
dass wiederum das Zusammenführungssystem
jeden Pixel schnell lokalisieren kann. Die LW-Auflösung ist
vorzugsweise, jedoch nicht notwendigerweise, gleich der Auflösung des
Ausgabe-Druckgerätes,
welche für
das Xeikon-Gerät 600 dpi
beträgt.
Eine CT-Auswahlmaske ist eine binäre Maske, welche dem Dekomprimierungssystem
ermöglicht,
zu entscheiden, ob ein Ausgabepixel von den LW-Daten oder den CT-Daten
herrühren
muß. Die
Auflösung
der CT-Auswahlmaske in dem vorliegenden System besitzt die gleiche
Auflösung
wie die LW-Daten und ist als Teil der LW RLE-Daten codiert. Alle
LW-Datenläufe beinhalten
somit eine Markierung, um anzuzeigen, ob der Lauf CT oder LW ist
(dies ist der CT-Auswahlmaskenteil der LW-Daten). Im Falle von LW
umfaßt
der Lauf auch den Farbwert, und ob die LW-Abdecken, Überdrucken
etc..
-
Ein Seitenelement würde normalerweise
sowohl LW- als auch CT-Daten
enthalten, und in einem derartigen Fall werden alle drei Datenarten
(CT-Daten, CT-Gültigkeitsmaske
und LW-Daten, welche eine eingebettete CT-Auswahlmaske enthalten
können)
zusammen als ein File gespeichert. Der Systemdesigner würde den
Fileaufbau gestalten, um ein effizientes Drucken mit den besonderen
Druckgeräten
zu ermöglichen,
welche mit dem System verbunden werden sollen. Eine getroffene Designentscheidung
bestand darin, die Seitenelemente in horizontale Streifen zu spalten,
wobei jeder Streifen eine Höhe
eines CT-Blocks, d. h. 8 CT-Pixel, besitzt. In dem Xeikon-Gerät, da LW
mit einer doppelten Auflösung
im Vergleich zu CT gedruckt wird, ist ein Streifen von LW-Daten
somit 16 Pixel hoch. Eine Unterseite in dem vorliegenden System
besteht aus einer Anzahl von nachfolgenden Streifen, somit bei einer
vollen Seitenbreite, und mit einer Länge, welche derart gewählt ist,
dass die Speichermenge, welche durch die Unterseite besetzt wird,
leicht durch die unterschiedlichen Puffer in dem vorliegenden bevorzugten
Ausführungsbeispiel
gehandhabt werden kann. Somit wird eine Unterseite, wenn eine komplette
Seite nicht gehandhabt werden kann, zu einem Zeitpunkt zusammengeführt. Dies
kann bei derartigen Druckgeräten
wie dem Xeikon-Gerät
auftreten, welche "Seiten" mit einer Höhe von mehreren
Metern drucken können.
Da es konzeptionell keinen Unterschied zwischen einer Seite und
einer Unterseite gibt, wird hierin der Ausdruck "Seite" verwendet, um eine Unterseite für den Fall
zu umfassen, dass lediglich die Unterseiten zusammengeführt werden.
Eine weitere Designentscheidung besteht darin, wie die Trennungen
gespeichert werden. Um parallele Verfahren jeder der Trennungen
zu ermöglichen,
werden Daten Trennung für
Trennung gespeichert und jede Trennung besitzt ihre eigene CT-Gültigkeitsmaske
und CT-Auswahlmaske.
Dies ermöglicht
nicht nur ein paralleles Verfahren von jeder Trennung separat, sondern
auch das Aufweisen von verschiedenen CT-Clips und Auswahlmasken
in jeder Trennung. Somit wird in dem vorliegenden System ein Seitenelement
in einen File mit den drei Arten von Daten (CT, CT-Gültigkeitsmaske
und LW)-Streifen und einer verschachtelten Trennung geschrieben.
Zum Beispiel wird die Reihenfolge der Daten für ein einseitiges Seitenelement
von CMYK-Daten in der Druckreihenfolge (das Xeikon-Gerät druckt
in der Reihenfolge Y L M und K) geschrieben:
-
-
-
9 ist
ein Beispiel einer Trennung beziehungsweise Aufteilung eines Seitenelementenfiles.
Das Seitenelement 903, wie es ausgedruckt wird, ist in 9(a) dargestellt und weist
darin einen ununterbrochenen Tonkreis 909 mit einem Linienarbeitsbrief
T 907 in schwarz darüber
auf. Der Hintergrund 905 ist transparent beziehungsweise
durchsichtig und wird verwendet, um die Positionierung des sichtbaren Objektes
in bezug zu dem gesamten Seitenelement 903 zu indizieren.
Die Komponenten des Seitenelementes 903 sind die in 9(b) dargestellten CT-Daten 913,
die in 9(c) dargestellten
LW-Daten 923, die in 9(d) dargestellte
CT-Gültigkeitsmaske 933 und
die in 9(e) dargestellte
CT-Auswahlmaske 943. Die CT-Daten 913 umfassen
das durch den Benutzer bestimmte CT-Objekt und den Hintergrundbereich 915 in
transparentem weiß, wobei
das RIP in den CT-Daten enthalten ist. Die Grenze des CT-Bereiches 919 ist
mit dem Bezugszeichen 911 bezeichnet. Es sollte Notiz davon
genommen werden, dass sogar, obwohl das Erscheinungsbild des CT-Objektes in dem Seitenelement 903 rund
ist, die CT-Objektgrenze 911 rechteckig
ist. Die CT-Gültigkeitsmaske 933 beschreibt,
welcher Teil der CT-Daten 913 eine gültige CT-Information besitzt und würde im allgemeinen
kleiner sein als der CT-Bereich 919 aus den oben beschriebenen
Gründen.
Bemerkenswert ist, dass die CT-Gültigkeitsmaske
vorzugsweise nicht den Bereich umfaßt, über welchen die Linienarbeit "T" auftritt, um die Komplexität der Maske
zu verringern (andere Implementierungen können selbstverständlich das
T zum Definieren der Grenze der CT umfassen). Ebenfalls sei darauf
hingewiesen, dass es hier der Fall ist, dass die Form der Grenze
(kreisförmig)
definiert ist. In der vorliegenden Implementierung befinden sich
die CT-Daten und die CT-Gültigkeitsmaske
in der CT-Auflösung,
300 dpi, und in 9(d) indiziert
der weiße
Bereich 935 ungültige
Daten (Maskenwert 0) und der schraffierte Bereich 939 indiziert
gültige
Daten (Maskenwert = 1). Die LW-Daten 923 beinhalten das
LW-Objekt (das "T"), welches durch
den Benutzer ausgestaltet ist, und den Hintergrundbereich 925 in
transparentem weiß,
dass das RIP in den LW-Daten enthalten ist. Die CT-Auswahlmaske 943 indiziert,
welche Pixel CT-Daten sind und welche LW-Daten sind, und wird für die abschließende Kombination
der zusammengeführten
CT-Daten und der LW-Daten verwendet. Die weißen Bereiche 945 und 947 indizieren,
dass LW-Daten gedruckt werden sollen (Maskenwert 0) und der schraffierte
Bereich 939 indiziert, dass CT-Daten gedruckt werden sollen
(Maskenwert = 1). Die CT-Auswahlmaske ist Teil der LW-Daten und besitzt
somit die gleiche Auflösung,
nämlich
600 dpi für
den Fall des Druckens durch das Xeikon-Druckgerät.
-
Die hierin erörterten Designentscheidungen
sind Implementierungsdetails und keine Beschränkungen der vorliegenden Erfindung.
Andere Designentscheidungen hätten
gemacht werden können,
welche z. B. zu unterschiedlichen Arten der Darstellung der Grenzen
von Seitenelementen, unterschiedlichen Datenstrukturen für ein Seitenelement,
unterschiedliche Filestrukturen, unterschiedliche Arten bei der
Handhabe des Zusammenführens,
beispielsweise als zweidimensionale Bereiche eher als Streifen,
oder als vollständige
Seiten (Unterseiten), etc. führen.
Somit können
die Implementierungsdetails keinesfalls als Beschränkung des
Schutzumfangs der vorliegenden Erfindung angesehen werden.
-
Wie im folgenden erörtert wird,
können
Situationen auftreten, in welchen die CT-Gültigkeitsmaske durch maximal
vier Pixel ersetzt werden muß.
Um zu ermöglichen,
dass dies in einer Implementierung passiert, sorgt die RIP dafür, dass
die Objekte um wenigstens vier Pixel größer sind als die CT-Auswahlmaske und, wenn
dies nicht der Fall ist, vergrößert die
Objekte, um diese Grenze zu garantieren. Gemäß einem weiteren Aspekt wird
eine Objektanordnung derart ausgeführt, dass sie immer auf CT-Blockgrenzen
fällt,
wenn der gesamte Arbeitsfluß erhältlich ist.
-
Der File, welcher alle Daten für irgendein
einzelnes Seitenelement umfaßt,
wird dann an das schnelle Zusammenführungssystem, welches mit dem
Bezugszeichen 1003 versehen ist, zum Zusammenführen mit den
anderen Seitenelementen gesendet, wie in dem Seitenlayoutskript
spezifiziert ist. Die CT-Daten und LW-Daten werden separat zum Erzeugen
von zusammengeführten
CT- und zusammengeführten
LW-Daten zusammengeführt,
welche später
dekomprimiert, kombiniert und gescreent werden. Das Zusammenführen wird
vorzugsweise und nicht notwendigerweise Streifen für Streifen
und Trennung für
Trennung durchgeführt. Ein
Seitenelement wird durch einen einzelnen Filenamen identifiziert
und dieser File beinhaltet alle Daten für dieses Seitenelement. Wie
bereits beschrieben wurde, können
mehrseitige Elemente ebenfalls verwendet werden und sind beispielsweise
zum Beschreiben von variablen Daten geeignet. Diese mehrseitigen
Elemente können
der Reihe nach in ein File geschrieben werden oder sie können jeweils
in ein separates File unter Verwendung eines Filenamen-Suffix geschrieben
werden, um jede einzelne Seite zu identifizieren. Der letztere Mechanismus
sorgt dafür,
dass eine parallele Rasterung durch ein RIP-Verfahren von Seiten einfacher zu implementieren
ist. Dies sind alle Implementierungsdetails und andere Wege der
Implementierung können
ausgewählt
werden.
-
Das schnelle Zusammenführungssystem 1003:
-
Das schnelle Zusammenführungssystem 1003 beinhaltet
den Seitenelement-Cachespeicher 1011, den Seitenelementspeicher 1013 und
das eigentliche Zusammenführungssystem 1015.
Das bevorzugte Ausführungsbeispiel
des schnellen Zusammenführungssystems 1003 ist
auf einem Computer implementiert, welcher im folgenden als Assemblercomputer bezeichnet
wird. Insbesondere weist das bevorzugte Ausführungsbeispiel des Verfahrens
der vorliegenden Erfindung Schritte auf, welche durch den Assemblercomputer
durch Ausführen
eines Softwareprogrammes durchgeführt werden, und das bevorzugte
Ausführungsbeispiel
der Vorrichtung der vorliegenden Erfindung umfaßt den Assemblercomputer oder
Komponenten des Assemblercomputers mit einem Speichermodul, welches
mit Softwarebefehlen geladen ist, welche dafür sorgen, dass der Assemblercomputer
in einer bestimmten Weise betreibbar ist.
-
1 ist
ein vereinfachtes Blockdiagramm eines Computersystems 110,
welches für
den Assemblercomputer verwendet werden kann, in welchem die vorliegende
Erfindung verkörpert
werden kann. Die Computersystemkonfiguration des Assemblercomputers,
welche mit diesem hohen Niveau illustriert ist, ist Standard und 1 ist demnach mit dem Begriff "Stand der Technik" versehen. Ein Computersystem
wie beispielsweise das System 110, welches geeignet zur
Verkörperung
der vorliegenden Erfindung programmiert ist, jedoch ist nicht Stand
der Technik. Die besonderen Ausführungsbeispiele
der Erfindung sind in einem Computersystem für einen allgemeinen Zweck,
wie beispielsweise in 1 dargestellt,
verkörpert
und die verbleibende Beschreibung wird im allgemeinen diese Umgebung
annehmen. Jedoch kann die vorliegende Erfindung auch in anerkannten
Geräten
verkörpert
werden, wie beispielsweise als Druckerserver und Druckerkontroller, und
diese Geräte
können
viele der Elemente umfassen, welche auch in einem allgemeinen Computersystem, wie
beispielsweise dem Computersystem 110 enthalten sind.
-
Es sei darauf hingewiesen, dass die
Arbeitsstation(en) 1005 und das RIP-System beziehungsweise die
RIP-Systeme 1009 auch Computersysteme für einen allgemeinen Zweck sind,
welche im allgemeinen die gleiche Architektur wie diejenige in 1 besitzen würden. In
manchen Implementierungen, beispielsweise in Implementierungen mit
niedrigen Kosten, kann ein RIP-System 1009 oder
sogar eine Vordruck-Arbeitsstation 1005 auf denselben Assemblercomputer
wie das schnelle Zusammenführungssystem 1003 implementiert
werden.
-
In Übereinstimmung mit bekannter
Praxis weist das Assemblercomputersystem 110 einen Prozessor 112 auf,
welcher mit einer Anzahl an peripheren Geräten über ein Bus-Untersystem 115 kommuniziert.
Diese peripheren Geräte
umfassen typischerweise ein Speicher-Untersystem 117, eine
Benutzereingabemöglichkeit 120,
ein Anzeige-Untersystem 122, Ausgabegeräte, wie beispielsweise einen
Drucker 123, und ein Filespeichersystem 125. Nicht
alle dieser peripheren Geräte
müssen
für alle
Ausführungsbeispiele
der vorliegenden Erfindung vorgesehen werden.
-
In diesem Zusammenhang wird der Ausdruck "Bus-Untersystem" im allgemeinen derart
verwendet, dass er irgendeinen Mechanismus beschreibt, welcher die
verschiedenen Bauteile des Systems miteinander wie beabsichtigt
kommunizieren läßt. Mit
Ausnahme der Eingabegeräte
und der Anzeige müssen
die anderen Bauteile nicht an derselben physikalischen Stelle angeordnet
sein. Somit könnten
beispielsweise Abschnitte des Filespeichersystems über verschiedene
lokale Bereichs- oder Weitbereichs-Netzwerkmedien verbunden werden,
mitsamt Telefonleitungen. Auf ähnliche
Weise müssen
die Eingabegeräte
und die Anzeige nicht an derselben Stelle wie der Prozessor angeordnet
sein, obwohl angestrebt wird, dass die vorliegende Erfindung am
häufigsten
in dem Zusammenhang mit Personal Computern ("PCs")
und Arbeitsstationen implementiert wird.
-
Das Bussystem 115 ist schematisch
als Einzelbus dargestellt, jedoch weist ein typisches System für eine Anzahl
an Bussen, wie beispielsweise einen örtlichen Bus und einen oder
mehrere Ausbreitungsbusse (beispielsweise ADB, SCSI, ISA, EISA,
MCA, NuBus, oder PCI) sowie serielle und parallele Ports auf. Netzwerkverbindungen
werden gewöhnlich
durch ein Gerät,
wie beispielsweise ein Netzwerkadapter, auf einem dieser Ausbreitungsbusse
oder einem Modem auf einem seriellen Port aufgebaut. Das Computersystem
kann ein Desktopsystem oder ein tragbares System oder ein eingebauter
Kontroller sein.
-
Das Speicher-Untersystem 117 weist
eine Anzahl von Speichermodulen mit einem Hauptdirektzugriffsspeicher
("RAM") 130 und
einem Auslesespeicher ("ROM") 132 auf,
in welchem feste Befehle gespeichert sind. Für den Fall eines Macintoshkompatiblen
Personal Computers würde
dies Abschnitte des Betriebssystems umfassen; für den Fall eines IBM-kompatiblen
Personal Computers würde
dies die BIOS (Basiseingabe-/-ausgabesystem) umfassen. In einigen
Ausführungsbeispielen
können
DMA-Kontroller 131 enthalten sein. Ein DMR-Kontroller 131 ermöglicht Übertragungen
von dem Speichermodul oder an das Speichermodul ohne durch den Prozessor 112 zu
laufen.
-
Eine Benutzereingabemöglichkeit 120 umfaßt typischerweise
eine Tastatur 140 und kann ferner eine Anzeigeeinrichtung 142 und
einen Scanner 143 aufweisen. Die Anzeigeeinrichtung kann
eine indirekte Anzeigeeinrichtung, wie beispielsweise eine Maus,
ein Trackball, ein Touchpad oder graphische Tabellen, oder eine direkte
Anzeigeeinrichtung, wie beispielsweise ein in dem Display eingebauter
Touchscreen, sein.
-
Das Anzeigeuntersystem 122 umfaßt typischerweise
einen Anzeigekontroller 144 und eine Anzeigeeinrichtung 145,
welche mit dem Kontroller verbunden ist. Die Anzeigeeinrichtung
kann eine Kathodenstrahlröhre
("CRT"), ein Flachpanelgerät, wie beispielsweise
ein Flüssigkristalldisplay
("LCD"), oder ein Projektionsgerät sein.
Der Anzeigekontroller liefert Steuersignale an die Anzeigeeinrichtung
und umfaßt
normalerweise einen Anzeigespeicher (in der Figur nicht dargestellt)
zum Speichern der Pixel, welche auf der Anzeigeeinrichtung erscheinen.
-
Das Filespeichersystem 125 liefert
einen fortdauernden (nicht flüchtigen)
Speicher für
Programme und Datenfiles und umfaßt typischerweise wenigstens
ein Harddisc-Laufwerk bzw. Festplatten-Laufwerk 146 und wenigstens
ein Floppydisc-Laufwerk
("Diskette") 147. Ein
oder mehrere der Laufwerke 146 kann in Form eines Direktzugriffsfeldes
eines unabhängigen
Disc("RAID")-Systems ausgebildet
sein, während
andere eher gewöhnliche
Disklaufwerke sein können.
Das Disklaufwerk 146 kann ein Cachespeicher-Untersystem 149 aufweisen,
welches ein schnelles Speichermodul zum Beschleunigen der Übertragungen
an das Laufwerk und von dem Laufwerk umfaßt. Es können auch andere Geräte, wie
beispielsweise ein CD-ROM Laufwerk 148 und optische Geräte, vorgesehen
sein. Zusätzlich
kann das System Harddrives von der Art mit entfernbaren Medienkassetten
aufweisen. Wie oben bereits erwähnt
worden ist, kann ein oder mehrere Laufwerke an einer entfernten
Stelle angeordnet sein, wie beispielsweise in einem Server auf einem
lokalen Netzwerk oder an einer Stelle auf dem World Wide Web des
Internets.
-
Der spezielle Assemblercomputer 110,
welcher in dem bevorzugten Ausführungsbeispiel
verwendet wird, ist eine Digital Equipment Corporation (DEC) Alpha
Personal Workstation (Digital Equipment Corporation, Maynard, Massachusetts),
welcher als Prozessor 112 einen Hochgeschwindigkeits DEC
Alphaprozessor verwendet.
-
Der Seitenelement-Cachespeicher 1011 und
der Seitenelementspeicher 1013:
-
Das RIP-Untersystem 1009 schafft
es möglicherweise
nicht mit dem Druckgerät 1019 Schritt
zu halten. Daher werden Rasterbilder in vielen Systemen inklusive
demjenigen des bevorzugten Ausführungsbeispiels gewöhnlich mittels
einem RIP-Verfahren im voraus gerastert und abgespeichert, beispielsweise
als Files auf einer Seitenelement-Speichereinheit 1013, welche
in dem vorliegenden System ein RAID-System ist (welchem im folgenden
dasselbe Bezugszeichen 146 zugewiesen wird, wie irgendeinem
anderen Laufwerk in dem Filespeichersystem, welches viele Diskdriveeinheiten
aufweisen kann). Bemerkenswert ist, dass der Seitenelementspeicher 1013 gemäß einem
alternativen Ausführungsbeispiel
auf eine (oder mehrere) von vielen Arten implementiert werden kann,
inklusive als Diskspeicher, als RAID-System, als schneller optischer
Speicher, etc.. Das Drucken beginnt, sobald alle Rasterbilder für einen
bestimmten Auftrag erhältlich
sind. Damit das System mit keinem zusätzlichen Mittel betrieben werden
kann, besteht die Hauptanforderung an den Elementspeicher 1013 darin,
dass er eine genügende
Bandbreite aufweisen muß,
so dass im Durchschnitt der Zusammenführungsprozeß (des Zusammenführungssystems 1015)
die Objektdaten mit einer Geschwindigkeit der Presse (des Druckgeräts 1019)
wiedergewinnen beziehungsweise abrufen kann. Normalerweise wäre dies nicht
ohne zusätzliche
Mittel möglich.
In dem vorliegenden bevorzugten Ausführungsbeispiel wird ein Puffersystem
zum Vermindern dieser Geschwindigkeitsanforderung verwendet. Es
werden nämlich,
wie in 10 dargestellt
ist, die durch ein RIP-Verfahren gerasterten Daten nicht direkt
in den Elementspeicher 1013, sondern eher in einen Puffer
geschrieben, welcher Teil eines Seitenelement-Cachespeichers 1011 ist.
Der Seitenelement-Cachespeicher 1011 ist
zuständig
für die
Kommunikation zwischen dem Seitenelementspeicher 1013 und
dem Rest des Systems, und beinhaltet mehrere Aufbauten, welche als
Teil eines RAM 130 implementiert sind. Der Puffer zwischen
dem RIP-System beziehungsweise -systemen 1009 und dem Seitenelementspeicher 1013 stellt
einen derartigen Aufbau dar. Ein anderes Teil des Cachespeichers 1011 beschäftigt sich
mit der Entfernung von Seitenelementen von dem Seitenelementspeicher 1013 zu
dem Zusammenführungs-Untersystem 1015 und
wird weiter unten beschrieben werden. Der Puffer in dem Elementspeicher 1011 dient
einer Verwendung der Bandbreite des Elementspeichers 1013 auf
eine effiziente Weise. Die durch ein RIP-Verfahren gerasterten Seitenelemente
werden in dem Seitenelement-Cachespeicher 1011 gepuffert
und werden nur in dem Seitenelementspeicher 1013 aus dem
Puffer in dem Cachespeicher 1011 gespeichert, wenn der Zusammenführungsprozeß in dem
Zusammenführungssystem 1015 die
Bandbreite des Seitenelementspeichers 1013 nicht benötigt, wie
durch das eigentliche Disk- bzw. Plattengerät 146 indiziert, wobei
der implementierende Seitenelementspeicher 113 leer ist.
-
Gemäß einem verbesserten Ausführungsbeispiel
kann der Benutzer anzeigen, dass einige Seitenelemente lediglich
einmal gedruckt werden, so dass diese Objekte nicht in den Elementspeicher 113 geschrieben werden,
jedoch in dem Puffer des Seitenelement-Cachespeichers 1011 gelassen
werden, zusammen mit einigen Mustern oder anderen Mitteln zum Übertragen
davon an das Zusammenführungssystem 1015.
Wenn der Teil des Zusammenführungssystems,
welcher Daten aus dem Speicher ausliest, ein derartiges Seitenelement sucht,
braucht es danach nicht dieses aus dem Seitenelementspeicher 1013 wiedergewinnen
beziehungsweise abrufen, wodurch zwei Diskzugriffe bzw. Plattenzugriffe
eingespart werden.
-
Die anderen Aspekte des Seitenelement-Cachespeichers 1011 kümmern sich
um die Wiedergewinnung durch das Zuführungssystem 1015 der
Seitenelemente von dem Seitenelementspeicher 1013. Eine
derartige Wiedergewinnung wird durch den Cachespeicher 1011 wie
folgt effizienter gestaltet:
- – die Anzahl
der Disksuchen von dem Seitenelementspeicher 1013 wird
minimiert, da man das Seitenelement eins nach dem anderen in das
Cachespeichermodul 1011 einliest und dieses danach einmal
erhältlich in
dem Cachespeicher 1011 ist, und da man die Seitenelemente
schnell durch das Zusammenführungssystem 1015 von
dem Cachespeicher 1011 wiedergewinnt.
- – die
Seitenelemente, welche in einem Buch mehrere male verwendet werden,
werden in dem Seitenelement-Cachespeicher 1011 derart gehalten,
dass das System diese lediglich einmal aus dem Seitenelementspeicher 1013 auslesen
muß.
-
Es sei an dieser Stelle darauf hingewiesen,
dass sich der Seitenelementspeicher 1011, obwohl Cachespeichergeräte in dem
Stand der Technik bekannt sind, darin unterscheidet, dass er seinen
Vorteil in der Tatsache besitzt, dass im voraus gewußt wird,
was benötigt
wird. Eine detailliertere Beschreibung des Elementcachespeichers 1011 und
des Elementspeichers 1013 wird weiter unten in der nachfolgenden
Beschreibung gegeben.
-
Das Seitenlayoutskript:
-
Das Seitenlayoutskript wird typischerweise
in der Arbeitsstation 1005 erzeugt. Gemäß einem bevorzugten Ausführungsbeispiel
ist das Seitenlayoutskript eine Text (ASCII)-Beschreibung, welche
eine geordnete Liste von Büchern
ist, wobei jedes Buch eine geordnete Liste von Seiten aufweist,
wobei jede Seite eine geordnete Liste von Seitenelementen beinhaltet
und jedes Seitenelement eine geordnete Liste von Eigenschaften beinhaltet.
Die Eigenschaften irgendeines Seitenelementes beinhalten in Reihenfolge
den Elementenidentifizierer (eine Zahl), den Elementenfilenamen
(einen Filenamen und für
mehrseitige Files eine Seitennummer innerhalb des Files des Seitenelementes),
die Position (eine horizontale und eine vertikale Position in bezug auf
die obere linke Ecke der Seite) und dem Zusammenführungsmodus
(Knockout, Überdruck
etc.). Obwohl man in ein derartiges Skript unter Verwendung eines
Texteditors manuell eintreten kann, kann man auch einen auf der
Arbeitsstation 1005 laufenden automatischen Skriptgenerator
verwenden, welcher mit einem Datenbanksystem für ein variables Drucken verbunden
ist. Egal ob es manuell geschrieben oder mit der Hilfe eines auf
einem Computer basierenden Systems geschrieben wurde, wird das Seitenlayoutskript
in dem Diskspeicher gespeichert, welcher dieselbe physikalische
Einheit wie der Seitenelementspeicher 1003 aufweisen oder nicht
aufweisen kann. Das Skript wird vorzugsweise, jedoch nicht notwendigerweise,
durch denselben Prozessor 112 ausgeführt, welcher das Programmieren
ausführt,
welches den Seitenelement-Cachespeicher 1011 und das Zusammenführungssystem 1015 implementiert.
Die Reihenfolge der Seitenelemente in der geordneten Liste der Seitenelemente,
welche eine vollendete Seite erzeugen, ist wichtig, wenn Seitenelemente überlappen.
Im allgemeinen wird ein Seitenelement über alle vorherigen Seitenelemente
gedruckt. Die folgende Tabelle faßt die Spezifikationen eines
Seitenlayoutskripts für
einen einfachen (einseitigen) personalisierten Brief an Kunden zusammen,
was hierin als illustratives Beispiel verwendet wird:
-
-
Für
dieses Beispiel identifiziert der Seitenidentifizierer dieses als
die erste Seite (1) mit der Größe von 8,5
mal 11 Inch. Falls keine Größe für irgendeine
Seite spezifiziert ist, wird die Seitengröße in dem vorliegenden bevorzugten
Ausführungsbeispiel
als Einheitsgröße aller
Seitenelemente in der Seite angenommen, d. h. als Begrenzungskasten
für alle
verwendeten Elemente. In einer typischen Ausgestaltung kann dies
(muß jedoch
nicht notwendigerweise) die Größe des unteren
Seitenelementes sein. Der Elementenidentifizierer ist in Form einer
Zahl ausgebildet. Der Elementenfilename ist die Filenamenbezeichnung.
Somit ist Hintergrund_Bild der Filename des Seitenelementes, welches
in dem Beispiel der Hintergrund der Seite ist, während Verkäufer_Unterschrift [25] das
vierte (in Reihenfolge) gedruckte Seitenelement ist und sich auf
das 25igste Seitenelement in den mehrseitigen File Verkäufer_Unterschrift
bezieht, welcher alle unterschiedlichen Unterschriftsbilder für alle verschiedenen
Verkäufer
speichert. Die horizontalen und vertikalen Positionen für jedes
Seitenelement stehen in Beziehung zu der oberen linken Ecke ("Ursprung") der gesamten Seite,
Seite 1, und die Abstände
werden in Inches gemessen, wobei positive Zahlen in Richtung von
links nach rechts für den
horizontalen Fall und in Richtung von oben nach unten für den vertikalen
Fall indizieren. Das Skript gemäß dem bevorzugten
Ausführungsbeispiel
erlaubt drei Arten einer Spezifizierung von Abständen. Die erste Art ist ein
absoluter Abstand von dem Ursprung. Somit ist der Elementenidentifizierer
2 5 Inches nach rechts und 1,7 Inches nach unten von dem Ursprung
angeordnet. Die zweite Art ist eine Ausrichtung, beispielsweise
mittig, links ausgerichtet, rechts ausgerichtet, etc.. Die dritte
Art ist eine Relativbeziehung zu anderen Objekten, mit der Syntax
der Bezeichnung in Klammern, und wobei dem relativen Abstand ein
Plus oder ein Minuszeichen zum Indizieren der Richtung vorangestellt
wird. Somit ist in diesem Beispiel der Elementenidentifizierer 4
zu der linken Seite der Seite ausgerichtet positioniert (indiziert
durch das Wort "links" für die horizontale
Position) und vertikal 1,2 Inches unter dem Elementenidentifizierer
3 positioniert (das File Brief_an_Kunden). Eine Präambel in
dem Seitenlayoutskript spezifiziert derartige Details, welche Einheiten
für Abstandsmessungen
verwendet werden. Falls keine Einheiten spezifiziert werden, wird
ein Fehler angenommen.
-
Der Zusammenführungsmodus indiziert, wie
eine Zusammenführung
auftreten wird. In der bevorzugten Implementierung bedeutet Knockout,
dass das Seitenelement alle Seitenelemente unterhalb dieser Stelle aussticht.
Alle CT-Seitenelemente werden gegenwärtig in dem Knockout-Modus
zusammengeführt,
obwohl, wie für
die Fachleute auf diesem Gebiet offensichtlich ist, verbesserte
Ausführungsbeispiele
möglich
sind, wobei CT-Elemente unterschiedliche Niveaus von Transparenz,
etc. unter Verwendung derart bekannter Konzepte wie einen Alphakanal
besitzen können.
Für JPEG-Daten
beispielsweise ist es bekannt, dass das DCT linear ist und diese
Linearität
kann verwendet werden, um Zusammenführungen mit Alphakanaldaten
zu beeinflussen. Der Überdruck-Modus
wird lediglich für
Linienarbeiten verwendet und sagt aus, dass Trennung für Trennung
die Intensität
des oberen Objektes verwendet wird, außer falls es transparent weiß ist. Schwarzüberdruck wird
ebenfalls nur für
Linienarbeit verwendet, typischerweise im Text, und sagt aus, dass
feste schwarze Objekte in dem Überdruck-Modus
zusammengeführt
werden, sogar, falls sie als Knockoutobjekte in dem Auftrag erzeugt
werden. Überdruck_von_Auftrag-Modus
ist ein Überdruck-Modus,
wie er in dem Auftrag selber spezifiziert ist. Das besondere RLE-Linienarbeits-Komprimierungsverfahren,
welches in dem bevorzugten Ausführungsbeispiel
verwendet wird, beinhaltet die Fähigkeit
einer derartigen Knockout-Spezifikation.
-
Ein alternatives Ausführungsbeispiel
zur Verwendung der oben beschriebenen ASCII-textgeordneten Listen
von geordneten Listen zum Spezifizieren des Seitenlayoutskriptes
besteht darin, ein Seitenbeschreibungsskript, wie beispielsweise
ein PDF von Adobe Systems, Inc. of Mountain View, Kalifornien, zu
verwenden. PDF kann externe Seitenelementbezeichnungen aufweisen.
Da PDF über
Jahre hinweg verwendet wurde und gut dokumentiert ist, ist es für einen
Fachmann auf diesem Gebiet offensichtlich, wie das System zu modifizieren
ist, um eine Verwendung von PDF oder anderer Techniken zum Spezifizieren
des Seitenlayoutskriptes einarbeiten zu können.
-
Es sei an dieser Stelle darauf hingewiesen,
dass keine Beschränkungen
des Schutzumfangs der vorliegenden Erfindung durch die besondere
Skriptsyntax, welche in dem bevorzugten Ausführungsbeispiel verwendet wird,
inbegriffen ist. Beispielsweise können dort, wo komprimierte
Bitströme
zusammengeführt
werden sollten, diese alternativ durch eine Markierung (wenn es
das Komprimierungsformat ermöglicht)
oder einen Pointer (welcher getrennt von dem Format gehalten wird),
oder durch andere Mittel spezifiziert werden. Der rechnerische Aufwand,
um solch eine Markierung zu finden, hängt lediglich von den Spezifikationen
des Komprimierungsformates ab, um (ausgerichtete oder nichtausgerichtete)
Markierungen zu ermöglichen.
Für den Fall
von Pointern zeigt ein Bit-Pointer das Bit an, von wo aus der Bitstrom
zusammengeführt
werden sollte. Falls mehr als ein Komprimierungsformat verwendet
wird, um das Seitenelement darzustellen, kann dasselbe Verfahren
und dieselbe Vorrichtung für
jedes Komprimierungsformat separat verwendet werden.
-
Das Zusammenführungssystem 1015:
-
Das Zusammenführungssystem ist als Satz an
Computerprogrammen implementiert, welche auf einem Prozessor 112 arbeiten.
Insbesondere umfassen die Computerprogramme drei Muster, beziehungsweise Fäden, welche
parallel ausgeführt
werden und welche miteinander unter Verwendung von Standardzwischenmuster-Kommunikationsverfahren
kommunizieren. Die Standard-Zwischenmuster-Kommunikationsverfahren, welche
den Fachleuten auf dem Gebiet von Computerprogrammieren bekannt
sind, umfassen ein gemeinsames Speichermodul, Mutexe, Signale, Rohre,
etc.. In der vorliegenden Implementierung stehen die Fäden bzw.
Muster als Source/Drain-Paare mit einem Puffer (oder mehr als einem
Puffer) in der Mitte in Verbindung: Der Source-Faden versucht den
Puffer zu füllen
und sendet ein Signal an seinen zugeordneten Drain-Faden jedesmal
dann, wenn Daten geschrieben werden. Wenn der Puffer voll ist, wartet
der Source-Faden solange, bis der Drain-Faden die Daten aus dem Puffer entfernt.
Parallel dazu versucht der Drain-Faden den Puffer zu leeren, und
sendet eine Message zu dem Source-Faden jedesmal dann, wenn er die
Daten aus dem Puffer entfernt. Wenn der Puffer leer ist, wartet
er auf ein Signal von dem Source-Faden, das neue Daten geschrieben worden
sind.
-
Die drei Fäden mit ihren zugeordneten
Puffern sind in 11 dargestellt.
Die Puffer sind alle in einem RAM implementiert. Der Lese-Faden 1005 liest
das Seitenlayoutskript 1103 und den Quellen-Zusammenführungsfaden 1109 über den
Seitenelement-Cachespeicher 1011 aus, welcher den Puffer
zwischen diesen beiden Fäden
darstellt. Der Zusammenführungsfaden 1109,
die Drain für
den Lesefaden 1105, ist ebenfalls die Quelle für den Ausgabefaden
beziehungsweise die Ausgabefäden 1113 über den
beziehungsweise die beiden Puffer 1111. Es sei daran gedacht,
dass mehr als ein Seitenpuffer und mehr als ein Ausgabefaden dargestellt sind,
und dass das System irgendeine Anzahl an jedem Faden von seiner
Quelle/Senken aufweisen kann. Der Objektlesefaden 1105 füllt den
Seitenelement-Cachespeicher 1111 mit den Seitenelementen,
welche auf den nächsten
Seiten gebraucht werden. Die Seitenelemente werden von dem Seitenelementspeicher 1013 oder von
dem RIP-System beziehungsweise -systemen 1009 ausgelesen.
Sobald sich alle Objekte (Seitenelemente) einer Seite in dem Seitenelement-Cachespeicher 1011 befinden,
führt der
Zusammenführungsfaden 1109 die
Linienarbeit, die CT-Auswahlmaske und die CT-Daten, die Farbe Trennung
für Trennung
zusammen und schreibt das Ergebnis in den beziehungsweise die Seitenpuffer 1111.
Aufgrund der Ausgestaltung des Druckkopfes des Xeikon-Druckers weist das
Ausführungsbeispiel
für das
Xeikondrucksystem vier Ausgabepuffer pro Seite einer Seite, wobei
ein Puffer pro Trennung vorgesehen ist, und somit vier Ausgabefäden pro
Seite einer Seite auf. Somit sind insgesamt acht Ausgabefäden für einen
Duplex CMYK-Druckvorgang vorhanden. Schließlich befördert der Ausgabefaden beziehungsweise
die Ausgabefäden 1113 die
zusammengeführten Daten
in den Seitenpuffer 1111 an das Dekomprimierungs- und Screening-System 1117.
Für das
Xeikonsystem existiert wenigstens ein separates Dekomprimierungs-
und Screening-System 1117 für jede Farbtrennung, somit
wenigstens vier Ausgabeströme.
-
Es sei an dieser Stelle darauf hingewiesen,
dass es in einigen wechselnden Implementierungen, z. B. auf einem
Computersystem mit mehreren Prozessoren, vorteilhaft sein kann,
eine oder mehrere der von jedem der oben beschriebenen Fäden durchgeführten Aufgaben
auf mehrere Fäden
aufzuteilen. Ein erstes Beispiel stellt die dargestellten Mehrfachausgabefäden dar.
In einem zweiten Beispiel können
die Zusammenführungsaufgaben
in zwei Zusammenführungsfäden aufgeteilt
werden, wobei jeder Faden von derselben Quelle Trennungen annimmt
und die Ergebnisse in dieselbe Drain schreibt.
-
Das Dekomprimierungs-
und Screening-System 1017:
-
Das Dekomprimierungssystem dekomprimiert
die LW- und CT-Daten in separate CT- und LW-Pixelpuffer. Falls erforderlich,
werden die CT-Pixel (Auflösung
von 300 dpi in der vorliegenden auf dem Xeikon-Gerät basierenden
Implementation) auf die Geräteauflösung (600
dpi für
das Xeikon-Gerät)
durch Wiederholen der Pixel auf einer Linie und durch Wiederholen
von Linien aufskaliert. Das System wählt dann Pixel von dem einen
oder dem anderen Pixelpuffer, basierend auf der CT-Auswahlmaske für die zusammengeführten Daten, aus.
Das resultierende abschließende
Rasterbild wird gescreent und danach an die Druckköpfe der
Presse 1019 befördert.
Das Dekomprimierungs- und Screening-System 1017 reduziert
auch die Datentiefe auf die Datentiefe des Ausgabegerätes. In
dem abschließenden
Schritt explodieren die Datenraten auf die volle Datenrate des Druckgerätes 1019.
Aus diesem Grund wurde in dem vorliegenden Ausführungsbeispiel die Implementierung
des Dekomprimierungs- und des Screening-Systems 1017 als
Hardware für
einen speziellen Zweck gewählt.
Das Dekomprimieren, das Screenen, das Kombinieren gemäß der CT- Auswahlmaske und
das Puffern der Daten zu der Hardware könnte auf ähnliche Weise alternativ auf
einem kleinen, schnellen Computer oder auf einem schnellen Mikroprozessor
oder auf einem DSP-Gerät
implementiert werden. Die vorliegende Erfindung hängt nicht
von irgendeinem besonderen Mittel (Hardware und/oder Software) für ein Screenen oder
ein Komprimieren ab und es wird angenommen, dass eine derartige
Funktionalität
vorhanden ist.
-
Jede besondere Implementierung kann
variiert werden, um mit den besonderen Druckgeräten umgehen zu können, und
eine universelle Implementierung ist ebenfalls möglich. Eine Implementierung
ist für
das Xeikon-Druckgerät
vorgesehen. Dies ist ein Duplex-Druckgerät mit vier Druckköpfen (in
Druckreihenfolge Y C M K) auf jeder Seite, wobei die Druckköpfe um 26
cm auf jeder Seite getrennt beziehungsweise voneinander beabstandet
sind. Die vorliegende Implementierung für das Xeikon-System weist wenigstens
ein Dekomprimierungs- und
Screening-System 1017 für
jede Farbtrennung für
jede Seite einer Seite auf.
-
Das schnelle Zusammenführungssystem
im Detail:
-
Obwohl dies nicht die einzige Art
der Implementierung dieser Aspekte der vorliegenden Erfindung darstellt,
ist das schnelle Zusammenführungssystem
gemäß dem bevorzugten
Ausführungsbeispiel
um einen Hochleistungs-Assemblercomputer herum, wie beispielsweise
das System 110 in 1,
gebaut und verwendet ein Speicher-RAID-System mit einer hohen Kapazität wie eines
der Laufwerke 146 (oder das einzige Laufwerk 146)
in dem Filespeichersystem 125. Es besitzt eine Schnittstelle
für eine
hohe Datenratenausgabe über einen
PCI-Bus an das spezielle
Hardware-Dekomprimierungs- und Screening-System 1017 und
schließlich
an einen digitalen Drucker 1019.
-
Das schnelle Zusammenführungssystem
wird im folgenden ausführliche
unter Zuhilfenahme von 12 beschrieben,
welches den Betrieb der drei Fäden
in 1 ausführlicher
darstellt. Das Zusammenführen
wird vornehmlich in einer Software durch das Assembler-Computersystem 110 wie
die drei Fäden
durchgeführt,
und diese Fäden
wirken gleichzeitig auf den Prozessor 112 und kooperieren
in einer durch eine Hauptleitung verbundenen Art. Der Betriebsfluß wird durch
das Seitenlayoutskript gesteuert, welches hierin mit dem Bezugszeichen 1103 bezeichnet
ist, welches die gesamte Zusammenführungsaktivität steuert.
Für jede
Seite enthält
das Seitenlayoutskript 1103 eine Seitenbeschreibung, welche
im Detail das Layout der Seite auf der Grundlage der Anordnung des
Seitenelementes angibt. Insbesondere ist in dem vorliegenden System
jede Seitenbeschreibung eine in Reihenfolge geordnete Liste der
Seitenelemente. Jedes Seitenelement wiederum ist auch eine geordnete
Liste, welche folgendes aufweist: den Seitenelementenidentifizierer,
den Filenamen (und die Seite mit dem File) des Seitenelementes (für einen
anfänglichen
Zugang zu dem Seitenelementspeicher 1013), die horizontale
und vertikale Position von dem Ursprung und den Zusammenführungsmodus (Knockout, Überdruck
etc.). Die Seitenbeschreibungen werden durch die Zusammenführungsleitung
der Fäden
hindurchgeführt.
Die Fäden
arbeiten asynchron und werden durch Reihen getrennt, welche in dem
Speichermodul 130 während
eines Initialisierungsbetriebes festgesetzt werden. Die Reihen halten
somit diejenigen Teile (oder Pointer zu denjenigen Teilen) der Seitenbeschreibungen
fest, welche für
Zwischenfaden-Kommunikationen notwendig sind, wenn die Seitenbeschreibungen
von einem Faden zu einem anderen derart geführt werden, dass jeder Faden
die geeigneten Seitenbeschreibungen aufweist, um mit diesen zu arbeiten.
Jeder Faden kann auch einige der Parameter der Seitenbeschreibungen
vor einem Durchlaufen der Beschreibung zu dem nächsten Faden modifizieren,
wann immer die Umstände
eine derartige Modifikation gewährleisten. Beispielsweise
kann der Filename und/oder die Stelle eines Elementes durch einen
Faden geändert
werden, um den Zugang zu dem nächsten
Faden zu beschleunigen.
-
Interner Aufbau des Seitenlayoutskriptes:
-
Der Initialisierungsschritt baut
all die notwendigen Reihen auf. Für eine effiziente Verarbeitung
wird das Seitenlayoutskript, welches in dem bevorzugten Ausführungsbeispiel
in der Form einer ASCII-Zeichenfolge von Listen oder gemäß einem
anderen Ausführungsbeispiel
in Form einer PDF-Beschreibung oder einer ähnlichen Beschreibung ausgebildet
ist, ebenfalls während
der Initialisierung zergliedert und danach in einen Satz an besser
geeigneten Datenstrukturen umgewandelt. Dieser Datenstruktursatz
ist für
ein effizienteres Steuermanagement des Seitenelementes ausgebildet
und zu jeder Zeit zugänglich
zu allen Fäden.
Während
dem Zergliedern des Layoutskriptes werden alle relativen nicht absoluten
Positionierungsinformationen für
irgendein Element, wie beispielsweise "Mitte", "Links", etc., und alle
relativen Abstände
von anderen Seitenelementen berechnet, und lediglich eine absolute
Positionierung wird in dem Datenstruktursatz verwendet. Der besondere
in dem bevorzugten Ausführungsbeispiel
verwendete Datenstruktursatz ist in 13 dargestellt und
beinhaltet ein dreidimensionales Seitenelement-Beispielsfeld 1307 und
zwei eindimensionale Felder, welche als Seitenelementfeld 1305 und
das Seitenbeschreibungsfeld 1309 bezeichnet werden. Das
dreidimensionale Seitenelement-Beispielsfeld 1307 wird
zum Festhalten von Beispielen der Seitenelemente verwendet. Ein
Beispiel (d. h. ein Feldelement, welches besetzt ist) ist durch
das Feldelement dargestellt, welches in 13 kreuzschraffiert ist. Die Abmessungen
sind horizontal (Reihen) von links nach rechts, vertikal (Spalten) in
Aufwärtsrichtung
und in die Tiefe (senkrecht zur Seite und in die Seite hinein, auf
welcher 13 gedruckt ist).
Somit ist das obere linke vordere Element 1315 besetzt.
Es gibt eine Reihe für
jedes Seitenelement in dem Buch von Seiten. Somit ist die Anzahl
der Reihen in den Spalten des Beispielsfeldes 1307 die
Gesamtanzahl der unterschiedlichen Seitenelemente in dem Buch, vier
in dem Beispiel aus 13.
Jede Spalte beschreibt das Layout einer speziellen Seite. Somit
ist die Anzahl der Spalten in dem Beispielsfeld 1307 die
Anzahl der Seiten in dem Buch, sechs in dem Beispiel aus 13. Die dritte Dimension
handelt den Fall ab, wenn mehrere Beispiele desselben Seitenelementes
in irgendeiner besonderen Seite vorhanden sind. Zum Beispiel kommt
die Zahl 4 zweimal in der Seite 4 vor, wie durch die kreuzschraffierten
Kästchen 1311 und 1313 angedeutet
ist, wobei das Beispiel 1311 vor dem Beispiel 1313 auftritt.
Somit ist die Gesamttiefe die maximale Anzahl von Beispielen irgendeines
zweiten Elementes in irgendeiner Seite des Buches und beträgt 3 für das besondere
Beispielsfeld 1307 in 13.
Wie offensichtlich ist, sind nicht alle Eingänge in dem Beispielsfeld 1307 besetzt.
In der Tat werden typischerweise lediglich ein Paar der Eingänge des
Beispielsfeldes 1307 besetzt, d. h. das Beispielsfeld ist
dünn beziehungsweise
spärlich
besetzt. Effektive Speichertechniken sind zum Verringern der Speichermenge 130 bekannt,
welche zum Speichern der spärlich
besetzten Matrizen, wie beispielsweise des Beispielsfeldes 1307,
bekannt, und derartige spärlich
besetzte Speichertechniken werden in dem bevorzugten Ausführungsbeispiel
verwendet. Jede besetzte Zelle, d. h. jedes Beispiel in dem Beispielsfeld 1307 umfaßt einige
Attribute und die Attribute jedes Seitenelementbeispiels sind in
Tabelle 2 dargestellt, und beinhalten für dieses Beispiel die Position
des Elementes, den Druckmodus, die Druckreihenfolge und die Zahl der
Seite, wo sich das Textbeispiel des Elementes befindet. Dieses letzte
Feld bezieht sich auf die nächste Seite
nach der gegenwärtigen
Seite des Beispiels, wo das Seitenelement wiederverwendet wird.
Falls das gegenwärtige
Beispiel das letzte Beispiel für
das Seitenelement ist, wird ein spezieller Wert für das Feld
der "nächsten Seite" verwendet, um diese
Tatsache anzuzeigen. Die Information in diesem Feld wird durch das Cachespeichersystem
verwendet, um zu entscheiden, welche Seitenelemente in dem Seitenelement-Cachespeicher
verbleiben müssen,
wenn eine Seite zusammengeführt
wird.
-
Einige Attribute bzw. Eigenschaften
der Seitenelemente selber werden in dem Speichermodul 130 in einem
separaten eindimensionalen Feld gespeichert, nämlich dem Seitenelementenfeld 1305.
Die Attribute eines Seitenelementes, welches in dem Elementenfeld 1305 gespeichert
ist, sind in Tabelle 3 dargestellt und beinhalten den Filenamen
des Elementes (und falls anwendbar, die Seite innerhalb des Files),
wie er in dem Seitenelementspeicher 1013 verwendet wird,
ein Muster, welches anzeigt, ob sich das Seitenelement in dem Seitenelement-Cachespeicher 1011 befindet,
die Adresse, an welcher das Seitenelement in dem Seitenelement-Cachespeicher
für den
Fall gespeichert wird, dass es sich in dem Cachespeicher befindet
(d. h. für
den Fall, dass das Muster gesetzt ist), die Seitenzahl (oder andere
Seitenidentifizierer) der Seite, wo das nächste Beispiel des Elementes
verwendet wird, und einen Index der Reihe in dem Elementenbeispielsfeld 1307,
welcher dem Seitenelement entspricht. Die Attribute der Seiten in
einem Buch werden in dem Speichermodul 130 in der Form
eines Seitenbeschreibungsfeldes 1309 gespeichert. Die Attribute
einer besonderen Seite in dem Seitenbeschreibungsfeld 1309 sind
in Tabelle 4 dargestellt und umfassen die Breite, die Höhe, den
Ort der Seite in dem Pufferraum (welcher als Ausgabepuffer bezeichnet
wird), welcher den beziehungsweise die Seitenpuffer 1111 umfaßt, in welchem
beziehungsweise in welchen das Zusammenführungsergebnis durch den Zusammenführungsfaden 1109 gespeichert
wird, und den Index (als eine Identifizierungszahl) der Spalte des Seitenelement-Beispielfeldes 1307,
welcher dieser Seite zugeordnet ist.
-
-
-
-
-
Der Lesefaden:
-
Bisher wurden die internen Speicherstrukturen
des Seitenlayoutskriptes beschrieben, und im folgenden wird ausführlicher
der Betrieb der Fäden
beschrieben. Zur Erinnerung sei gesagt, dass nach einer Initialisierung
des Beispielsfelds 1307 das Seitenelementenfeld 1305 und
das Seitenbeschreibungsfeld 1309 zusammen das Seitenlayoutskript
enthalten und dass diese Strukturen zu allen Seiten für alle Fäden erhältlich sind. Sobald
die Felder 1307, 1305 und 1309 und die
benötigten
Reihen während
der Initialisierung aufgebaut worden sind, wird ein Lesereihenfaden 1203 mit
Pointern zu den Seiten geladen, welche bearbeitet werden sollen, in
der Reihenfolge des Druckens dieser Seiten.
-
Der erste Auftrag des Lesefadens 1105 ist
es, Seitenelemente von dem Seitenelementspeicher 1013 vorzuholen
und diese in dem Seitenelement-Cachespeicher 1011 wie notwendig
abzulegen. Anfänglich
wird die erste Seitenbeschreibung, auf welche durch die Lesereihe 1203 gezeigt
wird, verwendet und basiert auf dem Zutritt beziehungsweise Eingang
in das Seitenbeschreibungsfeld 1309 für eine bestimmte Seite, wobei die
zu ladenden erforderlichen Seitenelemente von dem Beispielsfeld 1307 bestimmt
werden. Die erforderliche Information zum Laden der Seitenelemente
in den Cachespeicher 1011 wird von dem Seitenelementenfeld 1305 erhalten,
wo anfänglich
die Seitenelemente durch Filenamen bezeichnet werden. Mit derartigen
Informationen weiß der
Lesefaden 1105, welche Seitenelemente vorgeholt werden
sollen und wo diese in dem Seitenelementspeicher 1013 gespeichert
werden sollen. Vor einem Vorholen irgendeines Seitenelementes überprüft der Lesefaden
durch Überprüfen des "cachegespeicherten" Kennzeichen in dem
Seitenelementenfeld 1305, ob das Seitenelement bereits
in dem Seitenelement-Cachespeicher 1011 enthalten ist.
Falls dieses Kennzeichen gesetzt ist, wird kein Zugang von dem Seitenelementspeicher 1013 benötigt. Andererseits
wird ein Raum in dem Seitenelementspeicher 1011 zugeordnet
und das Seitenelement dort gespeichert. Nach dem Holvorgang wird
das "cachegespeicherte" Kennzeichen gesetzt
und die Adresse des "Ortes
in dem Cachespeicher" in
das Seitenelementenfeld 1305 geschrieben. Nur das erste
Beispiel irgendeines Elementes wird durch den Lesefaden 1105,
behandelt, da es lediglich sein Auftrag ist, sicherzustellen, dass
die durch irgendeine Seite angeforderten Elemente sich in dem Seitenelement-Cachespeicher 1011 befinden.
Die "Tiefen"-Dimension des Beispielfeldes
(die sich mit mehreren Beispielen auf einer Seite beschäftigende
Dimension) wird nicht behandelt. Sobald alle Seitenelemente in der
Seitenbeschreibung einer bestimmten Seite behandelt sind, wird ein
Pointer zu dem Seiteninformationseingang in dem Seitenbeschreibungsfeld
der vollständigen
Seite an eine weitere Reihe geführt,
nämlich
an die Zusammenführungsreihe 1205,
welche ebenfalls in dem Speichermodul 130 während der
Initialisierung aufgebaut wird. Dies zeigt dem Zusammenführungsfaden 1109 an,
dass die Elemente für
diese Seite erhältlich
sind. Der Zusammenführungsfaden 1109 kann
dann unabhängig
von dem Lesefaden 1105 arbeiten. Getrennt davon stellt
ein Speichermanagementverfahren, welches im folgenden beschrieben
wird, sicher, dass Elemente, welche bisher durch den Zusammenführungsfaden 1109 noch
nicht zusammengeführt
wurden, nicht von dem Element-Cachespeicher 1011 vor der
Zusammenführung
entfernt werden. Somit wird eine spezielle Tätigkeit, wie im weiteren Verlauf
beschrieben wird, erforderlich, wenn der Seitenelement-Cachespeicher 1011 voll
wird.
-
Cachespeichermanagement:
-
Der Seitenelement-Cachespeicher 1011 umfaßt einen
Klumpen von Speichern in dem Speichermodul 130. Ein dynamisches
Speichermanagersystem verwaltet Anfragen von dem Lesefaden 1105 für einen
Block von Speichermodulen einer Größe, welche der Größe des Seitenelementes
entspricht. Um einen Bruch des Cachespeichers zu verhindern, wird
der Seitenelement-Cachespeicher
in Klumpen mit einer festen Größe (Speicherseiten)
aufgeteilt und ein Block besteht somit aus einer Anzahl dieser Klumpen.
Diese Klumpen sind nicht notwendigerweise in dem Cachespeichermodul
benachbart angeordnet. Sobald der Block zugeordnet ist, liest der
Lesefaden 1105 das Seitenelement aus dem Seitenelementspeicher 1013 in
diesen Block ein. Wenn ein Seitenelement nicht länger für nachfolgende Seiten benötigt wird,
wie durch ein geeignetes Kennzeichen in den drei Strukturen der
Felddaten angezeigt, wird es durch den dynamischen Cachespeichermanager
unter Steuerung des Zusammenführungsfadens 1109 abbeordert.
Verschiedene Implementierungen sind möglich und können in der Literatur des Standes
der Technik für
den dynamischen Speichermanager gefunden werden. Wenn eine Anfrage
für einen
Block eines Speichers durch den Lesefaden 1105 getätigt wird
und der dynamische Speichermanager die Anfrage nicht erfüllen kann,
d. h. wenn der Cachespeicher voll ist, wird der Lesefaden 1105 daran
gehindert, in den Cachespeicher 1011 zu schreiben, bis
der Zusammenführungsfaden 1109 anfängt, die
Seitenelemente auf der vorhergehenden Seite oder Seiten zusammenzuführen. Da
der Zusammenführungsfaden 1109 vorrückt, während der
Lesefaden 1105 blockiert wird, können die Seitenelemente von
dem Cachespeicher abbeordert werden, da sie nicht für zukünftige Seiten
benötigt
werden. Lediglich dann wird dem Lesefaden 1105 ein Signal
gegeben, fortzufahren und die Speicheranfrage wird somit erneut
versucht. Wenn die Speicheranfrage erfolgreich verläuft, kann
der Lesefaden 1105 fortfahren. Wenn der Lesefaden 1105 immer
noch blockiert wird, wenn der Zusammenführungsfaden 1109 beginnt,
eine Seite zusammenzuführen,
bevor der Seitenlesefaden 1105 versucht, Seiten vorzuholen,
wird eine Cachespeicher-Ersetzungsstrategie wirksam.
-
Die Cachespeicher-Ersetzungsstrategie:
-
Ein Aspekt der vorliegenden Erfindung
behandelt ein Verfahren (eine Strategie) für eine Ersetzung von Seitenelementen
in einem Element-Cachespeicher 1011, wenn er voll ist und
ein einfaches Warten nicht ausreicht. Dieses Ersetzungsverfahren
minimiert Zugriffe auf einen Seitenelementspeicher 1013 und
maximiert somit den Durchfluß.
-
Während
der Initialisierung wird die Größe des Seitenelement-Cachespeichers 1011 derart
dimensioniert, dass alle Seitenelemente von zwei aufeinanderfolgenden
Seiten in diesen passen. Auf diese Weise wird die Cachespeicherersetzung
niemals steckenbleiben. Das Ersetzungsverfahren umfaßt einen
Satz an Aktionen, welche zum Freigeben von bestimmten Elementen
aus dem Seitenelement-Cachespeicher 1011 derart ausgeführt werden,
dass ausreichend Platz verfügbar
wird, um das Speichermodul zuordnen zu können, welche s, zum Laden eines
bestimmten Seitenelementes von dem Seitenelementspeicher 1013 benötigt wird.
Ein Seitenelement wird freigegeben durch Setzen seines "cacheabgespeicherten" Feldes auf falsch
in dem Seitenelementenfeld 1305 und durch Freigeben des
Speichermoduls, welcher durch das Seitenelement in dem Seitenelement-Cachespeicher 1011 gemäß dem dynamischen
Speichermanager besetzt ist.
-
Ein einfaches Ersetzungsverfahren
besteht in einem Scannen durch das Seitenelementenfeld 1305 und
Freigeben der Cachegespeicherten Seitenelemente auf eine zufällige Art,
wobei die freigegebenen Elemente nicht auf der Seite vorhanden sind,
welche augenblicklich durch den Zusammenführungsfaden 1109 betrieben
wird (typischerweise die Seite vor der Seite, welche augenblicklich
durch den Lesefaden 1105 betrieben wird), und nicht auf
der Seite vorhanden sind, welche augenblicklich durch den Lesefaden 1105 betrieben wird.
Das Freigeben derartiger Elemente aus dem Cachespeicher wird durch
einen Zufallsmodus ausgeführt bis
die Nachfrage des Speichermoduls befriedigt werden kann.
-
Ein Nachteil dieses einfachen Ersetzungsverfahrens
besteht darin, dass potentielle Seitenelemente aus dem Cachespeicher
freigegeben werden, welche bald benötigt werden könnten. Auf ähnliche
Weise könnten
Seitenelemente, welche lediglich sehr viel später wiederverwendet werden,
unnötigerweise
in dem Cachespeicher 1011 verbleiben. Das Cachespeicher-Ersetzungsverfahren
gemäß einem
bevorzugten Ausführungsbeispiel
stellt sicher, dass die Seitenelemente aus dem Cachespeicher in
umgekehrter Reihenfolge dazu freigegeben werden, wieviele Seiten
vorher sie benötigt
werden. Dies bedeutet, dass Elemente, welche später benötigt werden, zunächst aus
dem Cachespeicher freigegeben werden. Um dies zu erreichen macht
das Seitenersetzungsverfahren gemäß dem bevorzugten Ausführungsbeispiel
Verwendung von dem Feld "nächste Seite,
auf welcher es verwendet wird" des
Seitenelementenfeldes 1305. Dieses Feld wird durch den
Lesefaden 1105 gefüllt,
wenn ein Seitenelement in den Seitenelement-Cachespeicher 1011 gelesen
wird, und wird von dem zugeordneten Seitenelement-Beispielsfeld
in das Elementen-Beispielsfeld 1307 kopiert. Die spezifische Strategie
für die
Cachespeicherersetzung untersucht nun dieses Feld "nächste Seite, auf welcher es
verwendet wird" und
wählt alle
Seitenelemente in dem Elementenfeld 1305 aus, welche ein "im Cachespeicher
abgespeichertes" Kennzeichen
Richtig aufwiesen und welche das Feld "nächste
Seite, auf welcher es verwendet wird" mit Seiten aufweisen, nachdem der Seitenlesefaden 1105 Seitenelemente
vorgeholt hat. Alle derartig ausgewählten Seitenelemente werden
in absteigender Reihenfolge ihrer Felder "nächste
Seite, auf welcher es verwendet wird" sortiert. Die bevorzugte Strategie
für die
Cachespeicherersetzung gibt dann aus dem Cachespeicher die Seitenelemente
gemäß der sortierten
Reihenfolge frei. Auf diese Weise wird eine optimale Cachespeicherersetzung
erreicht.
-
Zusammenführungsfaden 1109 und
Ausgabefaden beziehungsweise -fäden 1113:
-
Der Zusammenführungsfaden 1109 ist
der Kern des schnellen Zusammenführungssystems 1103.
Er läuft
auch auf dem Prozessor 112 und führt die Implementierungen des
Zusammenführungsverfahrens
der vorliegenden Erfindung aus, welche die Zusammenführung im
wesentlichen in dem komprimierten Rasterbildbereich ausführen. Die
Aktivität
des Zusammenführungsfadens 1109 wird
durch Informationen gesteuert, welche in den Feldstrukturen 1307, 1309 und 1305 durch
die Seitenbeschreibungen bezeichnet werden, auf welche durch die
Zusammenführungsreihe 1205 gedeutet
wird. Durch Verwendung der bezeichneten Seitenbeschreibungen weiß der Zusammenführungsfaden 1109,
wo die Seitenelemente in dem Seitenelement-Cachespeicher 1011 zu
finden sind und wo diese Seitenelemente auf der Seite zu plazieren
sind. Der Zusammenführungsfaden 1109 erzeugt
alle Seitentrennungen in einem komprimierten Format, wie in dem
Satz an Datenstrukturen spezifiziert ist. Er führt dies separat für CT-Elemente
(in dem bevorzugten CT-Komprimierungsformat JPEG) und für die LW-Elemente
(in dem bevorzugten LW-Komprimierungsformat
RLE) aus. Typischerweise werden für das letztendliche Drucken
auf dem Xeikon-Duplexgerät 16 Zusammenführungsergebnisse
für jede
abschließende
Duplexseite berechnet: für
die Vorder- und Rückseiten
der Seite gibt es die CMYK-Trennung jeweils sowohl in dem CT-komprimierten
Format als auch in dem LW-komprimierten Format. Die Zusammenführungsergebnisse
von dem Zusammenführungsfaden 1109 werden
als Seitenpuffer 1111 in dem Ausgabepuffer gespeichert,
welcher einen Teil des Speichermoduls 130 verwendet und
welcher die vorher zusammengeführten
Seiten hält,
welche an das bzw. die Komprimierungs- und Screeningsystem beziehungsweise -systeme 1017 durch
den Ausgabefaden beziehungsweise die Ausgabefäden 1113 ausgegeben
werden. Die Anzahl der Seitenpuffer und der Ausgabefäden hängt davon
ab, wie die Daten auf dem bestimmten Druckgerät gedruckt werden. Sobald alle
Seitenzusammenführungsergebnisse
für eine
bestimmte Seite berechnet sind, wird das entsprechende Feld "Anordnung in dem
Ausgabepuffer" in
dem Seitenbeschreibungsfeld 1309 durch den Zusammenführungsfaden 1109 unter
Bezugnahme auf die Zusammenführungsergebnisse
in dem beziehungsweise den Seitenpuffer 1111 aufgefüllt. Der
Pointer zu der Seitenbeschreibung der Seite wird in eine oder mehrere
zugeordnete Reihen angeordnet, welche als Ausgabereihen 1209 bezeichnet
werden, wobei die Reihe ursprünglich
in der Initialisierungsphase aufgebaut wird. Jede Reihe zeigt seinem
Ausgabefaden 1113 an, dass die Seitendaten für diese
Seite (und diese Trennung für
den Fall von separaten Seitenpuffern und Ausgabefäden pro
Trennung), wie in dem Seitenbeschreibungsfeld 1309 bezeichnet
ist, fertig sind, um durch den Ausgabefaden 1113 bearbeitet
zu werden, welcher die Seitenzusammenführungsergebnisse an das passende Dekomprimierungs-
und Screeningsystem 1017 ausgibt, in welchem diese dekomprimiert,
kombiniert, gescreent und an geeignete Druckköpfe 1019 des Druckgerätes gesendet
werden. Es sei an dieser Stelle darauf hingewiesen, dass in den 11 und 12 das Bezugszeichen 1019 abwechselnd
für das
Druckgerät
und/oder die Druckköpfe
des Druckgerätes
verwendet wird. Die besondere Bedeutung wird dem Leser aus dem Zusammenhang
offensichtlich. Das Tempo, mit welchem irgendein Ausgabefaden 1113 arbeitet
wird durch die Geschwindigkeit bestimmt, mit welcher der digitale
Drucker die Seiten ausgibt. Es sei wiederum darauf hingewiesen,
dass für
das Drucken auf dem Xeikon-Gerät
oder auf anderen Druckgeräten,
welche mehrere Druckköpfe aufweisen,
welche die Farbtrennungskomponenten auf die Seite in einer leitungsgeführten Art
eine nach der anderen auftragen, wo die Ausgabereihe in mehrere
parallele Ausgabereihen aufgespalten wird, welche jeden dieser Druckköpfe füttern, der
Zusammenführungsfaden 1109 einen
geeigneten Seitenbeschreibungspointer in alle diese Reihen stellt,
wenn er die Zusammenführungsergebnisse
berechnet.
-
Damit das hierin beschriebene Zusammenführungssystem
in Echtzeit, wie durch die Geschwindigkeit des digitalen Druckgerätes 1019 diktiert
wird, betreibbar ist, ist es notwendig, dass die Lese-, Zusammenführungs-
und Ausgabefäden
Schritt halten. Der erforderliche Durchfluß (gezählt in Seiten) jedes Fadens
bezieht sich direkt auf die Komplexität der Seitenlayoute. Diese
Komplexität
im allgemeinen ist proportional zu der Zahl der Seitenelemente und
ihrer Größe auf einer
Seite. Für
den Fall, dass der geforderte Durchfluß nicht erreicht werden kann,
falls es keine Möglichkeit
gibt, das digitale Druckgerät 1019 mit
sofortiger Wirkung langsamer zu fahren oder anzuhalten und zu starten,
werden einige leere Seiten ausgegeben. Im Falle von Druckgeräten, welche
nicht langsamer gefahren werden können, wenn der geforderte Durchfluß nicht
erreicht werden kann, werden derartige Druckgeräte gezwungen, mit einer geringeren
Geschwindigkeit zu laufen.
-
Gemäß einem weiteren Ausführungsbeispiel
kann der Seitenlayoutskript-Generator die Komplexität des Seitenlayouts überprüfen und
an den Betreiber Warnungen ausgeben, falls eine bestimmte Seite
wahrscheinlich zu komplex ist, um das Zusammenführungssystem zu passieren.
Dem Betreiber kann dann eine Auswahl gegeben werden, diese Seiten
off-line vorab zusammenzuführen
oder teilweise einige der Seitenelemente einer derartigen Seite
zusammenzuführen.
-
Die Seitenpuffer (auch
als Seitentrennungspuffer bezeichnet) 1111:
-
In dem gegenwärtigen Zusammenhang wird der
Speicherbereich, welcher durch eine komprimierte Seite in dem Ausgabepuffer
besetzt wird, als ein Seitenpuffer 1111 definiert. Dies
geschieht, um dieselbe Terminologie wie in Systemen gemäß dem Stand
der Technik zu verwenden, welche nicht komprimierte Seitenpuffer
mit einer festen Größe bei einer
festen Zuweisung verwenden.
-
Seiten(trennungs)puffer 1011 befindet
beziehungsweise befinden sich dort, wo die Zusammenführungsergebnisse
gespeichert werden. Jedes Seitenergebnis (eine Trennung in der vorliegenden
Implementierung) wird in einem zugeordneten Seitenpuffer gespeichert.
Somit ist ein alternativer Name (nur für die vorliegende Implementierung)
Seitentrennungspuffer. Ein Seitenpuffer speichert sowohl die CT-Seite
als auch die LW-Seite. Für
einen Drucker, welcher Seiten fortlaufend ausdruckt, wobei alle
Trennungen auf einer Seite vor einem Beginn mit der nächsten Seite
gesetzt werden, würde
ein Seitenpuffer alle Trennungen für diese Seite speichern. Bei
Druckern, welche Trennungen in einer leitungsgeführten Art ausgeben, wobei verschiedene Trennungen
von verschiedenen Seiten zur gleichen Zeit ausgegeben werden, würde ein
Seitenpuffer 1111 lediglich eine Trennung der Seite speichern
und wird somit manchmal als Seitentrennungspuffer bezeichnet. Im letzteren
Fall existieren mehrere Ausgabeströme, einer für jede Trennung (und Druckkopf
des Druckgerätes), wobei
ebenfalls mehrere Seitentrennungspuffer 1111 vorgesehen
sind, welche mit den entsprechenden Ausgabereihen 1109 verbunden
sind. Für
jeden Ausgabestrom kann eine Anzahl an Seiten(trennungs)puffer in
einem Speicherbereich von fester Größe zugewiesen werden. Gemäß dem vorliegenden
bevorzugten Ausführungsbeispiel
kann dieser Speicherbereich wenigstens zwei Seiten(trennungs)puffer 1111 pro
Ausgabereihe 1009 speichern. Abhängig von dem Komprimierungsverhältnis der
Seiten können
gewöhnlich
wesentlich mehr Seitenpuffer eingepaßt werden und dies ermöglicht dem
System Spitzenlasten zu glätten.
Der Zusammenführungsfaden
beschreibt die Seiten(trennungs)puffer 1111 einen nach dem anderen
in dem Ausgabepufferbereich und befördert ihre Bezeichnung über die
Ausgabereihe an den Ausgabefaden. Der Ausgabefaden befördert dann
die Seiten(trennungs)puffer an das Dekomprimierungs- und Screening-System 1017.
-
Zwei herkömmliche Verfahren zum Setzen
von zusammengeführten
Seitenelementen in einen Seitenpuffer sind: 1) Malen der Seitenelemente
eines nach dem anderen in den Seitenpuffer entsprechend der Zeichnungsreihenfolge;
und 2) Berechnen des Zeichnungsergebnisses des Seitenpuffers Scanlinie
für Scanlinie oder
Streifen für
Streifen. Die zweite Möglichkeit
wird oft bevorzugt, wenn nicht komprimierte Daten zusammengeführt werden,
weil die Speichermodulanforderungen hoch sind und oft ein vollständiger Speicher
für eine
zusammengeführte
Seite nicht in das Speichermodul paßt. Im vorliegenden Fall befinden
sich die Daten, welche in dem Seitenpuffer 1111 gesetzt
sind, in dem komprimierten Bereich und die Gesamtheit des Seitenpuffers 1111 (welche
wie weiter oben erörtert
zum Speichern von zwei Seiten im vorausdesigned ist) verbleibt in
dem Speichermodul 130. Nichtsdestotrotz wird die zweite
Möglichkeit
bevorzugt. Dies liegt daran, dass die erste Möglichkeit einen Speichermanangement-Overhead
erfordert. Im Gegensatz zu einer nicht komprimierten Zusammenführung ist
es nicht möglich,
ein einzelnes Seitenelement in geeignete Zusammenführungsergebnisse
an einem geeigneten Platz in dem Seitenpuffer zu zeichnen (zusammenzuführen), weil
die Speichergröße einer
komprimierten Seite sich ändert,
wenn Seitenelemente auf dieser zusammengeführt werden. So muß das System
entweder eine Menge Daten verschieben oder es muß mit Referenzpointern arbeiten,
um die Daten an einer anderen Speicherstelle zu erneuern, ohne der
Möglichkeit,
den durch ungültige
Daten besetzten Speicher freizugeben. Somit wären viele Speichermanagement-Overheads
erforderlich. Die zweite Möglichkeit
weist derartige Probleme nicht auf und wird daher in dem vorliegenden
Ausführungsbeispiel
verwendet.
-
Das Speichermanagement für einen
oder mehrere Seitenpuffer 1111 wird im folgenden beschrieben werden.
Das Zusammenführungsergebnis
wird durch den Zusammenführungsfaden 1109 in
Streifen berechnet, welche einer Höhe von 8 CT-Pixel entsprechen
(weil eine CT-Zusammenführung
vorzugsweise auf 8 × 8 JPEG-Blöcken ausgeführt wird).
Das Speichermodul für
den Seitenpuffer 1111 wird durch einen Seitenpuffer-Speichermanager zugewiesen
beziehungsweise eingeteilt, wenn die Streifen zusammengeführt werden, entsprechend
der maximalen Größe, welche
ein komprimierter Streifen erreichen kann, basierend auf einer Worst-case-Annahme
des niedrigsten Komprimierungsverhältnisses. Der Seitenpuffer-Speichermanager
arbeitet typischerweise in einer rundlaufenden Art durch Zuweisen
von Puffern und Abbeordern von Puffern in einem reservierten Speicherbereich,
welcher groß genug
während
der Initialisierung dimensioniert wird, um eine ausgewählte Anzahl
von komprimierten Seitenpuffern 1111 zu halten (zwei gemäß dem vorliegenden
Ausführungsbeispiel).
Jeder Seitenpuffer wird als runder Puffer (auch manchmal als Ringpuffer
bezeichnet) implementiert. Wenn ein Streifen vollständig zusammengeführt ist,
wird das zugewiesene Überschuss-Speichermodul
zu dem Seitenpuffer-Speichermanager zurückgesetzt. Auch wenn die zusammengeführten Seiteninhalte
eines Seitenpuffers an das Komprimierungs- und Screening-System 117 durch
den Ausgabefaden 1113 ausgegeben werden, wird das Speichermodul,
welches durch diesen Seitenpuffer besetzt wird, zu dem Seitenpuffer-Speichermanager
zurückgesetzt.
Wenn alle Seitenpuffer 1111 gefüllt sind, wird der Zusammenführungsfaden 1109 blockiert,
bis der Ausgabefaden einen Seitenpuffer freigibt.
-
Der Zusammenführungsfaden 1109:
-
Wenn der Zusammenführungsfaden 1109 eine
Seitenbeschreibung nimmt, welche auf dem Pointer in der Zusammenführungsreihe 1205 basiert,
beginnt er die Seitenelementbeispiele zusammenzuführen. Genauer
gesagt führt
der Zusammenführungsfaden 1109 die
Seitentrennungen eine nach der anderen in einem der Seitenpuffer 1111 zusammen
(unter der Annahme, dass mehr als ein Seitenpuffer vorhanden ist).
Die CT-Teile und die LW-Teile (jeweils komprimiert) werden getrennt
voneinander für
jede Trennung zusammengeführt
und in demselben Seiten(trennungs)puffer 1111 gespeichert.
-
Die Zusammenführung wird durch den Zusammenführungsfaden 1109 durchgeführt. Konzeptionell sind
die bevorzugten Verfahren zum Zusammenführen des CT-Teils und des LW-Teils
eines Seitenelementes darin ähnlich,
dass das Zusammenführungsergebnis
in Streifen berechnet wird, vorzugsweise 8 CT-Pixel (= 16 LW-Pixel
für das
Xeikon-Gerät)
hoch, welche die Seite horizontal unterteilen. Die Seitenpuffer
werden jeder Seite der Trennung durch den Seitenpuffer-Speichermanager
zugewiesen, wie oben beschrieben wurde. Der Seitenpuffer wird Streifen
für Streifen
beschrieben. Dies bedeutet, dass anfänglich die maximal mögliche Speichergröße für einen
Streifen zugewiesen wird und, nachdem der Streifen zusammengeführt ist
und die eigentliche Größe bekannt
ist, wird ein Extraspeichermodul abbeordert. Das Zusammenführungsergebnis
für einen Streifen
wird Scanlinie für
Scanlinie berechnet. Für
das JPEG-Format ist die CT-komprimierte Zusammenführung einer
Scanlinie ein Streifen, d. h. eine Reihe von 8 × 8 Blöcken, während für das RLE-Format die LW-komprimierte
Zusammenführung
einer Scanlinie eine LW-Linie ist, so dass 16 Scanlinien pro LW-Streifen vorhanden
sind. Sobald alle Streifen in einer Seite zusammengeführt sind,
werden die Startadressen der Seiten in den geeigneten Feldern "Anordnung in dem
Ausgabepuffer" in
dem Seitenbeschreibungsfeld 1309 aufgenommen. Für jede Duplexseite,
falls 8 Seitenpuffer vorhanden sind (beispielsweise einer für jeden
Druckkopf), würden
16 verschiedene Unterfelder vorhanden sein, welche die Startadressen
für die
LW-Daten und für
die CT-Daten für
jeden Kopf anzeigen würden.
Es sei an dieser Stelle darauf hingewiesen, dass mehrere alternative
Implementierungen für
dieses Feld möglich
sind. Beispielsweise weist gemäß einem
bevorzugten Ausführungsbeispiel
das Feld "Anordnung
in dem Ausgabepuffer" einen
Pointer pro Trennung für
den ersten Streifen der LW- (oder CT-) Trennung auf, wobei andere
Streifen nacheinander gespeichert werden. Damit dieses funktioniert,
werden die Streifen derart gespeichert, dass der Beginn des nächsten Streifens
bestimmt werden kann. Ein weiteres Ausführungsbeispiel besteht darin,
dass ein Feld von Streifenbeschreibungen mit dem Startplatz und
der Größe jedes
Streifens in dem Feld verwendet wird. Viele andere Variationen sind
möglich, wie
für die
Fachleute auf diesem Gebiet offensichtlich ist.
-
Somit ist ein weiterer Aspekt der
vorliegenden Erfindung ein Verfahren, welches in dem Zusammenführungsfaden 1109 für ein effizientes
Erzeugen der komprimierten Seite implementiert ist, wobei mit den
komprimierten Seitenelementen begonnen wird, und wobei jegliche
Zusammenführung
im wesentlichen ohne einer Dekomprimierung der Seitenelemente ausgeführt wird.
Das Verfahren zum Zusammenführen
von Seitenelementen auf einer Seite in einer komprimierten Form,
resultierend in einem einzelnen komprimierten Seitenelement, welches
die gesamte Seite darstellt, läuft
gemäß dem folgenden
Pseudocode ab, welcher für
jeden Streifen für
jede Trennung arbeitet:
-
-
-
Der Zusammenführungsprozeß
-
Der Zusammenführungsprozeß, welcher durch den Zusammenführungsfaden 1109 ausgeführt wird, wird
im folgenden ausführlicher
beschrieben. Obwohl der Betrieb gemäß dem vorliegenden Ausführungsbeispiel
alle Elemente sofort, Streifen für
Streifen, Trennung für
Trennung, zusammenführt,
wird die Beschreibung im folgenden für eine einfache Situation,
wie in 2(b) dargestellt
ist, mit lediglich zwei Elementen gegeben, und wie die für das Zusammenführen von
mehreren Elementen Streifen für
Streifen notwendigen Details hinzugefügt werden, wird als geradliniges
Implementierungsdetail weggelassen. Für das vorliegende Beispiel würde das
Seitenlayoutskript spezifizieren, dass die Reihenfolge derart ist,
dass das Element 301 unterhalb des Elementes 203 ist,
und die Stelle der Zusammenführung
des Elementes 203 würde
in Bezug zu der Position des Elementes 201 spezifiziert
werden. In einem System, welches das Konzept eines nicht-flüchtigen
Masters und variabler Komponenten verwendet, kann das Element 201 der
nicht-flüchtige
Master und das Element 203 eines der variablen Elemente
sein. Es sei an dieser Stelle darauf hingewiesen, dass die vorliegende
Erfindung im allgemeinen nicht die Konzepte von "Master" und "festen" Elementen aufweist und offensichtlich derart
angepaßt
wird, dass es derartige Konzepte umfaßt. Die Identifizierer und
Positionen der Seitenelemente 201, 203 und 207 in
den zusammengeführten
Daten 205, welche in den komprimierten zusammengeführten Daten
und der Reihenfolge der Zusammenführung enthalten sind, werden
spezifiziert und zugänglich
für den Zusammenführungsfaden 1109,
wie oben beschrieben wurde. Gemäß einem
bevorzugten Ausführungsbeispiel
stellen die zusammengeführten
Daten 205 Daten von den Streifen eines Seitenelementes
dar, in welches ein oder mehrere ausgewählte zugeordnete Streifen der
Seitenelemente 203 mit einem Seitenelement 201 zusammengeführt werden.
-
Die Daten in dem Element 201 und
dem Element 203 weisen Bilder auf, welche eine Linienarbeit und/oder
ununterbrochene Ton("CT")-Bilder sein können. Die
Linienarbeit, wie sie hierin verwendet wird, beinhaltet Text. Sowohl
die Linienarbeit als auch die CT-Bilder werden durch Bildelemente
("Pixel") beschrieben und
die Pixelwerte werden von der PDL-Beschreibung durch eine RIP-Rasterung
bei der Auflösung
passend für
den Drucker erzeugt, welcher zum Drucken der zusammengeführten Daten
verwendet wird. Wie oben beschrieben wurde, sind die verschiedenen
Seitenelemente in einer Form nach einer RIP-Rasterung jedoch vor einem
Screenen erhältlich.
Dies bedeutet, dass die Seitenelemente ein Raster von Pixeln darstellt,
wobei jedes Pixel die Tintenwerte für ein Farbdrucken aufweist,
beispielsweise CMYK-Werte, welche die Menge von cyanfarbiger, magentafarbiger,
gelber und schwarzer Tinte zum Drucken darstellen. Gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung werden die Elemente 201 und 203 zum
Zusammenführungsfaden 1109 in
komprimierter Form geliefert. Das beschriebene Verfahren und die
beschriebene Vorrichtung sind nicht auf ein spezielles Komprimierungsformat
beschränkt.
Sie können
mit irgendeinem Komprimierungsformat verwendet werden, solange das
Format ein Einfügen
von Bitströmen
ermöglicht,
welche komprimierte Bilddarstellungen in einen ähnlich formatierten Bitstrom
darstellen.
-
Zusammenführung von
ununterbrochenen Tondaten:
-
Im ersten vorausgesetzten Fall sind
das Seitenelement 201, welches Element "E" genannt
wird, und das Seitenelement 203, welches Element "D" genannt wird, beides CT-Bilder. Diese
CT-Bilder würden jeweils eine
mit ihnen verbundene CT-Gültigkeitsmaske
und LW-Daten aufweisen, welche eine CT-Auswahlmaske beinhalten würden. Soweit
in der vorliegenden vereinfachten Erörterung der Zusammenführung von
CT-Daten nichts anderes angegeben ist, sind es die CT-Daten, wie
durch die CT-Gültigkeitsmaske
definiert, welche zusammengeführt werden,
und die CT-Gültigkeitsmaske
definiert die Grenze (den Rahmen) der CT-Daten, welche zusammengeführt werden
sollen. Die CT-Auswahlmaske definiert die Grenze der sichtbaren
CT-Daten, welche
zusammengeführt
werden sollen, wenn auch bei der Auflösung der LW-Daten. Wenn die
CT-Daten zusammengeführt
werden, entfaltet lediglich die CT-Gültigkeitsmaske ihre Wirkung.
Nach dem Zusammenführen einer
CT-Datenangabe E (z. B. 203) über einer anderen CT-Datenangabe
D (z. B. 201) durch die CT-Gültigkeitsmaske von D, wird
die CT-Gültigkeitsmaske
nicht länger
benötigt.
Was nach einem Zusammenführen
der beiden Seitenelemente mit der CT-Auswahlmaske passiert, ist
in dem Abschnitt bezüglich
der Zusammenführung
von LW-Daten beschrieben. Die CT-Auswahlmaske entfaltet lediglich
dann ihre Wirksamkeit, wenn die letztendlich zusammengeführten CT-Daten und die letztendlich
zusammengefügten
LW-Daten von allen zusammengeführten
Seitenelementen miteinander kombiniert werden. Ein wichtiger Unterschied
zwischen der CT-Gültigkeitsmaske
und der CT-Auswahlmaske besteht darin, dass erstere bei einer CT-Auflösung und
letztere bei einer LW-Auflösung liegt.
Außerdem
kann die CT-Gültigkeitsmaske
mehr von den CT-Daten gültig
machen, als durch die CT-Auswahlmaske ausgewählt ist, jedoch sollten alle
ausgewählten
CT-Daten gültig
gemacht werden. Ein Beispiel ist in 9 dargestellt,
in welchem ein kleiner LW-Text ("T" 907) sich
auf dem CT-Bereich 909 in demselben Seitenelement 903 befindet.
Der Abschnitt der CT-Daten 911, welcher sich unter dem
LW-Text 927 befindet, würde
gültig
gemacht werden, jedoch nicht ausgewählt werden, wie durch die CT-Gültigkeitsmaske 933 und
die CT-Auswahlmaske 943 gezeigt ist. Dieser Aspekt der
vorliegenden Erfindung ermöglicht
ein schnelleres CT-Zusammenführen und
eine Verringerung von Komprimierungsartifakten aufgrund einer geringeren
CT-Grenze, welche in dem CT-Zusammenführungsprozeß involviert ist. Gemäß einem
bevorzugten Ausführungsbeispiel
werden die CT-Elemente in Pixelform (beispielsweise nach einer RIP-Rasterung)
unter Verwendung von JPEG komprimiert. Dies bedeutet, dass die CT-Elemente in Blöcke eingeteilt
werden, wobei jeder Block einem Rechteck, vorzugsweise 8 × 8 Pixel,
zugeordnet ist. In dem vereinfachten in 3 dargestellten illustrativen Beispiel
besteht das CT-Seitenelement E, welches jetzt mit dem Bezugszeichen 301 bezeichnet
ist, aus 5 × 5
Blöcken;
und das CT-Seitenelement D, welches nun mit dem Bezugszeichen 303 bezeichnet
ist, besteht aus 2 × 2
Blöcken.
Offensichtlich sind die eigentlichen Seitenelemente wesentlich größer. Jedoch
ist jeder Streifen lediglich ein Block hoch, wenn die Streifen Streifen
für Streifen
zusammengeführt
werden. Die Blöcke
des Seitenelementes E (301) sind mit E1,1 bis E5,5 nummeriert
und die Blöcke
des Seitenelements D (303) sind mit D1,1 bis D2,2 nummeriert.
Die verwendete Form besteht darin, dass der erste Index die Reihennummer
des Blockes darstellt und der zweite Index die Spaltennummer des Blockes
darstellt. Es sollte für
die Fachleute auf diesem Gebiet offensichtlich sein, dass in dem
bevorzugten Ausführungsbeispiel
lediglich 1-Block hohe Streifen zusammengeführt werden sollen. Die Erörterung
im folgenden wird das Zusammenführen
von vollständigen
zweidimensionalen Seitenelementen im allgemeinen beschreiben.
-
Es sei ebenfalls darauf hingewiesen,
dass in dem in 3 dargestellten
einfachen Fall das Seitenelement D 303 rechteckig ist,
wobei der Teil des Elementes D 303, welcher mit einem Teil
des Elementes E 301 zusammengeführt werden soll, aus einer
exakten Anzahl an Blöcken
besteht, wobei dieser Teil an einer Stelle zusammengeführt wird,
welche sich in bezug zu dem Element 301 an exakten Blockgrenzen
des Seitenelementes 301 befindet. Dies ist der einfachste
Fall. Wenn man den vollständigen
Arbeitsfluß im
voraus kennt, wird ein Zusammenführen
vorzugsweise im voraus angeordnet, um zu garantieren, dass das Zusammenführen innerhalb
der Blockgrenzen stattfindet. Gemäß einem weiteren Aspekt der
vorliegenden Erfindung sei daran erinnert, dass jedes CT-Element eine zugeordnete
CT-Gültigkeitsmaske
und eine CT-Auswahlmaske
aufweist, welche zusammen definieren, welcher Teil des Bildes sichtbar
ist. Diese Masken sind nicht notwendigerweise rechteckig – sie können irgendeine
Form annehmen, beispielsweise eine Kreisform. Ebenfalls kann das
Seitenelement 203 im allgemeinen an irgendeiner willkürlichen
Position 209 angeordnet werden. Somit werden sich die Blöcke des
Seitenelements 201 im allgemeinen nicht mit denjenigen
anderer Elemente ausrichten.
-
Bei einer JPEG-Komprimierung wird
jedes Bild in Blöcke
aufgeteilt und die DCT-Koeffizienten für jeden Block werden quantisiert,
beispielsweise unter Verwendung einer digitalen Pulscodierungs-Modulation,
einer Lauflängencodierung
und einer Huffman-Codierung. Die Darstellung der verschiedenen komprimierten
Blöcke nach
der Huffman-Codierung kann verschiedene Längen (in Byte) aufweisen.
-
Das JPEG-Format ermöglicht jedem
codierten Block, dass diesem eine spezielle 16-Bit-Ausrichtung (auch
als Neustartmarkierung bezeichnet) vorangestellt werden kann, was
als RST bezeichnet wird. Diese 16-Bit-Ausrichtungsmarkierung erleichtert
das Suchen über
einen Bitstrom; man sucht nach dem speziellen 16-Bit RST-Wert und
vergleicht jedes 16-Bit-Wort
des Bitstroms. Es wird im folgenden wieder Bezug genommen auf den
vereinfachten Fall in 3,
wobei jedem codierten Block eine derartige Markierung vorangestellt wird,
wobei die Bilder E (301) und D (303) in der Form
eines Datenstromes gespeichert werden, welcher eine Abfolge der Blockdarstellungen
ist, wobei jeder mit einer RST-Markierung beginnt. Dies ist in 4 dargestellt, in welcher
das beispielhafte Seitenelement E 401 (301) RST-Markierungen 403, 405, 407, 409 und 411 vor jedem
Block aufweist und in welcher das beispielhafte Seitenelement D 415 (303)
so dargestellt ist, dass es RST-Markierungen 417, 419, 421 und 423 vor
jedem Block aufweist. Alternativen dazu, dass jedem Block eine RST-Markierung vorangestellt
wird, sind auch wünschenswert
und werden weiter unten in dieser Druckschrift beschrieben werden.
-
Gemäß einem bevorzugten Ausführungsbeispiel
für den
Fall von CT-Daten, wenn die Blöcke
des darunterliegenden Seitenelementes E 201 sich nicht
mit denjenigen des oberen Seitenelementes D 203 ausrichten,
was häufig
auftreten wird, werden die E- und D-Blöcke von 201 und 203 vor
dem Zusammenführen
ausgerichtet. Die Blöcke
des Seitenelementes D 203 werden zu dem Gitter, welches
durch die Blöcke
des Seitenelementes E 201 definiert ist, durch Ausführen einer Übertragung
des Seitenelementes D 203 über den kleinstmöglichen
Abstand zum Ausrichten der D-Blöcke
des Elementes 203 ausgerichtet. Dies ist in 5(a) und 5(b) dargestellt. Die Blockgrenzen des
(unterhalb liegenden) Seitenelementes E 201 werden mit
dem Bezugszeichen 501 bezeichnet und als gepunktete Linien
dargestellt, wobei die Blöcke
des Seitenelementes D 203 mit dem Bezugszeichen 503 bezeichnet
werden und die CT-Gültigkeitsmaske
des Seitenelementes D 203 mit dem Bezugszeichen 509 bezeichnet
wird. In 5(a) ist die
Situation vor der Übertragung
dargestellt. Der kürzeste
Abstand zum Ausrichten des Seitenelementes D 203 zu den
Blockgrenzen 501 besteht darin, das Seitenelement D 203 nach
oben und nach links zu übertragen. 5(b) zeigt die nach einer
derartigen Übertragung
ausgerichteten Bilder. Gemäß einem
bevorzugten Ausführungsbeispiel
werden die Pixelblöcke 503 des
D-Seitenelementes 203 bewegt und die CT-Gültigkeitsmaske 509 wird
nicht bewegt. Die Wirkung davon besteht darin, dass sich die Position
des Elementes D 203 relativ zu anderen Seitenelementen
in der Seite (derartige andere Seitenelemente sind in 5 nicht dargestellt) nicht ändert. Daraus
resultierend bleibt die visuelle Ausrichtung mit anderen Seitenelementen
erhalten.
-
Für
den Fall von 8 × 8
Blöcken
in der JPEG-Ausführungsform
beträgt
die maximale Übertragung
4 Pixel in den vertikalen und/oder horizontalen Richtungen. Bei
einer CT-Auflösung
von 300 Pixel pro Inch, üblich bei
Hochqualitäts-Veröffentlichungen, überträgt sich
dies auf eine maximale Verschiebung von ungefähr 1/75 eines Inches oder ungefähr 1/3 mm.
-
Als Ergebnis der Übertragung des Seitenelementes
D 203 in bezug auf die CT-Gültigkeitsmaske 509 gelangen
einige der Pixel, welche außerhalb
der CT-Gültigkeitsmaske 509 waren,
ins Innere der CT-Gültigkeitsmaske
und werden sichtbar. Falls die CT-Gültigkeitsmaske 509 nahe
oder an der Kante des Seitenelementes 203 ist, können Artifakten
nach der Übertragung
auftreten. Um derartige Artifakten zu verhindern, muß eine Grenze
von wenigstens 4 Pixel der Seitenelementdaten D um die CT-Gültigkeitsmaske 509 herum
erhältlich
sein, um eine Blockausrichtung zu ermöglichen. In einem weiteren
Ausführungsbeispiel
für das
Verfahren der vorliegenden Erfindung wird das Bild, immer wenn die
Bild-CT-Gültigkeitsmaske 509 des
Seitenelementes 303 nahe der Grenze des Seitenelementes 203 ist,
beispielsweise das Grenzkästchen
von D für
ein rechteckiges Bild, durch einen kleinen Faktor vergrößert, um
eine Grenze von 4 Pixeln um die Bild-CT-Gültigkeitsmaske 509 zu
bilden. Eine derartige Vergrößerung würde normalerweise
während
der RIP-Rasterung als Instruktionen durchgeführt werden, das Bild zu vergrößern, wenn
sowohl die CT-Gültigkeitsmaske
als auch die CT-Daten erhältlich
sind. Ein Beispiel einer derartigen Vergrößerung ist in 6 dargestellt. 6(a) zeigt die Bild-CT-Gültigkeitsmaske 509,
welche die gleiche Größe wie das
Bildelement 203 aufweist. Die Situation nach der Vergrößerung und
vor der Verschiebung bzw. Ersetzung ist in 6(b) dargestellt. Das Seitenelement 603 ist
eine leicht vergrößerte Version
des Seitenelementes 303 mit einer Grenze 604 von
4 Pixeln außerhalb
der CT-Gültigkeitsmaske 509.
-
In einer besonderen RIP-Implementierung,
welche mit dem bevorzugten Ausführungsbeispiel
verwendet wird, weist das RIP gewöhnlich zwei Files für jedes
Seitenelement auf: das PS-File
selber und einen kleinen Text-File mit RIP-Optionen (Duplex oder
nicht, Orientierung, CT-Handhabung etc.). Mit einem derartigen RIP
kann das Text-File die RIP informieren, wann ein Objekt, welches
RIP-gerastert werden soll, als "variable" Daten verwendet
werden wird. Wenn das RIP auf eine CT trifft, untersucht es die
augenblickliche CT-Gültigkeitsmaske
und die CT-Auswahlmaske. Der Schnittpunkt des Grenzkästchens
der CT und des Grenzkästchens
der Gültigkeitsmaske
und der Clippmaske wird bestimmt. An jeder Seite (oben, unten, links,
rechts) sollten wenigstens vier CT-Pixel zwischen diesem Schnittpunkt
und der CT-Auswahlmaske und dem Clippmasken-Grenzkästchen vorhanden
sein, um einer möglichen Übertragung über ein
Maximum von vier Pixeln Rechnung zu tragen. Falls der Abstand weniger
als 4 Pixel beträgt,
wird die CT skaliert und durch die RIP in einer derartigen Weise
umpositioniert, dass eine Grenze von 4 Pixel auf allen Seiten erhältlich ist.
Gemäß einem
weiteren Ausführungsbeispiel
würde die
RIP nicht die CT skalieren, jedoch CT-Pixel über die Grenze der CT-Gültigkeitsmaske
hinaus duplizieren (oder extrapolieren), um sicherzustellen, dass
für willkürlich geformte Gültigkeitsmasken
ein Rand von 4 Pixel außerhalb
der CT-Gültigkeitsmaske
vorhanden ist.
-
Manchmal ist die Position eines Seitenelementes
auf der abschließenden
Seite im voraus bekannt (relativ beispielsweise zu einigen gewöhnlichen
Seitenelementen, welche als "Master" wirken). Falls dies
der Fall ist, können
die JPEG-Blöcke
auf eine derartige Weise (durch das RIP) erzeugt werden, dass sie
sich mit dem "Master" ausrichten, wobei
die Notwendigkeit einer Ausrichtung während der Zusammenführungsphase
ausgeschaltet wird. Falls keine Ausrichtung benötigt wird kann der Schritt
zur Vergrößerung der
Größe in der
RIP weggelassen werden.
-
Falls das PS-File von einem Standard-Vordruck-Anwendungsprogramm
direkt an die RIP gesendet wird, unter Verwendung beispielsweise
des standardmäßig installierten
PostSkript-Treibers,
kann man dann noch derartige Optionen einbinden, welche auf einem
Druckerdefinitions("ppd")-File basieren,
unter Verwendung beispielsweise der "Seiteneinstelleinrichtung"-Optionen. Eine derartige
Implementierung ist den Fachleuten auf diesem Gebiet von Vordruckprogrammierungen
und PostSkript RIP-Rasterungen bekannt. Eine spezielle Verfahrensoption
(festgesetzt durch den Benutzer) informiert das RIP darüber, dass
es ein variables Seitenelement bearbeitet.
-
In der Praxis werden viele Bilder
oft aus Designgründen
abgeschnitten, wobei ein derartiges Abschneiden selbst durch eine
Maske definiert wird. In einer derartigen Situation wird die Abschneidemaske
als CT-Gültigkeitsmaske 509 verwendet
und eine Grenze ist bereits erhältlich,
so dass gemäß einem
weiteren Ausführungsbeispiel
das RIP zum Erzeugen des Seitenelementes 503 nicht die
Extraskalierung anwendet.
-
Zur Erinnerung der hierin bereits
vorgenommenen Beschreibung ist es selbstverständlich, wann immer ein Zusammenführen des
CT-Bildes D 203 beschrieben wird, dass, falls eine Vergrößerung aufgetreten ist,
das Zusammenführen
der aus dem vergrößerten Seitenelement 603 als
aus dem Seitenelement 203 besteht, auch wenn dies nicht
explizit ausgedrückt
ist.
-
Wie in 5 ersichtlich ist, befinden sich einige
Blöcke
des Seitenelementes 203, beispielsweise der mit A beschriftete
und in 5(b) mit dem
Bezugszeichen 511 bezeichnete Block, vollständig im
Inneren der CT-Gültigkeitsmaske 509,
während
andere Blöcke
sich lediglich teilweise innerhalb der CT-Gültigkeitsmaske 509 befinden,
d. h. dass diese durch die CT-Gültigkeitsmaske 509 geschnitten
werden. Die von der CT-Gültigkeitsmaske
geschnittenen Blöcke
werden als Grenzblöcke
bezeichnet und ein derartiger Block ist mit D beschriftet und mit
dem Bezugszeichen 513 in 5(b) bezeichnet.
Die Grenzblöcke
werden mit benachbarten Blöcken
des Seitenelementes 201 kombiniert, was in Blöcken in
dem zusammengeführten
Bild 205 resultiert, welches Pixel von sowohl dem Seitenelement 201 als
auch dem Seitenelement 203 umfaßt. Gemäß einem Ausführungsbeispiel
werden Grenzblöcke
des Seitenelementes D 203, beispielsweise Block 513,
unterschiedlich von inneren Blöcken
des Seitenelementes D 203, beispielsweise Block 511,
zusammengeführt.
Es ist somit notwendig, die Grenzblöcke zu identifizieren.
-
Gemäß einem bevorzugten Ausführungsbeispiel,
wie bereits erörtert
wurde, wird die CT-Gültigkeitsmaske 509 als
ein rechteckiges Feld von Byte (eine "Bit"-Map)
dargestellt, wobei jedes Bit einem Pixel in dem CT-Bild zugeordnet
ist. Falls ein Bit in der Bit-Map der CT-Gültigkeitsmaske 509 festgesetzt
wird, ist das zugeordnete Pixel in dem Seitenelement 203 sichtbar.
Gemäß einem
alternativen Ausführungsbeispiel
wird die CT-Gültigkeitsmaske 509 als
ein Pfad (ein Satz an Segmenten, welche zusammen eine Form beschreiben) beschrieben.
Andere Alternativen sind ebenfalls möglich, wie es für die Fachleuten
auf diesem Gebiet eindeutig offensichtlich ist.
-
Gemäß einem bevorzugten Ausführungsbeispiel,
in welchem die CT-Gültigkeitsmaske 509 eine Bit-Map
ist, stellt ein Grenzblock des Seitenelementes D 203 einen
Block dar, für
welchen wenigsten ein Bit, jedoch nicht alle Bits, in die Pixel
der CT-Gültigkeitsmaske 509 der
Bit-Map gesetzt sind, welche dem Block zugeordnet ist. Innere Blöcke des
Seitenelementes D 203 haben alle zugeordneten CT-Gültigkeitsmaskenbits in der
Bit-Map 509 festgesetzt.
-
Gemäß einem alternativen Ausführungsbeispiel,
in welchem die CT-Gültigkeitsmaske 509 als
ein Pfad beschrieben wird, wird der Schnittpunkt der CT-Gültigkeitsmaske
und des Grenzkästchens
eines jeden Blockes des Seitenelementes D 203 bestimmt.
Das Grenzkästchen
eines Blockes ist der (unsichtbare) rechteckige Pfad, welcher die
Grenze des Blocks definiert. Falls der Schnittpunkt gleich dem Grenzkästchen des
Blockes ist, ist der Block ein innerer Block des Seitenelementes
D 203. Falls der Schnittpunkt nicht frei ist und nicht
gleich dem Block ist, dann ist der Block ein Grenzblock des Seitenelementes
D 203.
-
Das Zusammenführen von inneren Blöcken von
D 203 "in" das Seitenelement 201 wird
im folgenden unter Zuhilfenahme von 3 beschrieben,
wobei "in" hier verwendet wird,
da die Order lautet, dass D über E
angeordnet ist. In 3 wird
aus Gründen
der Einfachheit vorausgesetzt, dass keine Grenzblöcke in dem Bild
D vorhanden sind, das hier mit dem Bezugszeichen 303 bezeichnet
ist. Das darunterliegende Seitenelement in diesem einfachen Beispiel
ist mit dem Bezugszeichen 301 bezeichnet und das gewünschte zusammengeführte Bild
mit dem Bezugszeichen 305. In diesem Ausführungsbeispiel
wird angenommen, dass diese CT-Bilder unter Verwendung von JPEG
komprimiert werden, wie oben beschrieben wurde. Das Bild M 305 wird durch
Kopieren dieser Blöcke
(komprimiert) von dem Seitenelement E 301, welches in dem
Bild M 305 aufbewahrt werden muß, und alle internen Blöcke (komprimiert)
des Seitenelementes D 303 aufgebaut, welche in diesem einfachen
Fall alle Blöcke
des Seitenelementes D 303 darstellen.
-
Die folgende Darstellung wird zur
Beschreibung verwendet, wie man die zu kopierenden Grenzblöcke lokalisiert:
- – (Px,
Px) sind jeweils die vertikalen und horizontalen Positionen in Blockkoordinaten
der Stelle 307, an welcher das Seitenelement D über das
Seitenelement E gedruckt werden soll (im Knockout). Das Beispiel
in 3 zeigt das Seitenelement
D (303), welches über
das Seitenelement E (301) angeordnet werden soll, um ein
kombiniertes Bild 305, (Px, Py) = (3, 2) zu liefern;
- – Ei,j
ist die Kennzeichnung eines Blocks in dem Seitenelement E mit 1 ≤ i ≤ E_max_wert
und 1 ≤ j ≤_max_hor,
wobei E_max_wert und E_max_hor jeweils die maximalen Blockausgestaltungen
in den vertikalen und horizontalen Richtungen für das Seitenelement E darstellen;
und
- – Di,j
ist die Kennzeichnung eines Blocks in dem Seitenelement D mit 1 ≤ i ≤ D_max_vert
und 1 ≤ j ≤ D_max_hor,
wobei D_max_vert und D_max_hor jeweils die maximalen Blockausgestaltungen
in den vertikalen und horizontalen Richtungen für das Seitenelement D darstellen.
-
Die Blocknummern der zu kopierenden
Quellblöcke
werden durch den folgenden Pseudocode bestimmt, welcher für ein zweidimensionales
Objekt dargestellt ist. Wie für
einen Fachmann auf diesem Gebiet offensichtlich ist, können die "Für i = 1 bis E_max_vert" und "nächstes i"-Ausdrücke von dem Pseudocode entfernt
werden, wenn lediglich ein 1-Block hoher Streifen von CT-Daten gehandhabt
wird.
-
-
Es sei darauf hingewiesen, dass in
dem Beispiel in 3 E_max_hor
gleich 5, E_max_vert gleich 5, D_max_hor gleich 2 und D_max_vert
gleich 2 ist. Dies bedeutet, dass die Koordinaten eines ersten Blockes E1,1
des Seitenelementes verglichen werden mit den Koordinaten der Stelle,
an welcher das Seitenelement D über
dem Seitenelement E angeordnet werden soll. Falls i = 1 < Px = 3 wird der
Block E1,1 kopiert. Dasselbe gilt für die Blöcke E1,2 bis E1,5 für E2,2 bis
E2,5 und für
E3,1. Wenn die Koordinaten des Blockes E3,2 verglichen werden mit
den Koordinaten an der Stelle, an welcher das Seitenelement D darüber angeordnet
werden soll, so resultiert dieses in i = 3 = Px = 3; i = 3 < Px + D_max_wert
= 5; j = 2 = Py = 2; und j = 2 < Py
+ D_max_hor = 4. Dies bedeutet, dass der Block mit den Koordinaten
D(3 – 3
+ 1),(2 – 2
+ 1) = D1,1 kopiert werden wird. Dieses Verfahren fährt in derselben
Weise für
die verbleibenden Koordinaten fort.
-
Ein Suchen nach Blockgrenzen wird,
wie oben beschrieben wurde, durch Suchen nach speziellen Mustern
einer RST-Markierung
in dem Datenstrom eines Bildes ermöglicht. Gemäß einem Ausführungsbeispiel
wird entweder angenommen, dass die Daten mit RST-Markierungen an
geeigneter Stelle komprimiert worden sind oder dass RST-Markierungen
in einem bereits komprimierten Datenstrom eingefügt worden sind.
-
Da jeder Block genug Informationen
enthält,
seinen darstellenden Pixelwert zu erreichen, ist eine Dekomprimierung
vor einem Kopieren zu dem Bild M (305) nicht notwendig.
Auf diese Weise wird die Zeit zum Dekomprimieren ausgeschaltet bzw.
eingespart. Außerdem
ist das Bild M (305) immer noch ein komprimiertes Bild,
was Speicherplatz spart. Ebenfalls besitzen die Blöcke des
Seitenelementes E (201) und die inneren Blöcke des
Seitenelementes E (203) keine mittleren nicht komprimierten
Darstellungen, was wiederum Speicherplatz und Bandbreite spart.
-
Wenn mehr als zwei Seitenelemente
zusammengeführt
werden sollen, beispielsweise wenn auch ein Seitenelement 207 zusätzlich zu
den Seitenelementen E 201 und D 203 vorhanden
ist, kann der komprimierte Zusammenführungsprozeß ausgeführt werden, indem zunächst die
Seitenelemente E und D in ein zwischenzusammengeführtes Bild
M1 zusammengeführt
werden und danach das Zwischenbild M1 mit dem Seitenelement 201 auf
die gleiche Weise zusammengeführt
wird. Durch Verwendung dieses Verfahrens ist die relative Position
der Seitenelemente D und 207 irrelevant. Dies stimmt sogar dann,
falls das Seitenelement 207 mit dem Seitenelement D überlappt.
Ein alternatives Ausführungsbeispiel,
welches besser funktioniert, beinhaltet ein Ausdehnen des obigen
(zweidimensionalen Kopierungs-) Pseudocodes, um auch nach Blocknummern
zu testen, die durch die Blöcke 209 ersetzt
werden müssen.
-
Gemäß einem bevorzugten Ausführungsbeispiel
stellen die Bezugszeichen 203 und 207 verschiedene CT-Seitenelemente
dar, welche in das abschließende
zusammengeführte
Bild 205 mitumfaßt
werden sollen. Das abschließende
zusammengeführte
Bild liegt in der Form von komprimierten zusammengeführten CT-Daten
vor und kann eine vollständige
Seite oder einen Teil einer Seite darstellen.
-
Wenn die Bezugszeichen 203 und 207 verschiedene
CT-Seitenelemente darstellen, welche in das abschließende zusammengeführte Bild
mit eingeschlossen werden sollen, müssen die CT-Auswahlmasken,
welche mit jedem dieser CT-Daten verbunden sind, auch zusammengeführt werden.
Diese werden zur gleichen Zeit zusammengeführt, wie die LW-Daten zusammengeführt werden,
wie weiter unten beschrieben werden wird.
-
Obwohl das Beispiel, welches oben
benutzt wurde, um das Kopieren der inneren Blöcke von D darzustellen, rechteckige
Bilder verwendet, ist das Verfahren gemäß der vorliegenden Erfindung
nicht auf rechteckige Bilder beschränkt. Wie oben erörtert wurde,
kann eine Maske 509 im allgemeinen ein nicht rechteckiges Seitenelement
D 203 aufnehmen, um anzuzeigen, ob ein Block einen gültigen Block
des Seitenelementes D darstellt oder nicht. In diesem Fall wird
der obige (2-D kopierende) Pseudocode lediglich bei inneren Blöcken des
Seitenelementes D (203) angewendet.
-
Für
das illustrative Beispiel in 3 oder
für die
inneren Blöcke
von D (203) wurde angenommen, dass für den Fall des JPEG-Komprimierungsformates
die Bilder E und D unter Verwendung desselben JPEG-Schemas komprimiert
werden, wobei dieselben Quantisierungs-Tabellen und Huffman-Tabellen
dabei umfaßt
sind. Falls dies nicht der Fall ist, wenn später die zusammengeführten Daten
dekomprimiert werden, muß das
Dekomprimierungsschema zu dem speziellen des kopierten Blockes umgeschaltet
werden, wenn auf einen derartigen Block gestoßen wird. Wie dies erreicht
wird, wird im folgenden beschrieben. Das Komprimierungsmodul in
dem vorliegenden besonderen RIP kennt lediglich eine Huffman-Tabelle
und einen begrenzten Satz an Quantisierungs-Tabellen. Dies ist keine
Beschränkung
der vorliegenden Erfindung, sondern lediglich eine Implementierungswahl.
Diese Quantisierungs-Tabellen ermöglichen unterschiedliche Qualitätseinstellungen (hoch,
mittel und niedrig). In einer Ausgestaltung mit einem "Master" und einem "variablen" Objekt, falls ein Master
mit einer hohen Qualitätstabelle
und ein variables Objekt mit einer mittleren Qualitätstabelle
komprimiert wird, muß dann
die Variable umquantisiert werden. In einem allgemeinen Fall würde dies
zusätzliche Rundungsfehler
und somit einen zusätzlichen
Qualitätsverlust
herbeiführen.
Um dies zu minimieren, verwendet das besondere Ausführungsbeispiel
einen Satz an unterschiedlichen Quantisierungstabellen, beispielsweise
dass die Quantisierungskoeffizienten der mittleren Qualitätstabelle
doppelt so groß sind
wie die entsprechenden Koeffizienten für die hohe Qualitätstabelle.
Die Koeffizienten für
die niedrige Qualitätstabelle
sind dann wiederum doppelt so groß. Der Zusammenführungsfaden 1109 codiert
alle Seitenelemente auf die höchste
Qualitätseinstellung,
welche auf einer Seite verwendet wird, um.
-
Gemäß einem bevorzugten Ausführungsbeispiel
werden die Grenzblöcke
des Seitenelementes D 203 nicht in einer komprimierten
Form zusammengeführt,
da jeder resultierende Block in dem zusammengeführten Bild 205 eine
Mischung von Pixel aus dem entsprechenden Block in dem Seitenelement
E 201 und dem Grenzblock des Seitenelementes D 203 enthält. Somit
werden die Grenzblöcke
in D und der entsprechende Block in E dekomprimiert, in nicht komprimierter
Form zusammengeführt
und zum Bilden des entsprechenden Blockes in dem Bild M 205 zurückkomprimiert.
Es sei an dieser Stelle darauf hingewiesen, dass das Zusammenführen der
Grenzblöcke
unter Verwendung herkömmlicher
nicht komprimierter Verfahren einen minimalen Einfluß auf die
gesamte Verfahrensgeschwindigkeit besitzt. Die gesamte Anzahl von
Blöcken
in einem CT-Bildelement
steigt linear mit dem Bereich des Elementes an – genauer gesagt quadratisch
mit der Größe des Elementes,
wohingegen die Anzahl der Grenzblöcke mit der Begrenzung des
Elementes ansteigt, und somit linear mit der Größe. Für vernünftig große Elemente wird der Bruch
der Blöcke,
welche Grenzblöcke
sind, sehr klein. Somit wird ausgesagt, dass in dem vorliegenden
Ausführungsbeispiel
für blockkomprimierte
CT-Bilder das hierin beschriebene Verfahren ein Zusammenführen von
Daten im wesentlichen in komprimierter Form ausführt. Beispielsweise sei angenommen,
dass für
ein bestimmtes Bild D die Blockgrenzen weniger als 10% der gesamten
Blöcke
bilden. Somit verhindert unter Verwendung eines Ausführungsbeispiels
des Verfahrens der vorliegenden Erfindung ein Zusammenführen von
mehr als 90 Prozent der Blöcke
die rechnerisch intensiven Schritte einer Dekomprimierung vor dem
Zusammenführen
und einer Zurückkomprimierung
nach dem Zusammenführen.
Gemäß einem
Beispiel bei einem Drucken mit 300 Pixel pro Inch, üblich für viele
Kurzlauf-Farbdrucker, wie beispielsweise Farblaserdrucker, weist
ein kleines Seitenelement von einem Quadratinch 1444 8 × 8 JPEG-Blöcke auf
und 152 davon liegen auf der Grenze, ungefähr 10,5% von allen. Dieser
Prozentsatz geht linear nach unten, wenn sich die Größe vergrößert. Dies
bedeutet, dass ein 2 × 2
Inch-Bild ungefähr
5,3% der gesamten JPEG-Blöcke
als Grenzblöcke
aufweist, während
für ein
4 × 4-Inchbild der Prozentsatz
auf ungefähr 2,6%
fällt.
Somit kann, wenn eine wesentliche Mehrheit der Blöcke, welche
zusammengeführt
werden sollen, in komprimierter Form zusammengeführt werden, ausgesagt werden,
dass das Verfahren im wesentlichen in komprimierter Form komprimiert.
-
Gemäß einem weiteren Aspekt der
vorliegenden Erfindung kann die Suchzeit für Blöcke in diesem Verfahren erheblich
reduziert werden. Falls bekannt ist, dass ein bestimmter Bereich
oder bestimmte Bereiche des Seitenelementes E 201 immer
in dem Bild M 205 gehalten werden, ist es dann nicht für die RST-Markierungen notwendig,
für jeden
Block zu existieren, welcher zu einem derartigen nicht-variierenden
Bereich gehört.
Somit kann die Menge an Markierungsinformationen reduziert werden.
Eine Abfolge von Blöcken
kann als ein vollständiger
Block behandelt werden, welcher hierin als Superblock bezeichnet
wird, mit lediglich einer RST-Markierung. Da das Vorhandensein von
RST-Markierungen
das Komprimierungsverhältnis
in JPEG verringert, bedeutet ein Vorhandensein von wenigeren RST-Markierungen
ein höheres
Komprimierungsverhältnis
für die
Bilder. Die Suchzeit für
die Blockgrenzen wird ebenfalls verringert.
-
Als vereinfachtes Beispiel wird wiederum
auf die Bilder E (301) und D (303) aus 3 verwiesen, wobei E3,2;
E3,3; E4,2 und E4,3 die einzigen Bereiche sind, welche mit D in
dem Seitenelement E zusammengeführt
werden sollen. Normalerweise werden die Daten wie in 4 dargestellt repräsentiert.
Jedoch wird bei einer Verwendung der Kenntnis davon, welche Bereiche
des Seitenelementes E 301 unverändert verbleiben, gemäß einem
weiteren Ausführungsbeispiel
des Verfahrens der vorliegenden Erfindung der Datenstrom modifiziert
und dargestellt, wie in 7 ersichtlich
ist. In dem Seitenelement E (jetzt mit dem Bezugszeichen 701 versehen)
wird eine erste RST-Markierung 703 vor dem Block E1,1 angeordnet.
Die nächste
RST-Markierung 705 wird lediglich vor dem ersten Block
angeordnet, der sich ändern
kann, um Block E3,2 zu sein.
-
Gemäß einem weiteren Aspekt können auf ähnliche
Weise wenigere RST-Markierungen verwendet werden oder falls RST-Markierungen durchwegs
vorhanden sind, können
die RST-Markierungen
aus dem Datenstrom des Seitenelementes D entfernt werden. Das Seitenelement
D, welches mit dem Seitenelement E zusammengeführt werden soll, wird in Reihen und
Blöcken
aufgeteilt. Dies bedeutet, dass die Superblöcke Reihen sind. Zum Beispiel
bilden unter Betrachtung des Seitenelementes D (303) in 3 die Blöcke D1,1 und
D1,2 eine Reihe; und die Blöcke
D2,1 und D2,2 bilden eine zweite Reihe. Der Datenstrom des Seitenelementes
D wird jetzt durch Einfügen
einer ersten RST-Markierung vor dem Block D1,1 und einer zweiten RST-Markierung
vor dem Block D2,1 modifiziert. Die RST-Markierungen sind über das
Seitenelement E nur dann ausgebreitet, wenn eine neue Reihe von
Blöcken
beginnt. Mit einem derartigen Schema ist es oft notwendig, nach
einem Block zu suchen, welchem nicht eine Markierung vorangestellt
ist. Gemäß diesem
Ausführungsbeispiel
erfordert eine Suche nach einem derartigen Block eine teilweise
Dekomprimierung, und lediglich des Datenstromes, welcher der RST-Markierung
folgt, gerade vor der Stelle, an welcher die Blöcke D angeordnet werden sollen
(im Knockout). Lediglich eine teilweise Dekomprimierung wird benötigt, weil
die eigentlichen Pixelwerte nicht erforderlich sind – es sind
lediglich Blockgrenzen notwendig. Für den Fall einer JPEG-Komprimierung könnte diese
teilweise Dekomprimierung gerade der Huffman-Dekodierungsschritt
der JPEG-Dekomprimierung sein, resultierend in einem festen Längen-Datenstrom
für jeden
Block. Auf diese Weise kann man die RST-Markierungen verwenden,
an die Stelle überzuspringen,
jedoch vor die Blockstelle, an welcher die Ersetzung beginnt, und
von da an führt
man lediglich eine teilweise Dekomprimierung aus, soweit es notwendig
ist, um die Blockstelle zu erreichen, an welcher die Ersetzung beginnt,
was wesentlich weniger Zeit beansprucht, als eine vollständige Dekomprimierung.
Dieses Ausführungsbeispiel
beinhaltet somit eine Kombination einer komprimierten Zusammenführung und
einer teilweise komprimierten Zusammenführung. Bei der Verwendung dieses
Ausführungsbeispiels
wird die Anzahl der erforderlichen RST- Markierungen reduziert, wodurch das
Komprimierungsverhältnis
erhöht
wird, jedoch auf Kosten einer Einführung von zusätzlich benötigter Zeit
für die
teilweise Dekomprimierung.
-
Zusammenführung von
Linienarbeitsdaten (die CT-Auswahlmaske umfassend)
-
Ein weiteres Merkmal der vorliegenden
Erfindung liegt für
den Fall vor, dass sowohl das des Seitenelement 201 als
auch das Seitenelement 203 Linienarbeitsdaten beinhalten.
Die Linienarbeitsdaten hierin umfassen die CT-Auswahlmaske als auch
die Linienarbeit, wie sie üblicherweise
in der graphischen Kunst verstanden wird, inklusive Logos, Text
und anderen Formen, welche durch scharfe Grenzen gekennzeichnet
sind. Gemäß bevorzugter
Ausführungsbeispiele
wird angenommen, dass die Linienarbeit durch Rasterdaten dargestellt
wird, nämlich
in dem Pixelbereich. Dies ist zum Beispiel der Fall, wenn alle Seitenelemente
nach einer RIP-Rasterung erhältlich
sind und vorzugsweise vor einem abschließenden Screening, wobei ein
RIP-gerastertes Bild in diesem Fall Pixel aufweist, wobei jedes
Pixel vier Farbwerte aufweist, nämlich
C M Y und K. Genau so wie bei CT-Daten werden LW-Daten für eine Trennung
zu einem Zeitpunkt zusammengeführt.
-
Gemäß einem bevorzugten Ausführungsbeispiel
wird die RLE, welche zum Komprimieren der Linienarbeit verwendet
wird, durch folgendes gekennzeichnet:
- – Die Rasterdaten
werden Reihe für
Reihe, Spalte für
Spalte angeordnet.
- – Für jede Reihe
(oder Spalte, in manchen Ausführungsbeispielen)
werden benachbarte Pixel mit gleicher Farbe in Läufe gruppiert. Ein Lauf ist
eine Datenstruktur, welche die Farbe und die Anzahl der Pixel in
dem Lauf von dieser Farbe definiert, wobei diese Anzahl als "Lauflänge" bezeichnet wird.
- – Eine
Reihe (oder Spalte in einem spaltenartigen Ausführungsbeispiel) kann durch
anschließendes
Erweitern der Läufe
wieder aufgebaut werden. Unter Verwendung eines Index i, beginnend
mit i = 0, werden für jeden
Lauf, der durch ein Paar (c, n) definiert ist, wobei c die Farbe,
n die Lauflänge
darstellt, n Pixel der Farbe c jeweils bei den Pixeln bei i, i +
1, ..., i + n – 1
erzeugt. Danach wird i um n erhöht
und der nächste Lauf
wird vergrößert.
-
Wie für den Fall des Zusammmenführens der
CT-Daten kann das Seitenelement E irgendeine Form annehmen. Das
heißt,
das erhältliche
Element D kann eine damit in Verbindung stehende Maske aufweisen. Für den Fall
von Linienarbeitsdaten gemäß einem
bevorzugten Ausführungsbeispiel
wird eine spezielle Farbenwert, als "Hintergrund" bezeichnet, definiert. Alle Pixel,
welche nicht in der Hintergrundfarbe enthalten sind, sind per Definition
sichtbar, und alle Pixel in der Hintergrundfarbe sind unsichtbar.
-
Um eine Zusammenführung der CT-Auswahlmaske zur
gleichen Zeit wie die LW-Daten zu ermöglichen, wird die LW-/CT-Auswahlmaske
auf eine spezielle Weise in LW codiert. In dem Fall, in welchem
ein spezieller Lauf ein Lauf von CT-Daten und nicht ein Lauf mit
einer flachen Farbe ist, wird die Lauffarbe mit einem speziellen
Wert codiert, um diese Situation anzuzeigen. Wie der spezielle Farbwert
für den
Hintergrund wird ein anderer spezieller Farbwert reserviert, um
CT anzuzeigen.
-
Gemäß einem Ausführungsbeispiel
wird einem speziellen Farbenwert ein Extrabit zu der Farbe hinzugefügt, und
gemäß einem
weiteren Ausführungsbeispiel
ist es lediglich eine freie Farbe aus dem Bereich der nicht benutzten
Farben. Im Gegensatz zu der Hintergrundfarbe wird die spezielle
CT-Anzeigefarbe
auf die gleiche Weise behandelt, wie jede andere Farbe. Mit diesem
Mechanismus wird die CT-Auswahlmaske wirksam mit RLE komprimiert
und die Zusammenführung
der CT-Auswahlmaske
tritt automatisch mit dem hierin beschriebenen LW-Zusammenführungsverfahren
auf.
-
Damit während der Komprimierung der
Daten die Zusammenführung
auftritt, verwendet man gemäß einem
bevorzugten Ausführungsbeispiel
ein Verfahren zum Lokalisieren des Laufes, welcher die Pixel an
manchen vorgegebenen Stellen beschreibt, welche hierin mit (x, y)
bezeichnet sind. Im folgenden wird angenommen, dass die RLE Reihe
für Reihe
vorgesehen ist, d. h. entlang der x-Achse. Es wird ebenfalls angenommen, dass
man schnell die Reihe y in dem Bitstrom lokalisieren kann, z. B.
unter Verwendung einer Datenstruktur für den Bitstrom, welche die
Position des Beginns der Reihe y in dem Bitstrom umfaßt. In dem
besonderen Aufbau, welcher für
einen Seitenelementenfile gemäß dem vorliegenden
Ausführungsbeispiel
verwendet wird, beinhaltet ein Header in dem File ein Feld (eine
Nachschlagtabelle) mit dem Byte-Offset
der ersten Daten der Linie y an Position y. Unter Verwendung dieses
Offsets kann man schnell zu den Daten dieser Linie überspringen.
-
Um den Lauf in Reihe y, welcher das
Pixel x aufweist, zu lokalisieren, scannt man schrittweise die Läufe in Reihe
y, beginnend mit dem ersten Lauf in Reihe y. Index i wird verwendet,
wobei i anfänglich
auf 0 gesetzt wird, um mit der augenblicklichen Position innerhalb
eines Laufes Schritt zu halten. Bei dem Start des Scannens irgendeines
Laufes wird dessen Lauflänge
zu i hinzugefügt,
bis i > x ist. Wenn
i > x ist, enthält der augenblickliche
Lauf das Pixel bei (x, y) und dieser Lauf beginnt bei dem vorherigen
i-Wert. Es wird keine Dekomprimierung benötigt. Der einzige erforderliche
Betrieb besteht in dem ausreichenden Decodieren des Bitstroms, um
die Lauflänge
zu erhalten.
-
Im folgenden wird der Zusammenführungsschritt
für Linienarbeitsdaten
beschrieben. Gemäß einem bevorzugten
Ausführungsbeispiel
wird die Zusammenführung
Reihe für
Reihe betrieben, somit wird die Zusammenführung für lediglich eine Reihe unter
Zuhilfenahme von 8 beschrieben.
In 8 ist lediglich
ein Teil der Seitenelementreihe E, welche mit dem Bezugszeichen 808 bezeichnet
ist, dargestellt. Dies ist der Teil, welcher diejenigen Läufe enthält, welche
entweder teilweise oder ganz mit der zugeordneten Reihe des Seitenelementes
D überlappen,
wobei diese Reihe mit dem Bezugszeichen 805 bezeichnet
ist. Die vier Läufe
der Reihe 803, welche teilweise oder ganz mit 805 überlappen,
sind jeweils mit dem Bezugszeichen 809, 811, 813 und 815 bezeichnet.
Alle Läufe
einer Seitenelementreihe 805 sind dargestellt. Die Läufe 817, 821 und 829 sind in
der Hintergrundfarbe, somit sind sie nicht in dem zusammengeführten Bild
sichtbar, während
die Läufe 819, 823, 825 und 827,
welche schraffiert dargestellt sind, in Reihe 803 von E
zusammengeführt
werden sollen. Es wird angenommen, dass die Reihe 805 des
Seitenelementes D (203) an der horizontalen Position X
relativ zu dem Beginn der Reihe 801 des Seitenelementes
E (201) ausgerichtet werden soll. Die resultierende zusammengeführte Reihe
ist als Reihe 807 in 8 dargestellt.
Gemäß einem
bevorzugten
-
Ausführungsbeispiel umfaßt der Zusammenführungsbetrieb
folgende Schritte:
-
Beginnend von links:
-
- – Läufe der
Reihe 803 von E vor der ersten Reihe 809 von E,
welche teilweise oder ganz mit der Reihe 805 von D überlappen,
werden unverändert
zu der Ausgabe kopiert.
- – Die
Läufe der
Reihe 803 von E, welche teilweise oder ganz mit Reihe 805 von
D überlappen,
werden zu einem temporären
Speicherbereich als eine geordnete Liste kopiert. In 8 sind diese kopierten
Reihen die Reihen 809, 811, 813 und 815.
Jede Lauflänge
in den Elementen der geordneten Liste wird durch die x-Koordinate des ersten
Pixels in diesem Lauf ersetzt. Unter Bezugnahme auf 8 wird die x-Koordinate des ersten Laufs 811,
wie oben beschrieben, unter Verwendung eines Index i erhalten. Die
Koordinaten von nachfolgenden Läufen
werden durch Hinzufügen
von Lauflängen
zu der x-Koordinate des ersten Laufs 811 erhalten, da zusätzliche
Läufe kopiert
werden. Somit wird eine temporäre
Liste bestimmt, wobei die Liste die Koordinate x1 bei
der Farbe des Laufs 809, die Koordinate x3 bei
der Farbe des Laufs 811, die Koordiante x6 bei
der Farbe des Laufs 813 und die Koordinate x10 bei
der Farbe des Laufs 815 aufweist. Ein Extraelement wird
nun an das Ende der Liste hinzugefügt, wobei die Koordinate in
die Koordinate des letzten Pixels des letzten Laufs von E, 815,
plus 1 und eine Farbe "egal" eintritt. In 8 ist die x-Koordinate
des zusätzlichen
Elementes x13 + 1.
- – Die
Reihenläufe
von D werden zu einem zweiten temporären Speicherbereich als eine
zweite geordnete Liste kopiert und wiederum werden die Lauflängen in
jedem Listenelement durch die x-Koordinate des Beginns dieses Laufes
ersetzt. Das erste Element als x-Koordinate X(= x2).
Wiederum wird ein Extraelement zu der Liste hinzugefügt, wobei
die x-Koordinate des Extraelementes die Koordinate des letzten Pixels
des letzten Laufes in der Seitenelementreihe 805 plus eins
ist, und die Farbe des Extraelementes der Hintergrund ist. Für die in 8 dargestellte Situation
weist die angedeutete Liste auf: (Farbe von 817, x3), (Farbe von 819, x4),
(Farbe von 821, x5), (Farbe von 823,
x7), (Farbe von 827, x8),
(Farbe von 827, x9), (Farbe von 829,
x11), (Hintergrund, x12 +
1).
- – Die
beiden geordneten Listen werden in eine einzige geordnete Liste
zusammengeführt
und ein Etikett wird zu jedem Element hinzugefügt, welches den Ursprung dieses
Laufes beschreibt. Die drei möglichen Etikettwerte
sind: von der Reihe von E, von der Reihe von D in der Hintergrundfarbe
oder von der Seitenelementreihe und nicht in der Hintergrundfarbe.
Diese drei Fälle
sind jeweils durch "f", "vb" und "v" für
die in 8 dargestellte
Situation bezeichnet, wobei die x-Koordinaten und die Etiketten in der
neuen zusammengeführten
Liste sind: (Farbe von 809, x1;
f), (Hintergrund x2; vb), (Farbe von 811,
x3; f), (Farbe von 819, x4; v), (Hintergrund x5;
vb), (Farbe von 813, x6; f), (Farbe
von 825, x8; v), Farbe von 827,
x9; v), Farbe von 815, x10; f), (Hintergrund x11;
vb), (egal, x12 + 1; vb), (egal, x13 + 1; f).
- – Die
zusammengeführte
Liste wird nun in Reihenfolge gescannt. Für jeden vorkommenden Lauf werden ein
oder mehrere Betriebe von sechs möglichen Betrieben ausgeführt, abhängig von
dem Etikett auf dem gegenwärtigen
Lauf und dem nächsten
Lauf. Die möglichen
Betriebe sind:
Rücke
vor: Mache den nächsten
Lauf zum gegenwärtigen
Lauf
Lösche:
Lösche
den gegenwärtigen
Lauf, mache dann den nächsten
Lauf zum gegenwärtigen
Lauf
Lösche
den nächsten
Lauf: lösche
den nächsten
Lauf
Wähle
Farbe: Speicher die Farbe des gegenwärtigen Laufs in einem Register
(d. h. als eine gesicherte Variable)
Verwende Farbe: Ersetze
die Farbe des gegenwärtigen
Laufes durch die abgespeicherte Farbe (d. h. durch die Farbe in
dem Register)
-
Welche der Betriebe auszuführen ist,
wird durch die Tabelle 5 beschrieben.
-
-
-
Somit werden Elemente von der Liste
gelöscht,
welche einem Hintergrundlauf folgende Hintergrundlaufbeginne, ein
einem E-Lauf folgender
Hintergrundlaufbeginn oder ein einem Lauf von D folgender E-Laufbeginn
sind. Ferner werden die Farben von einigen Läufen von E gespeichert und
diese Farben werden als ausgewählte
Hintergrundfarben verwendet.
-
In dem Beispiel gemäß 8 werden die Läufe beginnend
als x2, x10 und
x12+1 gelöscht. Die Hintergrundfarbe
des Laufes beginnend bei x5 wird durch die
Farbe von 811 ersetzt, und die Hintergrundfarbe des Laufs
beginnend bei x11 wird durch die Farbe des
Laufs 815 ersetzt.
-
Der letzte Lauf in der Liste (der
Lauf beginnend bei x13 + 1) wird jetzt gelöscht. Zum
Beispiel enthält die
Liste jetzt die folgenden Läufe:
(
Farbe von 809, x1), (Farbe von 811,
x3), (Farbe von 819, x4),
(Farbe von 811, x5), (Farbe von 813,
x6), (Farbe von 823, x7),
(Farbe von 825, x8), (Farbe von 827,
x9), (Farbe von 815, x11).
-
In dieser Stufe werden die x-Positionen
in der Liste durch die Lauflängen
ersetzt; diese Lauflängen werden
von nachfolgenden x-Werten bestimmt. Ferner werden alle Null- Lauflängen von
der Liste gelöscht
und das Ergebnis wird als zusammengeführte Reihe 807 kopiert.
-
Die verbleibenden Läufe der
Reihe des Seitenelementes 201 werden nun zu der Ausgabe
kopiert.
-
Somit wird die Linie zusammengeführt. Dies
wird für
alle Linien ausgeführt.
Es sei an dieser Stelle darauf hingewiesen, dass in allen oben erwähnten Schritten
niemals eine Dekomprimierung stattfindet. Somit wurde ein Verfahren
zum Zusammenführen
von komprimierten Linienarbeitsbildern ohne einer Dekomprimierung beschrieben.
-
Gemäß einem weiteren Ausführungsbeispiel
wird ein transparentes Überdrucken
durch ein Anhängen der
Laufinformation möglich
gemacht, welche die Lauflänge
und die Lauffarbe beinhaltet, mit Lauf Alpha. Der Lauf Alpha ist
ein Maß für die Transparenz
des Laufes. Beim Zusammenführen
von zwei Stücken
eines Laufs derselben Länge,
wobei sich ein Laufstück
mit der Lauffarbe "a" und der Lauf Alpha "t" über
einem anderen Laufstück
mit Farbe b befinden, wird dann die resultierende Lauffarbe als
min((a*t + b*(max_alphat))/max_alpha, max_color) angenommen. Dabei
ist "max_alpha" der maximale Wert
des Laufs Alpha und max_color ist der maximale Farbintensitätswert.
Gemäß einem
weiteren Ausführungsbeispiel
wird die Farbe des resultierenden Laufs als gerade max (a, b) angenommen.
In diesem Zusammenhang besitzen die Farben (CMYK) der steigenden
Intensität
steigende Farbwerte, d. h. für
weiß sind
alle Farbtrennungswerte Null.
-
Wenn mehr als ein Seitenelement mit
dem Seitenelement 201 zusammengeführt werden soll, ist dort auch
z. B. ein Objekt
207 zusätzlich zu dem Element 203 vorgesehen,
wobei der komprimierte Zusammenführungsprozeß, genau
wie in dem CT-Fall,
ausgeführt
werden kann, indem zunächst 201 und 203 in
ein zusammengeführtes
Zwischenbild zusammengeführt
werden, und dann 209 in das zusammengeführte Zwischenbild zusammengeführt wird.
-
Alternativen für eine Beschleunigung
der Kopierbetriebe:
-
In einigen Anwendungen können eine
große
Anzahl an kundenorientierten zusammengeführten Seiten basierend auf
dem gleichen Seitenelement E erzeugt werden müssen. In einer derartigen Situation
müssen die
gleichen Blöcke
viele Male lokalisiert werden. Der Seitenelement-Cachespeicher 1111 ist
bereits beschrieben worden.
-
Gemäß einem alternativen Ausführungsbeispiel
des Verfahrens der vorliegenden Erfindung können verschiedene Strukturen
für eine
Cachespeicherung als weitere Beispiele verwendet werden, um die
Suchzeit in einer derartigen Situation zu reduzieren. Zum Beispiel
kann ein Block-Cachespeicher (für
CT-Bilder) oder ein Lauf-Cachespeicher (für Linienarbeitsbilder) verwendet
werden. Der Block-Cachespeicher (oder der Lauf-Cachespeicher für eine Linienarbeit) wird als
eine Hash-Tabelle
bzw. als eine Tabelle mit einem unerwünschten Speicherinhalt implementiert,
welche Schlüsselwertpaare
umfaßt.
Ein Schlüssel
umfaßt
vorzugsweise: die Identifikation (eine "ID")
des Elementes und die Koordinaten eines Blockes (oder Laufes) in
dem Element. Die Ausgabe der Tabelle unter Verwendung irgendeines
Schlüsselpaares
ist die Bitposition in dem Datenstrom (Bitstrom) des Blockes (oder
Laufes) entsprechend dem Schlüssel.
Falls während
dem Zusammenführungsprozeß ein Block
vorkommt, der sich noch nicht in dem Block-Cachespeicher (oder in
dem Lauf-Cachespeicher)
befindet, wird dieser Block (oder Lauf) zu der Hash-Tabelle des
Block-Cachespeichers (oder Lauf-Cachespeichers)
hinzugefügt.
Vorzugsweise kann die "Least
recently used" (bzw. "Am wenigsten neulich
verwendet") ("LRU")-Strategie verwendet
werden, um alte Elemente aus dem Block-Cachespeicher (oder dem Lauf-Cachespeicher)
auszurangieren. Andere Strategien können ebenfalls verwendet werden.
Ferner, wie für
die Fachleute auf diesem Gebiet offensichtlich, können andere
Implementierungen als eine Hash-Tabelle verwendet werden, um einen
Block-Cachespeicher (oder Lauf-Cachespeicher) für häufig vorkommende Blöcke (oder
Läufe)
eines Seitenelementes 201 zu implementieren. Ferner können gemäß einem Ausführungsbeispiel
die Block-Cachespeicher-
und Lauf-Cachespeicher-Schemata in irgendeine spezielle Cache-Speicher-Hardware
programmiert werden, wie beispielsweise ein Cachespeichersystem 149 in
dem File-Untersystem 125 des
Assemblercomputersystems 110, wie in 1 dargestellt ist.
-
Für
Anwendungen, in denen ein "Master"-Seitenelement und
ein variables Seitenelement vorhanden ist, welche immer dasselbe
Layout besitzen, kann die folgende Implementierung für einen
Linien-Cachespeicher implementiert werden. Falls man wiederholend
ein Objekt der Größe sx, sy auf die Position
px, py über ein Master-Seitenelement
mi setzt, muß man dann nach den Endpunkten
px + sx der Scanlinie
py bis py + sy des Objektes mi suchen.
Somit kann man die Byte-Offsets der Läufe cachespeichern, welche
diese Endpunkte enthalten. Um diese Indizes absuchen bzw. wiedergewinnen
zu können,
muß man
diesen eine einzigartige id zuweisen, welche auf der Objekt id mi, der Trennung s und der Position x, y basieren
kann. Man kann wie bei dem vorher beschriebenen Seitenelement- Cachespeicher 1011 alle
Bezüge
bzw. Bezeichnungen der Objekte heraussäubern, welche in dem gegenwärtigen Buch
nicht weiter benötigt
werden.
-
Bei einer Implementierung z. B. auf
dem Assemblercomputersystem 110 aus 1 können
der Kopierschritt oder die Kopierschritte der komprimierten Zusammenführung sogar
unter Verwendung einer sogenannten "Streu-Sammel"-Direkt-Speicherzugriffs("DMA")-Technik noch weiter
beschleunigt werden. Eine derartige DMA-Technik wird vorzugsweise
durch einen Hardware-DMA-Kontroller implementiert (in 1 mit dem Bezugszeichen 131 bezeichnet),
welcher mit einem (Adressen-/Zähl-)Paar
eingestellt ist und einen direkten Zugriff auf das Speichermodul 130 besitzt,
wobei die Register des Prozessors 122 umgeleitet werden.
Der DMA-Kontroller 131 liest die Daten von einer RAM-Adresse
durch den Adressenwert in seinem Adresszähler aus, schreibt diese Daten
in einem Zielort, inkrementiert seinen Adresswert und dekrementiert
seine Zahl. Er macht dies solange, bis sein Zähler die Zahl Null erreicht.
Da diese RAM-Zugriffe direkt durch die Hardware auftreten, werden
derartige Speicherkopier-Betriebe wesentlich schneller ausgeführt, verglichen
mit Speicherkopier-Betrieben, welche durch den Prozessor 112 ausgeführt werden,
welcher durch Befehle geführt
wird. Typischerweise wird der DMA-Kontroller 131 durch
den Prozessor 112 mit einem (Adressen-/Zähl-)Paar
eingestellt und gestartet. Wenn der Kopierbetrieb fertig ist, unterbricht
der DMA-Kontroller 131 den Prozessor 112. Auf
diese Weise ist der Prozessor 112 nur für das Senden jedes (Adressen-/Zähl-)Paares zu dem DMA-Kontroller 131 involviert.
Gemäß einem
Ausführungsbeispiel
besitzt der DMA-Kontroller 131 eine Streu-Sammel-Funktionalität, das bedeutet,
dass er auf eine Liste in dem Speichermodul zugreifen kann, welche
mehrere, möglicherweise
viele (Adressen-/Zähl-)Paare
enthält.
Der DMA-Kontroller 131 führt dann
die Kopierbetriebe für
jedes dieser Paare automatisch aus. In diesem Fall ist der Prozessor 112 sogar
noch weniger am Beginn zum Bilden einer Liste von Paaren und zum
Befördern
der Startadresse der Liste an den DMA-Kontroller 131 und
an der Beendigung des letzten Paares der Liste involviert.
-
Gemäß einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung werden die (Adressen-/Zähl-)Paare,
welche die Stelle und die Menge der Daten darstellen, die von entweder
E oder D kopiert werden müssen,
wie es der Fall sein kann, in einem Speichermodul eingestellt und
in dasselbe geladen, wobei die Startadresse des ersten Paares in
den DMA-Kontroller 131 mit
einer Streu-Sammel-Fähigkeit
geladen wird, und der DMA-Transfer eingeleitet wird. Da der Kopierprozeß unter
Verwendung einer Hardware für
einen speziellen Zweck auftritt, kann der Zusammenführungsprozeß deutliche
beschleunigt werden.
-
Vorrichtung für das Zusammenführen:
-
Eine schematische Darstellung einer
Vorrichtung zum Zusammenführung
von Seitenelementen in komprimierte zusammengeführte Daten gemäß einem
Aspekt der vorliegenden Erfindung ist in 14 dargestellt. Die Vorrichtung umfaßt ein erstes
Speichergerät 1401,
in welchem Bilder, vorzugsweise Rasterbilder von einzelnen Seitenelementen
oder Gruppen von Seitenelementen, in einem komprimierten Format
gespeichert werden. In einem zweiten Speichergerät 1402 wird ein Seiten-Zusammenstellungsskript
gespeichert. Dieses Seiten-Zusammenstellungsskript spezifiziert
die Identifizierer und die Positionen der Seitenelemente oder Gruppen
der Seitenelemente, welche auf den komprimierten zusammengeführten Daten
enthalten sein sollen, die gebildet werden sollen. Die komprimierten
zusammengeführten
Daten können
eine komplette Seite oder einen Teil einer Seite darstellen. Ruf
der Basis davon, was durch das Seiten-Zusammenstellungsskript (welches auch
das Seitenzusammenführungsskript
und das Seitenlayoutskript genannt wird) spezifiziert ist, erhält das Zusammenführungsmittel 1403 komprimierte
Daten von den einzelnen Seitenelementen oder der Gruppen von Seitenelementen,
welche in dem ersten Speichergerät 1401 gespeichert
sind, und führt
diese gemäß dem Seiten-Zusammenstellungsskript
in komprimierte zusammengeführte
Daten zusammen. Keine Dekomprimierung ist ausgeführt worden, um die komprimierten
zusammengeführten
Daten zu erhalten.
-
Die Speichergeräte 1401 und 1402 können Teil
des File-Speichersystems 125 des
Assembler-Computersystems 110 aus 1 sein. Gemäß einem bevorzugten Ausführungsbeispiel
ist das Speichergerät 1401 ein
RAID-Untersystem in dem File-System 125,
und das Speichergerät 1402 ist
ein Laufwerk. Gemäß einem alternativen
Ausführungsbeispiel
kann das Speichergerät 1401 ein
großes
Puffer-Speichergerät
mit einer hohen Geschwindigkeit sein, welches eine große Menge
an RAM zum Speichern der Rasterbilder der einzelnen Seitenelemente
oder Gruppen von Seitenelementen in einem komprimierten Format umfaßt, so dass
diese Daten zur Verarbeitung rasch zur Verfügung stehen.
-
Das Zusammenführungsmittel 1403 kann
als auf den Prozessor 112 laufende Software implementiert werden,
oder als Teil eines Hardwareschaltkreises, welcher einen separaten Prozessor
zum Ausführen
dieser Funktion aufweisen kann. Falls das Zusammenführungsmittel 1403 einen
Prozessor und ein Speichermodul umfaßt, weist das Speichermodul
einen Satz an auf dem Prozessor laufenden Computerbefehlen auf.
Dieser Satz an Computerbefehlen gewährleistet, dass der Prozessor
das Seiten-Zusammenstellungsskript liest und die Seitenelemente
abruft, wie sie in dem Seiten-Zusammenstellungsskript spezifiziert
sind. Das Zusammenführungsmittel 1403 kann
auch einen DMA-Kontroller mit oder ohne einer Streu-Sammel-Fähigkeit zur Beschleunigung
der Zusammenführung
aufweisen, wie oben beschrieben wurde.
-
Dekomprimierungsmittel 1404 können auch
hinzugefügt
werden und als auf den Prozessor 112 laufende Software
implementiert werden, oder als ein Teil eines Hardwareschaltkreises,
welcher einen separaten Prozessor zum Dekomprimieren der komprimierten
zusammengeführten
Daten aufweist, um diese ausgedruckt zu bekommen. Falls das Dekomprimierungsmittel 1404 einen
Prozessor und ein Speichermodul aufweist, beinhaltet das Speichermodul
einen Satz an Computerbefehlen, welche auf dem Prozessor laufen.
Dieser Satz an Computerbefehlen gewährleistet, dass der Prozessor
die komprimierten zusammengeführten
Daten dekomprimiert.
-
In Fällen, in denen unterschiedliche
Komprimierungsschemata für
Linienarbeits- und Bilddaten verwendet werden, wird gemäß einem
Ausführungsbeispiel
das Zusammenführungsmittel
dupliziert, und gemäß einem
weiteren Ausführungsbeispiel
besitzt das Zusammenführungsmittel
zwei Betriebsmodi, abhängig
von dem auftretenden Format.
-
Die bevorzugten Ausführungsbeispiele
des Verfahrens und der Vorrichtung der vorliegenden Erfindung wurden
unter der beispielhaften Annahme einer JPEG-Komprimierung für CT-Daten
und RLE für
Linienarbeiten beschrieben. Das beschriebene Verfahren und die beschriebene
Vorrichtung sind nicht auf diese besonderen Komprimierungsformate
beschränkt.
Sie können
mit irgendeinem Komprimierungsformat verwendet werden, solange das
Format ein Einsetzen von Bitströmen
ermöglicht,
welche komprimierte Bilddarstellungen in einem ähnlich formatierten Bitstrom
darstellen. Wo diese Bitströme
eingesetzt werden sollen, kann dann durch eine Markierung (wenn
es das Komprimierungsformat erlaubt) oder einen Pointer (welcher
getrennt von dem Format gehalten wird) spezifiziert werden.