PatentDe  


Dokumentenidentifikation DE69835495T2 28.12.2006
EP-Veröffentlichungsnummer 0000921493
Titel Abtastlinienteilung in einer mehrstufigen Bildverarbeitungspipeline
Anmelder Hewlett-Packard Development Co., L.P., Houston, Tex., US
Erfinder Creel, Christopher, Boise, Idaho 83703, US;
Jacobsen, Dana A., Boise, Idaho 83713, US
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Aktenzeichen 69835495
Vertragsstaaten DE, FR, GB
Sprache des Dokument EN
EP-Anmeldetag 22.06.1998
EP-Aktenzeichen 981114648
EP-Offenlegungsdatum 09.06.1999
EP date of grant 09.08.2006
Veröffentlichungstag im Patentblatt 28.12.2006
IPC-Hauptklasse G06K 15/00(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse G06K 15/02(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]
Gebiet der Erfindung

Diese Erfindung bezieht sich allgemein auf Bilderzeugungsvorrichtungen und insbesondere auf eine verbesserte Speicherverwaltung bei einem Seitendrucker.

Hintergrund der Erfindung

Die Bildverarbeitungspipeline eines Druckers führt eine Anzahl von Operationen bei Druckdaten in Vorbereitung auf ein Drucken durch. Diese Operationen umfassen z. B.: Druckdatenkomprimierung, Druckdatenentkomprimierung, Farbraumumwandlung, Erweiterung, Halbtongebung, Abschneiden, Skalieren, Drehung und dergleichen. Der durchgeführte Operationstyp und die spezifische Reihenfolge, in der die Operationen durchgeführt werden, können abhängig von dem Typ von Druckdaten, die in die Pipeline eintreten, den Fähigkeiten der Druckmaschine und dem Speicher, der in dem Drucker verfügbar ist, variieren. Die Typen von Druckdaten, die in die Pipeline eintreten können, umfassen: Text, Linienzeichnung, Bilder und Graphiken.

Bei herkömmlichen Pipelineimplementierungen werden die verschiedenen Druckoperationen durch einen Mikroprozessor unter der Steuerung von Firmware durchgeführt. Abhängig von dem Typ von Druckdaten, die in die Pipeline eintreten, und den Operationen, die notwendig sind, um die Druckdaten zu verarbeiten, wird eine Anzahl von möglichen Firmwareroutinen ausgeführt, um die Druckdatenverarbeitungsoperationen abzuschließen. Alternativ dazu können einige Operationen in eine anwendungsspezifischen integrierten Schaltung (ASIC) eingebettet sein. In jedem Fall wird die Bildverarbeitungspipeline oft als der „Bildprozessor" für den Drucker bezeichnet, ob dieselbe nun als eine große „einzelne" Funktionsaufrufentität oder als mehrere Funktionsentitäten konzipiert ist.

Da sich Drucker bei der Dichte einer Punktplatzierung (Punkte pro Zoll) steigern, zusätzliche Grauwertfähigkeit erwerben (unter Verwendung eines Satzes von Bits pro Pixel, um einen Grauwertpegel zu definieren) und eine Farbdruckfähigkeit umfassen (was zusätzliche Bits pro Pixel gegenüber einem einfarbigen Drucken erfordert), wird die Zeit, die notwendig ist, damit die Pipeline die Druckdaten verarbeitet, erheblich. Zum Beispiel kann bei einem Farbdrucken der Speicher, der benötigt wird, um die Daten zu speichern, die verwendet werden, um eine Seite zu drucken, das Zweiunddreißigfache oder mehr des Speichers erreichen, der für einen einfarbigen Drucker der gleichen Auflösung benötigt wird. Um die Druckgeschwindigkeitsfähigkeiten der Druckmaschine voll auszunutzen, muss die Pipeline die Fähigkeit aufweisen, Druckdaten ausreichend schnell zu verarbeiten, um einen kontinuierlichen Strom von Druckdaten an die Druckmaschine zu liefern, wodurch ermöglicht wird, dass die Druckmaschine während des gesamten Druckauftrags kontinuierlich druckt.

Wie es im Vorhergehenden erwähnt ist, wurden herkömmliche Datenpipelines unter Verwendung von Universalmikroprozessoren implementiert. Obwohl Mikroprozessoren die Vielseitigkeit aufweisen, programmiert zu werden, um die Operationen der Datenpipeline durchführen, erhöht die Menge an Cache-Speicher, die einem beliebigen gegebenen Mikroprozessor zugeordnet ist, im Allgemeinen direkt die Geschwindigkeit zum Durchführen dieser Operationen. In anderen Worten gilt: je mehr verfügbarer Cache-Speicher, desto besser der potentielle Leistungsdurchsatz. Mikroprozessoren mit mehr Cache-Speicher sind jedoch normalerweise teurer als diejenigen mit weniger Cache-Speicher. Deshalb ist bei Bemühungen, Kosten zu reduzieren, ein kleinerer Cache-Speicher in einem Mikroprozessor oft das erzwungene Ergebnis für einen kostengünstigen Drucker, etwas Cache-Speicher ist jedoch im Allgemeinen immer besser als keiner.

Der Cache-Speicher des Mikroprozessors ist ein spezifischer Speicherbereich, der allgemeinen für Schnellzugriffsbedarf verwendet wird. Eine typische Verwendung besteht darin, eine Abtastzeile von Druckdaten für Bildverarbeitungsoperationen zu speichern. Eine Abtastzeile von Druckdaten ist ein eindimensionales Array von Pixeldaten und kann bis zu so viel Pixeldaten umfassen, wie sich über ein Blatt Papier spannen – abhängig von dem Objekt, das in den Druckdaten abzubilden ist. Zum Beispiel ist eine „longrule" (Langlinie) ein Objekt, das sich über eine gesamte Seitenbreite erstreckt, normalerweise etwa 4.500 Pixel (oder etwa 1.100 Wörter, wobei vier Pixel pro Wort und Acht-Bit-Pixel angenommen werden). Leider hält jedoch ein kleinerer Cache-Speicher nicht immer eine gesamte Abtastzeile von Druckdaten – abhängig von der Cachegröße und den durchgeführten Bilderzeugungsoperationen. Dies ist unerwünscht, da die meisten gestuften Bildprozessoren mehrere Durchgänge an einer Abtastzeile durchführen. Das Problem besteht darin, dass, falls die Abtastzeile eines Objekts zu groß ist, um in den Cache-Speicher zu passen, der Cache-Speicher, wenn jede Stufe des Bildprozessors sich entlang der Abtastzeile bewegt (wobei Operationen an den Druckdatenobjekten ausgeführt werden), die Daten hinauswerfen muss, die am wenigsten aktuell verwendet wurden (d. h. vorhergehende Daten von der Abtastzeile), um ein Laden von aktuelleren Daten zu ermöglichen. Auf ähnliche Weise wiederholt jede zusätzliche Stufe (Bildverarbeitungsoperation) das gleiche Muster, bis alle Stufen ihr Formatieren für die volle Abtastzeile von Daten abgeschlossen haben. Somit wird, wenn eine lange Abtastzeile von Daten auf herkömmliche Weise in einem kleineren Cache-Speicher bildverarbeitet wird, der Gesamtwirkungsgrad und die Geschwindigkeit des Bildprozessors aufgrund der inhärenten Cacheüberlastung (kontinuierliches Neuladen von Daten) beeinträchtigt.

Die US-A-5,390,262 bezieht sich auf ein System und ein Verfahren zum Verarbeiten von Bilddaten von einem Dokument. Das Verarbeiten der Bilddaten erfolgt parallel, nachdem ein Abtasten des Dokuments gestartet worden ist, jedoch bevor das gesamte Dokument abgetastet worden ist. Ein Teiler wird verwendet, um eine Abtastzeile von Bilddaten, die durch einen Bildaufnehmer an der Abtastzeile erzeugt werden, in eine Mehrzahl von Kanälen zu teilen. Die Anzahl von Kanälen wird automatisch durch das System gemäß eingegebenen Abtast- und Dokumentparametern bestimmt. Eine Schwellenwertoperation und eine Komprimierung werden durch jeden der Kanäle parallel durchgeführt.

Die US-A-5,619,622 bezieht sich auf eine Vollbreitenarrayrasterbilderzeugungsschnittstelle für einen Tintenstrahldrucker. Die Rasterbilderzeugungsschnittstelle wandelt Rasterinformationen zum Drucken durch einen thermischen Tintenstrahlvollbreitenarraydruckstab um. Die Umwandlung umfasst ein Teilen von Abtastzeilen der Rasterinformationen in Segmente, die der Zahl eines Chips in einem Druckstab entsprechen, und um das Drucken jedes nachfolgenden Segments um eine Abtastzeile zu verzögern. Die Umwandlung ist notwendig, da der Druckstab eine einzelne Zeile von Pixeln in einem Stoß von mehreren Bänken oder Segmenten, die eine Mehrzahl von Düsen aufweisen, druckt. Die Bänke von Düsen werden sequentiell abgefeuert, und die Düsen innerhalb einer Bank werden gleichzeitig abgelegt.

Die EP-A-0 585 524 bezieht sich auf einen Seitendrucker, der eine adaptive Datenkomprimierung zur Speicherminimierung aufweist. Eine Peripherieeinheit wandelt einen Eingangsdatenfluss zu seitenangeordneten Ausgangssignalen um und umfasst eine Direktzugriffsspeicherkapazität, die bezüglich der Größe nicht ausreichend ist, um eine gesamte Seite von Rasterdaten aufzunehmen. Die Peripherieeinheit umfasst auch einen Prozessor und einen Steuerspeicher, der eine Mehrzahl von Datenkomprimierungsprozeduren enthält, wobei jede Prozedur eine andere Leistungscharakteristik aufweist. Die Peripherieeinheit führt ein Verfahren zum Komprimieren von Teilen des Eingangsdatenflusses durch, das den Direktzugriffsspeicher Teilen des Eingangsdatenflusses zuteilt, bestimmt, wann eine nicht ausreichende Menge von Direktzugriffsspeicher für eine derartige Zuteilung verfügbar ist, eine erste Datenkomprimierungsprozedur bei den Eingangsdatenflussteilen verwendet, um einen komprimierten Datenteil zu erzeugen, den komprimierten Datenteil prüft, um zu bestimmen, ob ein Komprimierungspegel erreicht worden ist, der eine Schwelle überschreitet, und, falls dies nicht der Fall ist, nachfolgende Datenkomprimierungsprozeduren verwendet und den Test für jede Prozedur gegenüber einer Schwelle wiederholt. Somit wird eine effiziente Verwendung einer begrenzten Menge von eingebautem Speicher ermöglicht.

Es ist die Aufgabe der vorliegenden Erfindung, einen verbesserten Bilderzeugungsverarbeitungsmechanismus und ein -verfahren zu schaffen, die eine verringerte Bilderzeugungszeit ermöglichen, vor allem bei einer Umgebung eines begrenzten Cache-Speichers.

Diese Aufgabe wird durch eine Bilderzeugungsvorrichtung gemäß Anspruch 1 und ein Verfahren zum Bildverarbeiten gemäß Anspruch 6 gelöst. Die Ansprüche sind gegenüber der US-A-5,390,262 abgegrenzt.

Gemäß den Prinzipien der vorliegenden Erfindung bei einem bevorzugten Ausführungsbeispiel umfasst eine mehrstufige Bildverarbeitungspipeline bei einem Seitendrucker eine Teilerstufe zum Zerlegen einer Abtastzeile von Daten in Abschnitte für einen verbesserten Formatierungswirkungsgrad und eine verbesserte Geschwindigkeit in der Pipeline. Bei einem bevorzugten Ausführungsbeispiel bewirkt die Teilerstufe, dass ein Abschnitt der Abtastzeilendaten durch alle Bildverarbeitungsstufen mit einer verringerten Cacheüberbelastung verarbeitet wird. Jeder Abschnitt von Abtastzeilendaten ist eingestellt, um eine Größe aufzuweisen, die für den verfügbaren Cache-Speicher optimal ist. Vorteilhafterweise ermöglicht der Teiler, dass jede Stufe bezüglich der Daten wirksam ist, die sich derzeit in dem Cache-Speicher befinden. Außerdem liefert der Teiler eine dynamisch konfigurierbare Teilerdimensionierung für eine optimale Cacheanpassung und eine verringerte Cacheüberlastung.

Andere Aufgaben, Vorteile und Fähigkeiten der vorliegenden Erfindung werden ersichtlicher, während die Beschreibung fortschreitet.

Beschreibung der Zeichnungen

1 ist ein Blockdiagramm eines Druckers, der den Abtastzeilenteilermechanismus und das Verfahren der vorliegenden Erfindung ausführt.

2 ist ein Flussdiagramm, das ein bevorzugtes Verfahren der vorliegenden Erfindung zeigt.

3 ist ein Graph, der simulierte Zeitgebungsergebnisse für eine Bildverarbeitung einer Langlinie unter Verwendung von verschiedenen Teilergrößen bei der vorliegenden Erfindung zeigt.

4 ist ein Blockdiagramm einer Bildverarbeitungspipeline, die die vorliegende Erfindung ausführt.

Detaillierte Beschreibung der Erfindung

1 ist ein Blockdiagramm auf hoher Ebene eines Seitendruckers 10, der den Abtastzeilenzerlegungsmechanismus und das Verfahren für eine mehrstufige Bildverarbeitungspipeline der vorliegenden Erfindung enthält. Der Seitendrucker 10 wird durch einen Mikroprozessor 15 gesteuert, der mit anderen Elementen des Systems über einen Bus 20 kommuniziert. Der Mikroprozessor 15 umfasst einen Cache-Speicher 25. Eine Druckmaschinensteuerung 30 und eine zugeordnete Druckmaschine 35 sind mit dem Bus 20 verbunden und liefern die Druckausgabefähigkeit für den Seitendrucker. Für die Zwecke dieser Offenbarung ist die Druckmaschine 35 ein Laserdrucker, der ein elektrophotographisches Trommelbilderzeugungssystem verwendet, wie es in der Technik bekannt ist. Wie es jedoch für Fachleute offensichtlich ist, ist die vorliegende Erfindung auf ähnliche Weise bei anderen Typen von Druckern und/oder Bilderzeugungsvorrichtungen anwendbar, die z. B. Tintenstrahldrucker, Faxgeräte, Kopierer oder dergleichen umfassen.

Ein Eingabe/Ausgabe- (I/O-) Port 40 liefert eine Kommunikation zwischen dem Seitendrucker 10 und einem Hostcomputer 45 und empfängt Seitenbeschreibungen (oder Rasterdaten) von dem Host zum Verarbeiten in dem Seitendrucker. Ein dynamischer Direktzugriffsspeicher (DRAM) 50 liefert einen Hauptspeicher für den Seitendrucker zum Speichern und Verarbeiten eines Druckauftragdatenstroms, der von dem Host 45 empfangen wird. Ein Nur-Lese-Speicher (ROM) 55 enthält Firmware, die den Betrieb des Mikroprozessors 15 und des Seitendruckers 10 steuert. Codeprozeduren, die in dem ROM 55 gespeichert sind, umfassen z. B. einen Seitenwandler, einen Rasterisierer, einen Komprimierungscode, einen Seitendruckzeitplaner und eine Druckmaschinenverwaltungseinrichtung. Die Seitenwandlerfirmware wandelt eine Seitenbeschreibung, die von dem Host empfangen wird, in eine Anzeigebefehlsliste um, wobei jeder Anzeigebefehl ein Objekt definiert, das auf der Seite zu drucken ist. Die Rasterisiererfirmware wandelt jeden Anzeigebefehl in eine geeignete Bitmap bzw. Bitabbildung (gerasterter Streifen oder Band) um und verteilt die Bitabbildung in den Speicher 50. Die Komprimierungsfirmware komprimiert die gerasterten Streifen, falls ein nicht ausreichender Speicher in dem Speicher 50 zum Halten der gerasterten Streifen existiert.

Allgemein beginnt der Betrieb des Seitendruckers 10, wenn derselbe eine Seitenbeschreibung von dem Hostcomputer 45über den I/O-Port 40 in Form eines Druckauftragsdatenstroms empfängt. Die Seitenbeschreibung wird in dem DRAM 50 und/oder dem Cache-Speicher 25 platziert. Der Mikroprozessor 30 greift auf die Seitenbeschreibung Zeile für Zeile zu und erstellt eine Anzeigebefehlsliste unter Verwendung der Seitenwandlerfirmware in dem ROM 55. Wenn die Anzeigebefehlsliste erzeugt wird, werden die Anzeigebefehle nach Ort auf der Seite sortiert und Seitenstreifen in dem Speicher 50 zugeteilt. Wenn eine Seite für ein Verarbeiten geschlossen wird (d. h. alle Streifen wurden ausgewertet, gerastert, komprimiert usw. zum Verarbeiten durch die Druckmaschine 35), dann werden die gerasterten Streifen durch die Druckmaschinensteuerung 30 an die Druckmaschine 35 geleitet, wodurch die Erzeugung eines Bildes (d. h. Text/Graphik usw.) ermöglicht wird. Der Seitendruckzeitplaner steuert die Sequenzialisierung und das Übertragen von Seitenstreifen an die Druckmaschinensteuerung 30. Die Druckmaschinenverwaltungseinrichtung steuert den Betrieb der Druckmaschinensteuerung 30 und dann der Druckmaschine 35.

Der ROM 55 umfasst auch andere Bildverarbeitungsprozeduren zum Erzeugen eines Bildes aus einem Druckauftragsdatenstrom, die z. B. eine Farbraumumwandlungsprozedur, eine Halbtongebung, ein Abschneiden, ein Skalieren und Drehprozeduren umfassen, um nur einige wenige zu nennen. Zusammen bilden diese Prozeduren die Bildverarbeitungspipeline oder den „Bildprozessor" für den Drucker 10 (siehe 4). Jede Bildverarbeitungsprozedur wird hier als eine „Stufe" in der Bildverarbeitungspipeline zum Wirksamsein bezüglich Druckbilddaten bezeichnet. Somit wird ein mehrstufiger Bildprozessor verwendet, wodurch eine sequentielle Bildverarbeitung erfolgen kann.

Es ist wichtig, dass der ROM 55 ferner einen Abtastzeilenteiler 60 gemäß der vorliegenden Erfindung umfasst. Bei einem bevorzugten Ausführungsbeispiel ist der Abtastzeilenteiler 60 auch eine Stufe bei dem Bildprozessor, wie es hier genauer beschrieben wird. Der Abtastzeilenteiler 60 teilt eine Abtastzeile von Druckdaten in „Abschnitte" (oder Teile) und steuert den Bildprozessor, um bezüglich jedes „Abschnitts" von Druckdaten derart wirksam zu sein, dass der Abschnitt nicht aus dem Cache-Speicher 25 entfernt wird, bis alle Stufen, die dazu bestimmt sind, bei diesem Abschnitt wirksam zu sein, ihre Bildverarbeitungsoperationen abgeschlossen haben. Vorteilhafterweise ermöglicht dies, dass jede der Stufen bezüglich der Druckdaten wirksam ist, während die Daten sich noch in dem Cache-Speicher befinden, und vermeidet eine Cacheüberlastung für Formatierungsoperationen zwischen Stufen. Im Grunde übernimmt der Abtastzeilenteiler 60 die Verantwortung dafür, neue Abtastzeilendaten in den Cache-Speicher zu bringen, wodurch ein Gesamtwirkungsgrad und eine Geschwindigkeit der Bildverarbeitungspipelineoperationen verbessert wird.

2 ist ein Flussdiagramm, das ein bevorzugtes Verfahren der vorliegenden Erfindung zum Abtastzeilenzerlegen bei einem mehrstufigen Bildprozessor zeigt. Zuerst 210 wird die Abtastzeilenteilergröße eingestellt. Bei einem bevorzugten Ausführungsbeispiel wird die Teilergröße auf ein Systemhochfahren (des Seitendruckers 10) hin eingestellt. Zum Beispiel wird auf ein Hochfahren hin eine Auswertung vorgenommen, welcher Typ von Mikroprozessor 15 in dem Drucker 10 verwendet wird, um dadurch eine Cachegröße 25 und eine Assoziativität zu bestimmen. Nachdem die Cachekonfiguration beurteilt worden ist, wird die Teilergröße entweder durch eine statische Referenz (d. h. fest codiert) oder bevorzugt durch eine dynamische Auswertung eingestellt. Bezüglich einer dynamischen Auswertung ist 3 z. B. ein Graph, der simulierte Zeitgebungsergebnisse für eine Bildverarbeitung einer Langlinie unter Verwendung von verschiedenen Teilergrößen bei der vorliegenden Erfindung in Verbindung mit mehreren exemplarischen Cache-Speicher-Konfigurationen zeigt. Die Legende identifiziert jede Graphliniendarstellung für eine spezifische Cache-Speichergröße (in Kilobyte) und Cache-Assoziativität (Einweg oder Vierweg). Jede graphisch dargestellte Linie stellt die Zeitmenge (in Millisekunden) dar, die benötigt wurde, um die Langlinie unter Verwendung von verschiedenen Teilergrößen (in Wörtern) abzubilden. Die Abtastwerte beginnen mit einer Teilergröße von 16 Wörtern auf der linken Seite des Graphs und enden mit einer Teilergröße von 56 Wörtern auf der rechten Seite des Graphs. Ganz rechts jenseits der 265-Wort-Teilergröße stellen die graphisch dargestellten Linien Konfigurationen allgemein ohne einen Teiler der vorliegenden Erfindung dar.

Insgesamt zeigt der Graph von 3 deutlich, dass eine bevorzugte Teilerwortgröße für mehrere der gezeigten Konfigurationen etwa 64 Wörter beträgt. Wie es ersichtlich ist, verschlechtert (erhöht) eine kleinere Wortgröße rasch eine Bilderzeugungszeit aufgrund des Mehraufwands des Verarbeitens vieler kleinerer Wörter über mehrere Abtastzeilen. Eine größere Wortgröße steigert ebenfalls oft allmählich die Bilderzeugungszeit aufgrund einer Cacheüberlastung (obwohl jeder Fall anders ist). Außerdem ist es ersichtlich, dass die wesentlichsten Verbesserungen (Abnahmen) bei der Bilderzeugungszeit bei den Einwegassoziativitätscachekonfigurationen bei in etwa der 64-Wort-Teilergröße zu finden sind.

Somit wird unter Verwendung von simulierten Ergebnissen, wie es in dem Graph von 3 gezeigt ist, und unter jetziger erneuter Bezugnahme auf das Flussdiagramm von 2, Block 210, eine Abtastzeilenteilergröße dynamisch abhängig von einer gegebenen Systemkonfiguration von Cachegröße und Assoziativität ausgewählt. Zum Beispiel kann eine Nachschlagetabelle, die die Ergebnisse von 3 enthält, zum dynamischen Auswählen einer bevorzugten Teilergrößenkonfiguration verwendet werden.

Nach dem Einstellen der Abtastzeilenteilergröße 210 (d. h. nach einem Hochfahren) wird auf einen Empfang eines Druckdatenstroms zur Bildverarbeitung ein nächstes Objekt erhalten, und seine Abtastzeilengröße wird ausgewertet 215.

Falls die Abtastzeilengröße geringer als die Teilergröße ist 220, dann wird das Objekt ohne ein Zerlegen seiner Abtastzeile bildverarbeitet 225. Dies liegt daran, dass höchstwahrscheinlich die gesamte Abtastzeile des Objekts in den Cache-Speicher passt und nicht z. B. zwischen zwei beliebigen Bildverarbeitungsoperationen in der Pipeline hinausgeworfen werden muss. Somit sollte ein Verarbeitung automatisch effizient und schnell durch die Pipeline erfolgen.

Falls die Abtastzeilengröße des Objekts die Teilergrößenschwelle überschreitet 220, dann wird die Abtastzeile in Teilergrößenabschnitte zerlegt 230 (oder man könnte sagen, dass zumindest ein erster Teilergrößenabschnitt der Abtastzeile erhalten wird), und der erste (aktuelle) Abschnitt wird der Bildprozessorpipeline zum Formatieren vorgelegt 235. Per Systemvoreinstellung (normalerweise hardwarevorgeschrieben) wird der aktuelle Abschnitt in den Cache-Speicher 25 zum Verarbeiten durch die Pipeline geladen.

Nachfolgend wird die nächste Bildverarbeitungsoperation bei dem aktuellen Abschnitt von Abtastzeilendaten durchgeführt 240. Bei dieser Operation kann es sich um eine beliebige der zahlreichen Stufen bei dem Bildprozessor handeln, wie z. B. Komprimierung, Entkomprimierung, Farbraumumwandlung, Erweiterung, Halbtongebung, Abschneiden, Skalieren, Drehung und dergleichen. Wenn das Formatieren dieser Stufe für diesen aktuellen Abschnitt der Abtastzeile abgeschlossen ist, dann wird, wenn weitere Bildverarbeitungsoperationen durchzuführen sind (d. h. andere Stufen) 245, der Zyklus wiederholt 240, 245, und jede Stufe führt ihre Formatierung bei dem aktuellen vorliegenden Abschnitt aus, bis alle Operationen abgeschlossen sind 245. Auf diese Weise hat der aktuelle Abschnitt von Daten, der verarbeitet wird, eine erheblich verbesserte Chance, in dem Cache-Speicher 25 zu bleiben und nicht verworfen zu werden. Da jedoch die Formatierungsoperationen jeder Stufe andere Daten in den Cache-Speicher laden können zum Ermöglichen des Verarbeitens des aktuellen Abtastzeilenabschnitts, ist es möglich, dass an irgendeinem Punkt der aktuelle Abschnitt tatsächlich das am wenigsten aktuell verwendete Segment von Daten in dem Cache-Speicher wird und folglich überschrieben wird, was somit ein erneutes Laden zu einem späteren Zeitpunkt erfordert. Die Chancen, dass dies auftritt, sind jedoch bei der vorliegenden Erfindung minimiert, da die Teilergröße durch die simulierten Auswertungen (3) optimal ausgewählt wurde (210).

Wenn alle Operationen für den aktuellen Abschnitt abgeschlossen sind 245, dann wird dieser Abschnitt aufbereitet 250 und in dem Speicher 50 gespeichert. Falls an diesem Punkt nicht die gesamte Abtastzeile für das Objekt vollständig formatiert worden ist (d. h. es sind mehr „Abschnitte" zu formatieren) 255, dann wird ein nächster „aktueller" Abschnitt der aktuellen Abtastzeile von Druckdaten erhalten und der Pipeline zur fortgesetzten Bildverarbeitung vorgelegt 235. Erneut werden alle Bildverarbeitungsoperationen bei diesem nächsten Abschnitt 240 und 245 durchgeführt, und dann wird der Abschnitt aufbereitet 250.

Diese Schritte des Erhaltens eines Abschnitts der Abtastzeile (230, 235) und des Bildverarbeitens des Abschnitts (240, 245, 250) werden wiederholt, bis alle Abschnitte der Abtastzeile verarbeitet worden sind 255. Auf diese Weise wird die Abtastzeile von Bilddaten mit einem verbesserten Gesamtwirkungsgrad und einer verbesserten Geschwindigkeit formatiert, da eine Cacheüberlastung für Abtastzeilendaten, die verarbeitet werden, minimiert wird.

Es sei hier darauf hingewiesen, dass, obwohl die Schritte in 2, die die Abtastzeilengrößenauswertung und das Abschnittzerlegen durchführen (220, 230 und 235), getrennt von den anderen „Bildverarbeitungsoperations"-Schritten (240, 245 und 250) identifiziert sind, bei einem bevorzugten Ausführungsbeispiel die Abtastzeilengrößenauswertung und das Abschnittzerlegen tatsächlich eine frühe Stufe innerhalb der Bildverarbeitungspipeline sind. Zum Beispiel zeigt 4 diese bevorzugte Implementierung in einem Blockdiagramm. Und zwar ist 4 ein Blockdiagramm einer Bildverarbeitungspipeline 410, die exemplarische Bildverarbeitungsstufen aufweist, die eine Erweiterungsstufe 415, eine Skalierungsstufe 420, eine Teilerstufe 425 (gemäß der vorliegenden Erfindung), eine Komprimierungsstufe 430, eine Farbraumumwandlungs- 435, eine Halbtongebungs- 440, eine Abschneidungs- 445 und eine Drehstufe 450 umfassen. Obwohl 4 nicht alle möglichen Anordnungsvariationen (Abhängigkeiten) für Stufen innerhalb einer Bildverarbeitungspipeline beschreibt, stellt dieselbe dar, dass einige Anordnungsabhängigkeiten bevorzugt werden. Zum Beispiel sind die Erweiterungs- und die Skalierungsstufe 415 und 420 vor der Teilerstufe 425 (relativ zu dem Gesamtbildverarbeitungsdatenfluss) gezeigt, um darzustellen, dass es am besten ist, dass die Erweiterungs- und die Skalierungsstufe die Abtastzeilendaten vor der Teilerstufe verarbeiten. Es wird nämlich bevorzugt, dass die Teilerstufe bezüglich Abtastzeilendaten erst wirksam ist, nachdem die Breite dieser Abtastzeilendaten sich nicht mehr verändert. Obwohl der Rest der Stufen 430, 435, 440, 445 und 450 nicht in irgendeiner bestimmten Ordnung gezeigt ist, werden dieselben gezeigt, um einige der vielen Stufen zu zeigen, die bei einem mehrstufigen Bildprozessor in Verbindung mit dem Abtastzeilenteiler 425 der vorliegenden Erfindung existieren können. Es ist jedoch für Fachleute ersichtlich, dass diese Stufen (und eine beliebige Stufe) in einer Bildverarbeitungspipeline von dem vorhergehenden Verarbeiten anderer Stufen abhängig sein können.

Schließlich handelt es sich bei dem Beschriebenen um bevorzugte Ausführungsbeispiele für einen Mechanismus und ein Verfahren zum Zerlegen einer Abtastzeile von Druckdaten für eine verbesserte Bildverarbeitungsleistung. Es ist für einen Fachmann ersichtlich, dass die vorliegende Erfindung ohne weiteres unter Verwendung von Beliebigen einer Vielzahl von Komponenten, die in der Technik existieren, zu implementieren ist.


Anspruch[de]
Eine Bilderzeugungsvorrichtung (10), die folgende Merkmale aufweist:

(a) einen Speicher (25);

(b) einen Bildverarbeitungsmechanismus (410) zum Durchführen von zumindest zwei Bildverarbeitungsoperationen (430, 435, 440, 445, 450) unter Verwendung des Speichers (25);

gekennzeichnet durch

(c) einen Steuermechanismus (60, 425) zum Liefern nur eines Abschnitts einer Abtastzeile von Druckdaten an den Bildverarbeitungsmechanismus, wodurch der Abschnitt durch die zumindest zwei Bildverarbeitungsoperationen bildverarbeitet wird, bevor ein nächster Abschnitt der Abtastzeile durch den Bildverarbeitungsmechanismus bildverarbeitet wird, wobei die Größe des Abschnitts auf ein Hochfahren der Bilderzeugungsvorrichtung (10) hin abhängig von einer Konfiguration des Speichers (25) eingestellt wird.
Die Bilderzeugungsvorrichtung gemäß Anspruch 1, bei der der Abschnitt einer Abtastzeile von Druckdaten eine Größe aufweist, die nicht größer als eine Kapazität des Speichers (25) ist. Die Bilderzeugungsvorrichtung gemäß Anspruch 1 oder 2, bei der der Speicher ein Cache-Speicher (25) ist. Die Bilderzeugungsvorrichtung gemäß Anspruch 1, 2 oder 3, bei der die zumindest zwei Bildverarbeitungsoperationen (430, 435, 440, 445, 450) getrennte Bildverarbeitungsstufen einer Bildverarbeitungspipeline (410) zum Formatieren der Abtastzeile von Druckdaten sind. Ein Verfahren zur Bildverarbeitung bei einer Bilderzeugungsvorrichtung, das folgende Schritte aufweist:

(a) Liefern eines Teils einer Abtastzeile von Druckdaten (230, 235) an eine Bildverarbeitungspipeline (410) in Zuordnung zu einem Speicher (25); und

(b) Aktivieren von zumindest zwei Bildverarbeitungsoperationen (430, 435, 440, 445, 450, 240, 245) in der Bildverarbeitungspipeline (410), um bezüglich des Teils von Druckdaten derart wirksam zu sein, dass der Teil durch die zumindest zwei Bildverarbeitungsoperationen bildverarbeitet wird, bevor ein nächster Teil der Abtastzeile von Druckdaten bildverarbeitet wird,

wobei die Größe des Teils von Druckdaten auf ein Hochfahren der Bilderzeugungsvorrichtung (10) hin abhängig von einer Konfiguration des Speichers (25) eingestellt wird.
Das Verfahren gemäß Anspruch 5, bei dem die Bildverarbeitungspipeline eine mehrstufige Pipeline (410) ist, und bei dem jede Stufe (430, 435, 440, 445, 450) zumindest eine Bildverarbeitungsoperation unter Verwendung des Speichers (25) durchführt. Das Verfahren gemäß Anspruch 5 oder 6, das ferner ein Wiederholen der Schritte (a) und (b) bezüglich weiterer Teile der Abtastzeile von Druckdaten umfasst, bis die zumindest zwei Bildverarbeitungsoperationen bei allen Teilen der Abtastzeile von Druckdaten durchgeführt worden sind. Das Verfahren gemäß Anspruch 5, 6 oder 7, bei dem der Speicher ein Cache-Speicher ist.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com