-
Technisches
Gebiet der Erfindung
-
Diese
Erfindung bezieht sich auf die Verarbeitung von Daten und insbesondere
auf eine konfigurierbare Datenverarbeitungspipeline zur Verwendung
in einem Drucker.
-
Hintergrund
der Erfindung
-
Die
Druckdatenpipeline eines Druckers führt eine Anzahl von Operationen
bezüglich
Druckdaten, die in die Pipeline gelangen, in Vorbereitung für ein Drucken
durch. Diese Operationen umfassen: Druckdatenkomprimierung, Druckdatendekomprimierung, Farbraumumwandlung
und Halbtongebung. Der Typ von durchgeführter Operation und die spezifische Reihenfolge,
in der die Operationen durchgeführt werden,
können
abhängig
von dem Typ von Druckdaten, die in die Pipeline gelangen, den Fähigkeiten
der Druckmaschine und dem in dem Drucker verfügbaren Speicher variieren.
Die Typen von Druckdaten, die in die Pipeline gelangen können, umfassen:
Text, Strichvorlagen, Bilder und Graphiken. Bei Pipelineimplementierungen
des Stands der Technik werden die verschiedenen Verarbeitungsoperationen
durch einen Prozessor unter der Steuerung einer Firmware durchgeführt. Abhängig von
dem Typ von Druckdaten, die in die Pipeline gelangen, und den Operationen,
die zur Verarbeitung der Druckdaten nötig sind, wird eine Anzahl
möglicher
Firmwareroutinen ausgeführt,
um die Druckdatenverarbeitungsoperationen abzuschließen.
-
Da
bei Druckern die Dichte einer Punktplatzierung (Punkte pro Zoll)
zunimmt, eine Grauskalafähigkeit
(unter Verwendung eines Satzes von Bits pro Pixel zur Definition
eines Grauskalapegels) hinzukommt und dieselben eine Farbdruckfähigkeit
(erfordert zusätzliche
Bits pro Pixel gegenüber
einfarbigem Drucken) umfassen, wird die Zeit, die die Datenpipeline
des Druckers benötigt,
um die Druckdaten zu verarbeiten, wesentlich. Beim Farbdrucken z.
B. kann der Speicher, der zur Speicherung der zum Drucken einer
Seite verwendeten Daten benötigt
wird, 32 mal den Speicher erreichen, der für einen einfarbigen Drucker
mit der gleichen Auflösung
benötigt
wird. Um die Druckgeschwindigkeitsfähigkeiten der Druckmaschine
vollständig
auszunutzen, muss die Datenpipeline die Fähigkeit besitzen, Druckdaten
ausreichend schnell zu verarbeiten, um einen kontinuierlichen Strom
von Druckdaten an die Druckmaschine zu liefern, wodurch die Druckmaschine
während
des gesamten Druckauftrags kontinuierlich drucken kann.
-
Wie
zuvor erwähnt
wurde, wurden Datenpipelines des Stands der Technik unter Verwendung von
Universal-Mikroprozessoren implementiert. Obwohl Mikroprozessoren
die Vielseitigkeit aufweisen, programmiert zu werden, um die Operationen
der Datenpipeline durchzuführen,
bringen dieselben einen wesentlichen Mehraufwand bei der Durchführung dieser
Operationen mit sich, wodurch die Rate, mit der Druckdaten verarbeitet
werden können,
reduziert wird. Die ansteigenden Mengen an Druckdaten, die durch
den Prozessor gehandhabt werden, der die Operationen der Datenpipeline
durchführt,
machen es erforderlich, dass die Verwendung von Prozessoren mit
immer höherer
Leistung mit den Druckgeschwindigkeiten der Druckmaschinen zusammenpasst.
Um eine Verarbeitungsleistung zu verbessern, haben Datenpipelines
des Stands der Technik anwendungsspezifische integrierte Schaltungen
(ASICs) verwendet, um spezifische Operationen, wie z. B. eine Druckdaten-Komprimierung/Dekomprimierung und
Farbraumumwandlung, durchzuführen.
Die Zeit, die zur Bewegung von Daten zwischen dem Mikroprozessor,
der ASIC und dem Speicher benötigt
wird, trägt
noch immer zu einem wesentlichen Mehraufwand für die Datenpipeline-Verarbeitungsoperationen
bei. Es besteht Bedarf nach einer Datenpipeline, die eine verbesserte
Geschwindigkeit aufweist, mit der Daten verarbeitet werden können, während die Vielseitigkeit
einer mit einem Mikroprozessor implementierten Datenpipeline erhalten
bleibt.
-
Zusammenfassung
der Erfindung
-
Eine
konfigurierbare Datenverarbeitungspipeline zum Verarbeiten von Daten,
wie z. B. Druckdaten, bietet eine Konfigurationsflexibilität, wodurch es
ermöglicht
wird, dass die Datenverarbeitungsoperationen für die Daten optimiert werden,
während eine
verbesserte Datenverarbeitungsgeschwindigkeit erzielt wird. Bei
dem bevorzugten Ausführungsbeispiel
ist die konfigurierbare Datenverarbeitungspipeline in einer einzelnen
ASIC implementiert.
-
Die
konfigurierbare Datenverarbeitungspipeline umfasst eine Direktspeicherzugriffssteuerung, die
einen ersten Eingang und einen ersten Ausgang aufweist. Der erste
Eingang wird zum Empfangen der Daten verwendet und der erste Ausgang
wird zum Senden der Daten und zum Senden eines Ergebnisses einer
Durchführung
zumindest einer einer Mehrzahl von Transformationen hinsichtlich
Daten verwendet.
-
Die
konfigurierbare Datenverarbeitungspipeline umfasst außerdem eine
erste Pipelineverarbeitungseinheit, die einen zweiten Eingang aufweist,
der mit dem ersten Ausgang gekoppelt ist. Die erste Pipelineverarbeitungseinheit
umfasst die Fähigkeit zur
Durchführung
zumindest einer ersten der Mehrzahl von Transformationen hinsichtlich
der Daten und umfasst die Fähigkeit,
zumindest die erste der Mehrzahl von Transformationen hinsichtlich
des Ergebnisses einer Durchführung
zumindest einer der Mehrzahl von Transformationen hinsichtlich der
Daten durchzuführen.
Die erste Pipelineverarbeitungseinheit umfasst einen zweiten Ausgang,
der mit der Direktspeicherzugriffssteuerung gekoppelt ist, zum Senden
des Ergebnisses der Durchführung
zumindest der ersten der Mehrzahl von Transformationen hinsichtlich
der Daten an die Direktspeicherzugriffssteuerung. Zusätzlich umfasst
die erste Pipelineverarbeitungseinheit einen dritten Ausgang zum
Senden von Daten oder des Ergebnisses der Durchführung zumindest der ersten
der Mehrzahl von Transformationen hinsichtlich der Daten. Die erste
Pipelineverarbeitungseinheit kann z. B. einen Kompressor/Dekompressor
zum Durchführen
einer Komprimierung hinsichtlich der Daten oder zum Durchführen einer Dekomprimierung
in Bezug auf zuvor komprimierte Daten umfassen. Oder für den Fall,
bei dem die erste Pipelineverarbeitungseinheit einen Kompressor/Dekompressor
umfasst, kann eine Komprimierung hinsichtlich zuvor farbraumumgewandelter
Daten durchgeführt
werden.
-
Die
konfigurierbare Datenverarbeitungspipeline umfasst ferner eine zweite
Pipelineverarbeitungseinheit, die einen dritten Eingang aufweist,
der mit dem dritten Ausgang gekoppelt ist. Die zweite Pipelineverarbeitungseinheit
umfasst die Fähigkeit einer
Durchführung
zumindest einer zweiten der Mehrzahl von Transformationen hinsichtlich
der Daten und umfasst die Fähigkeit
einer Durchführung
zumindest der zweiten der Mehrzahl von Transformationen hinsichtlich
des Ergebnisses einer Durchführung
zumindest einer der Mehrzahl von Transformationen hinsichtlich der
Daten. Die zweite Pipelineverarbeitungseinheit umfasst einen vierten
Ausgang, der mit der Direktspeicherzugriffssteuerung gekoppelt ist,
zum Senden des Ergebnisses einer Durchführung zumindest der zweiten
der Mehrzahl von Transformationen hinsichtlich der Daten an die
Direktspeicherzugriffssteuerung. Zusätzlich umfasst die zweite Pipelineverarbeitungseinheit
einen fünften Ausgang
zum Senden von Daten oder des Ergebnisses einer Durchführung zumindest
der zweiten der Mehrzahl von Transformationen hinsichtlich der Daten.
Die zweite Pipelineverarbeitungseinheit könnte z. B. einen Farbraumumwandler
zum Durchführen
einer Farbraumumwandlung hinsichtlich der Daten oder zum Durchführen einer
Farbraumumwandlung hinsichtlich zuvor dekomprimierter Daten umfassen.
-
Die
Fähigkeit
jeder der Pipelineverarbeitungseinheiten zur Durchführung von
Transformationen und die Rückkopplungspfade,
die in der konfigurierbaren Datenverarbeitungspipeline vorliegen,
erlauben eine große
Flexibilität
bei der Art und Weise, auf die Transformationen durchgeführt werden.
Die konfigurierbare Datenverarbeitungspipeline könnte z. B. so konfiguriert
sein, dass Daten untransformiert durch die erste Pipelineverarbeitungseinheit
umgeleitet und an die zweite Pipelineverarbeitungseinheit gesendet
werden. Dann könnte
die zweite der Mehrzahl von Transformationen hinsichtlich der Daten durch
die zweite Pipelineverarbeitungseinheit durchgeführt werden, um ein Ergebnis
zu erzeugen. Das Ergebnis wird dann an die Direktspeicherzugriffssteuerung
gesendet, die wiederum das Ergebnis an die erste Pipelineverarbeitungseinheit
senden könnte.
Schließlich
könnte
die erste Pipelineverarbeitungseinheit die erste der Mehrzahl von
Transformationen hinsichtlich des Ergebnisses durchführen. Alternativ
könnten
Daten, die von der Direktspeicherzugriffssteuerung an die erste
Pipelineverarbeitungseinheit gesendet werden, durch die erste Pipelineverarbeitungseinheit
transformiert werden, um ein Ergebnis zu erzeugen. Das Ergebnis
wird dann an die zweite Pipelineverarbeitungseinheit zur Durchführung der
zweiten der Mehrzahl von Transformationen hinsichtlich des Ergebnisses
gesendet. Ferner könnte
eine beliebige der Transformationen, die durch die erste und die
zweite Pipelineverarbeitungseinheit durchgeführt werden, ausschließlich hinsichtlich
der Daten durchgeführt
werden, wobei das Ergebnis an die Direktspeicherzugriffssteuerung
zurückgegeben wird.
-
Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm einer konfigurierbaren Datenverarbeitungspipeline
auf hoher Ebene.
-
2A ist
ein vereinfachtes konzeptionelles Blockdiagramm des Flusses von
Druckdaten durch das bevor zugte Ausführungsbeispiel einer Druckdatenverarbeitungspipeline
in einem Farbdrucker.
-
2B ist
ein vereinfachtes Hardwareblockdiagramm des bevorzugten Ausführungsbeispiels der
Druckdatenverarbeitungspipeline.
-
3 ist
eine konzeptionelle Darstellung der Zusammenführungsoperation.
-
4 ist
ein vereinfachtes Blockdiagramm der Zusammenführungseinheit auf hoher Ebene.
-
5 ist
ein vereinfachtes schematisches Diagramm der Eingangsseite des verlustbehafteten Eingangspuffers.
-
6 ist
ein vereinfachtes schematisches Diagramm der Ausgangsseite des verlustbehafteten Eingangspuffers.
-
7 ist
ein vereinfachtes schematisches Diagramm der Eingangsseite des verlustbehafteten und
des verlustfreien Ausgangspuffers.
-
8 ist
ein vereinfachtes schematisches Diagramm der Ausgangsseite des verlustbehafteten und
des verlustfreien Ausgangspuffers.
-
9 ist
ein vereinfachtes schematisches Diagramm der Schieberegister, die
für den
Halbton- und Zusammenführungsdatenstrom
verwendet werden.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsbeispiele
-
Die
vorliegende Erfindung ist nicht auf die spezifischen exemplarischen
hierin dargestellten Ausführungsbeispiele
eingeschränkt.
Zusätzlich
ist es für
Fachleute auf diesem Gebiet nach einem Verstehen dieser Offenbarung
erkennbar, daß,
obwohl das Ausführungsbeispiel
der konfigurierbaren Druckdatenverarbeitungspipeline in dem Zusammenhang eines
Farblaserdruckers erläutert
wird, die Druckdatenverarbeitungspipelinearchitektur, die offenbart
ist, auf andere Bilderzeugungssysteme anwendbar ist, für die eine
verbesserte Verarbeitungsgeschwindigkeit und Flexibilität erzielt
wird, indem über
die Fähigkeit
verfügt
wird, die Hardwareblöcke zu
konfigurieren. Während
das Ausführungsbeispiel der
Datenverarbeitungspipeline in dem Kontext verlustbehafteter und
verlustfreier Datenpfade erläutert wird,
werden Fachleute auf diesem Gebiet durch ein Verstehen dieser Offenbarung
erkennen, dass die konfigurierbare Datenverarbeitungspipeline in
einer Datenverarbeitungspipeline angewendet werden könnte, die
die Daten nicht basierend auf ihren verlustbehafteten und verlustfreien
Charakteristika partitioniert. Ferner könnte jedes System, das eine
Datenverarbeitungspipeline unter Verwendung eines Mikroprozessors
oder von ASICs zusätzlich
zu einem Mikroprozessor zur Durchführung von Verarbeitungsoperationen
hinsichtlich Daten implementiert, eine verbesserte Leistung erzielen,
indem die offenbarte Pipelinearchitektur angewendet wird.
-
Beim
Farbdrucken besteht ein Bedarf nach einer Druckdatenverarbeitungspipeline,
die die Verarbeitungsgeschwindigkeit gegenüber Datenverarbeitungspipelines
auf Mikroprozessorbasis verbessert, während Flexibilität in Bezug
auf die Ordnung und den Typ durchgeführter Verarbeitungsoperationen
beibehalten wird. Die Verwendung einer konfigurierbaren Datenverarbeitungspipelinearchitektur
erlaubt eine schnelle Verarbeitung von Druckdaten, während es
ermöglicht
wird, dass die angewendeten Operationen für die zu verarbeitenden Druckdaten optimiert
werden. Zusätzlich
schafft eine korrekte Reihenfolge der Operationen in der konfigurierbaren Datenverarbeitungspipeline
Verbesserungen bei Druckqualität
und reduziert die Speicherspeicherungsanforderungen.
-
In 1 gezeigt
ist ein Blockdiagramm einer verallgemeinerten Implementierung einer
konfigurierbaren Datenverarbeitungspipeline 200. Eine Direktspeicherzugriffssteuerung 201 ist
konfiguriert, um Daten durch einen ersten Eingang 202 über einen
bidirektionalen Bus 203 zu empfangen. Die Direktspeicherzugriffssteuerung 201 umfasst
einen ersten Ausgang 204 zum Senden von Daten.
-
Eine
erste Pipelineverarbeitungseinheit 205 umfasst einen zweiten
Eingang 206, der mit dem ersten Ausgang 204 gekoppelt
ist. Eine Vielzahl von Transformationen könnte in der ersten Pipelineverarbeitungseinheit 205 durchgeführt werden.
Diese Transformationen umfassen derartige Operationen, wie z. B.
Komprimierung, Dekomprimierung, Farbraumumwandlung oder Halbtongebung.
Eine gestrichelte Linie 207 stellt die Fähigkeit
der ersten Pipelineverarbeitungseinheit 205, selektiv die
Transformation zu umgehen, dar. Die erste Pipelineverarbeitungseinheit 205 umfasst
einen zweiten Ausgang 208, der mit der Direktspeicherzugriffssteuerung 201 gekoppelt
ist. Die erste Pipelineverarbeitungseinheit 205 umfasst
die Fähigkeit,
selektiv das Ergebnis der durchgeführten Transformation durch
den zweiten Ausgang 208 oder durch einen dritten Ausgang 209 zu
senden.
-
Eine
zweite Pipelineverarbeitungseinheit 210 umfasst einen dritten
Eingang 211, der mit dem dritten Ausgang 209 gekoppelt
ist. Wie dies bei der ersten Pipelineverarbeitungseinheit 205 der
Fall war, kann die zweite Pipelineverarbeitungseinheit 210 eine
Vielzahl von Transformationen, wie z. B. Komprimierung, Dekomprimierung,
Farbraumumwandlung oder Halbtongebung, durchführen. Eine gestrichelte Linie 212 stellt
die Fähigkeit
der zweiten Pipelineverarbeitungseinheit 210, selektiv
die Transformation zu umgehen, dar. Die zweite Pipelineverarbeitungseinheit
umfasst einen vierten Ausgang 213, der mit der Direktspeicherzugriffssteuerung 201 gekoppelt
ist. Die zweite Pipelineverarbeitungseinheit 210 umfasst außerdem die
Fähigkeit,
selektiv das Ergebnis der durchgeführten Transformation durch
den vierten Ausgang 213 oder durch einen fünften Ausgang 214 zu
senden.
-
Da
jede der Pipelineverarbeitungseinheiten 205, 210 einen
Rückkopplungspfad
zu der Direktspeicherzugriffssteuerung 201 umfasst und
die Fähigkeit
umfasst, selektiv die in der jeweiligen Pipelineverarbeitungseinheit
durchgeführte
Transformation zu umgehen, ist ein großes Maß an Flexibilität bei den
bestimmten durchgeführten
Transformationen und der Reihenfolge, in der dieselben durchgeführt werden,
möglich.
Daten könnten
z. B. der Transformation der zweiten Pipelineverarbeitungseinheit 210 unterzogen
werden, gefolgt durch die Transformation der ersten Pipelineverarbeitungseinheit 205,
oder diese Transformationen könnten
in der umgekehrten Reihenfolge durchgeführt werden. Zusätzlich könnte eine
beliebige der Transformationen ausschließlich von der anderen durchgeführt werden.
Register (in 1 nicht gezeigt), die der konfigurierbaren
Datenverarbeitungspipeline 200 zugeordnet sind, sind mit Daten
beladen, die verwendet werden, um die erste 205 und die
zweite 210 Pipelineverarbeitungseinheit auf die erwünschte Art
und Weise zu konfigurieren. Für
den Fall, bei dem die konfigurierbare Datenverarbeitungspipeline 200 bei
einem Drucker verwendet wird, der Druckdaten in Datenstreifen handhabt, kann
die auf jeden Seitenstreifen von Druckdaten angewendete Verarbeitung
basierend auf den Charakteristika der Druckdaten in dem Seitenstreifen
optimiert werden. Wie Fachleute auf diesem Gebiet durch ein Verstehen
dieser Beschreibung erkennen werden, kann die Anzahl von Pipelineverarbeitungseinheiten über zwei
hinaus erweitert werden, eine breite Vielzahl von Typen von Transformationen könnte in
den Pipelineverarbeitungseinheiten eingesetzt werden und Daten könnten mehrere
Durchläufe durch
die konfigurierbare Datenverarbeitungspipeline 200 machen.
-
In 2A gezeigt
ist ein vereinfachtes konzeptionelles Blockdiagramm des Flusses
von Druckdaten durch einen Farbdrucker, der das bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 für einen
Farblaserdrucker umfasst. Es wird hervorgehoben, daß 2A nur
den Fluss von Druckdaten, unter Verwendung paralleler verlustbehafteter
und verlustfreier Pfade, durch typische Operationen darstellen soll,
die durch die Druckdatenverarbeitungspipeline 15 durchgeführt werden. 2A ist
kein Hardwareblockdiagramm der Druckdatenverarbeitungspipeline 15.
Wie aus der späteren
Beschreibung des Hardwareblockdiagramms ersichtlich wird, kann die
Druckdatenverarbeitungspipeline 15 in einer Vielzahl unterschiedlicher
Weisen konfiguriert sein, um eine Verarbeitung der Druckdaten zu
optimieren.
-
Die
in das System eingegebenen Druckdaten könnten in mehreren unterschiedlichen
Formaten erscheinen. Die Eingangsdruckdaten könnten in der Form einer Anzeigeliste,
von Rasterdruckdaten oder Rasterdruckdaten, die bereits einer Komprimierung unterzogen
wurden, sein. Die Anzeigelistendruckdaten bestehen aus den Informationen,
die zum Aufbauen der zu druckenden Seiten notwendig sind. Die Anzeigelistendruckdaten
können
Rasterdruckdaten gemeinsam mit Codes umfassen, die die Rasterdruckdaten
als Text- oder Bilddruckdaten identifizieren, sowie Druckersteuerungssprachencodes,
die Textzeichen darstellen, Graphiksprachcodes, die ein Graphikbild
darstellen, oder einer bestimmten Kombination jedes dieser Typen
von Druckdaten. Konzeptionell betrachtet betreten die Druckdaten
die Druckdatenverarbeitungspipeline 15 an dem geeigneten
Ort abhängig
von der zur Umwandlung der Druckdaten in die Form, die zum Erzeugen
des gedruckten Ausgangs nötig
ist, erforderlichen Verarbeitung.
-
Eine
Bildverarbeitung wird bezüglich
Anzeigelistendruckdaten in einer Bildverarbeitungsoperation 1 durch
eine Ausführung
von Firmwareroutinen durchgeführt.
In dieser Bildverarbeitungsoperation 1 enthalten ist die
Partitionierung der Eingabe in Seitenstreifen. Die Anzeigelistendruckdaten werden
basierend auf der vertikalen Position auf der Seite, der dieselben
entsprechen, zur Partitionierung in Seitenstreifen sortiert. Die
Partitionierung der Seite in Seitenstreifen bei der Bildverarbeitungsoperation 1 beinhaltet
eine Betrachtung des Typs von Druckdaten, die den Abschnitt der
Seite bilden, der dem Seitenstreifen entspricht, der gebildet werden
wird. Jeder Seitenstreifen ist aus entweder einem oder zwei Seitenstreifenelementen
gebildet. Wenn der Abschnitt der Seite aus entweder vollständig verlustbehafteten oder
vollständig
verlustfreien Druckdaten gebildet ist, wird nur ein einzelnes Element
des Seitenstreifens in der Bildverarbeitungsoperation 1 für diesen
Abschnitt der Seite gebildet. Wenn jedoch die Anzeigelistendruckdaten
für diesen
Abschnitt sowohl verlustbehaftete als auch verlustfreie Druckdaten
umfassen, werden zwei separate Seitenstreifenelemente für diesen Abschnitt
der Seite gebildet. Eines dieser Seitenstreifenelemente umfasst
nur verlustbehaftete Druckdaten und das andere dieser Seitenstreifenelemente umfasst
nur verlustfreie Druckdaten.
-
Eine
Bildung eines verlustbehafteten und eines verlustfreien Seitenstreifenelements
für den
entsprechenden Abschnitt der Seite tritt auf, wenn beide Typen von
Daten in den Anzeigelistendruckdaten vorhanden sind. In diesem Fall
bildet die Bildverarbeitungsoperation 1 jedes der beiden
Seitenstreifenelemente durch ein Füllen von sowohl dem verlustbehafteten
als auch dem verlustfreien Seitenstreifenelement, Pixelort für Pixelort,
mit, wie dies geeignet ist, den verlustbehafteten oder verlustfreien
Druckdaten aus dem Seitenabschnitt. In dem verlustbehafteten und
verlustfreien Seitenstreifenelement enthalten sind die Druckdaten
für diesen
Abschnitt der Seite. Wenn z. B. die Anzeigelistendruckdaten verlustfreie Textdruckdaten
gemeinsam mit verlustbehafteten Bilddruckdaten umfassen, trennt
die Bildverarbeitungsoperation 1 die Anzeigelistendruckdaten
in die Textdruckdaten und die Bilddruckdaten. Dann wird jedes der
verlustfreien und verlustbehafteten Seitenstreifenelemente Pixelort
für Pixelort
mit den jeweiligen Text druckdaten und Bilddruckdaten gefüllt. In diesem
Fall kann der Seitenstreifen, der den Anzeigelistendruckdaten entspricht,
als ein zusammengesetzter Seitenstreifen betrachtet werden, der
die Seitenstreifenelemente umfasst, die verlustbehaftete Bilddruckdaten
enthalten, die über
ein Seitenstreifenelement gelegt sind, das die verlustfreien Textdruckdaten
enthält.
-
Für den Fall,
in dem ein verlustbehaftetes und ein verlustfreies Seitenstreifenelement
gebildet werden, erzeugt die Bildverarbeitungsoperation 1 eine
entsprechende Zusammenführungsebene.
Diese Zusammenführungsebene
besteht aus einem einzelnen Bit für jedes Paar entsprechender
Pixelorte in den beiden Seitenstreifenelementen zum Anzeigen, in
welchem des verlustbehafteten und des verlustfreien Seitenstreifenelements
die Druckdaten für
dieses Pixel enthalten sind. Die Bits, die die Zusammenführungsebene
bilden, sind in Bytes gebildet und werden durch die Druckdatenverarbeitungspipeline 15 als
ein Strom von Bytes übertragen.
Diese Zusammenführungsebene
wird zu einer späteren
Stufe in der Druckdatenverarbeitungspipeline 15 verwendet,
um die verlustbehafteten und die verlustfreien Seitenstreifenelemente
zu kombinieren, so daß der
ursprüngliche
Seitenstreifen rekonstruiert wird. Diese Zusammenführungsoperation
wird zu einem späteren
Zeitpunkt in dieser Spezifizierung detaillierter erläutert.
-
Für den Fall,
in dem ein Seitenstreifenelement gebildet wird, das nur verlustbehaftete
oder nur verlustfreie Daten aufweist, sind alle Druckdaten für diesen
Seitenstreifen innerhalb dieses einzelnen Seitenstreifenelements
enthalten. Zusätzlich
wird die Zusammenführungsebene,
die diesem Seitenstreifenelement zugeordnet ist, nicht durch die
Bildverarbeitungsoperation 1 erzeugt. Da es nur ein einzelnes Seitenstreifenelement
für diesen
Abschnitt der Seite gibt, wäre
jedes Bit in der Zusammenführungsebene identisch.
Deshalb ist es nicht nötig,
eine Zusammenführungsebene,
die aus Bytes mit gleichem Wert besteht, durch die Druckdatenverarbeitungspipeline 15 zu
senden. Anstelle eines Erzeugens der Zusammenführungsebene in der Bildverarbeitungsoperation 1 wird
die Zusammenführungsebene
zu einer späteren
Stufe in der Druckdatenverarbeitungspipeline 15 erzeugt.
Dies wird zu einem späteren
Zeitpunkt in dieser Spezifizierung detaillierter erläutert.
-
Die
Bildverarbeitungsoperation 1 erzeugt außerdem eine Halbtonebene, wobei
ein Wert jedem Pixelort in dem Seitenstreifen entspricht. Wie später in dieser
Spezifizierung erläutert
wird, wird jeder Halbtonwert durch zwei Bits dargestellt und bestimmt die
Halbtongebungsoperation, die auf die Druckdaten angewendet wird,
die dem Pixel entsprechen. Wenn die Halbtongebungsoperationen, die
durchgeführt
werden sollen, für
jedes Pixel in dem Seitenstreifen gleich sind, wird die Halbtonebene
nicht in der Bildverarbeitungsoperation 1 erzeugt. Statt
dessen wird die Halbtonebene zu einer späteren Stufe in der Druckdatenverarbeitungspipeline 15 erzeugt. Dies
wird zu einem späteren
Zeitpunkt in dieser Spezifizierung detaillierter erläutert.
-
Aus
den Anzeigelistendruckdaten, die in Seitenstreifenelemente partitioniert
wurden, werden Rasterdruckdaten erzeugt, die den Anzeigelistendruckdaten
entsprechen. Die resultierenden Seitenstreifenelemente von Rasterdruckdaten
werden durch die Operationen der Druckdatenverarbeitungspipeline 15 geleitet,
wie dieselben erzeugt werden. Ein Rasterdruckdatenspeicher 2 wird
verwendet, um Rasterdruckdaten, die durch die Bildverarbeitungsoperation 1 erzeugt
wurden, zu speichern. Der Speicherraum, der dem Rasterdruckdatenspeicher 2 zugeteilt
ist, ist von ausreichender Speicherkapazität, um die Rasterdruckdaten
für zwei
Seitenstreifenelemente mit der maximal erlaubten Anzahl von Linien pro
Seitenstreifen, die Zusammenführungsebene
mit entsprechender Größe und die
Halbtonebene mit entsprechender Größe zu enthalten. Jedes der
Seitenstreifenelemente wird in der Bildverarbeitungsoperation 1 rasterisiert,
in dem Speicherraum gespeichert, der dem Rasterdruckdatenspei cher 2 zugeteilt ist,
und dann an die nächste
Operation in der Druckdatenverarbeitungspipeline 15 gesandt,
um einen Raum in dem Rasterdruckdatenspeicher 2 für die nächsten Seitenstreifenelemente
zu erzeugen, die in der Bildverarbeitungsoperation 1 rasterisiert
werden. Es wird darauf verwiesen, daß bei dem bevorzugten Ausführungsbeispiel
der Rasterdruckdatenspeicher 2 nicht in der integrierten
Schaltung enthalten ist, in der die Druckdatenverarbeitungspipeline 15 implementiert
ist.
-
Üblicherweise
bestehen die erzeugten Rasterdruckdaten aus drei Acht-Bit-Bytes
für jedes
Pixel. Jedes der drei Bytes entspricht einer der Farbdimensionen
in dem Farbraum, in dem die Anzeigelistendruckdaten ausgedruckt
sind. Für
den Farbdrucker, bei dem das bevorzugte Ausführungsbeispiel der Druckdatenverarbeitungspipeline
wirkt, ist dies ein RGB-Farbraum.
Für Fachleute
auf diesem Gebiet ist jedoch erkennbar, daß der Farbraum der Eingangsdruckdaten
jeder Farbraum sein könnte,
wie z. B. Cyan, Magenta, Gelb, Schwarz (CMGK); Farbton, Sättigung,
Wert (HSV); Farbton, Helligkeit, Sättigung (HLS); Leuchtdichte,
Rot-Gelb-Skala, Grün-Blau-Skala
(La*b*); Leuchtdichte, Rot-Grün-Skala,
Gelb-Blau-Skala (Luv); Leuchtdichte, Rot-Blau-Skala, Grün-Gelb-Skala (YCrCb)
oder YIQ. Die erzeugten Rasterdruckdaten könnten Bildern, Text, Strichvorlagen,
Graphiken oder einer Kombination derselben entsprechen.
-
Wie
zuvor erwähnt
wurde, erzeugt die Bildverarbeitungsoperation 1 die Zusammenführungsebene
für den
Fall, in dem die Anzeigelistendruckdaten derart sind, daß ein verlustbehaftetes
und ein verlustfreies Seitenstreifenelement gebildet werden. An einem
späteren
Ort in der Druckdatenverarbeitungspipeline werden die Zusammenführungsbits
verwendet, um Pixel aus dem Paar eines entsprechenden verlustbehafteten
und eines verlustfreien Seitenstreifenelements auszuwählen, um
das verlustbehaftete und das verlustfreie Seitenstreifenelement,
während die
korrekte Raumbeziehung zwischen den Pixeln beibehalten wird, in
das ursprüngliche
Bild zu kombinieren.
-
Eine
Farbraumumwandlung wird in einer Farbraumumwandlungsoperation 3 durchgeführt. Der
Grad an Komprimierung, der bezüglich
der Rasterdruckdaten erzielt wird, wird durch den Farbraum beeinflusst,
in dem die Rasterdruckdaten ausgedrückt sind. Ein höheres verlustbehaftetes
Komprimierungsverhältnis
mit einer gleichen Bildqualität kann
z. B. allgemein durch ein Durchführen
einer Farbraumumwandlung von einem RGB-Farbraum in einem YCbCr-Farbraum
und ein Durchführen
der verlustbehafteten Komprimierungsoperation nach einer Umwandlung
in den YCbCR-Farbraum erzielt werden. Der YCbCr-Farbraum ist ein
Leuchtdichte/Farbton/Farbintensität-Typ-Farbraum, in dem die
Cr und Cb-Komponente des Farbraums jeweils sowohl Farbton- als auch
Farbintensitätsinformationen
umfassen. Das menschliche Auge ist sehr empfindlich gegenüber Veränderungen
an der Leuchtdichte und relativ weniger empfindlich gegenüber Veränderungen
an der Farbintensität.
Deshalb umfassen Druckdaten, die in diesem Farbraum ausgedrückt sind, eine
wesentliche Menge einer Redundanz bei der Cr- und Cb-Komponente.
Als ein Ergebnis kann eine verlustbehaftete Komprimierung bezüglich des
verlustbehafteten Seitenstreifenelements der Rasterdruckdaten mit
einem relativ großen
Komprimierungsverhältnis
durchgeführt
werden. Dieser farbraumabhängige
Komprimierungsverhältnisvorteil
existiert für eine
verlustfreie Komprimierung nicht. Aus diesem Grund werden verlustfreie
Seitenstreifenelemente keiner Farbraumumwandlung von dem RGB-Farbraum
in dem YCbCr-Farbraum unterzogen. Trotzdem könnte, wenn diese Farbraumumwandlung
aus anderen Gründen
benötigt
wäre, dieselbe
durchgeführt
werden. Zu einer späteren
Stufe in der Druckdatenverarbeitungspipeline werden sowohl die verlustfreien
Seitenstreifenelemente als auch die verlustbehafteten Seitenstreifenelemente
einer Farbraumumwandlung von dem RGB- oder YCbCr-Farbraum in die
CMGK-Farbspezifizierung unterzogen. Diese Farbraumumwand lung wird
zu einem späteren
Zeitpunkt in der Spezifizierung detaillierter erläutert.
-
Ein
Bilden eines verlustbehafteten und eines verlustfreien Seitenstreifenelements
aus einem Abschnitt der Seite, die einem einzelnen Seitenstreifen entspricht,
und zusätzlich
ein Erzeugen einer Zusammenführungsebene
und einer Halbtonebene erhöhen die
Menge von Daten, die durch die Druckdatenverarbeitungspipeline 15 gesandt
werden. Das Zusammenführungsbit
und die beiden Halbtonbits, die jedem Pixel zugeordnet sind, erhöhen die
Menge von Druckdaten. Da hohe Komprimierungsverhältnisse jedoch für das verlustbehaftete
und das verlustfreie Seitenstreifenelement erzielt werden können, und
da die Zusammenführungsebene
und die Halbtonebene ebenso einer verlustfreien Komprimierung unterzogen
werden, ist der Speicherraum, der benötigt wird, um die Druckdaten
zu enthalten, in dem schlimmsten Fall nur leicht erhöht. Die
resultierende Verbesserung der Druckqualität gegenüber Pipelines jedoch, die keine
unterschiedlichen Datenkomprimierungsalgorithmen für verlustbehaftete
und verlustfreie Daten anwenden, ist wesentlich. Für die meisten
Druckaufträge
sind die Druckdaten entweder alle verlustbehaftet oder alle verlustfrei.
Für diese
Fälle ist
der einzige Anstieg der Menge von Rasterdruckdaten, die durch die
Druckdatenverarbeitungspipeline 15 von der Bildverarbeitungsoperation 1 gesandt
werden, die Halbtonebene, wenn es unterschiedliche Halbtonalgorithmen
gibt, die auf die Pixel des Seitenstreifens angewendet werden. Wenn
die gleichen Halbtonalgorithmen auf alle Pixel des Seitenstreifens
angewendet werden, wird in der Bildverarbeitungsoperation 1 keine
Halbtonebene erzeugt.
-
Rasterdruckdaten
können
direkt in die Druckdatenverarbeitungspipeline eingegeben werden.
Die Rasterdruckdaten können
von einem Scanner oder von dem Hostcomputer kommen. Die Vorrichtung,
die die Rasterdruckdaten liefert, liefert auch ein Anfangselement,
das durch die Bildverarbeitungsoperation 1 verwendet wird,
um die Seitenstreifen zu bil den. In diesem Anfangselement enthalten sind
Informationen, die die Bildverarbeitungsoperation 1 verwenden
kann, um die Rasterdruckdaten als verlustbehaftet oder verlustfrei
für die
Bildverarbeitungsoperation 1 zu trennen.
-
Bevor
die Seitenstreifenelemente verlustbehafteter Rasterdruckdaten einer
verlustbehafteten Komprimierung unterzogen werden, werden die Cr- und
die Cb-Komponente der farbraumumgewandelten Seitenstreifenelemente
von Rasterdruckdaten selektiv reduziert, um die Menge von Druckdaten
zu senken, die die Druckdatenverarbeitungspipeline 15 handhaben
muss, wodurch der Datendurchsatz erhöht und die Menge an Speicher
reduziert wird, die nötig
ist, um die Rasterdruckdaten zu halten. Die zuvor erwähnte Redundanz
bei der Cr- und der Cb-Komponente ermöglicht es, daß diese
Rasterdruckdatenteilabtastung erzielt wird, während die visuell verlustfreie
Charakteristik der Rasterdruckdaten beibehalten wird. Die Teilabtastungsoperation
wird in der verlustbehafteten Komprimierungsoperation 5 durchgeführt. Die
verlustbehaftete Komprimierungsoperation 5 führt eine
Komprimierung bezüglich
Blöcken
von Rasterdruckdaten, die aus Abschnitten gebildet sind, die acht
Pixel entlang einer Abtastlinie breit sind und acht aufeinanderfolgenden
Abtastlinien hoch sind, durch. Durch ein Teilabtasten wird die Gesamtzahl
dieser Acht-Pixel-mal-Acht-Pixel-Blöcke reduziert.
-
Die
Menge einer Teilabtastung, die auftritt, hängt von der Menge einer Datenreduzierung
ab, die notwendig ist, um es zu ermöglichen, daß die Rasterdruckdaten in den
verfügbaren
Speicherraum passen. Wenn ein ausreichender Speicherraum verfügbar ist,
wird eine Teilabtastung durchgeführt,
um die Menge verlustbehafteter Rasterdruckdaten in dem Seitenstreifenelement
um ein Drittel zu reduzieren. Falls die Teilabtastung zum Einpassen
der verlustbehafteten Rasterdruckdaten in einen Speicher nötig ist,
wird dieselbe durchgeführt,
um die Menge verlustbehafteter Rasterdruckdaten in dem Seitenstreifenelement
um ein Halb zu reduzieren.
-
Die
Teilabtastung zur Erzielung einer Reduzierung von einem Drittel
wird wie folgt erhalten. Es werden z. B. drei Gruppen verlustbehafteter
Rasterdruckdaten betrachtet, wobei jede Gruppe vier Acht-mal-Acht-Blöcke von
Pixeln aus einer Farbebene darstellt. Eine erste Gruppe wird aus
der Leuchtdichtekomponente gebildet, eine zweite Gruppe wird aus
der Cr-Komponente gebildet und eine dritte Gruppe wird aus der Cb-Komponente
gebildet. Es gibt insgesamt 12 Blöcke verlustbehafteter Rasterdruckdaten.
In der zweiten Gruppe werden für
jede der acht Abtastlinien in jedem der vier Blöcke nur die verlustbehafteten
Rasterdruckdaten, die abwechselnden Pixeln entlang jeder Abtastlinie
entsprechen, beginnend mit dem ersten Pixel jeder Abtastlinie in jedem
Block, behalten. Als ein Ergebnis wird für jede Abtastlinie jedes der
vier Blöcke
die Acht-Pixel-Breite auf vier Pixel reduziert. Auf diese Weise
werden die vier Blöcke
der Cr-Komponente
auf zwei Blöcke
herunter teilabgetastet. Die Teilabtastung der Cb-Komponente von
vier Blöcken
herunter auf zwei Blöcke wird
auf eine ähnliche
Weise erzielt. Nach dieser Teilabtastung der ursprünglichen
12 Blöcke
von Pixeln verbleiben acht, was eine Reduzierung von einem Drittel
ergibt.
-
Die
Teilabtastung zur Erzielung einer Reduzierung von ein Halb wird
durch ein Anwenden der gleichen Teilabtastungsprozedur, die verwendet
wird, um eine Reduzierung von einem Drittel zu erzielen, auf die
verbleibenden zwei Blöcke
der Cr-Komponente und die beiden Blöcke der Cb-Komponente durchgeführt. Ein
Anwenden der gleichen Teilabtastungsprozedur auf die verbleibenden
Blöcke
der Cr- und der Cb-Komponente
resultiert in einem einzelnen Block für die Cr-Komponente und einem einzelnen Block
für die
Cb-Komponente. Nach diesem zweiten Durchlauf einer Teilabtastung
verbleiben von den ursprünglichen
12 Blöcken
von Pixeln sechs, was eine Reduzierung von ein Halb ergibt.
-
Nachdem
die Teilabtastungsoperation durchgeführt ist, wird der verlustbehaftete
Komprimierungsalgorithmus auf das Seitenstreifenelement in der verlustbehafteten
Komprimierungsoperation 5 angewendet. Bei dem bevorzugten
Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 ist das verwendete
verlustbehaftete Komprimierungsverfahren der bekannte JPEG-Algorithmus.
Das verlustbehaftete JPEG-Komprimierungsverfahren wurde ausgewählt, da
eine zuvor entwickelte Hardware zur Implementierung dieses Verfahrens
bereits verfügbar war.
Jedes verlustbehaftete Komprimierungsverfahren, wie z. B. eine Vektorquantisierung,
hätte jedoch verwendet
werden können.
Wenn es ein verlustfreies Seitenstreifenelement gibt, wird eine
Komprimierung dieses Seitenstreifenelements in einer verlustfreien Komprimierungsoperation 4 durchgeführt. Zusätzlich werden,
wenn es eine Zusammenführungs-
und eine Halbtonebene gibt, die den Seitenstreifenelementen entsprechen,
beide derselben in der verlustfreien Komprimierungsoperation 4 komprimiert.
Das bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 verwendet den Typ
von verlustfreiem Lempel-Ziv-Komprimierungs-/Dekomprimierungsverfahren,
der in dem U.S.-Patent
Nr. 5,455,576 offenbart ist. Jedes verlustfreie Komprimierungs-/Dekomprimierungsverfahren,
wie z. B. JBIG-, Lauflängen-
oder Deltazeilenkomprimierung, kann jedoch ebenso verwendet werden.
Weitere Informationen bezüglich
der zum Erzielen einer verlustfreien und verlustbehafteten Komprimierung
verwendeten Techniken sind in dem Buch „INTRODUCTION TO DATA COMPRESSION", Khalid Sayood,
1996, Morgan Kaufmann Publishers, dessen Offenbarung hierin durch
Bezugnahme aufgenommen ist, zu finden.
-
Die
verlustbehafteten und verlustfreien komprimierten Rasterdruckdaten,
die durch die verlustbehaftete Komprimierungsoperation 5 bzw.
die verlustfreie Komprimierungsoperation 4 erzeugt werden, sind
in einem komprimierten Rasterdruckdatenspeicher 6 gespeichert.
Der Raum, der dem komprimierten Rasterdruckdatenspeicher 6 zugeteilt
ist, ist von ausreichender Größe, um alle
drei Farbebenen der komprimierten verlustbehafteten und verlustfreien Rasterdruckdaten
für eine
gesamte Seite, die komprimierten Halbtondaten für eine gesamte Seite und die
komprimierten Zusammenführungsdaten
für eine gesamte
Seite zu halten. Es wird darauf verwiesen, daß bei dem bevorzugten Ausführungsbeispiel
der Komprimiertrasterdruckdatenspeicher 6 nicht in der integrierten
Schaltung enthalten ist, in der die Druckdatenverarbeitungspipeline 15 implementiert
ist. Ferner wird hervorgehoben, daß eine Bezeichnung des Rasterdruckdatenspeichers 2 und
des Komprimiertrasterdruckdatenspeichers 6 in einem konzeptionellen
Sinn nur zu Zwecken einer Erklärung
der Operation der Druckdatenverarbeitungspipeline 15 dient. Sowohl
der Rasterdruckdatenspeicher 2 als auch der Komprimiertrasterdruckdatenspeicher 6 sind
physisch in einem Systemspeicher angeordnet und speichern Druckdaten,
ob diese nun komprimierte Rasterdruckdaten oder Rasterdruckdaten
sind, bezüglich derer
keine Komprimierungs-/Dekomprimierungsoperationen durchgeführt wurden.
Da die Speicher nur durch den Typ von in denselben zu einem Zeitpunkt gespeicherten
Daten unterschieden werden, können Orte
in dem Systemspeicher verwendet werden, um beide Typen von Druckdaten
zu unterschiedlichen Zeitpunkten zu speichern.
-
Die
Rasterdruckdaten für
jedes Pixel des verlustbehafteten oder des verlustfreien Seitenstreifenelements
werden durch drei Bytes dargestellt, nämlich ein Byte für jede Farbraumkomponente
der Rasterdruckdaten. Das verlustbehaftete und das verlustfreie
Seitenstreifenelement bewegen sich in zwei parallelen Kanälen durch
die Druckdatenverarbeitungspipeline 15. Abhängig von
dem Ort der Druckdaten in der Druckdatenverarbeitungspipeline 15 sind
der verlustbehaftete und der verlustfreie Rasterdruckdatenstrom
entweder ein Byte breit oder drei Bytes breit. Die verlustbehafteten
und die verlustfreien Rasterdruckdaten gelangen als ein drei Byte
breiter Strom in die Farbraumumwandlungsoperationen 3, 9 und
verlassen dieselben als ein ein einzelnes Byte breiter Strom, der
in einen drei Byte breiten Strom gepackt ist, wobei jedes Byte einer Drei-Byte-Gruppe
eine Abmessung des Ausgangsfarbraums darstellt. Die verlustbehafteten
und die verlustfreien Rasterdruckdaten gelangen als ein drei Byte breiter
Strom in die Farbraumumwandlungsoperation 12 und verlassen
dieselbe als ein ein einzelnes Byte breiter Strom. Jedes Byte einer
Drei-Byte-Gruppe, die in die Farbraumumwandlungsoperationen 3, 9, 12 eintritt,
stellt Rasterdruckdaten dar, die einer einzelnen Abmessung des Eingangsfarbraums
entsprechen. Das resultierende einzelne Byte, das die Farbraumumwandlungsoperation 12 verlässt, stellt Rasterdruckdaten
dar, die der einzelnen Abmessung des Ausgangsfarbraums entsprechen,
die einem Drucken unterzogen wird. Die verlustbehafteten und die
verlustfreien Druckdaten verlassen die Bildverarbeitungsoperation 1 als
ein drei Byte breiter Strom. Die verlustbehafteten und die verlustfreien
Druckdaten gelangen als ein drei Byte breiter Strom in die verlustbehafteten
Komprimierungsoperationen 5, 8 und 11 und
die verlustfreien Komprimierungsoperationen 4, 7, 10 und
verlassen dieselben als ein ein einzelnes Byte breiter Strom, der
dann zwischengespeichert wird, um ein drei Byte breiter Strom zu
werden. Die verlustbehafteten und die verlustfreien Druckdaten gelangen
als ein ein einzelnes Byte breiter Strom in die verlustbehafteten
Dekomprimierungsoperationen 5, 8, 11 und
die verlustfreien Dekomprimierungsoperationen 4, 7, 10 und
verlassen dieselben als ein einzelnes Byte breiter Strom. Die verlustbehafteten
und die verlustfreien Rasterdruckdaten gelangen als ein ein einzelnes
Byte breiter Strom in sowohl die Zusammenführungsoperation 13 als
auch die Halbtonoperation 14 und verlassen dieselben auch
so.
-
Die
Ebene von Zusammenführungsdaten
ist in Bytes ausgerichtet. Da nur ein einzelnes Bit für jedes
Pixel für
die Zusammenführungsoperation
benötigt
wird, enthält
jedes Byte von Zusammenführungsdaten
Zusammenführungsinformationen
für acht
Pixel. Die Ebene von Halbtondaten ist in Acht-Bit-Bytes ausgerichtet.
Da zwei Bits für
jedes Pixel für
die Halbtonoperation benötigt
werden, enthält
jedes Byte von Halbtondaten Halbtoninformationen für vier Pixel. Sowohl
die Halbtonebene als auch die Zusammenführungsebene bewegen sich in
zwei Byte breiten parallelen Kanälen
durch die Druckdatenverarbeitungspipeline.
-
Durch
ein Bilden verlustbehafteter und verlustfreier Seitenstreifenelemente
und ein darauffolgendes Komprimieren der Rasterdruckdaten in diesen
Seitenstreifenelementen unter Verwendung von verlustbehafteten bzw.
verlustfreien Komprimierungsverfahren wird die optimale Kombination
einer Speicherkomprimierung und Bildqualität für die Druckdaten erzielt. Die
verlustbehafteten Rasterdruckdaten können unter Verwendung verlustbehafteter
Komprimierungstechniken stark komprimiert werden, während ihre
visuell verlustfreien Charakteristika beibehalten werden. Die verlustfreien
Rasterdruckdaten werden unter Verwendung verlustfreier Komprimierungstechniken
so komprimiert, daß keine Verschlechterung
der Bildqualität
auftritt, während hohe
Komprimierungsverhältnisse
erzielt werden. Die verlustbehafteten und die verlustfreien Komprimierungsverfahren,
die ausgewählt
sind, sind für
die verlustbehafteten Rasterdruckdaten (Bilder) und verlustfreien
Rasterdruckdaten (Text, Strichdarstellung und Graphiken) optimiert,
um hohe Komprimierungsverhältnisse
zu ergeben, ohne eine Bildqualität
zu verschlechtern. Dieses Merkmal ist ein wesentlicher Vorteil,
der aus einem Verwenden eines verlustbehafteten und eines verlustfreien
Seitenstreifenelements in der Druckdatenverarbeitungspipeline 15 resultiert.
Es wird darauf verwiesen, daß,
obwohl das bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 mehrere Kanäle verwendet, um
die Seitenstreifenelemente verlustbehafteter und verlustfreier Rasterdruckdaten
sowie die entsprechenden Halbton- und Zusammenzuführungsdaten durch
die Druckdatenverarbeitungspipeline 15 zu bewegen, es möglich wäre, einen
einzelnen Multiplexkanal zu verwenden, um nacheinander Seitenstreifenelemente
von Druckdaten zu übertragen.
Ein Verwenden eines einzelnen Multiplexkanals würde eine Leistung für eine Reduzierung
der Menge erforderlicher Hardware opfern.
-
Es
ist möglich,
komprimierte Rasterdruckdaten in die Druckdatenverarbeitungspipeline 15 einzugeben.
Dies kann geschehen, wenn komprimierte Rasterdruckdaten in die Druckdatenverarbeitungspipeline 15 eingegeben
werden, die einem Befehl in der Anzeigeliste zugeordnet ist, oder
da Rasterdruckdaten oder komprimierte Rasterdruckdaten in die Druckdatenverarbeitungspipeline 15 eingegeben werden
können,
die bereit zur Dekomprimierung und zum Drucken einer gesamten Seite
ist. Diese komprimierten Rasterdruckdaten können durch den Hostcomputer
oder durch einen Scanner durch einen Hostcomputer bereitgestellt
werden. Enthalten in diesen komprimierten Rasterdruckdaten ist ein
Anfangselement, das durch den Hostcomputer angefügt wird, das Informationen
enthält,
die durch die Bildverarbeitungsoperation 1 verwendet werden.
-
Es
wird der Fall betrachtet, in dem es erwünscht ist, ein verlustbehaftetes
Bild, das zuvor als Anzeigelistendruckdaten in die Druckdatenverarbeitungspipeline 15 eingegeben
wurde, mit einem verlustbehafteten Bild zu überlagern, das in die Druckdatenverarbeitungspipeline 15 als
komprimierte verlustbehaftete Rasterdruckdaten eingegeben wird. Für diesen
Fall wird ein Pfad in der Druckdatenverarbeitungspipeline 15 zum
Senden der komprimierten, verlustbehafteten Rasterdruckdaten von
dem Komprimiertrasterdruckdatenspeicher 6 in einer verlustbehafteten
Dekomprimierungsoperation 8, Durchführen einer Farbraumumwandlung
in einer Farbraumumwandlungsoperation 2 (für den Fall,
in dem die komprimierten, verlustbehafteten Rasterdruckdaten in
keinem RGB-Farbraum
ausgedrückt sind)
zurück
zu einem RGB-Farbraum, Speichern des Ergebnisses in dem Rasterdruckdatenspeicher 2 und
Liefern der dekomprimierten, verlustbehafteten Rasterdruckdaten
an die Bildverarbeitungsoperation 1 zum Durchführen der Überlagerung
mit dem zuvor eingegebenen verlustbehafteten Bild bereitgestellt. Die
Bildverarbeitungsoperation 1 führt dann die Partitionierung
in verlustbehaftete Seitenstreifenelemente durch. Es soll wieder
hervorgehoben werden, daß dieser
Pfad zum Kombinieren der komprimierten, verlustbehafteten Rasterdruckdaten
mit den verlustfreien Druckdaten in 1 in einem
konzeptionellen Sinn gezeigt ist. Die tatsächlichen Routen, denen Druckdaten
zu den Hardwarefunktionsblöcken
folgen, um die in 1 gezeigten Operationen zu erzielen,
werden zu einem späteren
Zeitpunkt in dieser Spezifizierung beschrieben.
-
Wie
zuvor erwähnt
wurde, ist die Druckdatenverarbeitungspipeline 15 in der
Lage, Raster- oder komprimierte Rasterdruckdaten von einer Vielzahl
von Vorrichtung zu empfangen, wie z. B. einem Hostcomputer oder
einem Scanner, die in der Lage sind, ein Drucken in dieser Form
zu liefern. Ein Empfangen von entweder Raster- oder komprimierten Rasterdruckdaten
beseitigt den Bedarf, daß die
Bildverarbeitungsoperation 1 die Rasterisierungsoperation
durchführt.
Zusätzlich
ist es, wenn die Druckdaten als komprimierte Rasterdruckdaten empfangen
werden, die bereit zum Drucken sind, nicht nötig, die verlustbehaftete 5 und/oder
verlustfreie 4 Komprimierungsoperation durchzuführen oder
die Farbraumumwandlungsoperation 3 durchzuführen.
-
Die
Funktionsblöcke,
die verwendet werden, um die bei dem bevorzugten Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 gezeigten Operationen
zu erzielen, sind in einer einzelnen integrierten Schaltung implementiert.
Die Techniken, die zum Implementieren dieser Funktionen in einer
digitalen integrierten Schaltung verwendet werden, sind in der Technik
eines Entwurfs digitaler integrierter Schaltungen bekannt. Eine
Implementierung der Funktionen der Druckdatenverarbeitungspipeline 15 in
zweckgebundener Hardware liefert eine überlegene Verarbeitungsleistung
für die
Druckdaten, die in die Pipeline gelangen.
-
Obwohl
es möglich
wäre, jede
der Operationen in der Druckdatenverarbeitungspipeline 15 unter Verwendung
eines Mikroprozessors durchzuführen, wäre die Druckdatenverarbeitungsleistung
wesentlich reduziert. Der Mikroprozessor müsste abwechselnd das verlustbehaftete
und das verlustfreie Sei tenstreifenelement handhaben, um die notwendige Druckdatenkomprimierungs-,
Farbraumumwandlungs- und Druckdatendekomprimierungsoperation durchzuführen. Zusätzlich würde der
Mikroprozessor die verlustbehafteten und die verlustfreien Seitenstreifenkomponenten
zusammenführen
und die Halbtonoperation durchführen.
-
Das
bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 wirkt mit einer Farblaserdruckmaschine 16,
die entworfen ist, um Druckdaten zu empfangen, die in einer CMGK-Farbspezifizierung
ausgedrückt
sind. Zusätzlich
wirkt die Druckmaschine 16 durch ein sequentielles Entwickeln
des Toners für
jede Ebene der CMGK-Farbspezifizierung vor einem Übertragen
von Toner auf das Papier. Das Vierdurchlaufsentwicklungsverfahren, das
durch die Druckmaschine 16 verwendet wird, gibt die Weise
vor, in der Rasterdruckdaten durch die Druckdatenverarbeitungspipeline 15 fließen. Aufgrund
dieser Funktionsweise der Laserdruckmaschine 16 werden
die Rasterdruckdaten für
eine Seite in vier aufeinanderfolgenden Durchläufen, und zwar einem Durchlauf
für jede
Dimension der CMGK-Farbspezifizierung, an die Druckmaschine 16 gesandt.
-
Wie
zuvor erwähnt
wurde, werden die komprimierten Rasterdruckdaten für die gesamte
Seite in dem Speicherraum, der dem Komprimiertrasterdruckdatenspeicher 6 zugeordnet
ist, angehäuft, wenn
das verlustbehaftete und das verlustfreie Seitenstreifenelement
komprimiert werden. Die verlustbehafteten komprimierten Rasterdruckdaten
werden in einem YCbCr-Farbraum
ausgedrückt.
Die verlustfreien komprimierten Rasterdruckdaten werden in einem
RGB-Farbraum ausgedrückt.
Eine Umwandlung der komprimierten Rasterdruckdaten in jede der vier Farbebenen
der CMGK-Farbspezifizierung der Laserdruckmaschine erfordert ein
Senden der komprimierten Rasterdruckdaten für die Seite in vier aufeinanderfolgenden
Durchläufen
durch die Druckdatenverarbeitungspipeline 15. Bei jedem
dieser vier Durchläufe
werden die verlustfreien und die verlustbehafteten komprimierten
Rasterdruckdaten über zwei
ein einzelnes Byte breite Kanäle
an die jeweilige verlustfreie 10 und verlustbehaftete 11 Dekomprimierungsoperation
zur Dekomprimierung gesandt. Mit den Bytes verlustfreier komprimierter
Rasterdruckdaten verschachtelt sind die komprimierten Zusammenführungsebenen
und die Halbtonebenen. Die Zusammenführungsebenen und die Halbtonebenen
sind mit den verlustfreien Rasterdruckdaten so verschachtelt, daß sie einer
verlustfreien Komprimierung gemeinsam mit den verlustfreien Rasterdruckdaten
unterzogen werden können.
Nach einer Dekomprimierung werden die Zusammenführungsebene und die Halbtonebene
aus dem Strom dekomprimierter verlustfreier Druckdaten extrahiert.
Dies wird zu einem späteren
Punkt in dieser Spezifizierung detaillierter beschrieben. Die verlustbehafteten
komprimierten Druckdaten umfassen die verlustbehafteten Seitenstreifenelemente.
Nach einer Dekomprimierung der verlustbehafteten komprimierten Rasterdruckdaten wird
eine Interpolationsoperation durchgeführt, um Werte für die Cr-
und die Cb-Komponente zu erweitern, die durch eine Teilabtastung
vor einer Komprimierung der verlustbehafteten Rasterdruckdaten eliminiert
wurden. Die Interpolationsoperation wird als Teil der verlustbehafteten
Dekomprimierungsoperation 11 durchgeführt.
-
Nach
der verlustbehafteten 11 und der verlustfreien 10 Dekomprimierungsoperation
werden sowohl die verlustfreien Druckdaten als auch die verlustbehafteten
Druckdaten zur Farbraumumwandlung in der Farbraumumwandlungsoperation 12 gesandt.
Da die Druckmaschine 16 ein Vierdurchlaufentwicklungsverfahren
verwendet, werden die komprimierten Rasterdruckdaten für alle Farbebenen
der Seite vier aufeinanderfolgende Male durch die verlustbehaftete 11 und
die verlustfreie 10 Dekomprimierungsoperation gesandt.
Für jeden
der vier Durchläufe
komprimierter Rasterdruckdaten durch die verlustfreie 10 und
die verlustbehaftete 11 Dekomprimierungsoperation in die
Farbraumumwandlungsoperation 12 erzeugt die Farbraumumwandlungsoperation 12 eine
der vier Ebenen der CMGK-Farbspezifizierung. Die Farbraumumwand lungsoperation 12 wird
unter Verwendung der drei Acht-Bit-Bytes verlustbehafteter oder verlustfreier Rasterdruckdaten
durchgeführt,
die jedes der Pixel der Seite darstellen, die gedruckt werden soll.
Der Rasterdruckdatenstrom, der aus der Farbraumumwandlungsoperation 12 ausgegeben
wird, umfasst zwei Acht-Bit-Kanäle,
die aus den verlustbehafteten Rasterdruckdaten und den verlustfreien
Rasterdruckdaten gebildet sind. Die verlustfreien Rasterdruckdaten,
die in die Farbraumumwandlungsoperation 12 eingegeben werden,
sind in dem RGB-Farbraum ausgedrückt.
Die verlustbehafteten Rasterdruckdaten, die in die Farbraumumwandlungsoperation 12 eingegeben
werden, sind in dem YCrCb-Farbraum ausgedrückt.
-
2A legt
nahe, daß die
verlustbehaftete 5 und die verlustfreie 4 Komprimierungsoperation,
die verlustfreie 7 und die verlustbehaftete 8 Dekomprimierungsoperation
und die verlustfreie 10 und die verlustbehaftete 11 Dekomprimierungsoperation
in separaten Hardwareeinheiten erzielt werden. Bei dem bevorzugten
Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 jedoch gibt es eine
einzelne Hardwareeinheit, die eine verlustbehaftete Komprimierung
und Dekomprimierung durchführt, und
es gibt eine einzelne Hardwareeinheit, die eine verlustfreie Komprimierung
und Dekomprimierung durchführt.
Diese Einheiten führen
alle die Komprimierungs-/Dekomprimierungsoperationen für die Druckdatenverarbeitungspipeline 15 durch.
Obwohl zu Zwecken einer Beschreibung der Druckdatenverarbeitungspipeline 15 2A die
Farbraumumwandlungsoperationen 3, 9 und 12 als
separate Hardwareeinheiten zeigt, wird bei dem bevorzugten Ausführungsbeispiel
ein einzelner Farbraumumwandler verwendet, um alle nötigen Farbraumumwandlungen durchzuführen.
-
Fachleute
auf diesem Gebiet werden nach einem Verstehen dieser Spezifizierung
erkennen, daß jeder
Farbraumumwandler, der eine Umwandlung zwischen den Farbräumen, die
ausgewählt
sind, um die verlustbehafteten und die verlustfreien Druckdaten
auszudrücken,
und der Farbspezifizierung, die durch die Laserdruckmaschine verwendet
wird, durchführen
kann, geeignet zur Verwendung bei einer Mehrpfad-Druckdatenverarbeitungspipeline ist.
-
Eine
Zusammenführungsoperation 13 empfängt als
Eingänge
den verlustfreien Rasterdruckdatenstrom, den verlustbehafteten Rasterdruckdatenstrom,
den Halbtondatenstrom und den Zusammenführungsdatenstrom. Jeder dieser
Druckdatenströme ist
aus einem Strom von Bytes gebildet. Die Druckdaten, die eine einzelne
Farbebene der Druckmaschinenfarbspezifizierung für jedes der Pixel der gesamten
Seite darstellen, sind in dem verlustfreien und dem verlustbehafteten
Rasterdruckdatenstrom enthalten. Die Funktion der Zusammenführungsoperation 13 besteht
darin, Pixel für
Pixel diese beiden Rasterdruckdatenströme so zu kombinieren, daß das ursprüngliche
Bild, das zuvor in ein verlustfreies und ein verlustbehaftetes Seitenstreifenelement
aufgeteilt war, für
die gerade verarbeitete Farbebene rekonstruiert wird. Die Bits der
Zusammenführungsdaten,
die jedem Pixel zugeordnet sind, werden durch die Zusammenführungsoperation 13 verwendet,
um zu bestimmen, ob die Rasterdruckdaten für das Pixel, das gerade verarbeitet
wird, aus dem verlustfreien Rasterdruckdatenstrom oder aus dem verlustbehafteten
Rasterdruckdatenstrom ausgewählt
sind. Nachfolgende Durchläufe
verlustbehafteter und verlustfreier Rasterdruckdaten durch die Zusammenführungsoperation 13 rekonstruieren
das ursprüngliche Bild
für die
verbleibenden Farbebenen der Druckmaschinenfarbspezifizierung. Jedes
der Pixel entspricht einem Ort, an dem die gedruckte Seite sein
wird. Das Rekonstruktionsverfahren kann als eine Raumsynchronisierung
des verlustfreien und des verlustbehafteten Druckdatenstroms betrachtet
werden, um das ursprüngliche
Bild zu erzeugen. Ferner müssen,
um die Raumsynchronisierung zu erzielen, der verlustfreie und der
verlustbehaftete Rasterdruckdatenstrom und der Strom von Zusammenführungsdaten zeitlich
synchronisiert sein.
-
Die
offenbarte Druckdatenverarbeitungspipeline 15 zieht einen
Vorteil aus der Ebene-für-Ebene-Entwicklungscharakteristik
der Druckmaschine 16, um den Gesamtspeicher, der zum Erzielen
der Druckoperation benötigt
wird, zu reduzieren. Durch ein Plazieren der Zusammenführungsoperation 13 in der
Druckdatenverarbeitungspipeline 15 nach der Farbraumumwandlungsoperation 12 ist
es nur nötig, daß die Zusammenführungsoperation 13 einen
Linienpuffer mit minimaler Größe für die Speicherung von
Rasterdruckdaten für
eine einzelne Farbebene der CMGK-Farbspezifizierung der Druckmaschine 16 verwendet.
Wäre die
Zusammenführungsoperation 13 vor
der Farbraumumwandlungsoperation 12 in der Druckdatenverarbeitungspipeline 15 angeordnet, wäre es nötig, daß die Zusammenführungsoperation 13 einen
Linienpuffer mit ausreichender Größe verwendet, um die Rasterdruckdaten
für jede
der drei Abmessungen des RGB- und des YCrCb-Farbraums zu speichern.
-
Es
sollte zu erkennen sein, daß eine Druckdatenverarbeitungspipelinearchitektur,
die separate Pfade für
die verlustfreien und die verlustbehafteten Druckdaten verwendet,
mit einer Druckmaschine kompatibel ist, die durch ein Empfangen
der Rasterdruckdaten für
alle Farbebenen der Druckmaschinenfarbspezifizierung in einem einzelnen
Durchgang anstelle von mehreren Durchgängen wirkt. Für diesen
Fall wäre
es nötig,
daß die
Farbraumumwandlungsoperation 12 eine Farbraumumwandlung
bezüglich
der Rasterdruckdaten durchführt,
die jedes Pixel darstellen, um jeden der entsprechenden Werte für die C-,
M-, G- und K-Dimension gleichzeitig zu erzeugen. Dies würde es erforderlich
machen, daß die Farbraumumwandlungsoperation 12 die
Fähigkeit aufweist,
gleichzeitig die Interpolationen durchzuführen, die zur Erzeugung jeder
der C-, M-, G- und K-Abmessung erforderlich sind. Zusätzlich müsste die
Zusammenführungsoperation 13 einen
ausreichenden Speicherraum verwenden, um eine Seite von Rasterdruckdaten
für jede
der C-, M-, G- und K-Abmessung zu enthalten.
-
Bei
dem bevorzugten Ausführungsbeispiel der
Druckdatenverarbeitungspipeline 15 werden die Rasterdruckdaten,
die in der Zusammenführungsoperation 13 kombiniert
sind, einer Halbtongebungsoperation 14 unterzogen. Die
Halbtonoperation 14 ist so angeordnet, daß eine Halbtongebung
die letzte Operation ist, die bezüglich der Rasterdruckdaten
vor einer Lieferung der Druckdaten an die Druckmaschine 16 durchgeführt wird.
Die Halbtonoperation 14 führt das Halbtongebungsverfahren
Ebene für
Ebene bezüglich
der zusammengeführten
Rasterdruckdaten durch, wie dies durch die Halbtondruckdaten, die jedem
Pixel zugeordnet sind, angewiesen wird. Ein Anordnen der Halbtonoperation 14 nach
der Zusammenführungsoperation 13 ermöglicht es,
daß die Halbtongebungsoperation 14 sequentiell
bezüglich jeder
Farbebene des Farbraums durchgeführt
wird, der durch die Druckmaschine 16 verwendet wird, wodurch
weniger Speicher zum Speichern der Rasterdruckdaten benötigt wird.
Zusätzlich
hätte,
wenn die Halbtongebungsoperation 14 vor der Zusammenführungsoperation
durchgeführt
worden wäre,
die Komplexität
der Halbtonoperation 14 aufgrund der Notwendigkeit eines
separaten Durchführens
der Halbtongebungsoperation 14 bezüglich des Stroms verlustfreier
Rasterdruckdaten und bezüglich
des Stroms verlustbehafteter Rasterdruckdaten wesentlich erhöht sein
müssen.
Ferner führt
eine Platzierung der Halbtonoperation 14 an letzter Stelle
in der Druckdatenverarbeitungspipeline 15 zu der optimalen
Druckqualität.
Ein Anordnen der Halbtonoperation 14 vor der Komprimierung
der verlustbehafteten Rasterdruckdaten hätte in einem Verlust einiger
der Verbesserungen geführt,
die durch das Halbtongebungsverfahren erzielt werden, und die Komprimierungsebene,
die bezüglich
der Halbton-Rasterdruckdaten erzielt wird, wäre reduziert. Zusätzlich wird
die höchste
Ebene einer Druckqualität
durch ein Durchführen
der Halbtongebungsoperation 14 bezüglich Rasterdruckdaten, die
in der Farbspezifizierung der Druckmaschine dargestellt sind, erzielt.
Deshalb ist bei dem bevorzugten Ausführungsbeispiel der Druckdatenverarbeitungspipeline 15 die
Halbtonoperation 14 nach der Farbraumumwandlungsoperation 12 angeordnet.
-
Die
Zuteilung der Halbtonbits zu jedem Pixel von Rasterdruckdaten wird
in der Bildverarbeitungsoperation 1 durchgeführt, um
die Halbtonebene zu bilden. Wie bereits erwähnt wurde, können die
Druckdaten, die in die Druckdatenverarbeitungspipeline gelangen,
Text, Graphiken oder Bilddruckdaten in der Form von Rasterdruckdaten,
Rastersteuerungssprachdruckdaten oder Graphiksprachdruckdaten sein.
Eine Firmware, die in der Bildverarbeitungsblockoperation 1 wirkt,
erzeugt die Halbtonebene für das
entsprechende verlustbehaftete und verlustfreie Seitenstreifenelement
gemäß dem Typ
von Halbtonalgorithmus, der angewendet wird. Die Halbtonbits für die Textdruckdaten
z. B. können „11" zugeteilt sein,
Halbtonbits für
Graphikdruckdaten können „10" zugeordnet sein,
Halbtonbits für
Bilddruckdaten können „01" zugeordnet sein
und die Halbtonbits, die anzeigen, daß keine Halbtonoperation auf
die Druckdaten angewendet werden soll, die dem Pixel entsprechen,
können „00" zugeordnet sein.
Die Zuteilung der Halbtonbits ermöglicht die Anwendung einer
Halbtonoperation, die für
den Typ von Druckdaten optimiert ist, die den Halbtonbits zugeordnet
sind. Die Halbtonbits können
z. B. Halbtonalgorithmen spezifizieren, die Linienbildschirme mit
unterschiedlichen Anzahlen von Linien pro Zoll aufweisen. Halbtonoperationen sind
in der Technik des Druckens bekannt. Weitere Informationen bezüglich einer
Halbtongebung sind in R. Ulichney, Digital Halftoning, ISBN 0-262-21009-6 (vierter
Druck 1993) zu finden.
-
Die
Zusammenführungsoperation 13 empfängt als
Eingänge
den verlustfreien Rasterdruckdatenstrom, den verlustbehafteten Rasterdruckdatenstrom,
den Halbtondruckdatenstrom und den Zusammenführungsdruckdatenstrom. Jeder
dieser Druckdatenströme
ist auch Acht-Bit-Bytes gebildet. Die Druckdaten, die eine einzelne
Farbebene der Druckmaschinenfarbspezifizierung für jedes der Pixel der gesamten
Seite darstellen, sind in dem verlustfreien und dem verlustbehafteten
Rasterdruckdatenstrom enthalten. Die Funktion der Zusammenfüh rungsoperation 13 besteht
darin, Pixel für
Pixel diese beiden Rasterdruckdatenströme so zu kombinieren, daß das ursprüngliche
Bild, das zuvor in ein verlustfreies und ein verlustbehaftetes Seitenstreifenelement
aufgeteilt wurde, für
die gerade verarbeitete Farbebene rekonstruiert wird. Nachfolgende
Durchläufe
verlustbehafteter und verlustfreier Rasterdruckdaten durch die Zusammenführungsoperation 13 rekonstruieren
das ursprüngliche
Bild für
die verbleibenden Ebenen der Druckmaschinenfarbspezifizierung. Jedes
der Pixel entspricht einem Ort, an dem die gedruckte Seite sein
wird. Das Rekonstruktionsverfahren kann als eine Raumsynchronisierung
des verlustbehafteten und des verlustfreien Rasterdruckdatenstroms
betrachtet werden, um das ursprüngliche
Bild zu erzeugen. Ferner müssen
der verlustfreie und der verlustbehaftete Rasterdruckdatenstrom
und der Druckdatenstrom von Halbtonbits zeitlich synchronisiert
werden, um die Raumsynchronisierung zu erzielen.
-
Eine
Konfiguration der Druckdatenverarbeitungspipeline 15 wird
vor und während
des Durchlaufs von Druckdaten durch die Druckdatenverarbeitungspipeline 15 durchgeführt. Einige
Parameter der Pipeline können
für jede
Seite, einige für
jede Farbebene und einige für
jeden Seitenstreifen, konfiguriert sein. Die Anzahl von Linien pro
Seite und die Anzahl von Pixeln pro Linie sind auf einer Seitenbasis
konfigurierbar. Zusätzlich
ist die Anzahl von Farbebenen, die durch die Druckdatenverarbeitungspipeline 15 verarbeitet
werden (d. h. wird das Bild einfarbig oder vollfarbig gedruckt),
auf einer Seitenbasis konfigurierbar.
-
Eine
Verarbeitung der Rasterdruckdaten für jede Farbebene erfordert
eine Konfiguration der Farbraumumwandlungsoperationen 3, 9, 12.
Vor der Durchführung
von Farbraumumwandlungsoperationen 3, 9, 12 wird
die Farbraumumwandlungstabelle, die zur Umwandlung zu der beabsichtigten
Farbebene des Ausgangsfarbraums benötigt wird, geladen. Ferner
beinhaltet eine Verarbeitung jeder Farbebene durch eine Halbtonoperation 14 eine
Konfiguration der Halbtonoperation 14, so daß die korrekte
Halbtontabelle zur Halbtongebung der Farbebene verwendet wird. Wenn
z. B. aufeinanderfolgende Farbebenen eines Bildes verarbeitet werden,
kann jede Halbtontabelle einem Halbtongebungsalgorithmus unter Verwendung
des ausgewählten
Linienbildschirms bei einem unterschiedlichen relativen Winkel entsprechen.
Wie aus der Technik der Halbtongebung bekannt ist, reduziert die
Verwendung eines ausgewählten
Linienbildschirms bei unterschiedlichen relativen Winkeln für aufeinanderfolgende
gedruckte Farbebenen eine Wechselwirkung zwischen den Farbebenen,
was Druckartefakte erzeugt.
-
Die
Druckdatenverarbeitungspipeline 15 weist außerdem Parameter
auf, die auf einer Seitenstreifenbasis konfigurierbar sind. Die
Bildverarbeitungsoperation 1 kann die Druckdatenverarbeitungspipeline 15 konfigurieren,
um die verschiedenen verfügbaren
Pipelineverarbeitungsoperationen für jeden Seitenstreifen durchzuführen. Die
Bildverarbeitungsoperation 1 kann z. B. die Druckdatenverarbeitungsoperation 15 auf
einer Seitenstreifenbasis konfigurieren, um die Komprimierungsoperationen 4, 5,
die Dekomprimierungsoperationen 7, 8, 10, 11,
die Farbraumumwandlungsoperationen 3, 9, 12 oder
die Halbtonoperation 14 durchzuführen oder zu umgehen. Zusätzlich kann
die Anzahl von Bits pro Pixel für
die verlustfreien Seitenstreifenelemente auf einer Seitenstreifenbasis
als 1, 2, 4 oder 8 spezifiziert sein. Für das bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 erfordert der Komprimierungsalgorithmus,
der bei der verlustbehafteten Komprimierungsoperation 5 verwendet
wird, acht Bits pro Pixel für
das verlustbehaftete Seitenstreifenelement. Ferner kann die Bildverarbeitungsoperation 1 spezifizieren,
daß die
verlustbehaftete oder die verlustfreie Komponente eines Seitenstreifens
aus Null-Daten gebildet
ist, und daß jedes
Bit der entsprechenden Zusammenführungsebene
den gleichen Wert aufweist.
-
In 2B gezeigt
ist ein vereinfachtes Hardwareblockdiagramm des bevorzugten Ausführungsbeispiels
der Druckdaten verarbeitungspipeline 15. Es wird darauf
verwiesen, daß die
Pfade, die die Funktionsblöcke,
die in 2B gezeigt sind, verbinden,
Datenpfade darstellen. In 2 nicht
gezeigt sind die verschiedenen Steuerungsleitungen, die verwendet
werden, um den Fluss von Daten zwischen den Funktionsblöcken zu
steuern. Bei dem bevorzugten Ausführungsbeispiel sind die Komprimierungs-/Dekomprimierungsoperationen 4, 5, 7, 8, 10, 11,
die Farbraumumwandlungsoperationen 3, 9, 12, die
Zusammenführungsoperation 13 und
die Halbtonoperation 14 in einer ASIC 120 implementiert.
Das bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 ist zur Verbindung
der ASIC 120 mit einem PCI-Bus konfiguriert. Fachleute
auf diesem Gebiet werden jedoch erkennen, daß die Druckdatenverarbeitungspipeline 15 zur
Verbindung mit anderen Typen von Bussen, wie z. B. einem VESA-Bus,
konfiguriert sein kann. Die PCI-Bus-Architektur ist in der Technik
eines Digitalsystementwurfs gut bekannt und wird nicht detailliert
erläutert.
Die Bildverarbeitungsoperation 1 wird durch einen Prozessor,
wie z. B. einen Mikroprozessor 132, durchgeführt, der
mit der Druckdatenverarbeitungspipeline 15 über den
PCI-Bus kommuniziert. Druckdaten werden von dem Rasterdruckdatenspeicher 2 und
den Komprimiertrasterdruckdatenspeicher 6 wiedergewonnen
und in denselben geladen, wie dieselben zu und von der ASIC 120 übertragen
werden.
-
Die
ASIC 120 ist schnittstellenmäßig mit dem PCI-Bus durch die
PCI-Busschnittstelle 121 verbunden. Die PCI-Busschnittstelle 121 umfasst
Register, die zur Konfiguration der PCI-Busschnittstelle 121 nötig sind,
und Register, die zum Zwischenspeichern von Druckdaten verwendet
werden, wenn dieselben zwischen dem PCI-Bus und der ASIC 120 fließen.
-
Eine
Direktspeicherzugriffssteuerung, wie z. B. ein Video-DMA 122,
steuert den Fluss von Druckdaten in die Teile der ASIC 120 und
aus denselben heraus, die die verschiedenen Funktionen der Druckdatenverarbeitungspipeline 15 durchfüh ren. Der
Video-DMA-Puffer 123 speichert zeitweilig Druckdaten, wenn
dieselben durch den Video-DMA 122 gelangen, um die Druckdatenraten
zwischen dem PCI-Bus und den verschiedenen Funktionsblöcken der
ASIC 120 anzupassen, wenn sich Druckdaten in die ASIC 120 hinein
und aus derselben heraus bewegen. Die Verwendung des Video-DMA-Puffers
gleicht die Fehlanpassung der Rate eines Datenflusses zwischen der PCI-Busschnittstelle 121 und
den Funktionsblöcken in
dem Rest der ASIC 120 aus.
-
Mehrere
wichtige Vorteile resultieren aus der Implementierung der Druckdatenverarbeitungspipeline 15 in
der ASIC 120. Ein erster Vorteil ist die wirksame Weise,
auf die die Verarbeitungsoperationen für die Druckdatenverarbeitungspipeline 15 im
Inneren der ASIC 120 erzielt werden. Durch ein Anordnen aller
Operationen auf der ASIC 120 können Druckdaten zwischen aufeinanderfolgenden
Operationen übertragen
werden, ohne daß der
Verarbeitungsmehraufwand bewirkt wird, der resultieren würde, wenn Übertragungen
von Druckdaten über
den PCI-Bus zwischen separaten integrierten Schaltungen stattfinden
würden,
die einem Durchführen
einzelner Druckdatenpipelineverarbeitungsoperationen zugeordnet
sind. Ein zweiter Vorteil ist die Fähigkeit, die ASIC 120 zu
konfigurieren, um selektiv Druckdaten um Funktionsblöcke innerhalb
der ASIC 120 herumgehen zu lassen. Ein dritter Vorteil
ist die Fähigkeit,
selektiv die Ausgabe eines Funktionsblocks zu dem Video-DMA 122 zur
Leitung zu einem anderen Funktionsblock oder zur Speicherung in
einem Speicher zurückzukoppeln.
Diese Fähigkeiten
erzeugen eine extrem flexible und wirksame Druckdatenverarbeitungspipeline,
die konfiguriert sein kann, um die Druckdatenverarbeitungsoperationen
abhängig
von dem Typ von Druckdaten zu optimieren. Da die ASIC 120 konfiguriert
sein kann, um einen spezifischen Teilsatz der möglichen Druckdatenverarbeitungsoperationen
durchzuführen,
können
die Operationen, die auf die Druckdaten angewendet werden, in einer breiten
Vielzahl von Weisen an die Charakteristika der Druckdaten angepasst
sein. Dies ermöglicht
es, daß das
Drucksystem die Pipeline für
eine optimale Verarbeitung aller möglichen Typen von Druckdaten konfiguriert.
Die Rückkopplungsfähigkeit
ermöglicht es,
daß die
Druckdatenverarbeitungsoperationen in einer Reihenfolge durchgeführt werden,
die am besten geeignet ist, um die Druckdaten zum Drucken einer
Seite vorzubereiten. Nach einer Fertigstellung einer Operation in
der Druckdatenverarbeitungspipeline 15 können die
Ergebnisse durch den Video-DMA 122 zu der nächsten Operation
gelenkt werden.
-
Abhängig von
dem Typ von Operation, den die Druckdatenverarbeitungspipeline 15 hinsichtlich der
Druckdaten durchführen
soll, die von dem PCI-Bus geladen sind, ist der Video-DMA 122 konfiguriert,
um die Druckdaten an den geeigneten Funktionsblock in der ASIC 120 zu
liefern. Wenn eine Farbraumumwandlung benötigt wird, werden die Druckdaten
durch den Video-DMA 122 an einen Seitenstreifenverwalter 124 gesandt.
Der Seitenstreifenverwalter 124 sendet die Druckdaten von
dem Video-DMA 122 in den geeigneten verlustbehafteten oder
verlustfreien Eingang eines Farbraumumwandlers 125. Zusätzlich extrahiert
der Seitenstreifenverwalter 124 die Zusammenführungsdaten
und die Halbtondaten extrahiert, die mit den verlustfreien Rasterdruckdaten
verschachtelt sind, und sendet alle derselben über separate Byte-breite Kanäle an die Zusammenführungseinheit 128.
Wenn eine Komprimierung oder Dekomprimierung der Druckdaten erforderlich
ist, werden die Druckdaten durch die Video-DMA 122 zu dem
geeigneten Komprimierungs- oder Dekomprimierungseingang auf dem
verlustbehafteten Kompressor/Dekompressor 126 oder verlustfreien
Kompressor/Dekompressor 127 geleitet. Die Zusammenführungseinheit 128 führt die
Zusammenführungsoperation 13 bezüglich des
verlustbehafteten und des verlustfreien Rasterdruckdatenstroms durch,
die aus dem Farbraumumwandler 125 hervorgehen. Ein Linienpuffer 129 umfasst
einen SRAM zum Zwischenspeichern der verlustbehafteten und der verlustfreien
Rasterdruckdaten und der Zusammenführungs- und Halbtondaten, die
bei der Zusammenführungsoperation 13 verwendet
werden. Eine Halbtoneinheit 130 führt die Halbtonoperation 14 bezüglich des
zusammengeführten
Rasterdruckdatenstroms entsprechend jedem der Pixel gemäß den Bits
durch, die in der Halbtonebene spezifiziert sind. Obwohl dies nicht
explizit in 2B gezeigt ist, können sowohl
der Farbraumumwandler 125 als auch die Halbtoneinheit 130 konfiguriert
sein, um Druckdaten um diese Funktionsblöcke herum zu umgehen, wenn
die Operationen, die bezüglich
der Druckdaten durchgeführt
werden sollen, keine Farbraumumwandlung und/oder Halbtongebung umfassen.
-
Wenn
Operationen daraufhin, daß Druckdaten
durch die Druckdatenverarbeitungspipeline 15 aus 1 fließen, abgeschlossen
sind, können
die Druckdaten von der ASIC 120 in einen Speicher und zu
einem späteren
Zeitpunkt wieder zurück
in die ASIC 120 zur weiteren Verarbeitung übertragen
werden. Nachdem z. B. die verlustbehaftete 5 und die verlustfreie 4 Komprimierungsoperation
in dem verlustbehafteten 126 bzw. verlustfreien 127 Kompressor/Dekompressor
durchgeführt
sind, können
die resultierenden komprimierten Rasterdruckdaten zu dem Video-DMA 122,
durch die PCI-Busschnittstelle 121 und
dann über
den PCI-Bus zu dem Komprimiertrasterdruckdatenspeicher 6 geleitet
werden. Wenn die komprimierten Rasterdruckdaten dekomprimiert werden
sollen, werden dieselben über
den PCI-Bus von dem Komprimiertrasterdruckdatenspeicher 6, durch
die PCI-Busschnittstelle 121 an die ASIC 120 übertragen
und dann durch den Video-DMA 122 in den Dekomprimierungseingang
von einem oder beiden des verlustbehafteten 126 und verlustfreien 127 Kompressors/Dekompressors
geleitet. Nachdem die Farbraumumwandlungsoperation 3 bezüglich der verlustbehafteten
und/oder der verlustfreien Rasterdruckdaten durchgeführt ist,
könnten
die resultierenden Rasterdruckdaten an den verlustbehafteten 126 Kompressor/Dekompressor
und/oder den verlustfreien 127 Kompressor/Dekompressor
durch den Video-DMA 122 zurückgeführt werden
oder sie könnten
zu dem Rasterdruckdatenspeicher 2 durch den Video-DMA 122 und
die PCI-Busschnittstelle 121 zurückgeführt werden oder sie könnten zum
Durchführen
der Zusammenführungsoperation 13 an die
Zusammenführungseinheit 128 gesandt
werden. In dem Farbraumumwandler 125 enthalten ist ein
Selektor, der die verlustbehafteten oder verlustfreien farbraumumgewandelten
Rasterdruckdaten an den verlustbehafteten oder verlustfreien Ausgang
des Farbraumumwandlers 125 leitet, die mit dem verlustbehafteten
und verlustfreien Druckdateneingang an der Zusammenführungseinheit 130 gekoppelt
sind.
-
Der
Seitenstreifenverwalter 124 verwaltet die Rasterdruckdaten
so, daß die
Farbraumumwandlungsoperationen 3, 9, 12,
die Zusammenführungsoperation 13 und
die Halbtonoperation 14 der Druckdatenverarbeitungspipeline 15 einen
Strom von Rasterdruckdaten empfangen, der ein einheitliches Format
aufweist. In Situationen z. B., in denen nur ein einzelnes verlustbehaftetes
oder verlustfreies Seitenstreifenelement in der Bildverarbeitungsoperation 1 erzeugt
wird, erzeugt der Seitenstreifenverwalter 124 ein entsprechendes
verlustbehaftetes oder verlustfreies Seitenstreifenelement, wie
dies geeignet ist, leerer Druckdaten, so daß das entsprechende verlustbehaftete
und verlustfreie Seitenstreifenelement auf dem verlustbehafteten
und verlustfreien Pfad an den Farbraumumwandler 125 gesandt
wird. Zusätzlich
erzeugt der Seitenstreifenverwalter 124 für den Fall,
bei dem nur ein einzelnes verlustbehaftetes oder verlustfreies Seitenstreifenelement
durch die Bildverarbeitungsoperation 1 erzeugt wird, die
entsprechende Zusammenführungsebene,
die aus dem gleichen Bit gebildet ist, das jedem Pixel des Seitenstreifenelements
entspricht. Ferner erzeugt der Seitenstreifenverwalter 124 für den Fall,
bei dem die gleichen Halbtonprozesse auf jedes Pixel des Seitenstreifens angewendet
werden, die Halbtonebene entsprechend dem Seitenstreifen. Der Seitenstreifenverwalter 124 sendet
die Zusammenführungsdaten
und die Halbtondaten über
separate Byte-breite Pfade an die Zusammenführungseinheit 128.
-
Der
Seitenstreifenverwalter 124 empfängt die dekomprimierten verlustbehafteten
und verlustfreien Rasterdruckdaten über separate, Byte-breite Kanäle. Wenn
komprimierte ver lustbehaftete Rasterdruckdaten durch den verlustbehafteten
Kompressor/Dekompressor 126 dekomprimiert werden, werden
die resultierenden Acht-Pixel-mal-Acht-Pixel-Blöcke für jede Dimension des Farbraums
in drei 64-Byte-Ausgangspuffern gespeichert, die in dem verlustbehafteten
Kompressor/Dekompressor 126 enthalten sind. Der Seitenstreifenverwalter 124 empfängt einen
Byte-breiten Strom der verlustbehafteten Rasterdruckdaten, die von
den drei Ausgangspuffern gesandt werden. Die Bytes der dekomprimierten, verlustbehafteten
Rasterdruckdaten, die jedem Pixel entsprechen, werden von den Ausgangspuffern
des verlustbehafteten Kompressors/Dekompressors 126 als
drei aufeinanderfolgende Bytes gesandt, wobei ein Byte jeder Abmessung
des Farbraums entspricht. Das erste der drei aufeinanderfolgenden
Bytes kann z. B. der „Y"-Komponente entsprechen,
das zweite der „Cb"-Komponente und das
dritte der „Cr"-Komponente. Der
Seitenstreifenverwalter 124 setzt die drei entsprechenden
Bytes verlustbehafteter Rasterdruckdaten für ein Pixel zusammen und sendet
dieselben als einen 24 Bit breiten Strom verlustbehafteter Rasterdruckdaten
an den Farbraumumwandler 125.
-
Der
Seitenstreifenverwalter 124 empfängt die dekomprimierten verlustfreien
Rasterdruckdaten als einen Byte-breiten Strom drei aufeinanderfolgender
Bytes für
jedes verlustfreie Pixel. Das erste der drei aufeinanderfolgenden
Bytes kann z. B. der „R"-Komponente entsprechen,
das zweite der „G"-Komponente und das
dritte der „B"-Komponente. Mit
den verlustfreien Rasterdruckdaten, die von dem verlustfreien Kompressor/Dekompressor 127 gesandt
werden, verschachtelt sind die Zusammenführungsdaten und die Halbtondaten.
Die Verschachtelung wird so durchgeführt, daß Bytes verlustfreier Rasterdruckdaten,
die einer einzelnen Linie auf der gedruckten Seite entsprechen,
gesandt werden, gefolgt durch die notwendige Anzahl von Bytes von
Zusammenführungsdaten
und Halbtondaten, um der Linie verlustfreier Rasterdruckdaten zu
entsprechen. Der Seitenstreifenverwalter 124 extrahiert
die Zusammenführungsdaten
und die Halbtondaten und sendet dieselben über separate Kanäle an die
Zusammenführungseinheit 128.
Der Seitenstreifenverwalter 124 setzt die drei entsprechenden
Bytes verlustfreier Rasterdruckdaten für ein Pixel zusammen und sendet
dieselben als einen 24 Bit breiten Strom verlustfreier Rasterdruckdaten
an den Farbraumumwandler 125.
-
In
einigen Fällen
umgeht der Video-DMA 122 den Komprimierungsschritt und
sendet Rasterdruckdaten direkt an den Seitenstreifenverwalter 124.
Dies kann durchgeführt
werden, wenn eine Seite von Rasterdruckdaten ohne eine Komprimierung
und Speicherung in dem Komprimiertrasterdruckdatenspeicher 6 an
die Druckmaschine 16 gesandt wird. In diesem Fall fließen die
Rasterdruckdaten in einer linearen Weise ohne ein Einschlagen eines
der verschiedenen Rückkopplungspfade
durch die Druckdatenverarbeitungspipeline 15. Es ist auch
möglich,
daß die
Rasterdruckdaten direkt von dem Video-DMA 122 an den Seitenstreifenverwalter 124 durch
die nachfolgenden Verarbeitungsoperationen der Druckdatenverarbeitungspipeline 15,
wie z. B. einer Farbraumumwandlung und Halbtongebung, gesandt werden, auf
einem Rückkopplungspfad
durch den Video-DMA 122 zum Senden an den geeigneten Kompressor
zurückkehren
und dann die komprimierten Rasterdruckdaten an den Video-DMA 122 zur
Speicherung in einem Speicher zurückgegeben werden.
-
Die
verlustfreien Rasterdruckdaten können durch
ein Bit, zwei Bits, vier Bits oder acht Bits pro Dimension des Farbraums
für jedes
Pixel spezifiziert werden. Vor einem Senden der verlustfreien Rasterdruckdaten
an den Farbraumumwandler 125 wandelt der Seitenstreifenverwalter 124 Ein-Bit-, Zwei-Bit- und
Vier-Bit-Darstellungen zu vollständigen
acht Bits pro Dimension jeder Pixeldarstellung um. Die Parameter
der Rasterdruckdaten können
sich zwischen Seitenstreifenelementen verändern sowie unterschiedliche
Typen von Druckdatenverarbeitungspipelineoperationen aufweisen,
die auf jedes der Seitenstreifenelemente angewendet werden. Der
Seitenstreifenverwalter 124 führt die nötigen Operatio nen durch, so
daß ein
nahtloser Strom (nahtlos in dem Sinn, daß Rasterdruckdatenformatunterschiede zwischen
Seitenstreifenelementen beseitigt werden, und in dem Sinn, daß es nur
eine geringe Variation der Flussrate von Rasterdruckdaten durch
die Druckdatenverarbeitungspipeline 15 gibt) einheitlicher
Formatrasterdruckdaten an in Verarbeitungsrichtung unterhalb gelegene
Druckdatenverarbeitungspipelineoperationen geliefert werden.
-
Ein
Bereitstellen einer Anzahl spezifischer Beispiele des Typs von Druckdatenverarbeitungsoperationen,
die wahrscheinlich durchgeführt
werden, stellt die beträchtliche
Vielseitigkeit der Druckdatenverarbeitungspipeline 15,
die in der ASIC 120 implementiert ist, besser dar. Es wird
ein erster Fall betrachtet, in dem eine Seite unter Verwendung von Rasterdruckdaten
gedruckt werden soll, die in der CGMK-Maschinenfarbspezifizierung ausgedrückt sind,
bezüglich
derer keine Komprimierungs-/Dekomprimierungsoperationen durchgeführt wurden, und
für die
eine Halbtongebung auf die Rasterdruckdaten angewendet wird. Die
verlustbehafteten und verlustfreien Rasterdruckdaten werden jeweils
eine Farbebene zu einem Zeitpunkt von dem Systemspeicher durch die
PCI-Busschnittstelle 121 übertragen. Der
Video-DMA 122 sendet die verlustbehafteten und verlustfreien
Rasterdruckdaten durch den Seitenstreifenverwalter 124 an
den Farbraumumwandler 125, der konfiguriert wurde, um die
Druckdaten zu umgehen. Die Zusammenführungseinheit 128 führt die
Zusammenführungsoperation 13 bezüglich der verlustbehafteten
und der verlustfreien Rasterdruckdaten durch und sendet die zusammengeführten Druckdaten
an die Halbtongebungseinheit 130 für die Halbtonoperation 14.
Die halbgetönten
Rasterdruckdaten werden durch die Druckmaschinenschnittstelle 131 an
die Druckmaschine 16 gesandt. In diesem ersten Fall war
die Druckdatenverarbeitungspipeline 15 konfiguriert, um
nur die Zusammenführungsoperation 13 und
die Halbtonoperation 14 durchzuführen.
-
In
einem zweiten Fall ist die Druckdatenverarbeitungspipeline 15 konfiguriert,
um eine Dekomprimierungsoperation 10, 11 bezüglich der
verlustbehafteten und verlustfreien komprimierten Rasterdruckdaten
durchzuführen,
die Farbraumumwandlungsoperation 12, die Zusammenführungsoperation 13 durchzuführen und
auch die Halbtonoperation 14 durchzuführen. Die verlustbehafteten
und die verlustfreien komprimierten Rasterdruckdaten werden von dem
Systemspeicher durch die PCI-Busschnittstelle 121 übertragen.
Der Video-DMA 122 leitet
die verlustbehafteten und die verlustfreien komprimierten Rasterdruckdaten
zur Dekomprimierung in den verlustbehafteten 126 und verlustfreien 127 Kompressor/Dekompressor.
Die dekomprimierten verlustfreien und verlustbehafteten Rasterdruckdaten
werden an den Farbraumumwandler 125 zur Umwandlung in eine
der Farbebenen für
jeden der vier Durchläufe der
Druckmaschine 16 gesandt. Die verlustbehafteten und die
verlustfreien, farbraumumgewandelten Rasterdruckdaten, die von dem
Farbraumumwandler 125 ausgegeben werden, werden zur Durchführung der
Zusammenführungsoperation 13 an
die Zusammenführungseinheit 128 gesandt.
Die Halbtonoperation 14 wird bezüglich der zusammengeführten Druckdaten
durchgeführt,
die von der Zusammenführungseinheit 128 ausgegeben
werden. Die Ergebnisse der Halbtonoperation werden wieder zum Senden durch
die PCI-Busschnittstelle 121 an
den Systemspeicher an den Video-DMA 122 zurückgesandt.
Diese Sequenz tritt viermal nacheinander auf, um die Druckdaten
für jede
Farbebene der Druckmaschine 16 zu erzeugen. In diesem zweiten
Fall war die Druckdatenverarbeitungspipeline 15 konfiguriert,
um die verarbeiteten Druckdaten zum Drucken zu einem späteren Zeitpunkt
an den Systemspeicher zurückzugeben.
Obwohl der Video-DMA 122 alle Druckdaten zweimal handhaben
musste, nämlich
einmal während
des Ladens und einmal während
des Speicherns, wurden mehrere Operationen bezüglich der Druckdaten in der
ASIC 120 ohne die Verwendung des PCI-Busses oder eine Intervention
durch den Mikroprozessor 132 durchgeführt.
-
In
einem dritten Fall ist die Druckdatenverarbeitungspipeline 15 konfiguriert,
um eine Farbraumumwandlungsoperation, eine Halbtonoperation und dann
eine verlustfreie Komprimierungsoperation durchzuführen. Die
verlustfreien Rasterdruckdaten werden von dem Systemspeicher durch
die PCI-Busschnittstelle 121 übertragen.
Der Video-DMA 122 leitet die verlustfreien Rasterdruckdaten
an den Farbraumumwandler 125 durch den Seitenstreifenverwalter 124,
um einer Umwandlung in eine Ebene des Farbraums der Druckmaschine 16 unterzogen
zu werden. Der Seitenstreifenverwalter 124 erzeugt die entsprechenden
leeren verlustbehafteten Rasterdruckdaten und Zusammenführungsdruckdaten.
Die leeren verlustbehafteten Rasterdruckdaten umgehen den Farbraumumwandler 125.
Die Zusammenführungseinheit 128 führt eine
Zusammenführungsoperation
bezüglich
der verlustfreien und der verlustbehafteten Rasterdruckdaten unter
Verwendung der Zusammenführungsdruckdaten
durch, die durch den Seitenstreifenverwalter 124 erzeugt
werden. Die Halbtoneinheit 130 führt eine Halbtonoperation 14 bezüglich der
zusammengeführten
Rasterdruckdaten durch. Die Rasterdruckdaten, die von der Halbtoneinheit 130 ausgegeben
werden, werden an den Video-DMA 122 gesandt. Der Video-DMA 122 leitet dann
die Rasterdruckdaten zur verlustfreien Komprimierung an den verlustfreien
Kompressor/Dekompressor 127. Die komprimierten Rasterdruckdaten werden
an den Video-DMA zurückgegeben,
der wiederum die komprimierten Rasterdruckdaten durch die PCI-Busschnittstelle 121 zur
Speicherung an den Systemspeicher sendet. Diese Sequenz tritt viermal hintereinander
auf, um die Druckdaten für
jede Farbebene der Druckmaschine 16 zu erzeugen. Im Gegensatz
zu dem zweiten Fall wurde die Reihenfolge, in der die Druckdatenverarbeitungsoperationen durchgeführt wurden,
verändert.
Dies stellt die Fähigkeit
der Druckdatenverarbeitungspipeline 15 dar, konfiguriert
zu sein, um eine Verarbeitung der Druckdaten zu optimieren.
-
Einige
Druckdatenverarbeitungspipelines des Stands der Technik wurden unter
Verwendung eines Universalmikroprozessors implementiert, um die verschiedenen
Farbraumumwand lungs-, Komprimierungs-/Dekomprimierungs-, Zusammenführungs- und
Halbtongebungsoperationen zu erzielen. Die Geschwindigkeit, mit
der ein Mikroprozessor eine Firmware ausführen kann, um diese Operationen
zu erzielen, ist kleiner als die, die unter Verwendung einer zweckgebundenen
Hardware erzielt werden kann. Ferner führt ein Verwenden eines Universalmikroprozessors
zur Erzielung dieser Operationen aufgrund der Zwischendruckdatenübertragungen
zwischen dem Mikroprozessor und dem Speicher über den Systembus zu einem
wesentlichen Datenübertragungsmehraufwand.
Die große
Anzahl von Übertragungen über den
Systembus verschlechtert die Verarbeitungsfähigkeit einer Druckdatenverarbeitungspipeline,
die unter Verwendung eines Universalmikroprozessors implementiert
ist, wesentlich.
-
Die
Druckdatenverarbeitungspipelines wurden unter Verwendung zweckgebundener
integrierter Schaltungen implementiert, um spezifische Funktionen
der Druckdatenverarbeitungspipeline zu erzielen. Operationen, wie
z. B. eine Farbraumumwandlung und eine Komprimierung/Dekomprimierung, wurden
in einzelnen integrierten Schaltungen implementiert. Ein Universalmikroprozessor
ist jedoch dennoch zum Bewegen von Druckdaten zwischen den verschiedenen
integrierten Schaltungen und dem Speicher erforderlich, wenn die
Operationen der Druckdatenverarbeitungspipeline durchgeführt werden.
Obwohl dies eine bestimmte Verbesserung bei der Verarbeitungszeit
aufgrund der Verwendung zweckgebundener Hardware ergibt, ist der
Datenübertragungsmehraufwand
dennoch ein die Leistung einschränkender
Faktor. Die Implementierung der Druckdatenverarbeitungspipeline 15 in
der ASIC 120 vermeidet diesen Datenübertragungsmehraufwand durch
ein Durchführen
mehrerer Pipelineoperationen innerhalb der ASIC 120.
-
Das
bevorzugte Ausführungsbeispiel
der Zusammenführungseinheit 128 wählt aus
dem verlustbehafteten und dem verlustfreien Rasterdruckdatenstrom
aus, um einen einzelnen Datenstrom unter Verwendung der Zusammenführungsbits
zu bilden, um das ursprüngliche
Bild zu rekonstruieren. Es sollte jedoch zu erkennen sein, daß die in
der Zusammenführungseinheit 128 verwendeten
Techniken nützlich sind,
um auf eine ähnliche
Weise mehr als zwei Datenströme
unter Verwendung mehrerer Zusammenführungsbits für jede Einheit
zusammengeführter
Daten zu kombinieren. Zusätzlich
können
die zusammengeführten
Datenströme
andere Typen von Daten als Rasterdruckdaten oder andere Partitionen
von Rasterdruckdaten als in einen verlustbehafteten und einen verlustfreien
Rasterdruckdatenstrom umfassen. Der Rasterdruckdatenstrom kann z.
B. abhängig von
der Anwendung einer Halbtonoperation auf die Pixel von Rasterdruckdaten
in mehrere Ströme
unterteilt sein. Die Pixel von Rasterdruckdaten, die einer Halbtonoperation
unterzogen werden, würden unter
Verwendung einer Komprimierungsoperation komprimiert werden, die
für halbgetönte Rasterdruckdaten
optimiert ist. Die Pixel der Rasterdruckdaten, die nicht halbgetönt wurden,
würden
einer unterschiedlichen Komprimierungsoperation unterzogen werden.
Eine weitere mögliche
Partition des Rasterdruckdatenstroms wäre basierend auf der Anzahl
von Bits, die verwendet werden, um jede Farbraumdimension des Pixels
darzustellen. Bereiche einer Seite z. B., die Schwarz- und Weißinformationen
enthalten, könnten
z. B. durch weniger Bits pro Pixel dargestellt werden als Bereiche
von Seiten, die Farbbilder enthalten. In dem extremsten Fall könnten einige
Bereiche der Seite eine Vollfarb-24-Bit-pro-Pixel-Darstellung aufweisen
und andere Bereiche der Seite könnten
eine Binär-Schwarz-und-Weiß-1-Bit-pro-Pixel-Darstellung aufweisen.
Eine separate Verarbeitung eines 24-Bit-pro-Pixel-Stroms von Rasterdruckdaten und eines
1-Bit-pro-Pixel-Stroms
von Rasterdruckdaten ermöglicht
eine Optimierung der Komprimierungs- und Halbtongebungsoperation
für jeden
der Ströme. Eine
weitere mögliche
Partition des Rasterdruckdatenstroms wäre basierend auf der zur Darstellung
der Seite verwendeten Auflösung.
Bereiche eines Bildes, die keine hochdetaillierten Merkmale enthielten, könnten mit
einer niedrigeren Auflösung,
wie z. B. 600 dpi, gedruckt werden. Bereiche eines Bildes, die hochdetaillier te
Merkmale enthielten, könnten
mit einer höheren
Auflösung,
wie z. B. 1.200 dpi, gedruckt werden. Dieser Fall kann auftreten,
wenn es eine konstante Grauskalierungsregion mit einer scharfen Grenze
gibt. Eine separate Verarbeitung eines Rasterdruckdatenstroms mit
höherer
Auflösung
und eines Rasterdruckdatenstroms mit niedrigerer Auflösung würde eine
Optimierung von Halbton- und Komprimierungsoperation für jeden
der Rasterdruckdatenströme
ermöglichen.
-
Es
wird angemerkt, daß,
obwohl das bevorzugte Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 eine Zusammenführungseinheit 130 verwendet,
die die Zusammenführungsoperation 128 bezüglich digitaler
Daten durchführt,
es möglich
wäre, eine
Zusammenführungsoperation
auf der Oberfläche
der Photoleitertrommel in der Druckmaschine 16 durch eine
Entwicklung der verlustbehafteten und der verlustfreien Rasterdruckdaten
bei aufeinanderfolgenden Durchläufen
auf die Oberfläche
der Photoleitertrommel zu implementieren. Diese Zusammenführungsoperation
wäre wirksam
eine ODER-Operation zwischen den verlustbehafteten und den verlustfreien
Rasterdruckdaten, wie dieselben auf der Photoleitertrommel entwickelt
werden. Ferner wäre
es außerdem
möglich,
die Zusammenführungsoperation 13 bezüglich digitaler
Daten zu implementieren, so daß eine
ODER-Operation zwischen
den verlustbehafteten und den verlustfreien Rasterdruckdaten durchgeführt wird,
anstatt eine Zusammenführungsebene
zu verwenden, um zu spezifizieren, aus welchen dieser Ströme die Rasterdruckdaten
ausgewählt
werden sollen.
-
In 3 gezeigt
ist eine Diagrammdarstellung der durch die Zusammenführungseinheit 128 durchgeführten Operation.
Jeder der Abschnitte 20–23 ist Teil des SRAM-Linienpuffers 129 und
jeder Abschnitt entspricht zwei Puffern, die einen der vier Typen
von Druckdatenströmen
halten, die in die Zusammenführungseinheit 128 gelangen.
Eine Zwischenspeicherung wird benötigt, so daß wie benötigt ausreichend Druckdaten
von jedem der Druckdatenströme
verfügbar
sind, um die Zusammenführungsoperation 13 ohne
ein Senken des Rasterdruckdatendurchsatzes der Zusammenführungseinheit 128 durchzuführen. Wenn
die Zusammenführungseinheit 128 jedes
Zusammenführungsbit
verarbeitet, müssen
Bytes von Rasterdruckdaten von sowohl dem verlustfreien als auch
dem verlustbehafteten Druckdatenstrom verfügbar sein, um dem gerade verarbeiteten
Pixel zugeordnet zu sein. Zusätzlich
müssen die
Halbtonbits verfügbar
sein, um die Raumbeziehung mit dem gerade verarbeiteten Pixel beizubehalten.
Für den
verlustfreien Druckdatenstrom wird eine ausreichende Anzahl von
Bytes in dem verlustfreien Linienpuffer 21 gespeichert,
um zwei gesamte Abtastlinien in der Druckmaschine zu bedecken, wenn die
Pixel kontinuierlich auf der gedruckten Seite platziert werden.
Durch ein Speichern von zwei Linien verlustfreier Rasterdruckdaten
in den beiden Puffern, die den verlustfreien Linienpuffer 21 bilden,
können sich
die verlustfreien Rasterdruckdaten auf eine „Ping-Pong"-Weise durch den verlustfreien Linienpuffer 21 bewegen,
um einen hohen Durchsatz beizubehalten.
-
Der
Datenkomprimierungsalgorithmus, der bei dem bevorzugten Ausführungsbeispiel
der Druckdatenverarbeitungspipeline 15 auf die verlustbehafteten
Rasterdruckdaten wirkt, wirkt durch ein Partitionieren der Pixel
des verlustbehafteten Seitenstreifenelements, um Zellen zu bilden,
die bei der Komprimierungsoperation verwendet werden. Die bei dem bevorzugten
Ausführungsbeispiel
der Druckdatenverarbeitungspipeline ausgewählte Zellgröße weist eine Breite von acht
Pixeln und eine Höhe
von acht Pixeln auf. Wenn eine Dekomprimierung bezüglich der
komprimierten, verlustbehafteten rasterisierten Druckdaten durchgeführt wird,
werden ausreichend viele Bytes von Rasterdruckdaten, um einem Block mit
einer Breite von acht Pixeln und einer Höhe von acht Pixeln zu entsprechen,
als die Ausgabe der verlustbehafteten Dekomprimierungsoperation 11 erzeugt.
Da eine Dekomprimierung der komprimierten verlustbehafteten Rasterdruckdaten
Block für
Block durchgeführt
wird, und um eine ausreichende Zwischenspeicherung der verlustbehafteten Rasterdruckdaten
sicherzustellen, die von dem Farbraumumwandler 125 ausgegeben
werden, weist der verlustbehaftete Linienpuffer 20 die
Fähigkeit
auf, zwei Zeilen von Blöcken
zu speichern. Zwei Zeilen von Blöcken
gleichen einer ausreichenden Anzahl von Pixeln, um 16 Druckmaschinenabtastlinien
vollständig zu
bedecken. Durch ein Speichern von zwei Zeilen von Blöcken verlustbehafteter
Rasterdruckdaten in den beiden Puffern, die den verlustbehafteten
Linienpuffer 20 bilden, können sich die verlustbehafteten Rasterdruckdaten
auf eine „Ping-Pong"-Weise durch den
verlustbehafteten Linienpuffer 20 bewegen, um einen hohen
Durchsatz beizubehalten. Der Zusammenführungslinienpuffer 22 und
der Halbtonlinienpuffer 23 enthalten ausreichend viele
Zusammenführungsbits
bzw. Halbtonbits, um zwei Abtastlinien von Pixeln zu verarbeiten.
Deshalb wäre
die Speicherkapazität
des Zusammenführungslinienpuffers 22 ein Achtel
von der des verlustfreien Linienpuffers 21 und die Speicherkapazität des Halbtonlinienpuffers 23 wäre ein Viertel
von der des verlustfreien Linienpuffers 21.
-
Die
Eingänge
des Druckdatenmultiplexers 24 sind mit den Ausgängen des
verlustbehafteten Linienpuffers 20 und des verlustfreien
Linienpuffers 21 verbunden. Der Ausgang des Zusammenführungslinienpuffers 22 steuert
die Auswahl des Eingangsrasterdruckdatenstroms für die Ausgabe des Druckdatenmultiplexers 24.
Basierend auf dem Zustand des Zusammenführungsbits für jedes
Pixel, das einer Verarbeitung unterzogen wird, wählt der Druckdatenmultiplexer 24 die
Rasterdruckdaten für
das Pixel, das gerade verarbeitet wird, aus entweder dem verlustbehafteten
Rasterdruckdatenstrom oder dem verlustfreien Rasterdruckdaten aus.
Der zusammengeführte
Rasterdruckdatenstrom aus dem Ausgang des Druckdatenmultiplexers 24 ist
eine Kombination der beiden Eingangsrasterdruckdatenströme, so daß die Raumsynchronisierung
zwischen den Pixeln in dem ursprünglichen
Bild in dem rekonstruierten Bild beibehalten wird. Die Halbtonbits,
die zuvor entsprechenden Pixeln von sowohl dem verlustfreien als auch
dem verlustbehafteten Rasterdruckdatenstrom zuge ordnet wurden, behalten
die Pixel-für-Pixel-Raumsynchronisierung
mit den Rasterdruckdaten bei, die vorhanden waren, als die Halbtonbits
in die Zusammenführungseinheit 128 gelangt
sind.
-
In 4 gezeigt
ist ein Blockdiagramm der Zusammenführungseinheit 128 auf
hoher Ebene. Der verlustbehaftete Rasterdruckdatenstrom 30 und der
verlustfreie Rasterdruckdatenstrom 31, die jeweils aus
einem Strom aus Acht-Bit-Bytes
bestehen, sind in dem verlustbehafteten Eingangspuffer 32 bzw.
dem verlustfreien Eingangspuffer 33 gespeichert. Der Strom
von Zusammenführungsbits 34 und Halbtonbits 35,
die jeweils in einen Strom gebildet sind, der aus Acht-Bit-Bytes
besteht, sind in dem Zusammenführungseingangspuffer 36 bzw.
dem Halbtoneingangspuffer 37 gespeichert. Die Eingangspuffer 32, 33, 36, 37 sind
so entworfen, daß jeder
dieser Druckdatenströme
von einer Breite von acht Bits in eine Breite von 32 Bits umgewandelt
wird, wenn die Druckdatenströme
von den Eingangspuffern 32, 33, 36, 37 gesandt
werden.
-
Eine
Farbraumumwandlerschnittstellensteuerung 38 umfasst die
Eingangspuffersteuerungsfähigkeit,
die die Übertragung
der vier Druckdatenströme
durch die Eingangspuffer 32, 33, 36, 37 verwaltet. Diese
Steuerungsfähigkeit
sendet und empfängt Handschlag-
bzw. Handshakingsignale zu und von dem Farbraumumwandler 125.
Diese Handschlagsignale steuern den Fluss von Druckdaten von dem Farbraumumwandler 125 zu
den Eingangspuffern 32, 33, 36, 37.
Aus diesen Handschlagsignalen erzeugt die Farbraumumwandlerschnittstellensteuerung 38 die
Freigabesignale, die es ermöglichen,
daß die
Eingangspuffer 32, 33, 36, 37 den
geeigneten Typ von Druckdaten (verlustbehaftet, verlustfrei, Halbton oder
Zusammenführung)
in den entsprechenden der Eingangspuffer 32, 33, 36, 37 laden.
Die von dem Farbraumumwandler 125 empfangenen Handschlagsignale
umfassen Signale, die anzeigen, wann verlustbehaftete und verlustfreie
Rasterdruckdaten zur Übertragung
zu dem verlustbehafteten 32 und verlustfreien 33 Eingangspuffer
verfügbar
sind. Die Farbraumumwandlerschnittstellensteuerung 38 empfängt außerdem Handschlagsignale,
die anzeigen, wann die Zusammenführungs-
und die Halbtondruckdaten zur Übertragung
zu dem Zusammenführungs-36- und
Halbton-37-Eingangspuffer verfügbar sind. Die Handschlagsignale,
die von der Farbraumumwandlerschnittstellensteuerung 38 an den
Farbraumumwandler 125 und den Seitenstreifenverwalter 134 gesandt
werden, umfassen außerdem
Signale, die anzeigen, wann jeder der Eingangspuffer 32, 33, 36, 37 bereit
ist, um Eingangsdruckdaten zu empfangen.
-
Die
32 Bits breiten Datenströme 40, 41, 42, 43,
die von jedem der Eingangspuffer 32, 33, 36, 37 ausgegeben
werden, werden an den Eingangspuffermultiplexer 39 gesandt.
Die Farbraumumwandlerschnittstellensteuerung 38 steuert
den Fluss der Druckdatenströme
von den Eingangspuffern 32, 33, 36, 37 durch
den Eingangspuffermultiplexer 39. Steuerungssignale 47,
die durch die Farbraumumwandlerschnittstellensteuerung 38 erzeugt
werden, wählen
einen der 32 Bits breiten Datenströme 40, 41, 42, 43 zur Übertragung
an die SRAM-Schnittstellensteuerung 44 aus. Eine Zustandsmaschine
(nicht separat gezeigt), die in der Farbraumumwandlerschnittstellensteuerung 38 enthalten
ist, erzeugt die Steuerungssignale 47, die bestimmen, welcher
der Druckdatenströme
von den Eingangspuffern 32, 33, 36, 37 durch
den Eingangspuffermultiplexer 39 zur Übertragung zu der SRAM-Schnittstellensteuerung 44 ausgewählt wird.
-
Die
SRAM-Schnittstellensteuerung 44 und die Farbraumumwandlerschnittstellensteuerung 38 erzeugen
jeweils die notwendigen Handschlagsignale 45, um Druckdaten
durch den Eingangspuffermultiplexer 39 an die SRAM-Schnittstellensteuerung 44 zu übertragen.
Die SRAM-Schnittstellensteuerung 44 erzeugt ein Handschlagsignal,
das der Farbraumumwandlerschnittstellensteuerung 38 anzeigt,
daß die SRAM-Schnittstellensteuerung 44 bereit
ist, um Druckdaten zu empfangen. Die Farbraumumwandlerschnittstellensteuerung 38 liefert
Steuerungssignale, um den Typ von Druckdaten (verlustbehaftet, verlustfrei,
Halbton oder Zusammenführung)
zu identifizieren, die von dem Eingangspuffermultiplexer 39 gesandt
werden. Die Druckdaten, die durch die SRAM-Schnittstellensteuerung 44 empfangen
werden, sind in dem SRAM-Linienpuffer 129 gespeichert.
Der SRAM-Linienpuffer 129 ist in Abschnitte partitioniert,
die jedem der Druckdatentypen (verlustbehaftet, verlustfrei, Halbton
und Zusammenführung) entsprechen.
Die Linienpuffer 20–23 in
dem SRAM-Linienpuffer 129 entsprechen denjenigen, die in 3 dargestellt
sind. Eine Speicherung der Druckdaten in dem SRAM-Linienpuffer 129 stellt
sicher, daß ausreichend
viele Druckdaten verfügbar sind,
um die Zusammenführungsoperation
ununterbrochen durchzuführen.
Die durch die SRAM-Schnittstellensteuerung 44 empfangenen Druckdaten
werden in dem geeigneten Abschnitt des SRAM-Linienpuffers 129 gespeichert,
wie dies durch die Steuerungssignale 45 aus der Farbraumumwandlerschnittstellensteuerung 38 bestimmt
wird. Die in dem SRAM-Linienpuffer 129 gespeicherten Druckdaten
werden in die SRAM-Schnittstellensteuerung 44 geladen,
so daß die
Druckdaten zur Durchführung
der Zusammenführungsoperation 13 verfügbar sind.
Druckdaten werden in den SRAM-Linienpuffer 129 über einen
einzelnen bidirektionalen 32 Bit breiten Bus 49 gespeichert
und über
denselben von demselben geladen. Obwohl dieser Bus 49 in 3 als
zwei unidirektionale Busse dargestellt ist, verwendet das bevorzugte
Ausführungsbeispiel
der Zusammenführungseinheit 128 einen
einzelnen bidirektionalen Bus. Die SRAM-Schnittstellensteuerung 44 erzeugt
die Adressen zum Zugreifen auf Speicherorte in dem SRAM-Linienpuffer 129 über den
Adressbus 50.
-
Druckdaten,
die von dem SRAM-Linienpuffer 129 in die SRAM-Schnittstellensteuerung 44 geladen werden,
werden in Vorbereitung für
eine Durchführung
der Zusammenführungsoperation
zu den Ausgangspuffern 51, 52, 53, 54 übertragen.
Die Ausgangspuffer 51, 52, 53, 54 umfassen
den verlustbehafteten Ausgangspuffer 51, den verlustfreien
Ausgangspuffer 52, den Zusammenführungsausgangspuffer 53 und
den Halbtonausgangspuffer 54. Der Halbtonausgangspuffer 54 und
der Zusammenführungsausgangspuffer 53 sind
jeweils aus Schieberegistern gebildet. Die Verwendung von Schieberegistern
ermöglicht
es, daß 32-Bit-Wörter der
Halbtondruckdaten und der Zusammenführungsdruckdaten in die Paare
von Bits (Halbtondruckdaten) oder einzelne Bits (Zusammenführungsdruckdaten)
partitioniert werden, die mit Rasterdruckdaten übereingestimmt werden, die
dem gemeinsam zugeordneten Pixel entsprechen. Eine Übertragung
der Druckdaten von der SRAM-Schnittstellensteuerung
zu den Ausgangspuffern 51, 52, 53, 54 wird
durch Steuerungssignale 56 zwischen der Halbtonschnittstellensteuerung 55 und
der SRAM-Schnittstellensteuerung 44 verwaltet. Die Steuerungssignale 56 umfassen
Signale, die anzeigen, wann jeder der Ausgangspuffer 51, 52, 53, 54 bereit
ist, um den entsprechenden Typ von Druckdaten (verlustbehaftet,
verlustfrei, Halbton, Zusammenführung)
zu empfangen, und umfassen Signale, die anzeigen, wann die SRAM-Schnittstellensteuerung 44 Druckdaten
aufweist, die zur Übertragung
an die Ausgangspuffer 51, 52, 53, 54 verfügbar sind.
-
Eine
Halbtonschnittstellensteuerung 55 erzeugt Steuerungssignale 57,
die die Übertragung
von Druckdaten durch die Ausgangspuffer 51, 52, 53, 54 steuern.
Der Eingangsdruckdatenstrom in jeden der Ausgangspuffer 51, 52, 53, 54 ist
32 Bits breit. Der verlustbehaftete und der verlustfreie Rasterdruckdatenstrom,
die aus dem verlustbehafteten Rasterdruckdatenausgangspuffer 51 und
dem verlustfreien Rasterdruckdatenausgangspuffer 52 ausgegeben werden,
sind jeweils acht Bits breit. Die Steuerungssignale 57 umfassen
die Freigabesignale, die es ermöglichen,
daß der
geeignete Druckdatentyp in die entsprechenden Ausgangspuffer 51, 52, 53, 54 geladen
wird. In jedem des verlustbehafteten 51 und verlustfreien 52 Rasterdruckdatenausgangspuffer
enthalten ist ein Multiplexer (in 4 nicht
gezeigt), der eines der vier Acht-Bit-Bytes, die in dem 32 Bit breiten
verlustbehafteten und verlustfreien Rasterdruckdatenstrom enthal ten
sind, zur Übertragung
an den Druckdatenmultiplexer 24 auswählt. Die Steuerungssignale 57 umfassen
die Signale, die notwendig sind, um die Multiplexer zu steuern,
die ein Teil des verlustbehafteten Ausgangspuffers 51 und
des verlustfreien Ausgangspuffers 52 sind. Die Steuerungssignale 57, die
durch die Halbtonschnittstellensteuerung 55 erzeugt werden,
umfassen die Signale, die notwendig sind, um den 32 Bit breiten
Halbton- und den Zusammenführungsdatenstrom
in den entsprechenden Halbtondatenausgangspuffer 54 und
den Zusammenführungsdatenausgangspuffer 53 zu
laden. Wie bereits erwähnt
wurde, umfassen der Halbtondatenausgangspuffer 54 und der
Zusammenführungsdatenausgangspuffer 53 jeweils
Schieberegister. Zusätzlich
umfassen der Halbtondatenausgangspuffer 54 und der Zusammenführungsdatenausgangspuffer 53 jeweils
einen Multiplexer (in 4 nicht gezeigt), der aus entweder
dem Rechtsverschiebeausgang oder dem Linksverschiebeausgang auswählt, wie durch
ein Signal bestimmt wird, das in den Steuerungssignalen 57 enthalten
ist. Dieses Signal steuert außerdem
die Richtung, in der das Schieberegister die Zusammenführungsdaten
und die Halbtondaten bewegt. Es ist nötig, die Richtung, in der das
Schieberegister die Zusammenführungsdaten
und die Halbtondaten bewegt, für
ein Drucken in einem doppelseitigen Modus zu steuern. Bei einem
doppelseitigen Druckmodus ist die Reihenfolge, in der die Rasterdruckdaten
an die Druckmaschine 16 geliefert werden, bezüglich der
Oberseite und der Unterseite der Seite zwischen einem Drucken der
Vorderseite und der Hinterseite der Seite umgekehrt.
-
Der
Druckdatenmultiplexer 24 empfängt als Eingänge den
Byte-breiten verlustbehafteten und den verlustfreien Rasterdruckdatenstrom.
Der ein einzelnes Bit breite Zusammenführungsdatenstrom, der von dem
Zusammenführungsausgangspuffer 53 ausgegeben
wird, steuert die Auswahl eines der Eingangsrasterdruckdatenströme zur Ausgabe
von der Zusammenführungseinheit 128.
Durch ein Beibehalten der relativen Reihenfolge der Zusammenführungsbits
in dem Zusammenführungsdatenstrom
und der relativen Reihenfolge der verlust behafteten und verlustfreien
Rasterdruckdaten in ihren jeweiligen Rasterdruckdatenströmen, wie
dieselben durch die verschiedenen Puffer in die Zusammenführungseinheit 128 bewegt
wurden, konstruiert die Zusammenführungsoperation 13,
die durch den Druckdatenmultiplexer 24 durchgeführt wird,
die ursprüngliche
Seite korrekt auf einer Pixel-für-Pixel-Basis. Fachleute
auf dem Gebiet eines Digitalentwurfs würden nach einem Verstehen dieser
Spezifizierung das Wissen besitzen, um die Logikschaltungen, die
zur Durchführung
der Funktionen des Druckdatenmultiplexers 24 benötigt werden,
zu entwerfen.
-
Der
SRAM-Linienpuffer 129 ermöglicht eine Festlegung einer
zeitlichen und räumlichen
Synchronisierung zwischen den verlustbehafteten und den verlustfreien
Rasterdruckdaten, den Zusammenführungsdaten
und den Halbtondaten. Da die dekomprimierten, verlustbehafteten
Rasterdruckdaten in acht Pixel breite und acht Pixel hohe Blöcke dekomprimiert
werden, werden die dekomprimierten verlustbehafteten Rasterdruckdaten
an die Zusammenführungseinheit 128 geliefert
und in dem SRAM-Linienpuffer 129 außerhalb einer Synchronisierung
mit den anderen Druckdaten gespeichert. Die Weise, auf die die Druckdaten
aus dem SRAM-Linienpuffer 129 entfernt werden, legt die
zeitliche und die räumliche
Synchronisierung fest. Es wird darauf verwiesen, daß Zusammenführungseinheitsimplementierungen,
die die Verwendung des SRAM-Linienpuffers 129 nicht benötigen, möglich sind.
Wenn der verlustbehaftete und der verlustfreie Rasterdruckdatenstrom
und die Zusammenführungsdaten
auf eine zeitlich und räumlich synchronisierte
Weise der Zusammenführungseinheit
zugeführt
werden, wird der Bedarf nach einem Zwischenspeichern der Druckdatenströme im Inneren
der Zusammenführungseinheit 128 beseitigt.
Für die
Zusammenführungseinheitsimplementierung,
für die
es notwendig ist, zeitlich und räumlich
synchronisierte Druckdatenströme
zu empfangen, könnte
die Zwischenspeicherung der Druckdatenströme, falls nötig, außerhalb der Zusammenführungseinheit durchgeführt werden.
Ferner könnte
mit einer zeitlichen und räumlichen
Synchro nisierung zwischen dem verlustbehafteten und dem verlustfreien
Rasterdruckdatenstrom und dem Zusammenführungsdatenstrom die Zusammenführungseinheit
wesentlich vereinfacht werden, um unter Verwendung des Druckdatenmultiplexers 24 zu
funktionieren.
-
Der
Zusammenführungsdatenausgangspuffer 53 wirkt,
um den Byte-breiten Strom von Zusammenführungsdaten in einen ein einzelnes
Bit breiten Strom umzuwandeln, der mit den verlustbehafteten oder
verlustfreien Rasterdruckdaten synchronisiert ist, die das entsprechende
Pixel darstellen. Obwohl das bevorzugte Ausführungsbeispiel der Zusammenführungseinheit 128 ein
einzelnes Bit verwendet, um aus den Bytes verlustbehafteter und
verlustfreier Rasterdruckdaten auszuwählen, wird darauf verwiesen,
daß ein
mehrere Bits breiter Strom verwendet werden kann, um aus mehr als
zwei Rasterdruckdatenströmen
auszuwählen,
und die Rasterdruckdatenströme
mehr als acht Bits verwenden können,
um jede Dimension des Farbraums darzustellen.
-
In 5 gezeigt
ist eine vereinfachte Schematik der Anordnung auf der Eingangsseite
des verlustbehafteten Eingangspuffers 32, die darstellend für die Operation
jedes der Eingangspuffer 32, 33, 36, 37 ist.
Der exemplarische verlustbehaftete Eingangspuffer 32 ist
aus acht Acht-Bit-Daten-Latchspeichern 60–67 gebildet.
Der verlustbehaftete Acht-Bit-Eingangsrasterdruckdatenstrom 68 wird
den „DATA"-Eingängen
jedes der acht Daten-Latchspeicher 60–67 vorgelegt. Die
acht Drei-Eingangs-UND-Gatter 69–76, die mit den „EN"-Eingängen der
acht Daten-Latchspeicher 60–67 verbunden sind,
decodieren Steuerungssignale, die durch die Farbraumumwandlerschnittstellensteuerung 38 erzeugt
werden, um einen der acht Daten-Latchspeicher 60–67 zum
Laden eines Bytes des Eingangsdruckdatenstroms auszuwählen. Die
Decodierungslogik ist Teil der Farbraumumwandlerschnittstellensteuerung 38.
Wie in 5 gezeigt ist, sind die acht Daten-Latchspeicher 60–67 in
zwei Bänke
partitioniert, die jeweils vier Daten-Latchspeicher aufweisen. Die Decodierung
der Steuerungssignale wird so durchgeführt, daß vier aufeinanderfolgend übertragene
Bytes des Druckdatenstroms in eine der zwei Bänke geladen werden und die
nächsten
vier nacheinander übertragenen
Bytes des Druckdatenstroms in die andere der beiden Bänke geladen
werden. Ein Laden der Eingangspuffer 32, 33, 36, 37 so,
daß aufeinanderfolgend übertragene
Gruppen von vier Bytes des Druckdatenstroms abwechselnd in eine
der beiden Bänke
von Daten-Latchspeichern
geladen werden, behält
den Fluss von Druckdaten durch die Eingangspuffer 32, 33, 36, 37 bei.
Während
eine der beiden Bänke
mit Eingangsdruckdaten geladen wird, kann eine Übertragung von Druckdaten aus
der anderen der beiden Bänke
auftreten.
-
In 6 gezeigt
ist eine vereinfachte Schematik der Anordnung der Ausgangsseite
des verlustbehafteten Eingangspuffers 32, die darstellend
für die
Operation jedes der Eingangspuffer 32, 33, 36, 37 ist.
Die „OE"-Eingänge der
acht Daten-Latchspeicher 60–67 sind mit einem
festen Logikpegel verbunden, so daß die verlustbehafteten Rasterdruckdaten,
die in dem verlustbehafteten Eingangspuffer 32 gespeichert
sind, aus den Daten-Latchspeichern 60–67 bei der ansteigenden
Flanke jedes Taktzyklus ausgegeben werden. Die vier Acht-Bit-Ausgänge jeder
der beiden Bänke
des verlustbehafteten Eingangspuffers 32 bilden zwei 32
Bit breite Druckdatenströme.
Diese beiden 32 Bits breiten Druckdatenströme sind mit den Eingängen des
Multiplexers 70 verbunden. Einer dieser beiden 32 Bit breiten
Druckdatenströme
ist zur Eingabe in den Eingangspuffermultiplexer 39 ausgewählt. Diese
Auswahl wird durch den Multiplexer 70 unter Verwendung
eines Steuerungssignals durchgeführt,
das durch die Farbraumumwandlerschnittstellensteuerung 38 erzeugt
wird. Dieses Steuerungssignal erfasst, welche der beiden Bänke von
Eingangspuffern 32, 33, 36, 37 voll
und bereit ist, daß die Druckdaten,
die in denselben enthalten sind, an den Eingangspuffermultiplexer 39 gesandt
werden. Ein Übertragen
von Druckdaten aus den Eingangspuffern 32, 33, 36, 37 heraus,
so daß eine
der Gruppen von vier Bytes, die in jeder der beiden Bänke gespeichert
sind, abwechselnd ausgewählt
wird, behält
den Fluss von Druckdaten durch die Eingangspuffer 32, 33, 36, 37 bei
und behält
den Fluss von Druckdaten in den Eingangspuffermultiplexer 39 bei.
Während vier
Bytes von Druckdaten aus einer der beiden Bänke heraus übertragen werden, kann ein
Laden von vier Bytes Druckdaten in die andere der beiden Bänke auftreten.
-
In 7 gezeigt
ist eine vereinfachte Schematik der Anordnung der Eingangsseite
des verlustbehafteten Ausgangspuffers 51 und des verlustfreien Ausgangspuffers 52.
Jeder des verlustbehafteten 51 und des verlustfreien 52 Ausgangspuffers
umfasst zwei Bänke
mit vier Acht-Bit-Daten-Latchspeichern 80–95.
Der 32 Bit breite verlustbehaftete Rasterdruckdatenstrom und der
verlustfreie Rasterdruckdatenstrom im Inneren der Zusammenführungseinheit 128 sind
jeweils in vier acht Bit breite verlustbehaftete und verlustfreie
Rasterdruckdatenströme
partitioniert, die den „DATA"-Eingängen jedes
der jeweiligen Daten-Latchspeicher 80–95 vorlegt werden.
Die „EN"-Eingänge jedes
der Daten-Latchspeicher 80–95 steuern
das Laden der verlustbehafteten und der verlustfreien Rasterdruckdaten
in die Daten-Latchspeicher 80–95.
Die vier UND-Gatter 96–99 sind
Teil der Halbtonschnittstellensteuerung 55 und werden verwendet,
um Steuerungssignale zu decodieren, die durch die Halbtonschnittstellensteuerung 55 erzeugt werden,
die ein Laden der Daten-Latchspeicher 80–95 steuern.
Während
verlustbehaftete und verlustfreie Rasterdruckdaten in ein Paar von
Bänken von
Daten-Latchspeichern 80–95 geladen werden, können verlustbehaftete
oder verlustfreie Rasterdruckdaten aus dem anderen Paar der Bänke von Daten-Latchspeichern 80–95 heraus übertragen
werden. Die Verwendung dieses Zwischenspeicherverfahrens behält den Fluss
von Druckdaten durch den verlustbehafteten und den verlustfreien
Ausgangspuffer 51, 52 bei.
-
In 8 gezeigt
ist eine vereinfachte Schematik der Anordnung der Ausgangsseite
für ein
Paar einer verlustbe hafteten und einer verlustfreien Bank von Daten-Latchspeichern 80–83, 88–91 für den verlustbehafteten 51 und
verlustfreien 52 Ausgangspuffer. Die Ausgangsseite für die anderen
beiden Bänke der
Daten-Latchspeicher 84–87, 92–95 für den verlustbehafteten 51 und
den verlustfreien 52 Ausgangspuffer ist ähnlich implementiert.
Der verlustbehaftete 51 und der verlustfreie 52 Ausgangspuffer wandeln
den 32 Bit breiten verlustbehafteten und verlustfreien Eingangsrasterdruckdatenstrom
in einen acht Bit breiten verlustbehafteten und verlustfreien Rasterdruckdatenstrom
um. Die „OE"-Eingänge der acht
Daten-Latchspeicher 80–83, 88–91 sind
mit einem festen Logikpegel verbunden, so daß die verlustbehafteten und
verlustfreien Rasterdruckdaten, die in diesen Daten-Latchspeichern 80–83, 88–91 gespeichert
sind, bei der ansteigenden Flanke jedes Taktzyklus ausgegeben werden.
Die Multiplexer 100, 101 werden verwendet, um
einen der Acht-Bit-Ausgänge
aus den jeweiligen Daten-Latchspeichern 80–83, 88–91 zur
Eingabe in den Druckdatenmultiplexer 24 auszuwählen. Die
Acht-Bit-Ausgänge von den
jeweiligen Daten-Latchspeichern 80–83, 88–91 werden
durch die jeweiligen Multiplexer 100, 101 ausgewählt, so
daß die
relative Reihenfolge der Acht-Bit-Bytes
in dem jeweiligen verlustbehafteten und verlustfreien Rasterdruckdatenstrom
beibehalten wird. Dies ist nötig,
so daß die
Zusammenführungsoperation 13,
die durch den Druckdatenmultiplexer 24 durchgeführt wird,
die ursprüngliche
Seite korrekt rekonstruiert. Die zur Steuerung der Multiplexer 100, 101 verwendeten
Signale werden durch die Halbtonschnittstellensteuerung 55 erzeugt.
Der Strom von Zusammenführungsbits,
die durch den Zusammenführungsausgangspuffer 53 ausgegeben werden,
steuert die Auswahl von Acht-Bit-Bytes durch den Druckdatenmultiplexer 24 aus
dem verlustbehafteten und dem verlustfreien Rasterdruckdatenstrom.
Der Rasterdruckdatenstrom, der aus dem Druckdatenmultiplexer 24 hervorgeht,
ist acht Bits breit und besteht aus dem zusammengeführten verlustbehafteten
und verlustfreien Rasterdruckdatenstrom.
-
In 9 gezeigt
sind vereinfachte Schematiken des Halbtonausgangsschieberegisters 110 und des
Zusammenführungsausgangsschieberegisters 111.
Der 32 Bit breite Halbtondruckdatenstrom 112 und der 32
Bit breite Zusammenführungsdruckdatenstrom 113 sind
in die jeweiligen Ausgangsschieberegister 110, 111 geladen.
Signale von der Halbtonschnittstellensteuerung 55 an die „LD"-Eingänge auf jedem
der Ausgangsschieberegister 110, 111 steuern ein
Laden der Halbton- und der Zusammenführungsdruckdaten. Die Verwendung
von Schieberegistern 110, 111 ermöglicht es,
daß die
Byteausgerichteten Halbtondruckdaten und Zusammenführungsdruckdaten
in einen zwei Bit breiten bzw. einen ein Bit breiten Strom von Druckdaten
partitioniert werden, so daß die
relative Reihenfolge dieser beiden Datenströme bezüglich des verlustbehafteten
und des verlustfreien Rasterdruckdatenstroms beibehalten wird.
-
Die
UND-Gatter 114, 115, die in der Halbtonschnittstellensteuerung 55 enthalten
sind, steuern das Verschieben der Zusammenführungsdaten und der Halbtondruckdaten
aus ihren jeweiligen Schieberegistern 110, 111 heraus.
Wenn die „EN"-Eingänge der
Schieberegister 110, 111 aktiviert sind, schieben die
jeweiligen Register Zusammenführungsdruckdaten
und Halbtondruckdaten heraus. Abhängig von dem Pegel des „DIR"-Eingangs in die
Schieberegister 110, 111 werden die Zusammenführungs-
und Halbtondruckdaten bei der ansteigenden Flanke des Taktes aus
dem „SLD"- oder „SRD"-Ausgang heraus verschoben.
Der „DIR"-Eingang steuert
die Richtung der Verschiebung der Zusammenführungs- und Halbtondruckdaten
in den Registern 110, 111, so daß die relative
Reihenfolge des Zusammenführungs- und
Halbtondruckdatenstroms bezüglich
des verlustbehafteten und verlustfreien Rasterdruckdatenstroms beibehalten
wird. Abhängig
davon, wie die Zusammenführungs-
und Halbtonbits bezüglich
des niederstwertigen und höchstwertigen
Bits der 32 Bits geordnet sind, wenn dieselben in ihre jeweiligen
32 Bit breiten Druckdatenströme
im Inneren der Zusammenführungseinheit 128 gebildet
werden, werden die „DIR"-Eingänge gesteuert,
um eine räumliche
Synchronisierung mit dem verlustbehafteten und dem verlustfreien
Druckdatenstrom beizubehalten.
-
Der
Halbtondruckdatenstrom, der aus dem Schieberegister 110 heraus
verschoben wird, ist zwei Bits breit und der Zusammenführungsdruckdatenstrom,
der aus dem Schieberegister 111 heraus verschoben wird,
ist ein einzelnes Bit breit. Multiplexer 116, 117 werden
durch das gleiche Signal gesteuert, das mit den „DIR"-Eingängen der Schieberegister 110, 111 verbunden
ist, um den „SRD"- oder „SLD"-Ausgang der Schieberegister 110, 111 auszuwählen, der
aus den Multiplexern 116, 117 ausgegeben werden
soll. Der ein einzelnes Bit breite Strom von Zusammenführungsdruckdaten,
die von dem Multiplexer 117 ausgegeben werden, ist mit
dem Steuerungseingang des Druckdatenmultiplexers 24 verbunden,
um Pixel für
Pixel aus dem verlustbehafteten oder verlustfreien Rasterdruckdatenstrom
auszuwählen.
Die Ausgangsdruckdaten aus der Zusammenführungseinheit 128 umfassen
den acht Bit breiten zusammengeführten
Rasterdruckdatenstrom, der aus dem Puffermultiplexer 24 ausgegeben
wird, und den zwei Bit breiten Halbtondruckdatenstrom, der aus dem
Multiplexer 116 ausgegeben wird.