DE69814988T2 - Datenzusammenfügevorrichtung - Google Patents

Datenzusammenfügevorrichtung Download PDF

Info

Publication number
DE69814988T2
DE69814988T2 DE69814988T DE69814988T DE69814988T2 DE 69814988 T2 DE69814988 T2 DE 69814988T2 DE 69814988 T DE69814988 T DE 69814988T DE 69814988 T DE69814988 T DE 69814988T DE 69814988 T2 DE69814988 T2 DE 69814988T2
Authority
DE
Germany
Prior art keywords
print data
data
lossy
lossless
merge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69814988T
Other languages
English (en)
Other versions
DE69814988D1 (de
Inventor
Jr. Gary L. Vondran
James R. Nottingham
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69814988D1 publication Critical patent/DE69814988D1/de
Publication of DE69814988T2 publication Critical patent/DE69814988T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/32Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Record Information Processing For Printing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

  • Technisches Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf die Verarbeitung von Daten und insbesondere auf eine Zusammenführungseinheit, die verwendet wird, um Druckdaten in der Druckdatenverarbeitungspipeline eines Druckers zusammenzuführen.
  • 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, wird eine Anzahl möglicher Firmwareroutinen wie benötigt ausgeführt, um die zuvor genannten Operationen fertigzustellen.
  • Die Besonderheiten der durchgeführten Druckdatenkomprimierungsoperation hängen von dem Typ von Druckdaten ab, die in die Pipeline gelangen. Bei bestimmten Typen von Druckdaten z. B., wie z. B. Bilddruckdaten, sind Druckdatenkomprimierungsroutinen, die zu einem bestimmten Informationsverlust führen, akzeptabel. Bei diesen Typen von Druckdaten ist die Abnahme der Qualität der gedruckten Ausgabe nicht wahrnehmbar. Komprimierungsroutinen, die zu einem Verlust von Informationen führen, die in der gedruckten Ausgabe nicht wahrnehmbar sind, werden als „visuell verlustfreie" Systeme bezeichnet. Für andere Typen von Druckdaten jedoch, wie z. B. Text und Strichvorlagen, ist es für die Qualität der gedruckten Ausgabe wichtig, daß die verwendeten Druckdatenkomprimierungsroutinen zu keinem Verlust von Informationen führen.
  • Datenkomprimierungs-/Dekomprimierungssysteme, die in der Technik bekannt sind, codieren einen Strom von Digitaldatensignalen in komprimierte Digitalcodesignale und decodieren die komprimierten Digitalcodesignale wieder in die ursprünglichen Daten zurück. Eine Datenkomprimierung bezieht sich auf jeden Prozeß, der versucht, Daten in einem bestimmten Format in ein alternatives Format umzuwandeln, das weniger Raum als das Original benötigt. Das Ziel von Datenkomprimierungssystemen beseht darin, eine Einsparung bei der Menge an Speicher zu bewirken, die erforderlich ist, um einen bestimmten Körper digitaler Informationen zu halten. Wenn diese digitalen Informationen eine digitale Darstellung eines Bildes oder von Text sind, sind Datenkomprimierungssysteme in zwei allgemeine Typen unterteilt: verlustbehaftet und verlustfrei.
  • Die verlustfreien Systeme weisen etwas auf, was als Reziprozität bezeichnet wird. Damit das Datenkomprimierungssystem die Eigenschaft einer Reziprozität besitzt, muß es möglich sein, die komprimierten Daten wieder in ihre ursprüngliche Form zurück zu erweitern oder zu decodieren, und zwar ohne jegliche Veränderung oder einen Verlust von Informationen. Die decodierten und die ursprünglichen Daten müssen identisch und bezüglich einander nicht zu unterscheiden sein. So ist die Eigenschaft einer Reziprozität synonym zu der einer strengen Rauschfreiheit, die bei einer Informationstheorie verwendet wird.
  • Einige Anwendungen erfordern jedoch keine strenge Einhaltung der Eigenschaft einer Reziprozität. Wie oben angemerkt wurde, ist eine derartige Anwendung insbesondere, wenn Bilddaten gehandhabt werden. Da das menschliche Auge für ein Rauschen nicht empfindlich ist, ist eine bestimmte Änderung oder ein Verlust von Informationen während des Komprimierungs- und Dekomprimierungsverfahrens akzeptabel. Dieser Verlust von Informationen gibt den verlustbehafteten Datenkomprimierungssystemen ihren Namen.
  • Ein wichtiges Kriterium bei dem Entwurf von Datenkomprimierungssystemen ist die Komprimierungswirksamkeit, die durch das Komprimierungsverhältnis gekennzeichnet ist. Das Komprimierungsverhältnis ist das Verhältnis einer Datengröße in unkomprimierter Form geteilt durch die Größe in komprimierter Form. Damit Daten komprimierbar sind, müssen dieselben eine Redundanz enthalten. Eine Komprimierungswirksamkeit wird dadurch bestimmt, wie effektiv die Komprimierungsprozedur die Redundanz in den Eingangsdaten verwendet. Bei typischen computergespeicherten Daten tritt eine Redundanz sowohl bei der nichteinheitlichen Verwendung einer einzelnen Symbologie, z. B. Stellen, Bytes oder Zeichen, als auch bei einem häufigen erneuten Auftreten von Symbolsequenzen, wie z. B. häufigen Wörtern, Leerstellenaufzeichnungsfeldern und dergleichen, auf.
  • Das Datenkomprimierungssystem sollte eine ausreichende Leistung bezüglich der Datenraten liefern, die durch den Drucker bereitgestellt und durch denselben akzeptiert werden. Die Rate, mit der Daten komprimiert werden können, wird durch die Eingangsdatenverarbeitungsrate des Komprimierungssystems bestimmt. Eine ausreichende Leistung ist nötig, um die erzielten Datenraten beizubehalten und eine Unterbrechung eines Druckens, da keine verarbeiteten Daten verfügbar sind, zu vermeiden. So muß das Datenkomprimierungs- und Dekomprimierungssystem eine ausreichende Daten bandbreite aufweisen, um das Gesamtsystem nicht nachteilig zu beeinflussen.
  • Üblicherweise ist die Leistung von Datenkomprimierungs- und Dekomprimierungssystemen durch die Berechnungen, die benötigt werden, um zu komprimieren und zu dekomprimieren, sowie die Geschwindigkeit der Systemkomponenten, wie z. B. Direktzugriffsspeicher und dergleichen, die verwendet werden, um statistische Daten zu speichern und den Komprimierungsprozeß zu führen, eingeschränkt. Dies gilt insbesondere, wenn die Komprimierungs- und Dekomprimierungssysteme in Firmware implementiert sind, wobei eine Firmware eine Universaltyp-Zentralverarbeitungseinheit führt, um den Datenkomprimierungs- und Dekomprimierungsprozeß durchzuführen. Bei einem derartigen System ist eine Leistung für eine Komprimierungsvorrichtung durch die Anzahl von Prozessorzyklen, die während einer Komprimierung pro Eingabezeichen benötigt werden, gekennzeichnet. Je geringer die Anzahl von Zyklen ist, desto höher ist die Leistung. Die Firmwarelösungen sind durch die Geschwindigkeit der Firmwarekomprimierung und -dekomprimierung eingeschränkt, da eine Firmware mehrere Zentralprozessoreinheitszyklen benötigt, um jedes Byte zu dekomprimieren. So wurde der Firmwareprozeß allgemein zugeschnitten, um Komprimierungsverhältnisse zu senken, um eine Dekomprimierungsgeschwindigkeit zu erhöhen.
  • Universaldatenkomprimierungsprozeduren sind in dem Stand der Technik bekannt; drei relevante Prozeduren sind das Huffman-Verfahren, das Tunstall-Verfahren und das Lempel-Ziv-Verfahren. Eine der ersten Universaldatenkomprimierungsprozeduren, die entwickelt wurde, ist das Huffman-Verfahren. Kurz beschrieben bildet das Huffman-Verfahren Vollängensegmente von Symbolen in Wörter mit variabler Länge ab. Das Tunstall-Verfahren, das Symbole mit variabler Länge in Binärwörter mit fester Länge abbildet, ist komplementär zu der Huffman-Prozedur. Wie die Huffman-Prozedur erfordert die Tunstall-Prozedur eine vorherige Kenntnis der Quellendatenwahrscheinlichkeiten. Wieder kann die Anforde rung einer vorherigen Kenntnis teilweise durch ein Verwenden einer adaptiven Version erfüllt werden, die die Statistikstärkenverarbeitung der Daten akkumuliert.
  • Die Lempel-Ziv-Prozedur bildet Segmente von Symbolen mit variabler Länge in Binärwörter mit variabler Länge ab. Sie ist asymptotisch optimal, wenn es keine Einschränkungen bezüglich der Eingangs- oder Ausgangssegmente gibt. Bei dieser Prozedur wird die Eingangsdatenfolge in adaptiv gewachsene Segmente geparst bzw. syntaktisch analysiert. Jedes der Segmente besteht aus einer genauen Kopie eines früheren Abschnitts der Eingangsdatenfolge, an die ein neues Symbol aus den Eingangsdaten angehängt wird. Die Kopie, die hergestellt werden soll, ist die längst mögliche und nicht eingeschränkt, um mit einem zuvor geparsten Segment zusammenzufallen. Das Codewort, das das Segment in dem Ausgang darstellt, enthält Informationen, die aus einem Zeiger darauf, wo frühere Kopieabschnitte beginnen, der Länge des Codes und dem neuen Symbol bestehen. Zusätzliche Lehren für die Lempel-Ziv-Datenkomprimierungstechnik sind in dem U.S.-Patent Nr. 4,558,302 zu finden.
  • Während die zuvor genannten Datenkomprimierungsprozeduren gute universale verlustfreie Prozeduren sind, können einige spezifische Typen einer Redundanz unter Verwendung anderer Verfahren komprimiert werden. Ein derartiges verlustfreies Verfahren, das üblicherweise als Lauflängencodierung (RLE) bekannt ist, ist für graphische Daten geeignet. Bei einer RLE können Sequenzen einzelner Zeichen als ein Zählwertfeld plus einem Identifizierer des wiederholten Zeichens codiert werden. Üblicherweise werden zwei Zeichen benötigt, um jeden Zeichenlauf zu markieren, so daß diese Codierung nicht für Läufe von zwei oder weniger Zeichen verwendet werden würde. Wenn jedoch ein graphisches Bild gehandhabt würde, das in einer Digitaldatenform dargestellt ist, kann es lange Läufe des gleichen Zeichens in jeder bestimmten Linie geben, was die RLE zu einer wirksamen Komprimierungsprozedur für derartige Informationen macht.
  • Alle der zuvor genannten Datenkomprimierungsprozeduren sind stark von einer Redundanz in den Daten abhängig, um wesentliche Komprimierungsverhältnisse zu erzielen. Ein wesentlicher Nachteil bei diesen Prozeduren besteht darin, daß bei bestimmten Typen von Daten die komprimierte Ausgabe tatsächlich größer als die Eingabe sein kann, da den Eingangsdaten eine spezifische Redundanz fehlt. In der Technik eines Druckens werden derartige „nichtkomprimierbare" Daten leicht erzeugt.
  • Bestimmte Typen von Bildern sind als entweder „geordnetes Zittern" oder „fehlerdiffundiert" klassifiziert. Ein geordnetes Zitterbild (auch „Cluster" genannt) ist ein Halbtonbild, das Halbtongraudarstellungen auf der gesamten Seite umfaßt. Derartige Bilder spiegeln im allgemeinen eine wesentliche Datenredundanz wider und eignen sich für verlustfreie Techniken einer Datencodierung, wie z. B. diejenigen, die oben beschrieben sind. Fehlerdiffundierte Bilder (auch „dispergiert" genannt) jedoch zeigen eine geringe Redundanz bei ihren Daten und erfordern unterschiedliche Komprimierungsverfahren. Druckdaten, die photographische Bilder darstellen, liefern ein weiteres Beispiel von Druckdaten mit geringer Redundanz. Als ein Ergebnis ermöglicht die Verwendung eines einzelnen Datenkomprimierungsschemas in einem Seitendrucker nicht mehr, daß ein derartiger Drucker Bilddaten handhabt. In dem U.S.-Patent 5,479,587 mit dem Titel „Page Printer Having Adaptive Data Compression For Memory Minimization", ausgegeben an Cambell u. a., das der gleichen Anmelderin wie die vorliegende anmelderin zugewiesen ist, schreitet ein Seitendrucker wie herausgestellt in einem Versuch durch verschiedene Komprimierungstechniken, eine eingeschränkte Speichergröße, die weniger als diejenige ist, die für eine vollständige Seite gedruckter Daten erforderlich ist, unterzubringen. Bei dieser Anwendung wird zuerst, wenn ein Bild aufgrund niedriger Speicherbedingungen nicht druckbar ist, eine „Modus-M"-Komprimierungstechnik verwendet. Unter Verwendung dieser Technik wird ein Versuch unternommen, den Block unter Verwendung einer Lauflängencodierung für jede Zeile und durch ein Codieren von Deltaveränderungen, die von Zeile zu Zeile innerhalb des Blocks auftauchen, zu komprimieren. Wenn die „Modus-M"-Komprimierungstechnik nicht erfolgreich bei einer Bereitstellung eines ausreichenden Komprimierungsverhältnisses ist, um ein Drucken der Seite zu erlauben, wird ein zweiter Versuch unter Verwendung einer LZW-Typ-Komprimierung unternommen. Schließlich wird, wenn die LZW-basierte Komprimierungstechnik nicht erfolgreich bei einem Erzielen einer ausreichend hohen Komprimierungsrate ist, um ein Drucken der Seite zu ermöglichen, eine verlustbehaftete Komprimierungsprozedur verwendet.
  • Bei der Verarbeitung von Rasterdruckdaten kann eine Vielzahl von Operationen bezüglich der Rasterdruckdaten vor einer Erzeugung der gedruckten Seite durchgeführt werden. Derartige Operationen, wie eine Datenkomprimierung, eine Farbraumumwandlung und eine Halbtongebung, sind in den Operationen enthalten, die vor einem Erzeugen der gedruckten Seite durchgeführt werden können. Es ist häufig der Fall, daß bei der Verarbeitung von Rasterdruckdaten verschiedene Abschnitte der Seite optimal durch ein Verwenden unterschiedlicher Typen von Datenkomprimierungs-, Farbraumumwandlungs- und Halbtongebungsoperationen verarbeitet würden. Ein immer wieder auftretendes Problem, das bei einer optimalen Verarbeitung von Rasterdruckdaten anzutreffen ist, war die Partitionierung der Rasterdruckdaten, die die Seite Bilden, so daß die verschiedenen Rasterdruckdatenverarbeitungsoperationen optimal bezüglich der geeigneten Abschnitte der Seite durchgeführt werden können.
  • Es wird z. B. die Menge an Speicher betrachtet, die benötigt wird, um die Rasterdruckdaten, die einer Seite entsprechen, zu speichern. Da Drucker in der Dichte einer Punktplazierung (Punkte pro Zoll) ansteigen, eine Grauskalierungsfähigkeit hinzufügen (unter Verwendung einer Anzahl von Bits pro Pixel, um einen Grauskalierungspegel zu defi nieren) und eine Farbdruckfähigkeit umfassen (was zusätzliche Bits pro Pixel gegenüber einem einfarbigen Drucken erfordert), kann der Speicher, der benötigt wird, um die zum Drucken einer Seite verwendeten Daten zu speichern, 32 mal den Speicher erreichen, der für ein einfarbiges Drucken mit der gleichen Auflösung benötigt wird. Um es zu ermöglichen, daß die Farbdrucker eine vernünftigere Speichergröße verwenden, werden allgemein Datenkomprimierungstechniken verwendet, um die Speicheranforderungen zu reduzieren. Unterschiedliche Typen von Rasterdruckdaten werden jedoch jeweils optimal unter Verwendung unterschiedlicher Komprimierungstechniken komprimiert. Für Rasterdruckdaten z. B., die Abschnitten der Seite entsprechen, die Bilder enthalten, wird die optimale Kombination von Komprimierungsverhältnis und Druckqualität durch ein Verwenden verlustbehafteter Komprimierungstechniken erzielt. Für Rasterdruckdaten jedoch, die Abschnitten des Bildes entsprechen, die Text enthalten, wird die optimale Kombination von Komprimierungsverhältnis und Druckqualität durch ein Verwenden verlustfreier Komprimierungstechniken erzielt.
  • Es besteht ein Bedarf nach einer Datenverarbeitungspipeline, die eine Anwendung des optimalen Typs einer Datenverarbeitungsoperation auf die Verarbeitung jedes Datenelements ermöglicht.
  • Die US-A-5,541,594 bezieht sich auf einen Quellencodierer mit fester Qualität, der eine feste Schwelle aufweist. Ein Eingangsdatenstrom wird codiert und erzeugt ein codiertes Informationssignal. Ein Fehlerkomponentensignal wird erzeugt und ausgegeben, das dann weiter verarbeitet wird, wobei das codierte Fehlerkomponentensignal und das codierte Informationssignal mittels eines Multiplexers einem Multiplexen unterzogen werden.
  • Die EP 0 662 772 A2 offenbart ein segmentierungsbasiertes Bildkomprimierungssystem für einen einzelnen Datenstrom, der eingegeben und unterteilt wird. Die jeweiligen Ab schnitte des Signals werden entweder einem verlustfreien Codierer oder einem verlustbehafteten Codierer zugeführt und dann werden die Ausgangssignale dieser Codierer einem Paketbildner zugeführt, der einen einzelnen Ausgangsstrom erzeugt.
  • Die WO 92/09142 offenbart eine Vorrichtung zur Datenkomprimierung mit einer reduzierten Verzerrung.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Bilden von Ausgangsdaten bereitzustellen, die einen ursprünglichen Datensatz korrekt darstellen.
  • Diese Aufgabe wird durch eine Zusammenführungseinheit gemäß Anspruch 1 gelöst.
  • Eine Datenverarbeitungspipeline zum separaten Verarbeiten einer Mehrzahl von Datenströmen, wobei jeder aus einer Mehrzahl von Datenelementen gebildet ist, wie z. B. Bytes oder Wörtern von Druckdaten, ermöglicht eine Optimierung der Datenpipelineverarbeitungsoperationen für jedes Datenelement. Die Datenverarbeitungspipeline verwendet einen Zusammenführungsdatenstrom, der durch die Mehrzahl von Datenströmen definiert und aus Zusammenführungsdatenelementen gebildet ist, die den Datenelementen entsprechen. Die Mehrzahl von Datenströmen kann z. B. durch ein Partitionieren eines Quellendatenstroms, wie z. B. eines Druckdatenstroms, Datenelement für Datenelement basierend auf den Charakteristika jedes der Datenelemente gebildet sein. Abhängig von den Charakteristika kann der Quellendatenstrom optimal in mehr als zwei Datenströme partitioniert sein. Für den Fall, in dem die Datenverarbeitungspipeline verwendet ist, um Rasterdruckdaten zu verarbeiten, kann der Strom von Rasterdruckdaten auf der Pixelebene partitioniert sein. Die Pixel z. B., die den verlustbehafteten Regionen der Seite zugeordnet sind, bilden den verlustbehafteten Rasterdruckdatenstrom und die Pixel, die verlustfreien Regionen der Seite zugeordnet sind, bilden den verlustfreien Raster druckdatenstrom. Datenverarbeitungspipelineoperationen, wie z. B. eine Datenkomprimierung, können dann ausgewählt werden, um die optimale Kombination von Komprimierungsverhältnis und Druckqualität für jedes Pixel auf der Seite zu erzielen.
  • Der Strom von Rasterdruckdaten kann auch basierend auf der Anzahl von Bits partitioniert sein, die verwendet werden, um jedes der Pixel darzustellen. In dem extremen Fall können Pixel, die Regionen der Seite entsprechen, die in Farbe gedruckt werden, 24 Bits benötigen, um jedes der Pixel darzustellen, während Pixel, die Regionen der Seite entsprechen, die in schwarz/weiß gedruckt werden, nur 1 Bit erfordern können, um jedes der Pixel darzustellen. Durch ein Partitionieren des Stroms von Rasterdruckdaten basierend auf der Anzahl von Bits, die verwendet werden, um jedes der Pixel darzustellen, können Komprimierungsoperationen, die für die Anzahl von Bits pro Pixel optimiert sind, verwendet werden. Zusätzlich kann der Strom von Rasterdruckdaten, die Pixel von Binär-Schwarz-und-Weiß-Daten enthalten, unter Umständen keine Farbraumumwandlungsoperation benötigen, wohingegen der Strom von Rasterdruckdaten, die Pixel von Farbdaten umfassen, eine Farbraumumwandlungsoperation erfordern kann.
  • Eine weitere mögliche Partition des Stroms von Rasterdruckdaten kann basierend auf der erwünschten Druckauflösung der Bereiche der Seite sein, die den Pixeln entsprechen. Die Kanten von Vektorgraphikobjekten oder die Kanten von Objekten innerhalb von Bildern im allgemeinen profitieren z. B., aus Druckqualitätsgründen, von einer höheren Auflösung, während Bereiche im Inneren der Vektorgraphikobjekte oder im Inneren der Objekte innerhalb von Bildern mit einer geringeren Auflösung gedruckt werden können, ohne eine Druckqualität zu opfern. Ein Partitionieren eines Rasterdruckdatenstroms auf der Basis einer Auflösung würde eine Reduzierung der Menge von Daten ermöglichen, die eine Verarbeitung durch die Datenverarbeitungspipeline erfor dern, wodurch die Zeit, die zum Drucken von Seiten benötigt wird, reduziert wird. Zusätzlich können Halbton- und Komprimierungsoperationen für jeden der partitionierten Ströme von Rasterdruckdaten basierend auf der Auflösung des bestimmten partitionierten Rasterdruckdatenstroms optimiert werden.
  • Eine Zusammenführungseinheit ist konfiguriert, um die Mehrzahl von Datenströmen und den Zusammenführungsdatenstrom zu empfangen. Die Zusammenführungseinheit verwendet den Zusammenführungsdatenstrom, um die Mehrzahl von Datenströmen zu kombinieren und einen Ausgangsdatenstrom zu erzeugen. Für den Fall, bei dem die Zusammenführungseinheit verlustbehaftete und verlustfreie Druckdatenströme zusammenführt, ist der Ausgangsdatenstrom eine rekonstruierte Darstellung des Bildes von einer Partitionierung in verlustbehaftete und verlustfreie Druckdaten.
  • Die Zusammenführungseinheit umfaßt einen ersten Multiplexer, der konfiguriert ist, um die Mehrzahl von Datenströmen und den Zusammenführungsdatenstrom zu empfangen. Jeder der Mehrzahl von Datenströmen umfaßt eine Serie von Datenelementen, wie z. B. Bytes oder Wörter, die jedem der Datenelemente der anderen Datenströme entsprechen. Der Zusammenführungsdatenstrom umfaßt eine Serie von Zusammenführungsdatenelementen, wie z. B. Wörtern, Bytes oder Bits, die den Datenelementen jedes der Mehrzahl von Datenströmen entsprechen. Der erste Multiplexer wählt ein Datenelement unter den entsprechenden Datenelementen in jedem der Mehrzahl von Datenströmen unter Verwendung der entsprechenden Zusammenführungsdatenelemente aus, um die Auswahl zu steuern. Die Serie ausgewählter Datenelemente, die aus dem ersten Multiplexer ausgegeben werden, bildet den Ausgangsdatenstrom.
  • Beschreibung der Zeichnungen
  • Ein gründlicheres Verständnis der Erfindung kann aus der Betrachtung der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen erhalten werden.
  • 1 ist ein vereinfachtes konzeptionelles Blockdiagramm des Flusses von Druckdaten durch das bevorzugte Ausführungsbeispiel einer Druckdatenverarbeitungspipeline in einem Farbdrucker.
  • 2 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 Druckdatenverarbeitungspipeline in dem Zusammenhang eines Farblaserdruckers erläutert wird, die Druckdatenverarbeitungspipelinearchitektur, die offenbart ist, auf andere Bilderzeugungssysteme anwendbar ist, für die ein Leistungsvorteil erzielt wird, indem parallele Pfade verwendet werden, um Daten, die selektiv unter Verwendung von entweder verlustfreien oder verlustbehafteten Datenkomprimierungsverfahren komprimiert wurden, zu handhaben. Die offenbarte Druckdatenverarbeitungspipeline z. B. kann nützlich in Scannern und Digitalphotoverarbeitungslabors angewendet werden. Ferner könnte jedes System zum Erzeugen eines Bildes, das einen Speicher für die Speicherung von Bilddaten erfordert, eine optimierte Bildqualität erzielen, während Speicheranforderungen minimiert werden, indem die offenbarte Pipelinearchitektur angewendet wird.
  • Bei einem Farbdrucken besteht ein Bedarf nach einer Druckdatenverarbeitungspipeline, die den zum Speichern von Druckdaten erforderlichen Speicher reduziert, während hohe Pegel einer Druckqualität beibehalten werden. Die Verwendung einer Druckdatenverarbeitungspipelinearchitektur, die selektiv Druckdaten unter Verwendung von verlustbehafteten oder verlustfreien Komprimierungsverfahren komprimiert, behält eine hohe Druckqualität bei, während Druckdatenspeicherspeicherungsanforderungen minimiert werden. Zusätzlich liefert eine korrekte Plazierung der Operationen in der Druckdatenverarbeitungspipeline weitere Verbesserungen der Druckqualität und Reduzierungen der Speicherspeicherungsanforderungen.
  • In 1 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 umfaßt. Es wird hervorgehoben, daß 1 nur den Fluß von Druckdaten, unter Verwendung paralleler verlustbehafteter und verlustfreier Pfade, durch typische Operationen darstellen soll, die durch die Druckdatenverarbeitungspipeline 15 durchgeführt werden. 1 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 Aus fü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 umfaßt nur verlustbehaftete Druckdaten und das andere dieser Seitenstreifenelemente umfaßt 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 Anzeigelistendruckda ten in die Textdruckdaten und die Bilddruckdaten. Dann wird jedes der verlustfreien und verlustbehafteten Seitenstreifenelemente Pixelort für Pixelort mit den jeweiligen Textdruckdaten und Bilddruckdaten gefüllt. In diesem Fall kann der Seitenstreifen, der den Anzeigelistendruckdaten entspricht, als ein zusammengesetzter Seitenstreifen betrachtet werden, der die Seitenstreifenelemente umfaßt, 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 Halbtongeburigsoperationen, 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 entsprechen der Größe zu enthalten. Jedes der Seitenstreifenelemente wird in der Bildverarbeitungsoperation 1 rasterisiert, in dem Speicherraum gespeichert, der dem Rasterdruckdatenspeicher 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 beeinflußt, 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 Farbraumumwandlung 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 Bildverarbeitungs operation 1 verwendet wird, um die Seitenstreifen zu bilden. 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 muß, 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 „IN-TRODUCTION TO DATA COMPRESSION", Khalid Sayood, 1996, Morgan Kaufmann Publishers 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 Rasterdruckda ten 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äßt, 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üßte 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, umfaßt 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.
  • 1 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 1 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üh ren 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-Entwicklungscharak teristik 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üßte 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 Plazierung 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 Halbtondruckdatenstram 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ü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 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 2 gezeigt ist ein vereinfachtes Hardwareblockdiagramm des bevorzugten Ausführungsbeispiels der Druckdatenverarbeitungspipeline 15. Es wird darauf verwiesen, daß die Pfade, die die Funktionsblöcke, die in 2 gezeigt sind, verbinden, Datenpfade darstellen. In 2 nicht gezeigt sind die verschiedenen Steuerungsleitungen, die verwendet werden, um den Fluß 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 umfaßt 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 Fluß von Druckdaten in die Teile der ASIC 120 und aus denselben heraus, die die verschiedenen Funktionen der Druckdatenverarbeitungspipeline 15 durchführen. 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 verschie denen 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 angepaßt 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 Druckdatenverarbeitungsopera tionen 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 umfaßt 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 2 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 verlustbehaftete 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 Operationen 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 Flußrate 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 Farbraumum wandlungsoperation 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 mußte, 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 130, um einer Umwandlung in eine Ebene des Farbraums der Druckmaschine 16 unterzogen zu werden. Der Seitenstreifenverwalter 134 erzeugt die entsprechenden leeren verlustbehafteten Rasterdruckdaten und Zusammenführungsdruckdaten. Die leeren verlustbehafteten Rasterdruckdaten umgehen den Farbraumumwandler 125. Die Zusammenführungseinheit 130 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 Farbraumumwandlungs-, 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 130 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 130 verwendeten Techniken nützlich sind, um auf eine ähnliche Weise mehr als zwei Datenströme unter Verwendung mehrerer Zusammenführungsbits für jede Einheit zusam mengefü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 hochdetaillierte 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 13 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 2023 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 ver lustbehafteten 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 bedekken, wenn die Pixel kontinuierlich auf der gedruckten Seite plaziert 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 Druckmaschinenabtastli nien 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 zugeordnet 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 umfaßt 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 Fluß 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 Fluß 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 2023 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 Adreßbus 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 übereinge stimmt 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 verlust behafteten und verlustfreien Rasterdruckdatenstrom enthalten 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ührungsda tenstrom 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 verlustbehafteten 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 Synchronisierung 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 6067 gebildet. Der verlustbehaftete Acht-Bit-Eingangsrasterdruckdatenstrom 68 wird den „DATA"-Eingängen jedes der acht Daten-Latchspeicher 6067 vorgelegt. Die acht Drei-Eingangs-UND-Gatter 6976, die mit den „EN"-Eingängen der acht Daten-Latchspeicher 6067 verbunden sind, decodieren Steuerungssignale, die durch die Farbraumumwandlerschnittstellensteuerung 38 erzeugt werden, um einen der acht Daten-Latchspeicher 6067 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 6067 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 Fluß 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 6067 sind mit einem festen Logikpegel verbunden, so daß die verlustbehafteten Rasterdruckdaten, die in dem verlustbehafteten Eingangspuffer 32 gespeichert sind, aus den Daten-Latchspeichern 6067 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 erfaßt, 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 Fluß von Druckdaten durch die Eingangspuffer 32, 33, 36, 37 bei und behält den Fluß 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 umfaßt zwei Bänke mit vier Acht-Bit-Daten-Latchspeichern 8095. 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 8095 vorlegt werden. Die „EN"-Eingänge jedes der Daten-Latchspeicher 8095 steuern das Laden der verlustbehafteten und der verlustfreien Rasterdruckdaten in die Daten-Latchspeicher 8095. Die vier UND-Gatter 9699 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 8095 steuern. Während verlustbehaftete und verlustfreie Rasterdruckdaten in ein Paar von Bänken von Daten-Latchspeichern 8095 geladen werden, können verlustbehaftete oder verlustfreie Rasterdruckdaten aus dem anderen Paar der Bänke von Daten-Latchspeichern 8095 heraus übertragen werden. Die Verwendung dieses Zwischenspeicherverfahrens behält den Fluß 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 verlustbehafteten und einer verlustfreien Bank von Daten-Latchspeichern 8083, 8891 für den verlustbehafteten 51 und verlustfreien 52 Ausgangspuffer. Die Ausgangsseite für die anderen beiden Bänke der Daten-Latchspeicher 8487, 9295 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 verlust freien Eingangsrasterdruckdatenstrom in einen acht Bit breiten verlustbehafteten und verlustfreien Rasterdruckdatenstrom um. Die „OE"-Eingänge der acht Daten-Latchspeicher 8083, 8891 sind mit einem festen Logikpegel verbunden, so daß die verlustbehafteten und verlustfreien Rasterdruckdaten, die in diesen Daten-Latchspeichern 8083, 8891 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 8083, 8891 zur Eingabe in den Druckdatenmultiplexer 24 auszuwählen. Die Acht-Bit-Ausgänge von den jeweiligen Daten-Latchspeichern 8083, 8891 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.

Claims (9)

  1. Eine Zusammenführungseinheit (128) für eine Datenverarbeitungspipeline (15), wobei die Datenverarbeitungspipeline (15) zum separaten Verarbeiten von verlustbehafteten Daten (30) und verlustfreien Daten (31) dient, wobei die Zusammenführungseinheit (128) zum Zusammenführen der verlustbehafteten Daten (30) und der verlustfreien Daten (31) in Ausgangsdaten Zusammenführungsdaten (34) verwendet, die durch die verlustbehafteten Daten (30) und die verlustfreien Daten (31) definiert sind, und die aus Zusammenführungsdaten gebildet sind, die den verlustbehafteten Daten und den verlustfreien Daten entsprechen, wobei die Zusammenführungseinheit (128) folgende Merkmale aufweist: einen ersten Multiplexer (24); gekennzeichnet durch einen ersten Puffer (51); einen zweiten Puffer (52); einen dritten Puffer (53); einen Speicher (133) zum Speichern der verlustbehafteten Daten, der verlustfreien Daten und der Zusammenführungsdaten; und eine Speichersteuerung (44), die mit dem Speicher (133) gekoppelt ist, wobei die Speichersteuerung (44) konfiguriert ist, um die verlustbehafteten Daten, die verlustfreien Daten und die Zusammenführungsdaten zu empfangen, und konfiguriert ist, um die verlustbehaf teten Daten, die verlustfreien Daten und die Zusammenführungsdaten zu und von dem Speicher (133) zu speichern und zu laden, wobei die Speichersteuerung (44) konfiguriert ist, um die verlustbehafteten Daten an den ersten Puffer (51), die verlustfreien Daten an den zweiten Puffer (52) und die Zusammenführungsdaten an den dritten Puffer (53) zu senden, wobei der erste Multiplexer (24) konfiguriert ist, um die verlustbehafteten Daten (30) von dem ersten Puffer (51), die verlustfreien Daten (31) von dem zweiten Puffer (52) und die Zusammenführungsdaten (34) von dem dritten Puffer (53) zu empfangen, wobei der erste Multiplexer (24) zum Auswählen aus den verlustbehafteten Daten (30) und den verlustfreien Daten (31) ansprechend auf die Zusammenführungsdaten dient, um die Ausgangsdaten zu bilden.
  2. Die Zusammenführungseinheit (128) gemäß Anspruch 1, die ferner folgende Merkmale aufweist: einen zweiten Multiplexer (39), der mit der Speichersteuerung (44) gekoppelt ist, wobei der zweite Multiplexer (39) konfiguriert ist, um die verlustbehafteten Daten, die verlustfreien Daten und die Zusammenführungsdaten zu empfangen und aus denselben zum Senden an die Speichersteuerung (44) auszuwählen; einen vierten Puffer (32), der mit dem zweiten Multiplexer (39) gekoppelt und konfiguriert ist, um die verlustbehafteten Daten zu empfangen und die verlustbehafteten Daten an den zweiten Multiplexer (39) zu senden; einen fünften Puffer (33), der mit dem zweiten Multiplexer (39) gekoppelt und konfiguriert ist, um die verlustfreien Daten zu empfangen und die verlustfreien Daten an den zweiten Multiplexer (39) zu senden; einen sechsten Puffer (36), der mit dem zweiten Multiplexer (39) gekoppelt und konfiguriert ist, um die Zusammenführungsdatenelemente zu empfangen und die Zusammenführungsdatenelemente an den zweiten Multiplexer (39) zu senden; eine erste Schnittstellensteuerung (38), die mit dem vierten (32), dem fünften (33) und dem sechsten Puffer (36), dem zweiten Multiplexer (39) und der Speichersteuerung (44) gekoppelt ist, wobei die erste Schnittstellensteuerung (38) zum Erzeugen eines ersten Satzes von Signalen (45) dient, um den Fluß der verlustbehafteten, der verlustfreien und der Zusammenführungsdatenelemente in und von dem vierten (32), dem fünften (33) und dem sechsten Puffer (36) durch den zweiten Multiplexer (39) und in die Speichersteuerung (44) zu steuern, und wobei jeder des vierten (32), des fünften (33) und des sechsten Puffers (36) einen ersten (6063) und einen zweiten (6467) Satz von Datenlatchspeichern umfaßt, um abwechselnd die jeweiligen der verlustbehafteten Daten, der verlustfreien Daten und der Zusammenführungsdatenelemente zu empfangen und zu senden.
  3. Die Zusammenführungseinheit (128) gemäß Anspruch 2, die ferner folgendes Merkmal aufweist: eine zweite Schnittstellensteuerung (55), die mit dem ersten (51), dem zweiten (52) und dem dritten Puffer (53), dem ersten Multiplexer (24) und der Speichersteuerung (44) gekoppelt ist, wobei die zweite Schnittstellensteuerung (55) zum Erzeugen eines zweiten Satzes von Signalen (56, 57) dient, um den Fluß der verlustbehafteten Daten, der verlustfreien Daten und der Zusammenführungsdaten von der Speichersteuerung (44) durch den ersten (51), den zweiten (52) und den dritten Puffer (53) und in den ersten Multiplexer (24) zu steuern.
  4. Die Zusammenführungseinheit (128) gemäß Anspruch 3, bei der: jeder des ersten (51) und des zweiten Puffers (52) einen dritten (8895) und einen vierten (8087) Satz von Datenlatchspeichern umfaßt, um abwechselnd die jeweiligen der verlustbehafteten Daten und der verlustfreien Daten zu empfangen und zu senden; und der dritte Puffer (53) ein Schieberegister umfaßt, um die Zusammenführungsdaten in Zusammenführungsbits umzuwandeln, wobei die Zusammenführungsbits eine Auswahl der verlustbehafteten Daten und der verlustfreien Daten für den Ausgangsdatenstrom von dem ersten Multiplexer (24) steuern.
  5. Eine Druckdatenverarbeitungspipeline (15) zum Verarbeiten verlustfreier Rasterdruckdaten und verlustbehafteter Rasterdruckdaten unter Verwendung von Zusammenführungsdaten, mit folgenden Merkmalen: einem verlustfreien Kompressor/Dekompressor (127), der konfiguriert ist, um die verlustfreien Rasterdruckdaten zu empfangen, um komprimierte verlustfreie Rasterdruckdaten zu erzeugen, und konfiguriert ist, um die komprimierten verlustfreien Rasterdruckdaten zu empfangen, um dekomprimierte verlustfreie Rasterdruckdaten zu erzeugen; einem verlustbehafteten Kompressor/Dekompressor (126), der konfiguriert ist, um die verlustbehafteten Rasterdruckdaten zu empfangen, um komprimierte verlustbehaftete Rasterdruckdaten zu erzeugen, und konfiguriert ist, um die komprimierten verlustbehafteten Raster druckdaten zu empfangen, um dekomprimierte verlustbehaftete Rasterdruckdaten zu erzeugen; und einer Zusammenführungseinheit (128) gemäß einem der Ansprüche 1 bis 4.
  6. Die Druckdatenverarbeitungspipeline (15) gemäß Anspruch 5, bei der: der verlustfreie Kompressor/Dekompressor (127) die Fähigkeit zum Empfangen der Zusammenführungsdaten umfaßt, um komprimierte Zusammenführungsdaten zu erzeugen, und die Fähigkeit zum Empfangen der komprimierten Zusammenführungsdaten umfaßt, um dekomprimierte Zusammenführungsdaten zu erzeugen.
  7. Ein Drucker mit folgenden Merkmalen: einem Prozessor (132), um verlustfreie Rasterdruckdaten, verlustbehaftete Rasterdruckdaten und Zusammenführungsdaten aus Druckdaten zu erzeugen; einer Direktspeicherzugriffssteuerung (122), die wirksam mit dem Prozessor (132) gekoppelt ist, wobei die Direktspeicherzugriffssteuerung (122) konfiguriert ist, um zumindest entweder die verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten oder die Zusammenführungsdaten von dem Prozessor (122) zu empfangen, und konfiguriert ist, um zumindest entweder die verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten oder die Zusammenführungsdaten zu senden; einem verlustfreien Kompressor/Dekompressor (127), der mit der Direktspeicherzugriffssteuerung (122) gekoppelt ist, wobei der verlustfreie Kompressor/Dekompressor (127) konfiguriert ist, um die verlustfreien Rasterdruckdaten zu empfangen, um komprimierte ver lustfreie Rasterdruckdaten zu erzeugen, und wobei der verlustfreie Kompressor/Dekompressor (127) konfiguriert ist, um die komprimierten verlustfreien Rasterdruckdaten zu empfangen, um dekomprimierte verlustfreie Rasterdruckdaten zu erzeugen; einem verlustbehafteten Kompressor/Dekompressor (126), der mit der Direktspeicherzugriffssteuerung (122) gekoppelt ist, wobei der verlustbehaftete Kompressor/Dekompressor (126) konfiguriert ist, um die verlustbehafteten Rasterdruckdaten zu empfangen, um komprimierte verlustbehaftete Rasterdruckdaten zu erzeugen, und konfiguriert ist, um die komprimierten verlustbehafteten Rasterdruckdaten zu empfangen, um dekomprimierte verlustbehaftete Rasterdruckdaten zu erzeugen; und einer Zusammenführungseinheit (128) gemäß einem der Ansprüche 1 bis 4.
  8. Der Drucker gemäß Anspruch 7, bei dem: der verlustfreie Kompressor/Dekompressor (127) einen verlustfreien komprimierten Ausgang, der mit der Direktspeicherzugriffssteuerung (122) gekoppelt ist, und einen verlustfreien dekomprimierten Ausgang umfaßt, wobei der verlustfreie Kompressor/Dekompressor (127) die Fähigkeit umfaßt, die Zusammenführungsdaten zu empfangen, um komprimierte Zusammenführungsdaten zu erzeugen, und um die komprimierten Zusammenführungsdaten zu empfangen, um dekomprimierte Zusammenführungsdaten zu erzeugen; und der verlustbehaftete Kompressor/Dekompressor (126) einen verlustbehafteten komprimierten Ausgang, der mit der Direktspeicherzugriffssteuerung (122) gekoppelt ist, und einen verlustbehafteten dekomprimierten Ausgang umfaßt.
  9. Der Drucker gemäß Anspruch 8, der ferner folgende Merkmale aufweist: einen Seitenstreifenverwalter (124), der mit dem verlustfreien dekomprimierten Ausgang, dem verlustbehafteten dekomprimierten Ausgang und der Direktspeicherzugriffssteuerung (122) gekoppelt ist, wobei der Seitenstreifenverwalter (124) einen ersten verlustfreien Ausgang, einen ersten verlustbehafteten Ausgang und einen Zusammenführungsdatenausgang aufweist, der mit der Zusammenführungseinheit (128) gekoppelt ist, wobei der Seitenstreifenverwalter (124) die Fähigkeit umfaßt, zumindest entweder die verlustfreien Rasterdruckdaten, die dekomprimierten verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten oder die dekomprimierten verlustbehafteten Rasterdruckdaten für nachfolgende Verarbeitungsoperationen zu formatieren; einen Farbraumumwandler (125), der mit dem ersten verlustfreien Ausgang und dem ersten verlustbehafteten Ausgang gekoppelt ist, wobei der Farbraumumwandler (125) einen zweiten verlustfreien Ausgang und einen zweiten verlustbehafteten Ausgang aufweist, der mit der Zusammenführungseinheit (128) gekoppelt ist, wobei der Farbraumumwandler (125) die Fähigkeit umfaßt, die verlustfreien Rasterdruckdaten, die dekomprimierten verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten und die dekomprimierten verlustbehafteten Rasterdruckdaten durch den Farbraumumwandler (125) zu umgehen, wobei der Farbraumumwandler (125) einen Selektor, der einen Selektorausgang aufweist, der mit der Direktspeicherzugriffssteuerung (122) gekoppelt ist, zum Auswählen aus den verlustfreien Rasterdruckdaten und den verlustbehafteten Rasterdruckdaten oder aus den dekomprimierten verlustfreien Ra sterdruckdaten und den dekomprimierten verlustbehafteten Rasterdruckdaten umfaßt; und eine Halbtongebungseinheit (130), die mit der Zusammenführungseinheit (128) gekoppelt ist, um die zusammengeführten verlustfreien und verlustbehafteten Rasterdruckdaten zu empfangen und eine Halbtongebungsoperation hinsichtlich der zusammengeführten verlustfreien und verlustbehafteten Rasterdruckdaten ansprechend auf die Halbtongebungsdaten durchzuführen.
DE69814988T 1997-06-17 1998-03-26 Datenzusammenfügevorrichtung Expired - Fee Related DE69814988T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US877346 1997-06-17
US08/877,346 US5940585A (en) 1997-06-17 1997-06-17 Data merge unit

Publications (2)

Publication Number Publication Date
DE69814988D1 DE69814988D1 (de) 2003-07-03
DE69814988T2 true DE69814988T2 (de) 2004-05-19

Family

ID=25369797

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69814988T Expired - Fee Related DE69814988T2 (de) 1997-06-17 1998-03-26 Datenzusammenfügevorrichtung

Country Status (4)

Country Link
US (1) US5940585A (de)
EP (1) EP0886208B1 (de)
JP (1) JPH11179983A (de)
DE (1) DE69814988T2 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370273B1 (en) * 1998-04-10 2002-04-09 Flashpoint Technology, Inc. Method and system for tiled image data decompression
US6919967B1 (en) 1999-11-18 2005-07-19 Hewlett-Packard Development Company, L.P. Printing performance enhancements for variable data publishing
US6401143B1 (en) * 1999-12-02 2002-06-04 Xerox Corporation Loopback direct memory access control system for a digital scanner
US6463481B1 (en) * 1999-12-02 2002-10-08 Xerox Corporation Direct memory access control system for a digital scanner
US6738153B1 (en) 2000-02-08 2004-05-18 International Business Machines Corporation Method, system, and program for error checking raster objects
US6721456B1 (en) 2000-02-23 2004-04-13 International Business Machines Corporation Color image data and control bit compression scheme with run length encoding
US6894796B1 (en) 2000-05-12 2005-05-17 International Business Machines Corporation Method, system, and logic for selecting line work and control data for a pixel from multiple objects of line work data provided for the pixel
US6850338B1 (en) 2000-05-12 2005-02-01 International Business Machines Corporation Method, system, program, and data structure for generating raster objects
US6804411B1 (en) 2000-05-15 2004-10-12 International Business Machines Corporation Method, system, and program for decompressing and aligning line work data from multiple objects
US6961134B1 (en) 2000-05-15 2005-11-01 International Business Machines Corporation Method, system, and logic using multiplexers to select data for pixels from multiple objects
US7394568B1 (en) 2000-05-15 2008-07-01 Infoprint Solutions Company Llc Method, system, and logic for selecting pixel data from multiple objects
US6449328B1 (en) 2000-05-15 2002-09-10 International Business Machines Corporation Method and apparatus for shifting data from registers
US6999188B1 (en) 2000-10-30 2006-02-14 Konica Minolta Printing Solutions U.S.A., Inc. Dynamically configurable printer and method of use thereof
US6753977B2 (en) * 2001-01-31 2004-06-22 Hewlett-Packard Development Company, L.P. Machine-readable information embedded on a document
KR100669623B1 (ko) * 2001-03-12 2007-01-15 엘지전자 주식회사 디지털 데이터 변환방법
US7532358B2 (en) * 2002-02-27 2009-05-12 Hewlett-Packard Development Company, L.P. Hardware implemented loss-less page data compressor/decompressor
US7158254B2 (en) * 2002-05-01 2007-01-02 Sharp Laboratories Of America, Inc. Print-job, PDL/RIP-independent data-management method and system
DE10245528A1 (de) * 2002-09-30 2004-04-15 OCé PRINTING SYSTEMS GMBH Zugriff auf Datenobjekte mit Hilfe von den Datenobjekten zugeordneten Netzwerkadressen
DE10300545B4 (de) * 2003-01-09 2010-10-07 Siemens Ag Vorrichtung, Verfahren, Speichermedium und Datenstruktur zur Kennzeichnung und Speicherung von Daten
US8639760B2 (en) * 2003-06-10 2014-01-28 Hewlett-Packard Development Company, L.P. Hard imaging devices, hard imaging systems, articles of manufacture, hard imaging device electronic mail processing methods
US20050053289A1 (en) * 2003-09-05 2005-03-10 Sharp Laboratories Of America, Inc. Staged full-image decompressing, re-sizing and half-toning by less than full-image data-file stages
US7515758B2 (en) 2004-02-03 2009-04-07 International Business Machines Corporation Black white image compression having print density control
US7830552B2 (en) 2005-04-15 2010-11-09 International Business Machines Corporation Black white image scaling having print density control and polarity detection
US7706607B2 (en) * 2005-06-23 2010-04-27 Microsoft Corporation Optimized color image encoding and decoding using color space parameter data
US7969616B2 (en) * 2007-03-30 2011-06-28 Konica Minolta Systems Laboratory, Inc. Systems and methods for efficient print job compression
JP5354891B2 (ja) * 2007-11-22 2013-11-27 キヤノン株式会社 画像形成装置
JP2011049764A (ja) * 2009-08-26 2011-03-10 Toshiba Corp データ圧縮伸長装置
US8767252B2 (en) 2012-06-07 2014-07-01 Xerox Corporation System and method for merged image alignment in raster image data
US9591185B2 (en) 2013-01-29 2017-03-07 Hewlett-Packard Development Company, L.P. Processing an image into sub-images mapped into multi-layer print mask data
US11113012B2 (en) 2018-03-28 2021-09-07 Hewlett-Packard Development Company, L.P. Reprocessing of page strips responsive to low memory condition
CN111176580B (zh) * 2019-12-30 2023-04-07 成都易我科技开发有限责任公司 分区数据无损移动的方法、装置及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992009142A1 (en) * 1989-06-13 1992-05-29 Utah State University Foundation Method and apparatus for data compression with reduced distortion
US5225911A (en) * 1991-05-07 1993-07-06 Xerox Corporation Means for combining data of different frequencies for a raster output device
US5586200A (en) * 1994-01-07 1996-12-17 Panasonic Technologies, Inc. Segmentation based image compression system
US5541594A (en) * 1994-03-28 1996-07-30 Utah State University Foundation Fixed quality source coder with fixed threshold
US5552898A (en) * 1994-07-06 1996-09-03 Agfa-Gevaert Lossy and lossless compression in raster image processor
US5754746A (en) * 1995-12-18 1998-05-19 Xerox Corporation Multi bit per pixel compression/decompression using parallel encoded streams

Also Published As

Publication number Publication date
JPH11179983A (ja) 1999-07-06
US5940585A (en) 1999-08-17
EP0886208B1 (de) 2003-05-28
DE69814988D1 (de) 2003-07-03
EP0886208A3 (de) 1999-02-03
EP0886208A2 (de) 1998-12-23

Similar Documents

Publication Publication Date Title
DE69814988T2 (de) Datenzusammenfügevorrichtung
DE69829019T2 (de) Konfigurierbare Datenverarbeitungspipeline
DE69831133T2 (de) Konfiguriation einer Datenverarbeitungspipeline
EP0886235B1 (de) Generierung einer Zusammenfügungsebene für eine Datenverarbeitungspipeline
EP0886205B1 (de) Mehrweg-Datenverarbeitungspipeline
DE69817029T2 (de) Mischung von komprimierten rasterbildern in einem drucksystem
DE69934939T2 (de) Kompression von Grenzen zwischen Bildern
DE69634040T2 (de) Verfahren und Gerät zur Bitratenreduktion und Rekonstruktion von Bilddaten mittels Ditherfeldern
US8411942B2 (en) Method and apparatus for hybrid image compression
DE3005775C2 (de) Kodierverfahren für ein Farbbild
DE69732617T2 (de) Datenkompressionssystem und -verfahren mittels Unterabtastung und vorzugsweise adaptiver Abrechnung zum Senden von Bildern an einen Drucker
DE69724347T2 (de) Parallele Datenkomprimierung und -dekomprimierung
EP0764310B1 (de) Verfahren zur generierung einer contone-map
DE69833085T2 (de) Verfahren und Vorrichtung für die reversible Farbumwandlung
DE60220650T2 (de) Jade-jpeg basiertes kompressionssystem für dokumente
DE19623318C2 (de) Teilpixelcodierungs- und Decodierungsverfahren
EP1074143B1 (de) Verfahren zur bilddatenkomprimierung für zwei-farben-bilder
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE69936755T2 (de) Verfahren und Vorrichtung zur Analyse von Bilddaten um mehrere Umwandlungen für verbesserte Bilddatenübertragung durchzuführen
DE3416795A1 (de) Bilddaten-kompressionssystem
US20010055124A1 (en) System and method for merging line work objects using tokenization and selective compression
JP2006121645A (ja) 画像圧縮装置および画像圧縮プログラム
DE19516979C2 (de) Bitmap-Datenkomprimierungsverfahren und Bitmap-Datenkomprimierungsvorrichtung zur Durchführung dieses Verfahrens
DE69934385T2 (de) Bilddatenkompression für Verarbeitung zusammengesetzter Dokumente
DE2414239C3 (de) Verfahren und Vorrichtung zum Komprimieren einer binären Informationsfolge

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee