-
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" Funkti onsaufrufentitä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 kos tengü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. Vorteilhafter weise 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 gra phisch 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 Viel zahl von Komponenten, die in
der Technik existieren, zu implementieren ist.