DE69835495T2 - Abtastlinienteilung in einer mehrstufigen Bildverarbeitungspipeline - Google Patents

Abtastlinienteilung in einer mehrstufigen Bildverarbeitungspipeline Download PDF

Info

Publication number
DE69835495T2
DE69835495T2 DE69835495T DE69835495T DE69835495T2 DE 69835495 T2 DE69835495 T2 DE 69835495T2 DE 69835495 T DE69835495 T DE 69835495T DE 69835495 T DE69835495 T DE 69835495T DE 69835495 T2 DE69835495 T2 DE 69835495T2
Authority
DE
Germany
Prior art keywords
image processing
scan line
memory
data
image
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 - Lifetime
Application number
DE69835495T
Other languages
English (en)
Other versions
DE69835495D1 (de
Inventor
Christopher Boise Creel
Dana A. Boise Jacobsen
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
Publication of DE69835495D1 publication Critical patent/DE69835495D1/de
Application granted granted Critical
Publication of DE69835495T2 publication Critical patent/DE69835495T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • G06K15/1851Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives parted in a plurality of segments per page
    • 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
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • 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

Description

  • 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.

Claims (8)

  1. 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.
  2. 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.
  3. Die Bilderzeugungsvorrichtung gemäß Anspruch 1 oder 2, bei der der Speicher ein Cache-Speicher (25) ist.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Das Verfahren gemäß Anspruch 5, 6 oder 7, bei dem der Speicher ein Cache-Speicher ist.
DE69835495T 1997-12-05 1998-06-22 Abtastlinienteilung in einer mehrstufigen Bildverarbeitungspipeline Expired - Lifetime DE69835495T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/985,579 US6115134A (en) 1997-12-05 1997-12-05 Scan line splitting in a multi-staged image processing pipeline
US985579 1997-12-05

Publications (2)

Publication Number Publication Date
DE69835495D1 DE69835495D1 (de) 2006-09-21
DE69835495T2 true DE69835495T2 (de) 2006-12-28

Family

ID=25531606

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69835495T Expired - Lifetime DE69835495T2 (de) 1997-12-05 1998-06-22 Abtastlinienteilung in einer mehrstufigen Bildverarbeitungspipeline

Country Status (4)

Country Link
US (1) US6115134A (de)
EP (1) EP0921493B1 (de)
JP (1) JPH11245453A (de)
DE (1) DE69835495T2 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4304795B2 (ja) * 1999-09-28 2009-07-29 株式会社ニコン 電子カメラ
US20040150840A1 (en) * 2003-01-30 2004-08-05 Farrell Michael E. Methods and systems for structuring a raster image file for parallel streaming rendering by multiple processors
US7747091B2 (en) * 2003-09-05 2010-06-29 Sharp Laboratories Of America, Inc. Systems and methods for section-by-section processing of a digital image file
JP2006067577A (ja) * 2004-08-26 2006-03-09 Oce Technologies Bv 装置で画像をレンダリングするために、メモリに記憶される画像データを処理する方法、機器、およびコンピュータプログラム製品
EP1638049A3 (de) * 2004-08-26 2006-11-02 Océ-Technologies B.V. Verfahren, Vorrichtung und Computerprogramm-produkt zur Verarbeitung von auf einem Speicher gespeicherten Bilddaten zur Darstellung eines Bildes auf einer Vorrichtung
US8767240B1 (en) * 2011-01-28 2014-07-01 Marvell International Ltd. Method and apparatus for encoding data to perform real-time rendering
US9591185B2 (en) * 2013-01-29 2017-03-07 Hewlett-Packard Development Company, L.P. Processing an image into sub-images mapped into multi-layer print mask data
CN105164722B (zh) * 2013-06-13 2019-04-16 惠普发展公司,有限责任合伙企业 建立图像流水线
GB2516288B (en) * 2013-07-18 2015-04-08 Imagination Tech Ltd Image processing system
US9436982B1 (en) * 2015-06-25 2016-09-06 Intel Corporation Scalable rank filter
WO2017125151A1 (en) * 2016-01-20 2017-07-27 Hewlett-Packard Development Company L.P. Imaging pipeline processing
US10481912B2 (en) * 2016-06-24 2019-11-19 International Business Machines Corporation Variable branch target buffer (BTB) line size for compression

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329616A (en) * 1990-08-16 1994-07-12 Canon Kabushiki Kaisha Compressed image stores for high resolution computer graphics
US5390262A (en) * 1991-10-03 1995-02-14 Ncr Corporation Method for splitting and configuring a multi-channel image processing system
US5479587A (en) * 1992-09-03 1995-12-26 Hewlett-Packard Company Page printer having adaptive data compression for memory minimization
US5448301A (en) * 1994-05-25 1995-09-05 The Grass Valley Group, Inc. Programmable video transformation rendering method and apparatus
JP3595577B2 (ja) * 1994-09-05 2004-12-02 キヤノン株式会社 画像処理方法及び装置
US5710873A (en) * 1994-09-29 1998-01-20 Xerox Corporation Apparatus and method for maximizing a rate of image data transfer in a printing system
US5619622A (en) * 1994-12-16 1997-04-08 Xerox Corporation Raster output interface for a printbar
JPH08202510A (ja) * 1995-01-27 1996-08-09 Alps Electric Co Ltd 記録装置への記録データ送信方法
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5796930A (en) * 1995-11-13 1998-08-18 Varis Corporation System architecture for processing and transporting page-map or bit-map data to a raster print engine
US5761347A (en) * 1996-09-30 1998-06-02 Apple Computer, Inc. Method and system for halftoning by tiling subsets of a threshold array over portions of an image
US5802600A (en) * 1996-11-12 1998-09-01 International Business Machines Corporation Method and apparatus for determining a desirable directory/data block ratio in a cache memory
US5870535A (en) * 1997-05-12 1999-02-09 Lexmark International, Inc. Method and apparatus for building rasterized lines of bitmap data to be printed using a piecewise-linear direct memory access addressing mode of retrieving bitmap data line segments
US5852742A (en) * 1997-06-17 1998-12-22 Hewlett-Packard Company Configurable data processing pipeline

Also Published As

Publication number Publication date
DE69835495D1 (de) 2006-09-21
EP0921493A2 (de) 1999-06-09
EP0921493B1 (de) 2006-08-09
EP0921493A3 (de) 2003-12-10
US6115134A (en) 2000-09-05
JPH11245453A (ja) 1999-09-14

Similar Documents

Publication Publication Date Title
DE60022240T2 (de) Ausgabeverwaltungssystem und -Verfahren
DE19944504B4 (de) Selbst-Umdimensionierungs-Demonstrationsseite für eine Druckvorrichtung, Bilderzeugungsvorrichtung, Bilderzeugungsverfahren und computerlesbares Medium
DE69831133T2 (de) Konfiguriation einer Datenverarbeitungspipeline
DE69730892T2 (de) Verarbeitung von Rückzugspunkten zur Blatterstellung mit Techniken zur Speicherreduktion
DE69832223T2 (de) Verfahren und Vorrichtung zur Komprimierung von scheibenorientierten Bitmaps
DE69738515T2 (de) Vorrichtung und verfahren für hybride kompression von rasterdaten
DE69634040T2 (de) Verfahren und Gerät zur Bitratenreduktion und Rekonstruktion von Bilddaten mittels Ditherfeldern
DE69835495T2 (de) Abtastlinienteilung in einer mehrstufigen Bildverarbeitungspipeline
DE60305573T2 (de) Verfahren zur Darstellung von gemischten Bildrasterinhaltsebenen
DE69829019T2 (de) Konfigurierbare Datenverarbeitungspipeline
DE69814988T2 (de) Datenzusammenfügevorrichtung
DE112006003272B4 (de) Verfahren und Vorrichtung zum Entfernen von Rauschen aus einem digitalen Bild
DE10204751B4 (de) Verfahren zur Konvertierung eines Linework Datenformats in das Format einer Seitenbeschreibungssprache
DE19822025A1 (de) Reduzieren der Speicherfragmentierung durch Mischen und Neuverteilen von vorher verteilten Seitenstreifen
DE102006011225B4 (de) System und Verfahren zur Drucksteuerung
DE69633716T2 (de) Hochgeschwindigkeitssystem zur Skalierung von Bildern
DE69534054T2 (de) Verfahren und Vorrichtung zur Bilddatenkompression
DE69635368T2 (de) Hochgeschwindigkeitssystem zur Ausrichtung und Verlegung von Schwellenmatrizen während der Erzeugung von binären Halbtonbildern
DE102006056858A1 (de) Druckqualität prüfendes System und Druckqualität prüfendes Verfahren
DE60033479T2 (de) Bilderzeugungssystem und -verfahren
DE69632644T2 (de) Bilderzeugung für seitendrucker
DE10352395B4 (de) Speicherverwaltungsverfahren, Verfahren zum Speichern von Druckauftragsdaten sowie entsprechendes maschinenlesbares Medium und System
DE19816895A1 (de) Druckerspeicher-Verstärkung
DE102004016230A1 (de) Bildverbesserung unter Verwendung einer Teilschablonenübereinstimmungsüberprüfung
DE69911307T2 (de) Vorrichtung zum Verhindern der Bilderzeugung eines nicht reproduzierbaren Bildes und Bilderzeugungsgerät

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