DE69829019T2 - Konfigurierbare Datenverarbeitungspipeline - Google Patents

Konfigurierbare Datenverarbeitungspipeline Download PDF

Info

Publication number
DE69829019T2
DE69829019T2 DE69829019T DE69829019T DE69829019T2 DE 69829019 T2 DE69829019 T2 DE 69829019T2 DE 69829019 T DE69829019 T DE 69829019T DE 69829019 T DE69829019 T DE 69829019T DE 69829019 T2 DE69829019 T2 DE 69829019T2
Authority
DE
Germany
Prior art keywords
data
print data
lossless
lossy
output
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
DE69829019T
Other languages
English (en)
Other versions
DE69829019D1 (de
Inventor
Jr. Gary L. Vondran
James R. Boise Nottingham
Scott C. Boise Clouthier
Douglas Burley Heins
Brian E. Hoffmann
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 Development Co LP
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 Development Co LP filed Critical Hewlett Packard Development Co LP
Application granted granted Critical
Publication of DE69829019D1 publication Critical patent/DE69829019D1/de
Publication of DE69829019T2 publication Critical patent/DE69829019T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/0005Accepting output data; Preparing data for the controlling system
    • G06K2215/0011Accepting output data; Preparing data for the controlling system characterised by a particular command or data flow, e.g. Page Description Language, configuration commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function
    • G06K2215/0094Colour printing

Landscapes

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

Description

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

  1. Eine konfigurierbare Datenverarbeitungspipeline (200) zum Verarbeiten von Daten, die die folgenden Hardwareeinheiten aufweist: eine Direktspeicherzugriffssteuerung (201), die einen ersten Eingang (202) zum Empfangen der Daten und einen ersten Ausgang (204) zum Senden der Daten oder zum Senden eines Ergebnisses einer Durchführung zumindest einer einer Mehrzahl von Transformationen hinsichtlich der Daten aufweist; eine erste Pipelineverarbeitungseinheit (205), die einen zweiten Eingang (206) aufweist, der mit dem ersten Ausgang (204) gekoppelt ist, wobei die erste Pipelineverarbeitungseinheit (205) die Fähigkeit aufweist, zumindest eine erste der Mehrzahl von Transformationen hinsichtlich der Daten oder hinsichtlich des Ergebnisses einer Durchführung zumindest einer der Mehrzahl von Transformationen hinsichtlich der Daten durchzuführen, wobei die erste Pipelineverarbeitungseinheit (205) einen zweiten Ausgang (208), der mit der Direktspeicherzugriffssteuerung (201) gekoppelt ist, zum Senden des Ergebnisses der Durchführung zumindest der ersten der Mehrzahl von Transformationen hinsichtlich der Daten und einen dritten Ausgang (209) zum Senden der Daten oder des Ergebnisses der Durchführung zumindest der ersten der Mehrzahl von Transformationen hinsichtlich der Daten aufweist; und eine zweite Pipelineverarbeitungseinheit (210), die einen dritten Eingang (211) aufweist, der mit dem dritten Ausgang (209) gekoppelt ist, wobei die zweite Pipelineverarbeitungseinheit (210) die Fähigkeit auf weist, zumindest eine zweite der Mehrzahl von Transformationen hinsichtlich der Daten oder hinsichtlich des Ergebnisses einer Durchführung zumindest einer der Mehrzahl von Transformationen hinsichtlich der Daten durchzuführen, wobei die zweite Pipelineverarbeitungseinheit (210) einen vierten Ausgang (213), der mit der Direktspeicherzugriffssteuerung (201) gekoppelt ist, zum Senden des Ergebnisses der Durchführung zumindest der zweiten der Mehrzahl von Transformationen hinsichtlich der Daten und einen fünften Ausgang (214) zum Senden der Daten oder des Ergebnisses der Durchführung zumindest der zweiten der Mehrzahl von Transformationen hinsichtlich der Daten aufweist.
  2. Die konfigurierbare Datenverarbeitungspipeline (200) gemäß Anspruch 1, bei der: die erste Pipelineverarbeitungseinheit (205) einen Kompressor/Dekompressor umfasst, um die Daten und das Ergebnis einer Durchführung zumindest einer der Mehrzahl von Transformationen hinsichtlich der Daten zu komprimieren, um komprimierte Daten zu erzeugen, und um die Daten und das Ergebnis einer Durchführung zumindest einer der Mehrzahl von Transformationen hinsichtlich der Daten zu dekomprimieren, um dekomprimierte Daten zu erzeugen; und die zweite Pipelineverarbeitungseinheit (210) einen Farbraumumwandler (125) zum Durchführen einer Farbraumumwandlung umfasst.
  3. Die konfigurierbare Datenverarbeitungspipeline (200) gemäß Anspruch 2, bei der: die Daten verlustfreie Daten und verlustbehaftete Daten umfassen; der Kompressor/Dekompressor einen verlustfreien Kompressor/Dekompressor (127) umfasst, der einen verlustfreien dekomprimierten Ausgang aufweist, wobei der zweite Ausgang (208) einen verlustfreien komprimierten Ausgang umfasst, wobei der verlustfreie Kompressor/Dekompressor (127) die Fähigkeit umfasst, die verlustfreien Daten zu empfangen, um komprimierte verlustfreie Daten zu erzeugen, und um die komprimierten verlustfreien Daten zu empfangen, um de komprimierte verlustfreie Daten zu erzeugen; der Kompressor/Dekompressor einen verlustbehafteten Kompressor/Dekompressor (126) umfasst, der einen verlustbehafteten dekomprimierten Ausgang aufweist, wobei der zweite Ausgang (208) einen verlustbehafteten komprimierten Ausgang umfasst, wobei der verlustbehaftete Kompressor/Dekompressor (126) die Fähigkeit umfasst, die verlustbehafteten Daten zu empfangen, um komprimierte verlustbehaftete Daten zu erzeugen, und um die komprimierten verlustbehafteten Daten zu empfangen, um de komprimierte verlustbehaftete Daten zu erzeugen; der Kompressor/Dekompressor einen Seitenstreifenverwalter (124) umfasst, der mit dem verlustfreien dekomprimierten Ausgang und dem verlustbehafteten dekomprimierten Ausgang gekoppelt ist, wobei der Seitenstreifenverwalter (124) einen ersten verlustfreien Ausgang und einen ersten verlustbehafteten Ausgang umfasst; der dritte Eingang (211) des Farbraumumwandlers (125) eine Verbindung zu dem ersten verlustfreien Ausgang und dem ersten verlustbehafteten Ausgang herstellt, wobei der fünfte Ausgang (214) des Farbraumumwandlers (125) einen zweiten verlustfreien Ausgang und einen zweiten verlustbehafteten Ausgang umfasst, wobei der Farbraumumwandler (125) die Fähigkeit umfasst, für die verlustfreien Daten, die dekomprimierten verlustfreien Daten, die verlustbehafteten Daten und die dekompri mierten verlustbehafteten Daten die Farbraumumwandlung zu umgehen, wobei der Farbraumumwandler (125) einen Selektor, der mit dem vierten Ausgang (213) gekoppelt ist, zum Auswählen aus den verlustfreien Daten und den verlustbehafteten Daten und aus den dekomprimierten verlustfreien Daten und den dekomprimierten verlustbehafteten Daten umfasst; die Direktspeicherzugriffssteuerung (201) die Fähigkeit umfasst, zumindest entweder die komprimierten verlustfreien Daten oder die komprimierten verlustbehafteten Daten durch den ersten Eingang (202) zu empfangen, und die Direktspeicherzugriffssteuerung (201) die Fähigkeit umfasst, zumindest entweder die komprimierten verlustfreien Daten oder die komprimierten verlustbehafteten Daten durch den ersten Ausgang (204) an den verlustfreien Kompressor/Dekompressor (127) bzw. den verlustbehafteten Kompressor/Dekompressor (126) zu senden; die Direktspeicherzugriffssteuerung (201) die Fähigkeit umfasst, zumindest entweder Zusammenführungsdaten oder komprimierte Zusammenführungsdaten durch den ersten Eingang zu empfangen, und die Fähigkeit umfasst, zumindest entweder die Zusammenführungsdaten oder die komprimierten Zusammenführungsdaten durch den ersten Ausgang an den verlustfreien Kompressor/Dekompressor (127) zu senden; und der verlustfreie Kompressor/Dekompressor (127) die Fähigkeit umfasst, die komprimierten Zusammenführungsdaten aus den Zusammenführungsdaten zu erzeugen und dekomprimierte Zusammenführungsdaten aus den komprimierten Zusammenführungsdaten zu erzeugen.
  4. Die konfigurierbare Datenverarbeitungspipeline (200) gemäß Anspruch 3, die ferner folgende Merkmale aufweist: eine Zusammenführungseinheit (128), die mit dem zweiten verlustfreien Ausgang und dem zweiten verlustbehafteten Ausgang gekoppelt ist, wobei die Zusammenführungseinheit (128) die Fähigkeit umfasst, die verlustfreien Daten, die verlustbehafteten Daten und die Zusammenführungsdaten zu empfangen, um zusammengeführte verlustfreie und verlustbehaftete Daten zu erzeugen, und die Zusammenführungseinheit die Fähigkeit umfasst, die dekomprimierten verlustfreien Daten, die dekomprimierten verlustbehafteten Daten und die dekomprimierten Zusammenführungsdaten zu empfangen, um die zusammengeführten verlustfreien und verlustbehafteten Daten zu erzeugen; eine Halbtongebungseinheit (130), die mit der Zusammenführungseinheit (128) gekoppelt ist, um die zusammengeführten verlustfreien und verlustbehafteten Daten zu empfangen und eine Halbtongebungsoperation hinsichtlich der zusammengeführten verlustfreien und verlustbehafteten Daten ansprechend auf Halbtongebungsdaten durchzuführen, wobei der Seitenstreifenverwalter (124) die Fähigkeit umfasst, zumindest entweder die verlustfreien Daten, die dekomprimierten verlustfreien Daten, die verlustbehafteten Daten, die dekomprimierten verlustbehafteten Daten, die Zusammenführungsdaten oder die dekomprimierten Zusammenführungsdaten zur nachfolgenden Verarbeitung zu formatieren, und wobei die verlustfreien und die verlustbehafteten Daten verlustfreie und verlustbehaftete Rasterdruckdaten zur Verwendung in einem Bilderzeugungssystem umfassen, das aus der Gruppe ausgewählt wird, die aus einem elektrophotographischen Drucksystem und einem Tintenstrahldrucksystem besteht.
  5. Die konfigurierbare Druckdatenverarbeitungspipeline (200, 15) gemäß Anspruch 1, bei der die erste Pipelineverarbeitungseinheit ein Kompressor/Dekompressor (205) ist, der die Fähigkeit aufweist, eine Komprimierung und eine Dekomprimierung als die erste bzw. eine dritte der Mehrzahl von Transformationen hinsichtlich Rasterdruckdaten durchzuführen und die Komprimierung und die Dekomprimierung hinsichtlich des Ergebnisses einer Durchführung zumindest einer der Mehrzahl von Transformationen hinsichtlich der Rasterdruckdaten durchzuführen, wobei die zweite Pipelineverarbeitungseinheit ein Farbraumumwandler (210, 125) ist, der die Fähigkeit aufweist, eine Farbraumumwandlung durchzuführen.
  6. Die konfigurierbare Druckdatenverarbeitungspipeline (200, 15) gemäß Anspruch 5, bei der: die Rasterdruckdaten verlustfreie Rasterdruckdaten und verlustbehaftete Rasterdruckdaten umfassen; der Kompressor/Dekompressor (205) einen verlustfreien Kompressor/Dekompressor (127) umfasst, der einen verlustfreien dekomprimierten Ausgang aufweist, wobei der zweite Ausgang (208) einen verlustfreien komprimierten Ausgang umfasst, wobei der verlustfreie Kompressor/Dekompressor (127) die Fähigkeit umfasst, die verlustfreien Rasterdruckdaten zu empfangen, um komprimierte verlustfreie Rasterdruckdaten zu erzeugen, und um die komprimierten verlustfreien Rasterdruckdaten zu empfangen, um dekomprimierte verlustfreie Rasterdruckdaten zu erzeugen; der Kompressor/Dekompressor (205) einen verlustbehafteten Kompressor/Dekompressor (126) umfasst, der einen verlustbehafteten dekomprimierten Ausgang aufweist, wobei der zweite Ausgang (208) einen verlustbehafteten komprimierten Ausgang umfasst, wobei der verlustbehaftete Kompressor/Derompressor (126) die Fähigkeit umfasst, 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; der Kompressor/Dekompressor (205) einen Seitenstreifenverwalter (124) umfasst, der mit dem verlustfreien dekomprimierten Ausgang und dem verlustbehafteten dekomprimierten Ausgang gekoppelt ist, wobei der Seitenstreifenverwalter (124) einen ersten verlustfreien Ausgang und einen ersten verlustbehafteten Ausgang umfasst; und der dritte Eingang (211) des Farbraumumwandlers (210, 125) eine Verbindung zu dem ersten verlustfreien Ausgang und dem ersten verlustbehafteten Ausgang herstellt, wobei der fünfte Ausgang (214) des Farbraumumwandlers (210, 125) einen zweiten verlustfreien Ausgang und einen zweiten verlustbehafteten Ausgang umfasst, wobei der Farbraumumwandler (210, 125) die Fähigkeit umfasst, für die verlustfreien Rasterdruckdaten, die dekomprimierten verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten und die dekomprimierten verlustbehafteten Rasterdruckdaten die Farbraumumwandlung zu umgehen, wobei der Farbraumumwandler (210, 125) einen Selektor, der mit dem vierten Ausgang (213) gekoppelt ist, zum Auswählen aus den verlustfreien Rasterdruckdaten und den verlustbehafteten Rasterdruckdaten und alternativ aus den dekomprimierten verlustfreien Rasterdruckdaten und den dekomprimierten verlustbehafteten Rasterdruckdaten umfasst; die Direktspeicherzugriffssteuerung (201, 122) die Fähigkeit umfasst, die komprimierten verlustfreien Rasterdruckdaten und die komprimierten verlustbehafteten Rasterdruckdaten durch den ersten Eingang (202) zu empfangen, und die Direktspeicherzugriffssteuerung (201, 122) die Fähigkeit umfasst, die komprimierten verlustfreien Rasterdruckdaten und die komprimierten verlustbehafteten Rasterdruckdaten durch den ersten Ausgang (204) an den verlustfreien Kompressor/Dekompressor (127) bzw. den verlustbehafteten Kompressor/Dekompressor (126) zu senden; und die Direktspeicherzugriffssteuerung (201, 122) die Fähigkeit umfasst, Zusammenführungsdaten und komprimierte Zusammenführungsdaten durch den ersten Eingang (202) zu empfangen, und die Fähigkeit umfasst, die Zusammenführungsdaten und die komprimierten Zusammenführungsdaten durch den ersten Ausgang (204) an den verlustfreien Kompressor/Dekompressor (127) zu senden; und der verlustfreie Kompressor/Dekompressor (127) die Fähigkeit umfasst, die komprimierten Zusammenführungsdaten aus den Zusammenführungsdaten zu erzeugen und dekomprimierte Zusammenführungsdaten aus den komprimierten Zusammenführungsdaten zu erzeugen.
  7. Die konfigurierbare Druckdatenverarbeitungspipeline (200, 15) gemäß Anspruch 6, die ferner folgende Merkmale aufweist: eine Zusammenführungseinheit (128), die mit dem zweiten verlustfreien Ausgang und dem zweiten verlustbehafteten Ausgang gekoppelt ist, wobei die Zusammenführungseinheit (128) die Fähigkeit umfasst, die verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten und die Zusammenführungsdaten zu empfangen, um zusammengeführte verlustfreie und verlustbehaftete Rasterdruckdaten zu erzeugen, und die Zusammenführungseinheit (128) die Fähigkeit umfasst, die dekomprimierten verlustfreien Rasterdruckdaten, die dekomprimierten verlustbehafteten Rasterdruckdaten und die dekomprimierten Zusammenführungsdaten zu empfangen, um die zusammengeführten verlustfreien und verlustbehafteten Rasterdruckdaten zu erzeugen; 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 Halbtongebungsdaten durchzuführen; einen Prozessor (132), der mit dem ersten Eingang (202) der Direktspeicherzugriffssteuerung (201, 122) gekoppelt ist, wobei der Prozessor (132) vorgesehen ist, um die verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten und die Zusammenführungsdaten aus Druckdaten zu erzeugen, und wobei der Seitenstreifenverwalter (124) die Fähigkeit umfasst, zumindest entweder die verlustfreien Rasterdruckdaten, die dekomprimierten verlustfreien Rasterdruckdaten, die verlustbehafteten Rasterdruckdaten, die dekomprimierten verlustbehafteten Rasterdruckdaten, die Zusammenführungsdaten oder die dekomprimierten Zusammenführungsdaten für nachfolgende Verarbeitungsoperationen zu formatieren.
  8. Die konfigurierbare Datenverarbeitungspipeline (200) gemäß Anspruch 1, bei der: der Seitenstreifenverwalter (124) die Fähigkeit umfasst, zumindest entweder die verlustfreien Rasterdruckdaten, die dekomprimierten verlustfreien Raster druckdaten, die verlustbehafteten Rasterdruckdaten, die dekomprimierten verlustbehafteten Rasterdruckdaten, die Zusammenführungsdaten oder die dekomprimierten Zusammenführungsdaten zur nachfolgenden Verarbeitung zu formatieren.
DE69829019T 1997-06-17 1998-03-26 Konfigurierbare Datenverarbeitungspipeline Expired - Fee Related DE69829019T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/878,883 US5852742A (en) 1997-06-17 1997-06-17 Configurable data processing pipeline
US878883 1997-06-17

Publications (2)

Publication Number Publication Date
DE69829019D1 DE69829019D1 (de) 2005-03-24
DE69829019T2 true DE69829019T2 (de) 2006-05-04

Family

ID=25373028

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69829019T Expired - Fee Related DE69829019T2 (de) 1997-06-17 1998-03-26 Konfigurierbare Datenverarbeitungspipeline

Country Status (4)

Country Link
US (1) US5852742A (de)
EP (1) EP0886236B1 (de)
JP (1) JPH11179984A (de)
DE (1) DE69829019T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
JP3215344B2 (ja) * 1997-03-10 2001-10-02 株式会社東芝 プロセッサ及びそのバグ回避方法
US5915079A (en) * 1997-06-17 1999-06-22 Hewlett-Packard Company Multi-path data processing pipeline
US6879266B1 (en) 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US6115134A (en) * 1997-12-05 2000-09-05 Hewlett-Packard Company Scan line splitting in a multi-staged image processing pipeline
US6002814A (en) * 1998-04-14 1999-12-14 Hewlett-Packard Company Means and method for configuring a data processing pipeline
US8416847B2 (en) * 1998-12-21 2013-04-09 Zin Stai Pte. In, Llc Separate plane compression using plurality of compression methods including ZLN and ZLD methods
US7129860B2 (en) * 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
US6822589B1 (en) 1999-01-29 2004-11-23 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
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
JP2003519945A (ja) * 2000-01-03 2003-06-24 エフェクタ テクノロジーズ コーポレイション データの送信または記憶のための効率的で可逆的な変換
US6721456B1 (en) 2000-02-23 2004-04-13 International Business Machines Corporation Color image data and control bit compression scheme with run length encoding
US6850338B1 (en) 2000-05-12 2005-02-01 International Business Machines Corporation Method, system, program, and data structure for generating raster objects
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
US6449328B1 (en) 2000-05-15 2002-09-10 International Business Machines Corporation Method and apparatus for shifting data from registers
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
US7230729B1 (en) 2000-05-15 2007-06-12 Hewlett-Packard Development Company, L.P. Printer pipeline bypass in hardware-ready format
US7394568B1 (en) 2000-05-15 2008-07-01 Infoprint Solutions Company Llc Method, system, and logic for selecting pixel 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
AUPQ772300A0 (en) 2000-05-24 2000-06-15 Canon Kabushiki Kaisha Highly pipelined printing system architecture
AU756971B2 (en) * 2000-05-24 2003-01-30 Canon Kabushiki Kaisha Highly pipelined printing system architecture
US6982800B1 (en) 2000-07-05 2006-01-03 Lexmark International, Inc. Apparatus and method for data management within a photoprinter
US6670960B1 (en) * 2000-09-06 2003-12-30 Koninklijke Philips Electronics N.V. Data transfer between RGB and YCRCB color spaces for DCT interface
US6798543B1 (en) 2000-09-13 2004-09-28 Sharp Laboratories Of America Inc. Method and apparatus for compression and decompression of halftoned images
US7283686B2 (en) * 2003-04-14 2007-10-16 Hewlett-Packard Development Company, L.P. Image processor
JP4127537B2 (ja) * 2004-02-04 2008-07-30 富士フイルム株式会社 画像処理方法および装置並びにプログラム
US20060226402A1 (en) * 2005-04-08 2006-10-12 Beon-Kyu Kim Ophthalmic devices comprising photochromic materials having extended PI-conjugated systems
US20070086035A1 (en) * 2005-10-19 2007-04-19 Wheless Thomas O Jr Printer controller apparatus implemented as a system in a package
US8035747B2 (en) * 2007-01-05 2011-10-11 Eastman Kodak Company Image digital processing based on edit status
JP4662189B2 (ja) * 2009-03-27 2011-03-30 富士ゼロックス株式会社 画像処理装置および画像処理プログラム
JP4991816B2 (ja) * 2009-09-30 2012-08-01 シャープ株式会社 画像処理装置
JP5776306B2 (ja) * 2011-04-25 2015-09-09 富士ゼロックス株式会社 画像データ処理装置及びプログラム
US9407789B2 (en) 2012-07-27 2016-08-02 Hewlett-Packard Development Company, L.P. Methods and systems to compress an image in a printing process
CN103955445B (zh) 2014-04-30 2017-04-05 华为技术有限公司 一种数据处理方法、处理器及数据处理设备
WO2017179099A1 (ja) 2016-04-11 2017-10-19 オリンパス株式会社 画像処理装置
US10509762B2 (en) * 2018-04-30 2019-12-17 Intel IP Corporation Data rate-adaptive data transfer between modems and host platforms

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4850027A (en) * 1985-07-26 1989-07-18 International Business Machines Corporation Configurable parallel pipeline image processing system
US5029105A (en) * 1987-08-18 1991-07-02 Hewlett-Packard Programmable pipeline for formatting RGB pixel data into fields of selected size
US4989138A (en) * 1988-09-02 1991-01-29 Tektronix, Inc. Single bus graphics data processing pipeline with decentralized bus arbitration
US5638498A (en) * 1992-11-10 1997-06-10 Adobe Systems Incorporated Method and apparatus for reducing storage requirements for display data
US5455576A (en) * 1992-12-23 1995-10-03 Hewlett Packard Corporation Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory
US5511152A (en) * 1993-09-20 1996-04-23 Digital Equipment Corporation Memory subsystem for bitmap printer data controller
US5655138A (en) * 1995-04-11 1997-08-05 Elonex I. P. Holdings Apparatus and method for peripheral device control with integrated data compression
US5729668A (en) * 1995-09-15 1998-03-17 Hewlett-Packard Company Optimized hardware compression and decompression architecture for use by an image processor in a laser printer
US5784636A (en) * 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications

Also Published As

Publication number Publication date
DE69829019D1 (de) 2005-03-24
US5852742A (en) 1998-12-22
EP0886236B1 (de) 2005-02-16
EP0886236A2 (de) 1998-12-23
JPH11179984A (ja) 1999-07-06
EP0886236A3 (de) 2002-12-18

Similar Documents

Publication Publication Date Title
DE69829019T2 (de) Konfigurierbare Datenverarbeitungspipeline
DE69814988T2 (de) Datenzusammenfügevorrichtung
DE69831133T2 (de) Konfiguriation einer Datenverarbeitungspipeline
DE4106458C2 (de) Graphische Datenverarbeitungseinrichtung zum Erzeugen eines Tones eines Randbildelements aus Vektordaten
JP3400944B2 (ja) 併合データ要素を生成する方法およびその印刷データ処理パイプライン
DE69817029T2 (de) Mischung von komprimierten rasterbildern in einem drucksystem
EP0886205A2 (de) Mehrweg-Datenverarbeitungspipeline
DE69732617T2 (de) Datenkompressionssystem und -verfahren mittels Unterabtastung und vorzugsweise adaptiver Abrechnung zum Senden von Bildern an einen Drucker
EP0764310B1 (de) Verfahren zur generierung einer contone-map
DE69733236T2 (de) Druck von schwarzweissreproduzierbaren Farbvorlagen
DE10204751B4 (de) Verfahren zur Konvertierung eines Linework Datenformats in das Format einer Seitenbeschreibungssprache
DE19623318C2 (de) Teilpixelcodierungs- und Decodierungsverfahren
DE69532873T2 (de) Bildverarbeitungsgerät
DE69822634T2 (de) Verfahren und system zum verändern des bildformats
DE3416795A1 (de) Bilddaten-kompressionssystem
DE69836298T2 (de) Druckbildübertragungs- und -ausgabesystem
DE60033479T2 (de) Bilderzeugungssystem und -verfahren
US6259536B1 (en) Color printing yielding a background dependent black image (i.e. intelligent black)
DE69934385T2 (de) Bilddatenkompression für Verarbeitung zusammengesetzter Dokumente
DE69627403T2 (de) Farbbilderzeugungsgerät
DE19835636A1 (de) Bildabtastapparat
DE60003615T2 (de) Bilderzeugungsgerät mit selektiver Glättung der Bilddaten
US7301669B1 (en) Color printing apparatus
US6801336B1 (en) System and method for producing halftoned color separations for an output imaging device
EP0766856B1 (de) Verfahren zur montage von druckbögen

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

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

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee