DE112011105359B4 - Verarbeitung von Bilddatenstreifen in Spaltenbereichen - Google Patents

Verarbeitung von Bilddatenstreifen in Spaltenbereichen Download PDF

Info

Publication number
DE112011105359B4
DE112011105359B4 DE112011105359.2T DE112011105359T DE112011105359B4 DE 112011105359 B4 DE112011105359 B4 DE 112011105359B4 DE 112011105359 T DE112011105359 T DE 112011105359T DE 112011105359 B4 DE112011105359 B4 DE 112011105359B4
Authority
DE
Germany
Prior art keywords
column
strip
pipeline
data
print
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112011105359.2T
Other languages
English (en)
Other versions
DE112011105359T5 (de
Inventor
Mary T. Prenn
Richard W. Hernandez
John Harris
Bradley R. Larson
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 DE112011105359T5 publication Critical patent/DE112011105359T5/de
Application granted granted Critical
Publication of DE112011105359B4 publication Critical patent/DE112011105359B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1894Outputting the image data to the printing elements
    • G06K15/1898Outputting the image data to the printing elements while adapting the order of the data to the printing elements' arrangement, e.g. row-to-column conversion
    • 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/1801Input data handling means
    • G06K15/181Receiving print data characterized by its formatting, e.g. particular page description languages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/3876Recombination of partial images to recreate the original image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals
    • H04N1/393Enlarging or reducing
    • H04N1/3935Enlarging or reducing with modification of image resolution, i.e. determining the values of picture elements at new relative positions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/40068Modification of image resolution, i.e. determining the values of picture elements at new relative positions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/401Compensating positionally unequal response of the pick-up or reproducing head
    • H04N1/4015Compensating positionally unequal response of the pick-up or reproducing head of the reproducing head
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Image Processing (AREA)
  • Record Information Processing For Printing (AREA)
  • Ink Jet (AREA)

Abstract

Verfahren zum Drucken, mit einem Drucker mit mindestens einem Farbwerk, wobei Halbtonbilddaten (22) Pixel eines Bildes in einem Zeilen- und Spaltenformat darstellen, umfassend:Bestimmen eines mehrzeiligen Streifens der Halbtonbilddaten (22), wobei der Streifen eine Vielzahl von Reihen aufweist, wobei eine Reihe (35) der Vielzahl von Reihen eine Vielzahl von Pixeln ausweist, und wobei der Streifen in eine Vielzahl von sich überlappenden mehrspaltigen Spaltenbereichen der Halbtonbilddaten (22) unterteilt ist, und wobei die Streifen und Reihen eine gleiche Orientierung aufweisen und die Spaltenbereiche eine zu den Streifen senkrechte Orientierung aufweisen;reihenweises Verarbeiten der Halbtonbilddaten (22) jedes Bereichs des Streifens durch eine Bild-Pipeline, um Druckdaten zu generieren, die dem Streifen entsprechen, für ein einzelnes der Farbwerke durch dynamisches Umprogrammieren der Bild-Pipeline für jeden Bereich;Komprimieren der Halbtonbilddaten (22), die den Spaltenbereichen des Streifens entsprechen, in einen Satz komprimierter Spaltenblöcke eines komprimierten Streifens; undreihenweises Dekomprimieren jedes der komprimierten Spaltenblöcke des komprimierten Streifens in die Halbtonbilddaten (22) des entsprechenden Spaltenbereichs vor dem seriellen Verarbeiten des entsprechenden Spaltenbereichs.

Description

  • Allgemeiner Stand der Technik
  • Sowohl Schwarzweiß- als auch Farbdrucker werden weithin geschäftlich und privat verwendet. Zu solchen Druckern gehören Laserdrucker, Tintenstrahldrucker und andere Drucktechniken. Zusätzlich zu Einzeldruckern werden Drucker auch weitgehend in andere Produkte eingebracht, die ein Druckteilsystem verwenden, wie etwa Kopiergeräte, Faxgeräte und Multifunktionsgeräte (z.B. eine Kombination aus mindestens zwei von einem Drucker, einem Scanner, einem Kopiergerät und einem Faxgerät), um nur einige zu erwähnen. Im Allgemeinen empfangen die Drucker Bilddaten und konvertieren die Bilddaten in Druckdaten, die verwendet werden, um das Bild auf einem Druckmedium zu drucken.
  • US7839424 B1 bezieht sich auf 2D horizontales streifenweises Skalieren. Ein digitales Bildverarbeitungssystem umfasst einen Scanner, Drucker, Kopierer oder ein anderes Bildverarbeitungsgerät. Ein Pixel-Array eines digitalen Bildes umfasst eine Anordnung von Pixeln in horizontalen Reihenmit einer Anzahl von Pixeln in jeder Reihe. Die Bild-Daten werden in einem ungerasterten Muster gelesen und verarbeitet. Das Pixel-Array wird in eine Vielzahl von horizontalen überlappenden Streifen aufgeteilt. Die Pixel-Werte werden innerhalb des horizontalen Pixel-Streifens gelesen und verarbeitet. Ein horizontaler PixelStreifen überlappt partiell mit einem benachbarten PixelStreifen so dass Reihen des Pixel-Array in diesen Streifen umfasst sind. Innerhalb jedes horizontalen Pixel-Streifens werden Pixel-Werte in einem ungerasterten Muster gelesen und skaliert. Anstatt die Pixel-Werte horizontale zeilenweise zu lesen werden die Pixel-Werte von oben nach unten und von links nach rechts gelesen.
  • Figurenliste
  • Es zeigen:
    • 1 ein Blockschaltbild eines Druckers gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 2 eine schematische Darstellung von Halbtonbilddaten, die unter Verwendung des Druckers aus 1 druckbar sind, gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 3 eine schematische Darstellung eines Bildkompressors des Druckers aus 1 und seines Betriebs gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 4 ein Blockschaltbild-Darstellung einer Bild-Pipeline des Druckers aus 1 gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 5 eine schematische Darstellung der Verarbeitung von sich überlappenden Spaltenbereichen eines Streifens von Bilddaten, um zugeschnittene Spaltenbereiche von Druckdaten unter Verwendung des Druckers aus 1 zu bilden, gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 6 eine schematische Darstellung der sequenziellen Verarbeitung der Spaltenbereiche eines Streifens von Bilddaten durch die Bild-Pipeline aus 5 gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 7 eine schematische Darstellung eines beispielhaften Anweisungsflusses und seiner Ausführung durch einen Controller 52 des Druckers aus 1, gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 8 ein Ablaufschema gemäß einer Ausführungsform der vorliegenden Offenbarung eines Verfahrens zum Konfigurieren eines Druckers für eine gewünschte Mediengröße und Druckauflösung.
    • 9A und B Ablaufschemata gemäß einer Ausführungsform der vorliegenden Offenbarung eines Verfahrens, um mit einem Drucker, der mindestens ein Farbwerk aufweist, Halbtondaten zu drucken, die Pixel eines Bildes in einem Zeilen- und Spaltenformat darstellen.
  • Ausführliche Beschreibung
  • Wie im Abschnitt über den Stand der Technik erwähnt, werden Drucker weithin in vielen verschiedenen Produkten und Anwendungen verwendet. Viele Benutzer wünschen, dass diese Produkte bei einem bestimmten Leistungs- und Qualitätsniveau geringe Kosten aufweisen. Viele Benutzer wünschen auch, zu verschiedenen Zeitpunkten auf verschieden großen Druckmedien zu drucken. Beispielsweise kann der Benutzer manchmal wünschen, auf kleineren Medien im Format A4 zu drucken, während er andere Male auf größeren Medien im Format A3 drucken möchte. Ähnlich können die Benutzer wünschen, zu verschiedenen Zeitpunkten mit verschiedenen Druckauflösungen zu drucken; beispielsweise manchmal mit einer Auflösung von 300 Punkten pro Zoll (dpi) und ein anderes Mal mit 1200 dpi.
  • Die Druckmedien können eine beliebige Art von geeignetem Bogen- oder Rollenmaterial sein, wie etwa Papier, Pappe, Stoff oder anderes Gewebe, Folien, Mylar und dergleichen, doch der Einfachheit halber werden die abgebildeten Ausführungsformen beschrieben, wie sie Papier als Druckmedium verwenden.
  • Es wird ein Drucker ausgelegt, um die höchsten Anforderungen zu erfüllen, die er unterstützt. Bei dem obigen Beispiel würde der Drucker ausgelegt, um mit 1200 dpi auf A3-Medien zu drucken, könnte jedoch auch auf A4-Medien und mit 300 dpi verwendet werden. Höhere Anforderungen steigern die Kosten diverser Bauteile des Druckers. Beispielsweise verarbeiten viele Drucker die Daten für ein zu druckendes Bild in einer Reihe von bildbreiten Streifen. Das Verarbeiten und Speichern von Daten für einen A3-breiten Bildstreifen mit 1200 dpi verwendet Bauteile, die mehr Logik und Speicher aufweisen als ein A4-breites Bild mit 300 dpi. Ein derartiges Bauteil kann eine anwendungsspezifische integrierte Schaltung (ASIC) sein, die eine Bild-Pipeline umsetzt, um die Bilddaten in Druckdaten für ein Druckmodul zu konvertieren. In einem Fall sind diese Bauteile für die höchsten Anforderungen ausgelegt, und diese Kosten werden an alle Käufer weitergegeben, auch an diejenigen, die geringere Druckanforderungen haben. Alternativ werden unterschiedliche Bauteile für jeden Satz von Druckanforderungen ausgelegt, doch erhöhen sich dadurch Aufwand und Kosten für zahlreiche Aspekte des Betriebs eines Herstellers. Falls ferner eine neue Anforderung auftritt - beispielsweise das Drucken eines A3-breiten Streifens mit 2400 dpi -, wären die vorhandenen Bauteile wahrscheinlich nicht in der Lage, diese zu erfüllen. Nun mit Bezug auf die Zeichnungen ist dort ein Beispiel eines Druckers und von Druckverfahren, die Spaltenbereiche eines Bilddatenstreifens nacheinander verarbeiten, abgebildet. Der Drucker umfasst eine Bild-Pipeline, die dynamisch umprogrammiert wird, um jeden Bereich des Streifens zu verarbeiten. Die Anzahl von Spaltenbereichen, die für einen Streifen zu verarbeiten sind, wird basierend auf der Mediengröße, der Druckauflösung und einer vorbestimmten Breite der Spaltenbereiche konfiguriert. Durch Variieren der Anzahl von Spaltenbereichen, die für einen Streifen zu verarbeiten sind, können verschiedene Kombinationen von Mediengröße und Druckauflösung von der ASIC berücksichtigt werden. Diese Breite kann günstig ausgewählt werden, um vorteilhaft die Kosten des Druckers zu senken, indem das Ausmaß an Speicher und interner und externer Logik der ASIC bei geringer oder gar keiner Verringerung der Bildverarbeitungsrate reduziert wird. Die gleiche ASIC kann in vielen verschiedenen Druckern verwendet werden, die einen Bereich unterschiedlicher Anforderungen an Mediengröße und Druckauflösung aufweisen. Zusätzlich kann durch das Erhöhen der Anzahl von Spaltenbereichen in einem Streifen die ASIC verwendet werden, um auf neueren und größeren Mediengrößen und mit neueren und erhöhten Druckauflösungen zu drucken.
  • Wie es am besten mit Bezug auf 1 zu verstehen ist, weist ein Beispiel eines Druckers 10 ein Druckmodul 12 auf, um mindestens einen Farbstoff 14 auf einem Druckmedium 16 abzuscheiden. Wie der Begriff hier und in den beiliegenden Ansprüchen definiert ist, ist unter einem „Farbstoff“ im weitesten Sinne eine Substanz einer bestimmten Farbe zu verstehen, die auf ein Druckmedium abgeschieden wird, um mindestens einen Abschnitt eines gedruckten Bildes zu formen. Das Druckmodul 12 weist mindestens ein Farbwerk 18 auf. Wie der Begriff hier und in den beiliegenden Ansprüchen definiert ist, ist unter einem „Farbwerk“ im weitesten Sinne ein Druckmodul-Teilsystem zu verstehen, das direkt oder indirekt einen bestimmten Farbstoff auf ein Druckmedium abscheidet. Beispielsweise kann das Modul 12 vier Farbwerke 18 aufweisen, wobei jedes Farbwerk 18 konfiguriert ist, um einen anderen Farbstoff von Cyan (C), Magenta (M), Gelb (Y) und Schwarz (K) abzuscheiden. Solche Farbstoffe sind beispielsweise ein Farbstoffsatz, der es ermöglicht, dass ein Farbbild auf dem Druckmedium 16 gedruckt wird. Bei anderen Beispielen kann es statt eines einzigen Druckmoduls 12 mit mehreren Farbwerken 18 mehrere Druckmoduls 12 mit jeweils einem oder mehreren Farbwerken 18 geben.
  • Der Drucker 10 umfasst einen Kompressor 20. Der Kompressor 20 ist konfiguriert, um Halbtonbilddaten 22 in einem Zeilen- und Spaltenformat in komprimierte mehrzeilige Pixelstreifen 40 zu konvertieren. Wie der Begriff hier und in den beiliegenden Ansprüchen definiert ist, ist unter „Halbtonbilddaten“ im weitesten Sinne eine zweidimensionale Anordnung von Pixeln zu verstehen, die zusammen ein Bild darstellen, wobei die Pixel einen ausreichenden Wertebereich aufweisen, so dass das Bild für einen Betrachter im Wesentlichen ein Halbtonbild ist. Die Halbtonbilddaten können graustufig oder farbig sein. Die Halbtonbilddaten werden typischerweise in einem Farbraum dargestellt. Ein beispielhafter Farbraum ist RGB, wobei jeder Pixel einen roten Wert, einen grünen Wert und einen blauen Wert aufweist, die zusammen die Farbe des Pixels in einem dreidimensionalen Farbraum definieren. Ein RGB-Farbraum wird als „geräteunabhängig“ angesehen, indem die einzelnen R-, G- und B-Werte nicht einem bestimmten Bildwiedergabegerät entsprechen. Beispielsweise entsprechen diese Werte nicht den C-, M-, Y- und K-Werten für die Farbwerke 18 des Druckers 10.
  • Die Halbtonbilddaten 22 können externe Daten 28 sein, die von einer Quelle, die außerhalb des Druckers 10 liegt, wie beispielsweise von einem Computer, über eine Schnittstelle 24 empfangen werden. Bei einigen Beispielen können höhere Bilddaten, wie etwa Daten in einer Seitenbeschreibungssprache (PDL), an den Drucker 10 gesendet werden, und der Drucker 10 verarbeitet die PDL-Daten, um die Halbtonbilddaten 22 zu generieren. Die Halbtonbilddaten 22 können alternativ oder zusätzlich von einer Bildquelle 26, die innerhalb des Druckers 10 liegt, über die Schnittstelle 24 empfangen werden. Die Bildquelle kann beispielsweise ein optischer Scanner sein, der beispielsweise in einem Kopiergerät oder einem Multifunktions-Druckgerät enthalten ist. Verschiedene Formate von Halbtondaten 22 können in den Kompressor 20 eingegeben werden, und der Kompressor 20 kann konfiguriert sein, um viele verschiedene Halbtondatenformate zu komprimieren.
  • Wenn man nun die Halbtonbilddaten 22 genauer und weiter mit Bezug auf 2 betrachtet, sind die Daten 22 in einer Zeilen- und Spalten-Formataufstellung einzelner Pixel 34 angeordnet. Der Übersichtlichkeit halber wird eine geringe Anzahl dieser Pixel 34 abgebildet, obwohl es sich versteht, dass diese Pixel überall in den Daten 22 in einer zweidimensionalen Zeilen- und Spaltenanordnung vorhanden sind. Beispielsweise ist die Reihe 35 eine derartige Pixelreihe 34. Für die Datenkompression, die von dem Kompressor 20 ausgeführt wird, können die Bilddaten 22 in N unkomprimierte mehrzeilige Streifen 30 unterteilt werden, wie etwa in die Streifen, die mit 30A bis 30N bezeichnet sind. Jeder Streifen 30 schließt alle Pixel 34 einer gewissen Anzahl von Zeilen ein. Bei einigen Beispielen kann ein Streifen 30 alle Pixel 34 von 64 oder 128 Zeilen einschließen.
  • Wenn man nun den Betrieb des Kompressors 20 genauer und weiter mit Bezug auf 3 betrachtet, unterteilt der Kompressor 20 einen unkomprimierten Streifen 30 in eine Vielzahl von sich überlappenden mehrspaltigen Spaltenbereichen 32 zum Komprimieren. Jeder Bereich 32 umfasst eine Vielzahl von Spalten aus einzelnen Pixeln 34. 3 bildet linke 32A, mittlere 32B und rechte 32C sich überlappende Spaltenbereiche des Streifens 32 ab, die Grenzen aufweisen, die in geschwungenen Klammern (,,{“) angegeben werden. Der mittlere Bereich 32B stellt null bis N mittlere Bereiche dar; einige beispielhafte Streifen 30 weisen linke und rechte Spaltenbereiche 32A, 32C mit null mittleren Bereiche 32B auf, während andere beispielhafte Streifen 30 mehrere mittlere Bereiche 32B aufweisen. Die Pixel 34 in den Überlappungsbereichen 36 sind in den beiden sich überlappenden Bereichen 32 enthalten, die nachstehend mit Bezug auf 5 ausführlicher besprochen werden.
  • Nachdem ein sich überlappender Spaltenbereich 32 des unkomprimierten Streifens 32 identifiziert wurde, konvertiert der Kompressor 20 den Spaltenbereich 32 in einen komprimierten sich überlappenden Spaltenbereich 42 eines komprimierten mehrzeiligen Streifens 40. Der Kompressor 20 kann eine oder mehrere von vielen verschiedenen Kompressionstechniken, wie beispielsweise JPEG, JPEG 2000 und LZW, unter verschiedenen anderen verwenden. Bei einigen Beispielen kann ein komprimierter Spaltenbereich 42 eine einzige Eben umfassen, in der die komprimierten R-, G- und B-Werte der Pixel verschachtelt sind. Bei anderen Beispielen kann ein komprimierter Spaltenbereich 42 getrennte Ebenen für die R-, G- und B-Pixelwerte enthalten. Weiter mit Bezug auf 1 kann der komprimierte Streifen 40 in einem komprimierten Bilddatenspeicher 46 gespeichert werden. In manchen Fällen kann eine gewisse Anzahl von komprimierten Streifen 40 in dem Speicher 46 gespeichert werden, bevor die stromabwärtige Verarbeitung des komprimierten Streifens 40 beginnt. Beispielsweise kann eine gewisse Anzahl von komprimierten Streifen 40, die einem zu druckenden ganzseitigen Bild entsprechen, gespeichert werden, bevor die stromabwärtige Verarbeitung beginnt.
  • Der Drucker 10 umfasst eine Bild-Pipeline 50, die konfiguriert ist, um jeden komprimierten Spaltenbereich 42 eines ausgewählten der komprimierten Streifen 40 reihenweise zu verarbeiten, um Druckdaten 80 zu generieren, die dem Spaltenbereich 42 für ein ausgewähltes der Farbwerke 18 entsprechen, und die Druckdaten 80 in einem Druckdatenspeicher 90 zu speichern.
  • Wenn man nun die Bild-Pipeline 50 genauer und weiter mit Bezug auf 4 betrachtet, weist die Pipeline eine gewisse Anzahl von Stufen auf, die einen komprimierten überlappenden Spaltenbereich 42 verarbeiten. Wie der Begriff hier und in den beiliegenden Ansprüchen definiert ist, ist unter einer „Pipeline“ im weitesten Sinne ein Element zu verstehen, dessen Stufen (als Hardware, Software oder als Kombination davon) im Wesentlichen parallel an verschiedenen Umwandlungen von Daten ausführen, die reihenweise durch die Pipeline von Stufe zu Stufe weitergeleitet werden. Ein komprimierter Spaltenbereich 42 tritt in eine Dekompressor-Stufe 52 ein, die den Bereich 42 dekomprimiert, um dekomprimierte geräteunabhängige Halbtondaten 54 für den überlappenden Spaltenbereich zu generieren. Bei einigen Beispielen sind die geräteunabhängigen Daten 54 zu einer gewissen Anzahl I von Ebenen strukturiert. Wenn die geräteunabhängigen Daten 54 beispielsweise auf diese Art und Weise strukturiert sind, kann es drei getrennte Ebenen von R-, G- und B-Werten der Pixel 34 in den geräteunabhängigen Daten 54 geben. Die geräteunabhängigen Daten 54 treten dann in eine Farbraum-Konvertierungsstufe 56 ein, welche die Daten 54 in eine gewisse Anzahl J von Ebenen von farbwerkunabhängigen Daten 58 für den Spaltenbereich konvertiert. Beispielsweise kann es sich dabei um vier getrennte Ebenen von C-, M-, Y- und K-Werten der Pixel 34 in den dekomprimierten Spaltenbereichdaten 54 handeln. Die J Ebenen von farbwerkabhängigen Daten 58 werden einem Farbraum-Multiplexer 60 bereitgestellt. Der Multiplexer 60 wählt eine der J Ebenen zur Verarbeitung durch eine Druckgenerierungsstufe 70 aus. Aus den Pixeln der ausgewählten Ebene von farbwerkabhängigen Daten 58 generiert die Druckgenerierungsstufe 70 entsprechende Pixel von Druckdaten 80 für das bestimmte Farbwerk 18, das der ausgewählten der J Ebenen entspricht. Typischerweise weisen die Druckdaten 80 Steuersignale für das Farbwerk 18 auf, die bewirken, dass das Farbwerk 18, wenn die Steuersignale angelegt werden, auf dem Druckmedium 16 die geeigneten Mengen dieses Farbstoffs 14 abscheiden, die den Werten der diversen Pixel des Bildes entsprechen. Wie es nachstehend ausführlicher mit Bezug auf 5 besprochen wird, entsprechen die Druckdaten 80 den Pixeln 34 eines zugeschnittenen Abschnitts eines unkomprimierten Spaltenbereichs 32.
  • Die Druckgenerierungsstufe 70 kann eine gewisse Anzahl von Teilstufen umfassen. Eine Skalierungs-Teilstufe 72 kann die ausgewählte Ebene von farbwerkabhängigen Daten 58 in die Zeilen- und/oder Spaltenrichtungen skalieren. Beispielsweise kann die Skaliervorrichtung 72 300dpi-Daten in 600dpi-Daten konvertieren, indem sie eine 2X-Skalierungsoperation ausführt, oder kann sie zu 1200dpi-Daten konvertieren, indem sie eine 4X-Skalierungsoperation ausführt. Andere Skalierungsmengen können bei einigen Beispielen ausgeführt werden, einschließlich einer anderen Skalierungsmenge in die Zeilenrichtung aus der Spaltenrichtung. Eine Verstärkungs-Teilstufe 74 kann die farbwerkabhängigen Daten 58 verarbeiten, um die Qualität des gedruckten Bildes zu verbessern. Eine Rasterungs-Teilstufe 76 rastert die Daten auf eine Auflösung, die mit den Druckdaten für das Farbwerk 18 übereinstimmt, und kann ferner die Qualität des Bildes verbessern, das durch die Druckdaten erzeugt wird. Eine Puffermanager-Teilstufe 78 beendet die Formatierung der Druckdaten 80 und speichert sie in einem Druckdatenspeicher 90 (1).
  • Wenn man nun die Druckdaten 80 genauer und mit Bezug auf 5 betrachtet, wie zuvor besprochen, verarbeitet die Bild-Pipeline 50 sich überlappende Spaltenbereiche 42 von Halbtondaten und generiert zugeschnittene Spaltenbereiche 80 von Druckdaten für ein bestimmtes Farbwerk 18. Die Puffermanager-Teilstufe 78 der Bild-Pipeline 50 führt die Zuschneideoperationen aus, welche die Überlappung beseitigen. Beispielsweise werden die sich überlappenden Spaltenbereiche 42A bis C verarbeitet, um jeweils die zugeschnittenen Spaltenbereiche 80A bis C zu generieren. Die Spaltenbereiche 42A bis C sind definiert, um die Überlappung 36 zu umfassen, weil diverse Operationen, die durch den Druckdatengenerator 70 ausgeführt werden, wie beispielsweise diejenigen, die durch den Verstärker 74 und/oder den Rasterer 76 vorgenommen werden, an einem gleitenden Datenfenster vorgenommen werden können, durch das der Druckdatenwert eines Pixels mindestens teilweise durch die Werte seiner benachbarten Pixel bestimmt werden kann. Da jeder überlappende Spaltenbereich 42 von der Bild-Pipeline 50 reihenweise verarbeitet wird, um den entsprechenden zugeschnittenen Spaltenbereich 80 zu generieren, ist die Überlappung 36 breit genug, um diese Datenpixel von angrenzenden Spaltenbereichen 42 zu umfassen, welche die Druckdaten 80 für den Spaltenbereich 42, der verarbeitet wird, beeinflussen. Die linken 42A und rechten 42C überlappten Spaltenbereiche weisen eine Überlappungszone auf, während der oder die mittleren überlappten Spaltenbereiche 42B zwei Überlappungszonen aufweisen.
  • Die linke zugeschnittene Spalte 80A wird durch Zuschneiden der Zone 84A aus den Druckdaten generiert. Die mittlere(n) zugeschnittene(n) Spalte(n) 80B wird bzw. werden durch Zuschneiden der beiden Zonen 84B aus den Druckdaten generiert. Die rechte zugeschnittene Spalte 80C wird durch Zuschneiden der Zone 84C aus den Druckdaten generiert. Die sich ergebende Breite eines zugeschnittenen Spaltenbereichs von Druckdaten 80 ist die Breite des überlappten Spaltenbereichs 42 minus der oder den entsprechenden zugeschnittenen Zonen 84.
  • Bei einigen Beispielen können alle überlappten Spaltenbereiche 42A bis C, die durch die Pipeline verarbeitet werden, die gleiche Breite aufweisen. In diesem Fall sind die sich ergebenden mittleren zugeschnittenen Spaltenbereiche 80B schmaler als die linken 80A und rechten 80C zugeschnittenen Spaltenbereiche. Bei anderen Beispielen können die zugeschnittenen Spaltenbereiche 80A bis C, die von der Bild-Pipeline 50 ausgegeben werden, alle die gleiche Breite aufweisen. In diesem Fall sind die mittleren überlappten Spaltenbereiche 42B breiter als die linken 42A und rechten 42C überlappten Spaltenbereiche. Andere Variationen der Breite sind ebenfalls möglich.
  • Wenn man nun den Druckdaten-Pufferspeicher 90 genauer und mit Bezug auf 6 betrachtet, ist der Druckdatenspeicher 90 logisch als eine Ebene pro Farbwerk 18 von Druckdaten 80 in einem Zeilen- und Spaltenformat strukturiert. Die Bild-Pipeline 50 speichert die Druckdaten 80, die für ein bestimmtes Farbwerk 18 generiert werden, in die entsprechende Ebene des Speichers 90.
  • Der Speicher 90 weist typischerweise eine Tiefe auf, die ausreicht, um eine gewisse Anzahl von Streifen 88 der Druckdaten 80 zu speichern, wobei jeder Streifen 88 von Druckdaten einem Streifen 30 von Bilddaten 22 entspricht. Die Puffermanager-Teilstufe 78 der Bild-Pipeline 50 fügt die Druckdaten 80A bis C, die für jeden Spaltenbereich 42 generiert werden, in Stellen in einer entsprechenden Spalte 86A bis C der richtigen Ebene des Speichers 90 ein. Beispielsweise wird der linke Spaltenbereich 42A von der Bild-Pipeline 50 im 1. Durchgang verarbeitet, um die Druckdaten 80A zu generieren, die in den Speicherstellen der Spalte 86A eines bestimmten Streifens 88 gespeichert werden. Ähnlich wird bzw. werden der oder die mittleren Spaltenbereiche 42B von der Bild-Pipeline 50 in den Durchgängen 2 bis (N-1) verarbeitet, um Druckdaten 80B zu generieren, die in den Speicherstellen der Spalte(n) 86B des bestimmtes Streifens 88 gespeichert werden. Der rechte Spaltenbereich 42C wird von der Bild-Pipeline 50 in Durchgang N verarbeitet, um die Druckdaten 80C zu generieren, die in den Speicherstellen der Spalte 86c des bestimmten Streifens 88 gespeichert werden. Bei einigen Beispielen kann die Größe des Speichers 90 auf der Grundlage der Geschwindigkeit und der Breite des Druckmoduls 12 optimiert werden, um die Kosten des Druckers 10 zu reduzieren und zu minimieren.
  • Wenn alle Druckdaten 80 für einen bestimmten Streifen 88, der mit einem bestimmten Farbwerk 18 verknüpft ist, generiert wurden und in dem Speicher 90 gespeichert wurden, stehen sie zum Verbrauch durch das Farbwerk 18 des Druckmoduls 12 bereit, um den entsprechenden Farbstoff 14 auf dem Druckmedium 16 abzuscheiden.
  • Wenn nun die Verarbeitung eines komprimierten Streifens 40 genauer und weiter mit Bezug auf 6 betrachtet wird, werden die Operationen der Bild-Pipeline 50 durch einen Controller 52 organisiert. Der Controller 52 kann ein Mikrocontroller sein, der in einer ASIC 100 umgesetzt ist, die eine Bild-Pipeline 50 umfasst. Der Controller 52 ist konfiguriert, um mindestens einen Anweisungsfluss auszuführen, der in einem Anweisungsspeicher 54 gespeichert ist, der für den Controller 52 zugänglich ist, um die Pipeline 50 dynamisch umzuprogrammieren, um jeden der Spaltenbereiche 42 des ausgewählten Streifens reihenweise zu verarbeiten. Der Anweisungsspeicher 54 kann sich in der ASIC 100 befinden oder kann ein Bauteil außerhalb der ASIC 100 sein und kommunikationsmäßig mit der ASIC 100 gekoppelt sein. Der Controller 52 kann auch auf den SRAM-Speicher 56 in der ASIC 100 zugreifen. Der SRAM-Speicher 56 wird typischerweise zum Speichern von Zwischendaten verwendet, die von der Bild-Pipeline 50 generiert und verwendet werden. Bei einigen Beispielen kann die Menge des SRAM-Speichers 56 einer vorbestimmten maximalen Breite eines Spaltenbereichs 42 entsprechen, der von der Bild-Pipeline 50 verarbeitet werden kann.
  • Der Controller 52 programmiert die Bild-Pipeline 50 für jeden der Spaltenbereiche 42 dynamisch um, indem er in die Pipeline 50 zuvor gespeicherte Zustandsdaten, die mit dem Spaltenbereich 42 verknüpft sind, aus einem Zustandsspeicher 58 lädt, bevor der Spaltenbereich 42 verarbeitet wird, und indem er geänderte Zustandsdaten, die mit dem Spaltenbereich 42 verknüpft sind, in dem Zustandsspeicher 58 speichert, nachdem die Druckdaten 80 für den Spaltenbereich 42 generiert wurden. Der Zustandsspeicher 58 befindet sich typischerweise außerhalb der ASIC 100, kann sich jedoch alternativ innerhalb der ASIC 100 befinden. Für einen bestimmten Streifen 40 umfassen die Zustandsdaten, die aus dem Zustandsspeicher 58 für einen Spaltenbereich 42 geladen werden, typischerweise Daten, die mit einer oder mehreren Zeilen, neben dem bestimmten Streifen, des Spaltenbereichs für den zuvor verarbeiteten Streifen verknüpft sind. Diese Daten werden von dem Druckdatengenerator 70 in den gleitenden Fensteroperationen verwendet, die von den Zeilen des bestimmten Streifens ausgeführt werden, die neben dem zuvor verarbeiteten Streifen liegen, um die Wirkung auf die Pixel in diesen Zeilen des bestimmten Streifens von benachbarten Pixeln in dem zuvor verarbeiteten Streifen richtig zu berücksichtigen. Die Zustandsdaten können auch Informationen über den Zustand der diversen Teilsystem der Bild-Pipeline 50 umfassen, die ausreichen, um die Verarbeitung des bestimmten Spaltenbereichs 42 (d.h. links, Mitte, rechts) richtig zu ermöglichen.
  • Wenn man nun die Ausführung eines beispielhaften Anweisungsflusses 110 durch den Controller 52 und mit Bezug auf 7 betrachtet, ist der Anweisungsfluss 110 von der Anzahl von Spaltenbereichen 42 abhängig, die einen komprimierten Streifen 40 umfassen. Der beispielhafte Anweisungsfluss 110 ist konfiguriert, um zu bewirken, dass der Controller 52 und die Bild-Pipeline 50 drei Spaltenbereiche 42 - einen linken 42A, einen mittleren 42B und einen rechten 42C - für jeden komprimierten Streifen 40 verarbeiten. In Schritt 112 stellt der Controller 52 die Zustandsdaten für den linken Spaltenbereich 42A für die Bild-Pipeline 50 aus dem Zustandsspeicher 58 wieder her. In Schritt 114 ist die Bild-Pipeline 50 konfiguriert, um den linken Spaltenbereich 42A zu verarbeiten. Das Konfigurieren der Bild-Pipeline 50 umfasst typischerweise das Einrichten diverser Steuerregister und Tabellen der Bild-Pipeline 50 und das Initialisieren der diversen Bild-Pipeline-Teilstufen zur Verarbeitung des Bereichs. Anschließend an die Konfiguration verarbeitet die Bild-Pipeline 50 den Spaltenbereich 42A, generiert die Druckdaten 80A und speichert die Druckdaten 80A in dem Druckdatenspeicher 90 an der Spalte 86A für den geeigneten Streifen 88. Die Verarbeitung der Bild-Pipeline wird dadurch eingeleitet, dass der Controller 52 der Bild-Pipeline 50 mitteilt, den Spaltenbereich 42A zu verarbeiten 116. Während die Bild-Pipeline 50 den Spaltenbereich 42A verarbeitet, um die Druckdaten 80A zu generieren, wartet der Controller 52 auf ein Signal „Bereich beendet“ von der Bild-Pipeline 50. Bei einigen Beispielen kann der Controller 52 Verwaltungsaufgaben ausführen, während er auf dieses Signal von der Bild-Pipeline 50 wartet. Beispielsweise kann dazu das Bewerten mindestens eines von einer Verfügbarkeit der Ebenen des Speicherpuffers 90, die mit den diversen Farbwerken 18 verknüpft sind, um die Druckdaten 80 zu empfangen; einer Zeit, während der die diversen Farbwerke 18 auf Druckdaten 80 gewartet haben; und einem nächsten zu verarbeitenden Streifen für jedes der Farbwerke 18 gehören. Nachdem die Druckdaten 80A generiert und gespeichert wurden, sendet die Bild-Pipeline 50 das Signal „Bereich beendet“ an den Controller 52, das angibt, dass die Verarbeitung des Spaltenbereichs 42A beendet ist. Daraufhin speichert der Controller 52 in dem Zustandsspeicher 58 Zustandsdaten, die zur Verarbeitung des nächsten linken Spaltenbereichs 42A verwendbar sind.
  • Der mittlere Spaltenbereich 42B wird ähnlich durch die Anweisungen 120, 122 und 126 und die Operation 124 verarbeitet. Der rechte Spaltenbereich 42C wird ebenso ähnlich durch die Anweisungen 128, 130 und 134 und die Operation 132 verarbeitet. Nachdem alle Spaltenbereiche 42 eines Streifens 40 verarbeitet wurden und die entsprechenden Druckdaten 80 im Speicher 90 gespeichert wurden, kann der Controller 52 oder die Bild-Pipeline 50 ein Signal „Streifen beendet“ an das Druckmodul 12 senden, um das Modul 12 darüber zu informieren, dass ein Streifen von Druckdaten 80 für ein bestimmtes Farbwerk 18 zum Drucken zur Verfügung steht. Dann kann die Verfügbarkeit der Speicherebenen, die Farbwerkwartezeit und die Identifizierung des nächsten Streifens von dem Controller 52 verwendet werden, um den Streifen 40 und das Farbwerk 18 dynamisch auszuwählen, die für die Operation der Verarbeitung des nächsten Streifens von der Bild-Pipeline 50 zu verwenden sind. Die Sequenz von Streifen 40 und Farbwerken 18, die dynamisch von dem Controller 52 ausgewählt werden, generiert insgesamt Druckdaten 80 für alle Farbwerke 18 und für alle Streifen 40 der Bilddaten 22.
  • Wenn man nun die Konfiguration der Bild-Pipeline 50 zum Verarbeiten eines Streifens in N Spaltenbereiche 42 genauer und mit Rückbezug auf 1 betrachtet, umfasst der Drucker 10 eine Konfigurationsvorrichtung 140. Die Konfigurationsvorrichtung 140 konfiguriert per Programm die Pipeline 50, um einen Streifen 40 in N Spaltenbereiche 42 zu verarbeiten, indem sie einen entsprechenden Anweisungsfluss 110 generiert und in dem Anweisungsspeicher 54 speichert. Wie es zuvor beschrieben wurde, verarbeitet die Bild-Pipeline 50 die Spalten 42 einer vorbestimmten maximalen Breite, um das Ausmaß an Speicher und Logik in einer ASIC 100 für die Bild-Pipeline 50 zu reduzieren und um die Verwendung einer einzigen ASIC 100 in verschiedenen Druckern zu ermöglichen, die einen unterschiedlichen Bereich von Anforderungen an Mediengröße und Druckauflösung aufweisen. An der Stelle, wo ein Streifen 40 breiter als die maximale Breite der Bild-Pipeline 50 ist, wird der Streifen 40 in bis zu N Spaltenbereiche 42 zur Verarbeitung unterteilt. Die Konfigurationsvorrichtung 140 konfiguriert und generiert auch den Anweisungsfluss, der von dem Controller 52 durchgeführt wird, der die Bild-Pipeline 50 steuert.
  • Die Anzahl N von Spaltenbereichen 42, in die ein Streifen 40 unterteilt wird, wird basierend auf der maximalen Breite, einer vorgegebenen Größe des Druckmediums 16 und einer vorgegebenen Druckauflösung bestimmt, mit der die Druckdaten 80 zu drucken sind. Die Mediengröße und/oder die Druckauflösung können für einen bestimmten Drucker 10 vorbestimmt sein; sie können als Teil der Einschaltsequenz des Druckers 10 bestimmt werden; oder sie können vom Benutzer vorgegeben werden. Beispielsweise kann der Benutzer diese Paramater über eine Benutzerschnittstelle des Druckers eingeben. Der Drucker 10 kann eine Tastatur und ein Display (nicht gezeigt), die dazu verwendbar sind, oder andere Mechanismen aufweisen. Beispielsweise kann der Drucker die Mediengröße aus einer Einstellung bestimmen, die von dem Benutzer an dem Medienfach vorgenommen wird, um die gewünschten Medien in den Drucker einzulegen. Die Anzahl N von Spaltenbereichen 42, in welche ein Streifen 40 unterteilt wird, kann bestimmt werden, indem die Anzahl von einzeln druckbaren Elementen (z.B. „Punkten“) in eine Vollbreitenreihe der Druckdaten 80 durch die vorbestimmte maximale Breite der Bild-Pipeline 50 geteilt wird.
  • Sobald die Anzahl N sichergestellt wurde, kann die Konfigurationsvorrichtung 140 einen Anweisungsfluss 110 generieren, der N entspricht, und ihn in dem Anweisungsspeicher 54 speichern. Der Anweisungsspeicher 54 umfasst typischerweise einen anderen Anweisungsfluss 110 für jedes Farbwerk 18. Die unterschiedlichen Anweisungsflüsse 110 sind zum größten Teil ähnlich, doch aus Gründen der Bildqualität kann die Bild-Pipeline 50 einige unterschiedliche Steuerregister und/oder Tabelleneinstellungen aufweisen, die mit den verschiedenen Farbwerken 18 verknüpft sind. Wenn zwischen den Anweisungsflüssen 110, die mit den verschiedenen Farbwerken 18 verknüpft sind, keine Unterschiede bestehen, kann ein gemeinsamer Anweisungsfluss 110 von dem Controller 52 verwendet werden. Der Controller 52 verwendet den geeigneten Anweisungsfluss 110, der dem bestimmten Farbwerk 18 entspricht, für welches Druckdaten 80 für einen Streifen 40 von der Bild-Pipeline 50 generiert werden.
  • Bei einigen Beispielen umfasst die Konfigurationsvorrichtung 140 einen Prozessor 142, der mit einem Speicher 144 gekoppelt ist, der Firmware-Anweisungen enthält, die, wenn sie von dem Prozessor 142 durchgeführt werden, die Mediengröße und Druckauflösung bestimmen, die Anzahl N von Spaltenbereichen pro Streifen berechnen, den Anweisungsfluss 110 generieren und den Fluss 110 in dem Anweisungsspeicher 54 speichern.
  • Ein anderes Beispiel der vorliegenden Offenbarung, wie es am besten mit Bezug auf 8 verständlich ist, ist ein Verfahren 200 zum Konfigurieren eines Druckers 10 für eine gewünschte Mediengröße und Druckauflösung. In manchen Fällen kann das Ablaufschema aus 8 als Schritte in einem Verfahren angesehen werden, das in dem Drucker 10 umgesetzt wird, wie etwa durch einen oder mehrere des Controllers 52 und des Prozessors 142, die jeweils Anweisungen in dem Anweisungsspeicher 54 und dem Speicher 144 ausführen.
  • Das Verfahren 200 beginnt in Schritt 202 mit dem Bestimmen einer Anzahl M von Pixeln, die der Mediengröße und der Druckauflösung einer Zeile von Halbtonbilddaten 22 entsprechen. In Schritt 204 wird für eine Bild-Pipeline 50 des Druckers 10, die konfiguriert ist, um Bildzeilen einer vorbestimmten kleineren Anzahl m von Pixeln 34 zu verarbeiten, eine Anzahl N von sich überlappenden Spalten 32 basierend auf M und m berechnet. In Schritt 206 wird die Bild-Pipeline 50 konfiguriert, um einen Streifen 30 von mehreren Zeilen von M Pixeln 34 von Halbtonbilddaten 22 in Druckdaten 80 zu konvertieren, die dem Streifen 30 entsprechen. Die Bild-Pipeline 50 konvertiert den Streifen 30, indem sie eine komprimierte Version 40 des Streifens 30 reihenweise in N Spaltenabschnitten oder Spaltenbereichen 42 verarbeitet. Bei einigen Beispielen umfasst das Verfahren 200 in Schritt 208 das Generieren von Anweisungen 110 für einen Controller 52 der Bild-Pipeline 50. Die Anweisungen 110 sequenzieren die N Spaltenabschnitte 42 des Streifens durch die Pipeline 50. Bei einigen Beispielen umfasst das Verfahren 200 in Schritt 210 das Wiederholen der Bestimmung 202, der Berechnung 204 und der Konfiguration 206, um die Bild-Pipeline 50 umzukonfigurieren, um mindestens eine von einer anderen Mediengröße oder einer anderen Druckauflösung, die für den Drucker 10 eingestellt ist, zu berücksichtigen.
  • Noch ein anderes Beispiel der vorliegenden Offenbarung, wie es am besten mit Bezug auf 9 zu verstehen ist, ist ein Verfahren 300 zum Drucken, mit einem Drucker 10, der mindestens ein Farbwerk 18 aufweist, wobei Halbtondaten 22 die Pixel 34 eines Bildes in einem Zeilen- und Spaltenformat darstellen. In manchen Fällen kann man das Ablaufschema aus 9 als die Schritte in einem Verfahren ansehen, das in dem Drucker 10 umgesetzt wird, wie etwa durch einen oder mehrere von dem Controller 52 und dem Prozessor 142, die jeweils Anweisungen in dem Anweisungsspeicher 54 und dem Speicher 144 ausführen.
  • Das Verfahren 300 beginnt in Schritt 302 mit dem Komprimieren der Halbtondaten 22, die sich überlappenden mehrspaltigen Spaltenbereichen 32 eines mehrzeiligen Streifens 30 entsprechen, zu einem Satz komprimierter Spaltenblöcke 42 eines komprimierten Streifens 40. Bei einigen Beispielen können die Halbtondaten für alle Streifen einer Seite komprimiert werden, bevor ein Streifen in Schritt 306 dekomprimiert wird. In Schritt 304 wird ein Streifen der Halbtondaten identifiziert. In Schritt 306 wird jeder der komprimierten Spaltenblöcke 42, die dem identifizierten Streifen entsprechen, reihenweise in Halbtondaten 54 des entsprechenden Spaltenbereichs 32 dekomprimiert. In Schritt 308 werden die Halbtondaten 54 jedes Bereichs 32 des Streifens 30 reihenweise durch eine Bild-Pipeline 50 verarbeitet, um Druckdaten 80 zu generieren, die dem Streifen für ein einziges der Farbwerke 18 entsprechen, indem die Bild-Pipeline 50 für die Verarbeitung jedes Bereichs 32 dynamisch umprogrammiert wird. In Schritt 310 werden bei einigen Beispielen Zustandsdaten, die mit dem Spaltenbereich 32 verknüpft sind, geladen, bevor die Druckdaten 80 generiert werden, und Zustandsdaten, die mit dem Spaltenbereich 32 verknüpft sind, werden in Schritt 312 gespeichert, nachdem die Druckdaten 80 generiert wurden. In Schritt 314 werden die Druckdaten 80, die für den Spaltenbereich 32 des einzigen Farbwerks 18 generiert wurden, in eine entsprechende Spaltenposition 86 eines Speicherpuffers 90 für das Farbwerk 18 eingefügt, wobei der Speicherpuffer 90 in dem Zeilen- und Spaltenformat der Bilddaten 22 strukturiert ist. In Schritt 316 umfasst das Einfügen das Zuschneiden aus den Druckdaten 80 eines Spaltenabschnitts 84, der einen angrenzenden Spaltenbereich überlappt. In Schritt 318, nachdem die Druckdaten 80 für alle Spaltenbereiche 32 des Streifens in den Speicherpuffer 90 gesetzt wurden, wird mindestens ein Teil des Streifens auf ein Druckmedium 16 gedruckt, indem die generierten Druckdaten 80 aus dem Speicherpuffer 90 auf das Farbwerk 18 angewendet werden, um den Farbstoff 14 auf dem Druckmedium 16 abzuscheiden. Falls keine weiteren Streifen zu verarbeiten sind („Nein-“ Zweig von Schritt 320), dann ist das Verfahren 300 beendet. Falls weitere Streifen zu verarbeiten sind („Ja-“ Zweig von Schritt 320), dann wird in Schritt 322 mindestens einer der verschiedenen mehrzeiligen Streifen oder ein anderes der Farbwerke 18 ausgewählt, und die Verarbeitung wird durch Abzweigen zu Schritt 306 wiederholt. Bei einigen Beispielen umfasst diese Auswahl für mindestens ein bestimmtes Farbwerk das Bewerten mindestens eines von einer Verfügbarkeit des Speicherpuffers 90 des bestimmten Farbwerks 18 zum Empfangen von Druckdaten 80, einer Zeit, während der das bestimmte Farbwerk 18 auf die Druckdaten 80 gewartet hat, und einem zu verarbeitenden nächsten mehrzeiligen Streifen für das bestimmte Farbwerk 18.
  • Aus dem Vorstehenden geht hervor, dass der Drucker und die Verfahren, die von der vorliegenden Offenbarung bereitgestellt werden, einen erheblichen Fortschritt in der Technik darstellen. Begriffe zur Orientierung und relativen Position (wie etwa „oben“, „unten“, „seitlich“, „links“, „rechts“ und dergleichen) sind nicht dazu gedacht, eine bestimmte Orientierung eines beliebigen Elements oder einer beliebigen Baugruppe zu verlangen und werden aus praktischen Gründen der Erläuterung und Beschreibung verwendet. Obwohl mehrere spezifische Beispiele beschrieben und abgebildet wurden, ist die Offenbarung nicht auf die spezifischen Verfahren, Formen oder Anordnungen von derart beschriebenen und abgebildeten Teilen eingeschränkt. Beispielsweise sind die Beispiele der Offenbarung nicht auf eine bestimmte Drucktechnik eingeschränkt, sondern können Laserdrucker und Tintenstrahldrucker umfassen, um nur einige zu nennen. Es versteht sich, dass die vorliegende Beschreibung alle neuartigen und nicht offensichtlichen Kombinationen von hier beschriebenen Elementen umfasst, und dass in der vorliegenden oder einer späteren Anmeldung jede neuartige und nicht offensichtliche Kombination dieser Elemente in Anspruch genommen werden kann. Die vorstehenden Beispiele sind erläuternd, und kein einziges Merkmal oder Element ist für alle möglichen Kombinationen, die in der vorliegenden oder einer späteren Anwendung in Anspruch genommen werden können, wesentlich. Soweit nicht anders vorgegeben, müssen die Schritte eines Verfahrensanspruchs nicht in der vorgegebenen Reihenfolge ausgeführt werden.
  • Die Offenbarung ist nicht auf die zuvor beschriebenen Umsetzungen eingeschränkt, sondern ist vielmehr durch die beiliegenden Ansprüche im Hinblick auf ihren vollen Umfang von Äquivalenten definiert. Wenn die Ansprüche „ein“ oder „ein erstes“ Element seiner Äquivalente vortragen, sind diese Ansprüche als ein oder mehrere dieser Elemente umfassend zu verstehen, wobei sie zwei oder mehrere derartige Elemente weder benötigen noch ausschließen.

Claims (14)

  1. Verfahren zum Drucken, mit einem Drucker mit mindestens einem Farbwerk, wobei Halbtonbilddaten (22) Pixel eines Bildes in einem Zeilen- und Spaltenformat darstellen, umfassend: Bestimmen eines mehrzeiligen Streifens der Halbtonbilddaten (22), wobei der Streifen eine Vielzahl von Reihen aufweist, wobei eine Reihe (35) der Vielzahl von Reihen eine Vielzahl von Pixeln ausweist, und wobei der Streifen in eine Vielzahl von sich überlappenden mehrspaltigen Spaltenbereichen der Halbtonbilddaten (22) unterteilt ist, und wobei die Streifen und Reihen eine gleiche Orientierung aufweisen und die Spaltenbereiche eine zu den Streifen senkrechte Orientierung aufweisen; reihenweises Verarbeiten der Halbtonbilddaten (22) jedes Bereichs des Streifens durch eine Bild-Pipeline, um Druckdaten zu generieren, die dem Streifen entsprechen, für ein einzelnes der Farbwerke durch dynamisches Umprogrammieren der Bild-Pipeline für jeden Bereich; Komprimieren der Halbtonbilddaten (22), die den Spaltenbereichen des Streifens entsprechen, in einen Satz komprimierter Spaltenblöcke eines komprimierten Streifens; und reihenweises Dekomprimieren jedes der komprimierten Spaltenblöcke des komprimierten Streifens in die Halbtonbilddaten (22) des entsprechenden Spaltenbereichs vor dem seriellen Verarbeiten des entsprechenden Spaltenbereichs.
  2. Das Verfahren nach Anspruch 1, wobei das dynamische Umprogrammieren der Bild-Pipeline für jeden Spaltenbereich beinhaltet: Laden von Zustandsdaten, die mit dem Spaltenbereich verknüpft sind, vor dem Generieren der Druckdaten; und Speichern von Zustandsdaten, die mit dem Spaltenbereich verknüpft sind, nach dem Generieren der Druckdaten.
  3. Das Verfahren nach Anspruch 1, umfassend: Einfügen der Druckdaten, die für den Spaltenbereich des einzelnen Farbwerks generiert werden, in eine entsprechende Spaltenposition eines Speicherpuffers für das Farbwerk, das in dem Zeilen- und Spaltenformat des Bildes strukturiert ist.
  4. Das Verfahren nach Anspruch 3, umfassend: nachdem die Druckdaten für alle Spaltenbereiche in den Speicherpuffer gesetzt wurden, Drucken mindestens eines Teils des Streifens auf ein Druckmedium durch Anwenden der generierten Druckdaten aus dem Speicherpuffer auf das Farbwerk.
  5. Das Verfahren nach Anspruch 3, wobei das Einfügen das Zuschneiden aus den Druckdaten eines Spaltenabschnitts umfasst, der einen angrenzenden Spaltenbereich überlappt.
  6. Das Verfahren nach Anspruch 1, umfassend: nach der Verarbeitung Auswählen mindestens eines von einem anderen mehrzeiligen Streifen oder einem anderen der Farbwerke, und Wiederholen der Verarbeitung.
  7. Das Verfahren nach Anspruch 6, wobei das Auswählen für mindestens ein bestimmtes Farbwerk das Bewerten mindestens eines von einer Verfügbarkeit eines Speicherpuffers des bestimmten Farbwerks zum Empfangen von Druckdaten, einer Zeit, während der das bestimmte Farbwerk auf Druckdaten gewartet hat, und einem zu verarbeitenden nächsten mehrzeiligen Streifen für das bestimmte Farbwerk umfasst.
  8. Verfahren zum Konfigurieren eines Druckers für eine gewünschte Mediengröße und Druckauflösung, umfassend: Bestimmen einer Anzahl M von Pixeln, die der Mediengröße und der Druckauflösung einer Bildzeile entsprechen; für eine Bild-Pipeline des Druckers, die konfiguriert ist, um Bildzeilen einer vorbestimmten kleineren Anzahl m von Pixeln zu verarbeiten, Berechnen einer Anzahl N von sich überlappenden Spalten basierend auf M und m; und Konfigurieren der Bild-Pipeline, um einen Streifen von mehreren Reihen von M Pixeln von Halbtonbilddaten (22) in Druckdaten zu konvertieren, die dem Streifen entsprechen, durch reihenweises Verarbeiten des Streifens in N Spaltenabschnitten, wobei die Streifen und Reihen eine gleiche Orientierung aufweisen und die Spalten eine zu den Streifen senkrechte Orientierung aufweisen; Komprimieren der Halbtonbilddaten (22), die den Spaltenabschnitten des Streifens entsprechen, in einen Satz komprimierter Spaltenblöcke eines komprimierten Streifens; und reihenweises Dekomprimieren jedes der komprimierten Spaltenblöcke des komprimierten Streifens in die Halbtonbilddaten (22) des entsprechenden Spaltenabschnitts vor dem seriellen Verarbeiten des entsprechenden Spaltenabschnitts.
  9. Das Verfahren nach Anspruch 8, umfassend: Wiederholen des Bestimmens, Berechnens und Konfigurierens, um die Bild-Pipeline umzukonfigurieren, um mindestens eine von einer anderen Mediengröße oder einer anderen Druckauflösung zu berücksichtigen.
  10. Das Verfahren nach Anspruch 8 oder Anspruch 9, wobei das Konfigurieren umfasst: Generieren von Anweisungen für einen Controller der Bild-Pipeline, um die N Spaltenabschnitte des Streifens durch die Pipeline zu sequenzieren.
  11. Drucker, umfassend: ein Druckmodul (12) mit mindestens einem Farbwerk; einen Kompressor (20), um Halbtonbilddaten (22) in einem Zeilen- und Spaltenformat spaltenbereichsweise in komprimierte mehrzeilige Streifen (30) zu konvertieren, wobei jeder Streifen (30) in eine Vielzahl von sich überlappenden mehrspaltigen Spaltenbereichen (32) unterteilt ist, wobei die Spaltenbereiche eine zu den Streifen senkrechte Orientierung aufweisen; eine Bild-Pipeline (50) zum Verarbeiten eines Spaltenbereichs (32) eines ausgewählten der Streifen (30), um Druckdaten zu generieren, die dem Spaltenbereich (32) des ausgewählten Streifens (30) für ein ausgewähltes der Farbwerke entsprechen; und einen Controller (52), um die Pipeline dynamisch umzuprogrammieren, um jeden der Spaltenbereiche (32) des ausgewählten Streifens (30) reihenweise zu verarbeiten.
  12. Der Drucker nach Anspruch 11, wobei der Controller (52) die Pipeline für jeden der Spaltenbereiche dynamisch umprogrammiert, indem er in die Pipeline zuvor gespeicherte Zustandsdaten, die mit dem Spaltenbereich verknüpft sind, aus einem Zustandsspeicher lädt, bevor der Spaltenbereich verarbeitet wird, und indem er die geänderten Zustandsdaten, die mit dem Spaltenbereich verknüpft sind, in dem Zustandsspeicher speichert, nachdem die Druckdaten für den Spaltenbereich generiert wurden.
  13. Der Drucker nach Anspruch 11 oder Anspruch 12, wobei die Pipeline Spaltenbereiche einer vorbestimmten maximalen Breite verarbeitet, und wobei die Pipeline programmgemäß konfiguriert wird, basierend auf der maximalen Breite, einer vorgegebenen Mediengröße und einer vorgegebenen Druckauflösung, um den Streifen in N Spaltenbereichen zu verarbeiten.
  14. Der Drucker nach Anspruch 11 oder Anspruch 12, umfassend: einen Speicher (90), um Druckdaten zu puffern, die aus der Pipeline für den ausgewählten Streifen und das ausgewählte Farbwerk empfangen werden; und wobei das Druckmodul konfiguriert ist, um unter Verwendung des ausgewählten Farbwerks die gepufferten Druckdaten für den ausgewählten Streifen auf ein Printmedium zu drucken, nachdem alle Spaltenbereiche durch die Pipeline verarbeitet wurden.
DE112011105359.2T 2011-06-22 2011-06-22 Verarbeitung von Bilddatenstreifen in Spaltenbereichen Expired - Fee Related DE112011105359B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/041425 WO2012177248A1 (en) 2011-06-22 2011-06-22 Processing image data strips in columnar regions

Publications (2)

Publication Number Publication Date
DE112011105359T5 DE112011105359T5 (de) 2014-03-13
DE112011105359B4 true DE112011105359B4 (de) 2018-05-30

Family

ID=47422847

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105359.2T Expired - Fee Related DE112011105359B4 (de) 2011-06-22 2011-06-22 Verarbeitung von Bilddatenstreifen in Spaltenbereichen

Country Status (5)

Country Link
US (1) US9171239B2 (de)
CN (1) CN103608764B (de)
DE (1) DE112011105359B4 (de)
GB (1) GB2506037B (de)
WO (1) WO2012177248A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6379797B2 (ja) * 2014-07-25 2018-08-29 コニカミノルタ株式会社 画像形成装置及び画像形成制御方法並びに画像形成制御プログラム
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
WO2019182550A1 (en) * 2018-03-19 2019-09-26 Hewlett-Packard Development Company, L.P. Processing images

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0730249A2 (de) * 1995-03-02 1996-09-04 Hewlett-Packard Company Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Daten für einen seriellen Drücker
US20060120787A1 (en) * 2002-04-27 2006-06-08 Lluis Abello Image processing in printing systems
US7839424B1 (en) 2006-07-13 2010-11-23 Marvell International Ltd. Horizontal strip column-first two-dimensional scaling

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463720A (en) * 1992-09-28 1995-10-31 Granger; Edward M. Blue noise based technique for use in a halftone tile oriented screener for masking screener induced image artifacts
US5949964A (en) * 1997-06-17 1999-09-07 Hewlett-Packard Company Method and apparatus for halftoning of images in a printer
US6672706B2 (en) 1997-07-15 2004-01-06 Silverbrook Research Pty Ltd Wide format pagewidth inkjet printer
US6049390A (en) * 1997-11-05 2000-04-11 Barco Graphics Nv Compressed merging of raster images for high speed digital printing
JP2003145738A (ja) * 2001-11-13 2003-05-21 Seiko Epson Corp 印刷制御装置、印刷制御方法および印刷制御プログラムを記録した媒体
US7573603B2 (en) 2002-10-11 2009-08-11 Avago Technologies Fiber Ip (Singapore) Pte. Ltd. Image data processing
US7283686B2 (en) * 2003-04-14 2007-10-16 Hewlett-Packard Development Company, L.P. Image processor
US7366357B2 (en) * 2004-02-12 2008-04-29 Xerox Corporation Systems and methods for adjusting image data to form highly compressible image planes
US20060067592A1 (en) * 2004-05-27 2006-03-30 Walmsley Simon R Configurable image processor
US7557941B2 (en) * 2004-05-27 2009-07-07 Silverbrook Research Pty Ltd Use of variant and base keys with three or more entities
JP2006067577A (ja) * 2004-08-26 2006-03-09 Oce Technologies Bv 装置で画像をレンダリングするために、メモリに記憶される画像データを処理する方法、機器、およびコンピュータプログラム製品
US7697169B2 (en) * 2004-10-29 2010-04-13 Marvell International Technology Ltd. Laser print apparatus with toner explosion compensation
US20060103689A1 (en) * 2004-11-18 2006-05-18 Vinas Santiago G Method for splitting a print image data plane for printing with multiple printheads
EP1835725A1 (de) 2006-03-16 2007-09-19 Brother Kogyo Kabushiki Kaisha Gerät zur Generierung von Druckdaten und computerfähiger Datenträger dafür
TWI323128B (en) 2006-10-03 2010-04-01 Quanta Comp Inc Image processing apparatus and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0730249A2 (de) * 1995-03-02 1996-09-04 Hewlett-Packard Company Verfahren und Vorrichtung zur Komprimierung und Dekomprimierung von Daten für einen seriellen Drücker
US20060120787A1 (en) * 2002-04-27 2006-06-08 Lluis Abello Image processing in printing systems
US7839424B1 (en) 2006-07-13 2010-11-23 Marvell International Ltd. Horizontal strip column-first two-dimensional scaling

Also Published As

Publication number Publication date
CN103608764A (zh) 2014-02-26
US9171239B2 (en) 2015-10-27
GB2506037A (en) 2014-03-19
GB201321066D0 (en) 2014-01-15
GB2506037B (en) 2017-06-21
CN103608764B (zh) 2016-04-27
WO2012177248A1 (en) 2012-12-27
US20140118759A1 (en) 2014-05-01
DE112011105359T5 (de) 2014-03-13

Similar Documents

Publication Publication Date Title
DE69831133T2 (de) Konfiguriation einer Datenverarbeitungspipeline
DE60031337T2 (de) Geräteabhängige Darstellung von Zeichen
DE69829019T2 (de) Konfigurierbare Datenverarbeitungspipeline
DE4106458C2 (de) Graphische Datenverarbeitungseinrichtung zum Erzeugen eines Tones eines Randbildelements aus Vektordaten
DE69816946T2 (de) Druckkompensationvorrichtung und Druckkompensationverfahren
DE3024459A1 (de) Pyramideninterpolation
DE102011114819A1 (de) Bildverarbeitungsvorrichtung, Bildverarbeitungsverfahren, Tintenstrahldruckvorrichtung, und Tintenstrahldruckverfahren
DE4340217A1 (de) Farbfehler-Diffusion
US9616659B2 (en) Image processing apparatus that determines ejection execution direction of print head
DE112011105359B4 (de) Verarbeitung von Bilddatenstreifen in Spaltenbereichen
DE102021125510A1 (de) Bilderzeugungsvorrichtung, Steuerverfahren für diese und Speichermedium
DE60033479T2 (de) Bilderzeugungssystem und -verfahren
DE60123914T2 (de) System und Verfahren zur Bilddatenverarbeitung, Rechnerprogramm zur Durchführung des Verfahrens und Datenträger zur Speicherung des Programms
DE60313115T2 (de) Kolorimetrisches Verfahren zur Reduktion des Tintenverbrauchs für Drucker
DE602004008979T2 (de) Verfahren zum Farbeinstellen in einem Korrekturabzug
EP1267566B1 (de) Verfahren zur Erzeugung von Überfüllrahmen in einer Druckseite
DE602005002494T2 (de) Verfahren zum Erzeugen einer Dithermatrix
DE112010005967T5 (de) Bestimmung des Ausschießens von druckbaren Objekten
DE102004016230A1 (de) Bildverbesserung unter Verwendung einer Teilschablonenübereinstimmungsüberprüfung
DE102011079513A1 (de) Fleckencodierungen unter Anwendung eines Nachbarschaftsarrays
US9594989B2 (en) Image-processing device determining dot formation state of target pixel by using gradation value of target pixel
DE102004062841A1 (de) Verfahren, Computerprogramm, Computer und Drucksysteme zum Trapping von Bilddaten
EP0970440B1 (de) Bildbearbeitungsverfahren und schaltungsanordnung zum verändern der bildauflösung
DE60307186T2 (de) Druckvorrichtung und Steuerungsverfahren dafür
EP0766856B1 (de) Verfahren zur montage von druckbögen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee