-
Die vorliegende Erfindung bezieht
sich allgemein auf Laserdrucker, insbesondere auf eine Laserdruckvorrichtung,
die einen Pulsbreitenwert und einen Ausrichtungswert auf der Basis
von Pixeln in einem Mehrbitbild erzeugt.
-
Farb- und Grauwert-Digitalbilder
bestehen beide aus Bildelementen (Pixeln), wobei jedes Pixel durch
mehrere binäre
Bits dargestellt wird, die entweder einen Farb- oder einen Graupegel
definieren. Um ein solches Bild auf einem Bipegel- (Schwarz/Weiß-) Drucker
herzustellen, werden die Pixeldaten, falls sie nicht bereits Graupegel
sind, typischerweise in einen Graupegel-Mehrbitwert (z. B. 8 Bit
pro Pixel) umgewandelt. Die einzelnen Graupegelpixel werden dann typischerweise
durch die Verwendung eines digitalen Halbtongebungsprozesses zu
Binärpegelpixeln
umgewandelt.
-
Eine digitale Halbtongebung ist der
Prozeß des
Umwandelns eines Kontinuierlich-Tonbildes in ein binäres Bild,
das die Illusion des ursprünglichen Kontinuierlich-Tonbildes
aufweist, unter Verwendung einer sorgfältigen Anordnung binärer Bildelemente. Der
Prozeß wird
auch als räumliches
Zittern bezeichnet. In dem Fall von Farbbildern wird das farbige
Kontinuierlich-Tonbild zunächst
in Farbkanäle
getrennt. Getrennte Halbtöne
werden dann für
jeden der Farbkanäle
gebildet.
-
Die Auflösungsverbesserungstechnologie (RET
= Resolution Enhancement Technology) wurde verwendet, um die Ein-Bit-Daten zu glätten, die
durch Halbtongebungs-Algorithmen erzeugt werden. Die RET wird typischerweise
mit einem großen
Block speziell zugewiesener Hardware implementiert, und puffert
typischerweise mehrere Zeilen von Daten. Die RET ist eine hardwareintensive
Technologie, die Ein-Bit-Daten
nimmt und die gezackten Kanten reduziert, die bei geringeren Auflösungen wahrnehmbar sind.
Die RET verwendet Vorlagenübereinstimmung auf
den Ein-Bit-Daten, um im wesentlichen zu schätzen, wie die ursprünglichen
glatten Formen der Bildmerkmale in dem Graupegelbild waren (d. h.
vor der Halbtongebung). Die RET vergleicht typischerweise ein Fenster
(z. B. 7 × 9
Pixel) der Ein-Bit-Daten mit Hunderten von Schablonen zum Identifizieren
von Merkmalen (z. B. eine diagonale Linie, die Oberseite des Buchstabens „0", usw.) in dem Fenster.
Das Fenster wird um das gesamte Ein-Bit-Bild bewegt, um Merkmale
in dem gesamten Bild zu identifizieren. Lasermodulationscodes werden
auf der Basis der Ergebnisse der Schablonenübereinstimmung erzeugt. Die
Lasermodulationscodes werden verwendet, um einen Laser in dem Drucker
auf eine Weise zu modulieren, die dazu führt, daß die gezackten Kanten in der
gedruckten Ausgabe entfernt oder reduziert werden.
-
Es ist die Aufgabe der vorliegenden
Erfindung, eine Laserdruckvorrichtung und ein Verfahren zum Erzeugen
von Modulationsdaten mit verbesserten Charakteristika zu schaffen.
-
Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch
1 und 22, sowie ein Verfahren gemäß Anspruch 16 gelöst.
-
Eine Form der vorliegenden Erfindung
liefert eine Laserdruckvorrichtung. Die Vorrichtung umfaßt einen
Speicher zum Speichern eines Mehrbitbildes, das eine Mehrzahl von
Pixeln umfaßt.
Jedes Pixel wird durch einen N-Bit-Wert dargestellt, wobei N größer als
Eins ist. Ein Modulationscodegenerator analysiert drei benachbarte
Pixel. Die drei benachbarten Pixel umfassen ein linkes Pixel, ein
Mittelpixel und ein rechtes Pixel. Der Modulationscodegenerator
ist konfiguriert, um einen Pulsbreitenwert auf der Basis des Werts
des Mittelpixels, und einen Ausrichtungswert auf der Basis der Werte
des linken Pixels und des rechten Pixels zu erzeugen. Eine Laserdruckmaschine
bildet ein Ausgabepixel auf Medien auf der Basis des Pulsbreitenwerts
und des Ausrichtungswerts.
-
Bevorzugte Ausführungsbeispiele der vorliegenden
Erfindung werden nachfolgend Bezug nehmend auf beiliegende Zeichnungen
näher erläutert. Es
zeigen:
-
1A ein
Blockdiagramm, das Hauptkomponenten eines Drucksystems gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
1B ein
Blockdiagramm, das Hauptkomponenten eines Drucksystems gemäß einem
anderen Ausführungsbeispiel
der vorliegenden Erfindung darstellt;
-
2 ein
Blockdiagramm, das Hauptkomponenten der in 1A und 1B gezeigten
Laserdruckmaschine gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
3 ein
Diagramm, das drei benachbarte Pixel von einer Mehrbitbild-Datendatei
darstellt;
-
4A ein
Block-/Schema-Diagramm, das einen Pcode-Generator gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
4B ein
Block-/Schema-Diagramm, das einen Pcode-Generator gemäß einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung darstellt;
-
4C ein
Block-/Schema-Diagramm, das einen Pcode-Generator gemäß einem dritten Ausführungsbeispiel
der vorliegenden Erfindung darstellt;
-
4D ein
Block-/Schema-Diagramm, das einen Pcode-Generator gemäß einem vierten Ausführungsbeispiel
der vorliegenden Erfindung darstellt; und
-
5 ein
Flußdiagramm,
das ein Verfahren zum Erzeugen von Pcodes von Mehrbitbilddaten gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung darstellt.
-
Bei der folgenden detaillierten Beschreibung der
bevorzugten Ausführungsbeispiele
wird auf die beiliegenden Zeichnungen Bezug genommen, die einen
Teil derselben bilden und in denen zu Darstellungszwecken spezifische
Ausführungsbeispiele
gezeigt sind, in denen die Erfindung praktiziert werden kann. Es
ist klar, daß andere
Ausführungsbeispiele verwendet
werden können
und strukturelle oder logische Änderungen
durchgeführt
werden können, ohne
von dem Schutzbereich der vorliegenden Erfindung abzuweichen. Die
folgende detaillierte Beschreibung soll daher nicht in einem beschränkenden Sinne
gesehen werden und der Schutzbereich der vorliegenden Erfindung
ist durch die angehängten Ansprüche definiert.
-
1A ist
ein Blockdiagramm, das Hauptkomponenten eines Drucksystems 100A gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Das Drucksystem 100A umfaßt einen
Computer 102 und einen Drucker 120. Bei einem
Ausführungsbeispiel
ist der Drucker 120 ein Laserdrucker oder eine Laserdruckvorrichtung.
-
Der Computer 102 umfaßt einen
Prozessor 104, einen Speicher 108 und eine Eingabe/Ausgabe- (I/O-)
Schnittstelle 116, die über
einen Bus 106 kommunikativ miteinander gekoppelt sind.
Ein Treiber 110, Daten 112, die gedruckt werden
sollen, und Mehrbitbilddaten 114 sind in dem Speicher 108 gespeichert.
Bei einem Ausführungsbeispiel
wird der Treiber 110 durch den Prozessor 104 ausgeführt, um die
Daten 112, die gedruckt werden sollen, in Mehrbitbilddaten 114 aufzuberei ten.
Die Daten 112, die gedruckt werden sollen, können jeder
Typ von druckbaren Daten sein, wie z. B. Bilddateien, Textverarbeitungsdateien
usw. Bei einer Form der Erfindung umfassen Mehrbitbilddaten 114 eine
Mehrzahl von Pixeln, wobei jedes Pixel durch einen Mehrbitwert dargestellt
ist (d. h. jedes Pixel ist durch einen N-Bit-Wert dargestellt, wobei
N größer als
Eins ist). Bei einem Ausführungsbeispiel
ist jedes Pixel in den Mehrbitbilddaten 114 durch einen
Zwei-Bit-Wert dargestellt (z. B. Schwarz, Weiß und zwei Graupegel). Bei
einem anderen Ausführungsbeispiel
ist jedes Pixel in den Mehrbitbilddaten 114 durch einen
Vier-Bit-Wert dargestellt.
-
Der Drucker 120 umfaßt einen
Prozessor 122, eine IO-Schnittstelle 126,
einen Speicher 128 und eine Laserdruckmaschine 130,
die über
einen Bus 124 kommunikativ miteinander gekoppelt sind. Die
I/O-Schnittstelle 126 des Druckers 120 und die I/O-Schnittstelle 116 des
Computers 102 sind über die
Kommunikationsverbindung 118 miteinander gekoppelt. Bei
einem Ausführungsbeispiel
sind die I/O-Schnittstellen 116 und 126 serielle
Schnittstellen, wie z. B. Universeller-Serieller-Bus-(USB-) Schnittstellen,
und die Kommunikationsverbindung 118 ist ein USB-Kabel.
Bei einem anderen Ausführungsbeispiel
sind die I/O-Schnittstellen 116 und 126 Netzwerkschnittstellen,
und die Kommunikationsverbindung 118 ist ein Netzwerk,
wie z. B. ein lokales Netz. Bei anderen Ausführungsbeispielen können andere Typen
von Schnittstellen und Kommunikationsverbindungen verwendet werden,
einschließlich
denjenigen für
eine drahtlose Kommunikation.
-
Nach dem Aufbereiten der Daten 112 in Mehrbitbilddaten 114 gibt
der Computer 102 die Mehrbitbilddaten 114 über die
Kommunikationsverbindung 118 an den Drucker 120 aus.
Wie es in 1A gezeigt
ist, werden die empfangenen Mehrbitbilddaten 114 in dem
Speicher 128 des Druckers 120 gespeichert, wo
sie durch die Laserdruckmaschine 130 wiedergewonnen und verarbeitet
werden, wie es nachfolgend mit Bezugnahme auf 2–5 näher beschrieben ist.
-
1B ist
ein Blockdiagramm, das Hauptkomponenten eines Drucksystems 100B gemäß einem
anderen Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Bei dem dargestellten Ausführungsbeispiel
umfaßt
das Drucksystem 100B die gleiche Hardware wie das Drucksystem 100A.
Aber bei dem System 100B werden die Mehrbitbilddaten 114 in
dem Drucker 120 anstatt in dem Computer 102 aufbereitet.
Bei einem Ausführungsbeispiel
wandelt der Treiber 140 Daten 112, die gedruckt
werden sollen, in eine Beschreibungsdatei 142 um. Bei einer Form
der Erfindung ist der Treiber 140 ein PCL-Treiber (PCL
= Printer Command Language = Druckerbefehlssprache) zum Umwandeln
der Daten 112 in eine Beschreibungsdatei 142,
die Daten und Befehle hoher Ebene umfaßt (z. B. plaziere einen Helvetika 12 Punkt
Buchstaben „Q" an einer Position
xy auf der Seite). Der Computer 102 überträgt die Beschreibungsdatei 142 über die
Kommunikationsverbindung 118 zu dem Drukker 120,
und der Drucker 120 speichert die Datei 142 in
dem Speicher 128. Der Prozessor 122 bereitet dann
die Beschreibungsdatei 142 in die Mehrbitbilddatei 114 auf.
Bei einem Ausführungsbeispiel
umfaßt
der Drucker 120 PCL-Firmware zum Aufbereiten der Beschreibungsdatei 142 in
die Mehrbitbilddatei 114. Die Mehrbitbilddatei 114 ist
in dem Speicher 128 des Druckers 120 gespeichert,
wo dieselbe durch die Laserdruckmaschine 130 wiedergewonnen
und verarbeitet wird, wie es nachfolgend mit Bezugnahme auf 2–5 näher beschrieben
ist.
-
2 ist
ein Blockdiagramm, das Hauptkomponenten der in 1A und 1B gezeigten
Laserdruckmaschine 130 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Die Laserdruckmaschine 130 umfaßt DMA-Hardware
(DMA = Direct Memory Access = Direktspeicherzugriff) 202, einen
Pcode-Generator 206, einen Pulsbreitenmodulator (PWM) 210 und
einen Laser 214. Die DMA 202 liest die Mehrbitbilddaten 114 von
dem Druckerspeicher 128 und gibt ein Datensignal
204A und
ein Latchsignal 204B an den Pcode-Generator 206 aus. Die
DMA 202 gibt das Latchsignal 204B auch an den Pulsbreitenmodulator 210 aus.
Bei einem Ausführungsbeispiel
liest die DMA 202 die Mehrbitbilddaten 114 von
dem Speicher 128 in Streifen (z. B. Bilddaten für einen
ein Zoll langen mal vollseitenbreiten Streifen), und gibt ein Datenpixel
(z. B. 4 Bits) zu einem Zeitpunkt an den Pcode-Generator 206 aus.
Bei einer Form der Erfindung werden Mehrbitbilddaten 114 komprimiert
und dann in Streifen dekomprimiert, so daß nur ein kleiner Teil einer
Seite tatsächlich,
in dem Roh-Mehrbitbildformat zu einem Zeitpunkt in dem Speicher 128 ist.
-
Der Pcode-Generator 206 erzeugt „Pcodes" 208 auf
der Basis der Daten 204A, die von der DMA 202 empfangen
werden. Pcodes 208 (die nachfolgend auch als Lasermodulationscodes
bezeichnet werden) werden nachfolgend näher beschrieben. Der Pcode-Generator 206 gibt
die Pcodes 208 an den Pulsbreitenmodulator 210 aus.
Der Pulsbreitenmodulator 210 erzeugt ein pulsbreitenmoduliertes Lasertreibersignal 212 auf
der Basis der Pcodes 208, die von dem Pcode-Generator 206 empfangen
werden, und des Latchsignals 204B von der DMA 202. Das
Lasertreibersignal 212 wird auch als ein Videosignal bezeichnet.
Der Laser 214 gibt auf der Basis des Lasertreibersignals 212 einen
modulierten Laserlichtstrahl 216 (z. B. Ein/Aus Binärmodulation)
aus.
-
Für
einen Durchschnittsfachmann auf diesem Gebiet ist klar, daß zusätzlich zu
den in 2 dargestellten
Elementen ein Ausführungsbeispiel
einer Laserdruckmaschine 130 auch herkömmliche Laserdruckelemente
(nicht gezeigt) zum Bilden eines Bildes auf einem Medium umfaßt, wie
z. B. einen drehenden Polygonalspiegel zum Ablenken des Laserstrahls 216,
eine photoleitfähige
Trommel, Tonausgabevorrichtungen, Medienhandhabungs-Vorrichtungen
und auch andere Elemente.
-
Um gemäß einem Ausführungsbeispiel
ein Bild auf einem Medium zu bilden, führt die Laserdruckmaschine 130 anspre chend
auf ein Lasertreibersignal 212 einen herkömmlichen
elektrophotographischen Druckprozeß durch. Zu jedem speziellen Zeitpunkt
identifiziert das Signal 212, ob der Laser 214 den
Strahl 216 liefert oder keinen Strahl liefert. Solche aufeinanderfolgenden
speziellen Zeitpunkte definieren einen Punkt (Ausgabepixel) eines
Bildes, das auf dem Medium gebildet werden soll. Bei einem Ausführungsbeispiel
gibt der Drucker 120 600 Punkte pro Zoll (dpi = dots per
inch) aus, so daß bei
jedem 1/600tel eines Zolls ein Punkt ausgegeben werden kann. Bei
einem anderen Ausführungsbeispiel
gibt der Drucker 120 1.200 dpi aus, daher kann alle 1/1.200te1
eines Zolls ein Punkt ausgegeben werden.
-
Für
jedes Ausgabepixel ist eine feste Menge an Platz zugewiesen (z.
B. 1/600tel eines Zolls oder 1/l.200tel eines Zolls). Folglich,
während
der Laserstrahl 216 über
die Trommel bewegt wird, verbringt der Strahl 216 eine
bestimmte Zeitdauer damit, sich von links nach rechts über jedes
Ausgabepixel zu bewegen, was als die Pixelzeit bezeichnet wird.
Das Erscheinungsbild des resultierenden Punktes wird beeinträchtigt durch
die Anzahl von Malen, die der Laser 214 während einer
Pixelzeit ein- und ausgeschaltet wird, und durch die Gesamtdauer
der Einschaltzeit des Lasers 214 während der Pixelzeit.
-
Bei einem Ausführungsbeispiel erzeugt der Pcode-Generator 206 einen
Pcode 208 für
jedes Ausgabepixel in dem Bild, das auf dem Medium gebildet werden
soll. Bei einer Form der Erfindung umfaßt jeder Pcode 208 einen
Pulsbreitenwert, der die Zeitdauer anzeigt, die der Laser 214 über einer
bestimmten Ausgabepixelposition eingeschaltet ist, und einen Ausrichtungswert,
der der Position des Laserpulses in einer bestimmten Ausgabepixelposition entspricht.
Die Pulsposition kann am Anfang der Abtastung eines bestimmten Ausgabepixels
(links ausgerichtet bzw. linksbündig)
eingestellt sein, zentriert in der Zeit, die dem Ausgabepixel zugewiesen
(mittig ausgerichtet bzw. zentriert), an dem Ende der Abtastung
des Ausgabepixels (rechts ausgerichtet bzw. rechtsbündig) eingestellt
sein oder aufgeteilt zwischen dem Anfang und dem Ende der Abtastung
des Ausgabepixels (geteilt ausgerichtet) eingestellt sein. Bei einem
Ausführungsbeispiel
bleibt der Laser 214 während
dem Übergang
von einem Ausgabepixel zu dem nächsten
Ausgabepixel für
bestimmte Ausrichtungstypen eingeschaltet (z. B. ein Ausgabepixel
mit rechter oder geteilter Ausrichtung, gefolgt von einem Ausgabepixel
mit linker oder geteilter Ausrichtung).
-
Bei einem Ausführungsbeispiel umfaßt jeder Pcode 208 einen
6-Bit-Pulsbreitenwert zum Identifizieren einer von vierundsechzig
unterschiedlichen Pulsbreiten, und einen 2-Bit-Ausrichtungswert zum Identifizieren
einer von vier unterschiedlichen Ausrichtungen (z. B. links ausgerichtet,
rechts ausgerichtet, zentriert ausgerichtet und geteilt ausgerichtet). Mit
einem 6-Bit-Pulsbreitenwert ist jedes Ausgabepixel im wesentlichen
in 1/64 Inkremente unterteilt, und der Pulsbreitenwert zeigt einen
Bruchteil des Ausgabepixels an, währenddem der Laser 214 eingeschaltet
werden soll (z. B. 1/64tel des Ausgabepixels, 27/64tel des Ausgabepixels,
63/64tel des Ausgabepixels usw.). Bei anderen Ausführungsbeispielen
können
Pulsbreitenwerte mit mehr oder weniger als sechs Bits verwendet
werden.
-
3 ist
ein Diagramm, das drei benachbarte Pixel 300A-300C von
den Mehrbitbilddaten 114 darstellt. Wie es in 3 gezeigt ist, hat das linke
Pixel 300A einen Dezimalwert von 4 (binär 0100), das Mittel- (oder „aktuelle") Pixel 300B hat
einen Dezimalwert von 9 (binär
1001), und das rechte Pixel 300B hat einen Dezimalwert
von 12 (binär
1100).
-
Bei einem Ausführungsbeispiel analysiert der
Pcode-Generator 206 Pixel
in dem Mehrbitbild 114 in Gruppen von drei benachbarten
Pixeln, wie z. B. Pixeln 300A–300C. Der Pcode-Generator 206 ist in 2 in Blockform dargestellt.
Vier Ausführungsbeispiele
des Pcode-Generators 206 sind in
-
4A–4D dargestellt und sind durch
Bezugszeichen 206A –206D dargestellt.
-
4A ist
ein Block-/Schema-Diagramm, das einen Pcode-Generator 206A gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Der Pcode-Generator 206A umfaßt Register 402A–402C (die
gemeinsam als Register 402 bezeichnet werden), Subtrahierer 410A und 4108,
Addierer 410C, Komparatoren 412A–412C (die
gemeinsam als Komparatoren 412 bezeichnet werden), einen
Ausrichtungsgenerator 416 und einen Pulsbreitengenerator 420.
Bei einem Ausführungsbeispiel umfaßt jedes
der drei Register 402 vier D-Typ Flip-Flops, wobei jedes
Flip-Flop einen Dateneingang D, einen Takteingang DLK und einen
Ausgang Q aufweist. Die DMA-Hardware 202 (in 2 gezeigt) gibt ein Datensignal 204A an
den Eingang D des Registers 402C aus. Der Ausgang Q des
Registers 402C ist mit dem Eingang D des Registers 402B gekoppelt,
und an den Addierer 410C und den Subtrahierern 410A und 410B.
Der Ausgang Q des Registers 4028 ist mit dem Eingang D
des Registers 402A und mit dem Pulsbreitengenerator 420 gekoppelt.
Der Ausgang Q des Registers 402A ist mit dem Addierer 410C und
den Subtrahierern 410A und 410b gekoppelt.
-
Die DMA-Hardware 202 liest
die Mehrbitbilddaten 114 von dem Druckerspeicher 128 und
gibt ein Datenpixel (z.B. 4 Bits) zu einem Zeitpunkt an den Eingang
D des Pixelregisters 402C aus. Die DMA-Hardware 202 gibt
auch ein Latchsignal 204B aus, das mit dem Takteingang
CLK des Registers 402 gekoppelt ist, um die Daten an dem
Eingang D des Registers 402 an den Ausgang Q jedes Registers 402 zu
latchen. Die Register 402 sind als ein Zuerst-Hinein-Zuerst-Hinaus-
(FIFO-) Speicher konfiguriert, der Pixel verschiebt und hält, während dieselben
aus der DMA-Hardware 202 getaktet werden. Das Register 402B gibt
ein aktuelles Pixel 300B (das auch als Pixel N bezeichnet
wird) aus. Das Pixel 300C (das auch als Pixel N + 1 bezeichnete
wird) rechts von dem aktuellen Pixel 300B wird durch das Register 402C ausgegeben.
Das Pixel 300A (das auch als Pixel N – 1 bezeichnet wird) links
von dem aktuellen Pixel 300B wird durch das Register 402A ausgegeben.
Die Register 402 wirken im wesentlichen als ein dreipixelbreites
Gleitfenster, das jeweils um ein Pixel über das Mehrbitbild 114 bewegt
wird, und das ein linkes Pixel 300A, ein aktuelles Pixel 300B und
ein rechtes Pixel 300C an jeder Position des Fensters präsentiert.
-
Der Pulsbreitengenerator 420 empfängt das aktuelle
Pixel 300B von dem Register 402B und erzeugt einen
entsprechenden Pulsbreitenwert 422 für das aktuelle Pixel 300B.
Bei einem Ausführungsbeispiel
erzeugt der Pulsbreitengenerator 420 einen 6-Bit-Pulsbreitenwert 422 durch
Verketten der beiden höchstwertigsten
Bits des aktuellen Pixels 300B mit dem niedrigstwertigsten
Ende der vier Bits des aktuellen Pixels 300B. Beispielsweise
wäre unter
Verwendung des Werts „1001" des Pixels 300B,
das in 3 gezeigt ist,
die Pulsbreite 422, die diesem Pixel entspricht, „100110". Dies hat den Effekt
des Skalierens des Pixelwerts, was eine lineare Abbildung zwischen
4-Bit-Pixelwerten und 6-Bit-Pulsbreitenwerten liefert.
-
Die Erzeugung eines Pulsbreitenwerts 422 von
einem aktuellen Pixel 300B gemäß einem Ausführungsbeispiel
kann durch den Pseudo-Code in dem folgenden Pseudo-Code Beispiel
I dargestellt werden:
-
Pseudo-Code
Beispiel I
-
Pulsbreite = aktuelles Pixel [3-0] & aktuelles Pixel
[3-2]
-
Bei einem weiteren Ausführungsbeispiel
wird ein Multiplizierer verwendet, um den Pulsbreitenwert 422 zu
erzeugen durch Multiplizieren des Pixelwerts 300B durch
einen Skalierungsfaktor, wie z. B. eine Ganzzahl. Um beispielsweise
einen 6-Bit-Pulsbreitenwert 422 von einem 4-Bit-Grauskalierungspixelwert 300B zu
erzeugen, multipliziert der Pulsbreitengenerator 420 den
Pixelwert 300B mal vier. Bei einer anderen Form der Erfindung
wird ein Bruchteil für den
Skalierungsfaktor (z. B. 63/15) verwendet.
-
Bei einem weiteren Ausführungsbeispiel
umfaßt
der Pulsbreitengenerator 420 eine Nachschlagtabelle (z.
B. einen 16 × 6
Direktzugriffsspeicher (RAM) oder 16 6-Bit-Register), die eine Abbildung zwischen
4-Bit-Pixelwerten 3008 (Eingangsadresse zu der Tabelle) und 6-Bit-Pulsbreitenwerten
422 (Ausgabe von der Tabelle) hält.
Der 16 × 6 – RAM liefert
16 6-Bit-breite Speicherpositionen, die durch die 4-Bit-Eingangsadresse jeweils
eindeutig adressierbar sind. Jede 6-Bit-breite Speicherposition
speichert einen 6-Bit-Pulsbreitenwert,
der eine von 64 Pulsbreiten identifiziert. Auf der Basis einer empfangenen 4-Bit-Eingangsadresse
gibt die Nachschlagtabelle einen 6-Bit-Pulsbreitenwert 422 für das aktuelle
Pixel 300B aus. Eine solche Nachschlagtabelle ermöglicht eine
lineare oder nichtlineare Abbildung von den Grauskalierungspixelwerten 300B zu
den Pulsbreitenwerten 422, abhängig von den Werten der Pulsbreiten,
die in der Nachschlagtabelle geladen werden. Eine nichtlineare Abbildung
kann wünschenswert
sein, weil mehr als eine lineare proportionale Erhöhung bei
der Lasertreiberpulsbreite nötig
sein kann, um eine geeignete Menge an Toner zu liefern, um eine
Drucker-Nichtlinearität
und eine Nichtlinearität
der durchschnittlichen menschlichen Sichtempfindlichkeit auszugleichen.
-
Der Subtrahierer 410A subtrahiert
den Wert des rechten Pixels 300C von dem Wert des linken
Pixels 300A und gibt die Differenz (linkes Pixel – rechtes
Pixel) an den Komparator 412A aus. Der Komparator 412A bestimmt,
ob der Dezimalwert der Differenz größer als Sechs ist, und gibt
ein links-Ausrichen-Signal 414A an den Ausrichtungsgenerator 416 aus,
falls die Differenz größer als
Sechs ist.
-
Der Subtrahierer 410B subtrahiert
den Wert des linken Pixels 300A von dem Wert des rechten
Pixels 300C und gibt die Differenz (rechtes Pixel – linkes
Pixel) an den Komparator 412B aus. Der Komparator 412B bestimmt,
ob der Dezimalwert der Differenz größer als Sechs ist und gibt
ein Rechts-Ausrichten-Signal 414B an den Ausrichtungsgenerator 416 aus,
falls die Differenz größer als
Sechs ist.
-
Der Addierer 410C addiert
den Wert des rechten Pixels 300C mit dem Wert des linken
Pixels 300A und gibt die Summe (linkes Pixel + rechtes
Pixel) an den Komparator 412C aus. Der Komparator 412C bestimmt,
ob der Dezimalwert der Summe größer als
Vierundzwanzig ist, und gibt ein Geteilt-Ausrichten-Signal 414C an den
Ausrichtungsgenerator 416 aus, falls die Summe größer als
Vierundzwanzig ist.
-
Der Ausrichtungsgenerator 416 erzeugt
einen 2-Bit-Ausrichtungswert 418 für das aktuelle
Pixel 300B und gibt denselben aus auf der Basis der Signale 414A–414C,
die jeweils durch die Komparatoren 412A–412C ausgegeben werden.
Falls ein Links-Ausrichten-Signal 414A von dem Komparator 412A empfangen
wird, gibt der Ausrichtungsgenerator 416 einen 2-Bit-Wert 418 aus,
der dem Links-Ausrichten
(z. B. „10") entspricht. Falls
ein Rechts-Ausrichten-Signal 414B von
dem Komparator 412B empfangen wird, gibt der Ausrichtungsgenerator 416 einen
2-Bit-Wert 418 aus, der dem Rechts-Ausrichten (z. B. „01") entspricht. Falls
ein Geteilt-Ausrichten-Signal 414C von dem Komparator 412C empfangen wird,
gibt der Ausrichtungsgenerator 416 einen 2-Bit-Wert 418 aus,
der dem Geteilt-Ausrichten (z. B. „11") entspricht. Falls der Ausrichtungsgenerator 416 kein
Signal von den Komparatoren 412A–412C empfängt, gibt
der Ausrichtungsgenerator 416 einen 2-Bit-Wert 418 aus,
der dem Mittig-Ausrichten (z. B. „00") entspricht. Falls sowohl das Geteilt-Ausrichten-Signal 414C als
auch das Links-Ausrichten-Signal 414A empfangen
werden, gibt der Ausrichtungsgenerator 416 einen 2-Bit-Wert 418 aus,
der dem Links-Ausrichten
entspricht. Falls sowohl das Geteilt-Ausrichten-Signal 414C und das Rechts-Ausrichten-Signal 414B empfangen werden,
gibt der Ausrichtungsgenerator 416 einen 2-Bit-Wert 418 aus, der
dem Rechts-Ausrichten entspricht.
-
Die Bestimmung eines Ausrichtungswerts 418 von
einem linken Pixel 300A und einem rechten Pixel 300C gemäß einem
Ausführungsbeispiel
kann durch den Pseudo-Code in dem folgenden Pseudo-Code Beispiel
II dargestellt werden.
-
Pseudo-Code
Beispiel II
-
falls (linkes Pixel – rechtes-Pixel) > 6, dann LINKS AUSRICHTEN
-
sonst, falls (rechtes Pixel – linkes
Pixel) > 6, dann RECHTS
AUSRICHTEN
-
sonst, falls (linkes Pixel + rechtes
Pixel) > 24, dann
GETEILT AUSRICHTEN
-
sonst MITTIG AUSRICHTEN
-
Die Kombination des 6-Bit-Pulsbreitenwerts 422 und
des 2-Bit-Ausrichtungswerts 418 wird
als Pulscode 208 bezeichnet, der an den Pulsbreitenmodulator 210 (in 2 gezeigt) ausgegeben wird.
Bei anderen Ausführungsbeispielen
werden die Pulscodes 208 von Nachschlagtabellen erzeugt,
wie es in 4B bis 4D gezeigt ist und nachfolgend
beschrieben wird.
-
Bei einem Ausführungsbeispiel taktet die DMA 202 mehrere „0" Pixelwerte durch
die Register 402 am Anfang und Ende jeder Zeile, die gedruckt wird,
so daß der
Laser 214 in den Randregionen nicht eingeschaltet wird.
Von der Perspektive der DMA 202 sind die Register 402 ein
Pixel hinterher (d. h. das erste Pixel zeigt sich nicht in dem Register 402B,
bis das zweite Pixel von der DMA 202 ausgegeben wird). Dies
ist jedoch nicht problematisch, da bei einer Form der Erfindung
der Anfang und das Ende jeder Zeile mit mehreren Pixeln des Werts „0" aufgefüllt sind.
Bei einem Ausführungsbeispiel
taktet die DMA 202 die Pixel des Werts „0" durch die Register 402 während dem
Einschalten. Bei einem anderen Ausführungsbeispiel werden die Register 402 während dem
Einschalten zurückgesetzt
und dadurch werden die Register 402 geleert.
-
4B ist
ein Block-/Schema-Diagramm, das einen Pcode-Generator 206B gemäß einem zweiten
Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Der Pcode-Generator 206B umfaßt Register 402A–402C (die
gemeinsam als Register 402 bezeichnet werden) und eine
Nachschlagtabelle (LUT) 432. Bei dem dargestellten Ausführungsbeispiel
sind die Register 402 als ein Zuerst-Hinein-Zuerst-Hinaus-
(FIFO-) Speicher konfiguriert, auf die gleiche Weise, wie es in 4A gezeigt ist, und verschieben
und halten Pixel, während
dieselben aus der DMA-Hardware 202 getaktet werden. Die
Werte für
das linke Pixel 300A (ausgegeben durch Register 402A),
das aktuelle Pixel 300B (ausgegeben durch Register 402B)
und das rechte Pixel 300C (ausgegeben durch das Register 402C)
werden an die Nachschlagtabelle 432 geliefert. Die Kombination
der vier Bits für
jedes dieser drei Pixel 300A–300C führt zu einer
12-Bit-Eingangsadresse 430 zu der Nachschlagtabelle 432.
Bei einem Ausführungsbeispiel
ist die Nachschlagtabelle 432 ein 4096 × 8 RAM, der 4096 8-Bit-breite Speicherpositionen
liefert, die jeweils durch die 12-Bit-Eingangsadresse 430 eindeutig adressierbar
sind. Jede 8-Bit-breite Speicherposition speichert einen 8-Bit-Pcode 208.
Auf der Basis der empfangenen 12-Bit-Eingangsadresse 430 gibt die Nachschlagtabelle 432 einen
8-Bit-Pcode 208 für das aktuelle
Pixel 300B an den Pulsbreitenmodulator 210 aus.
Abhängig
von den Werten der Pcodes 208, die in die Nachschlagtabelle 432 geladen
sind, kann eine lineare Abbildung von Pixelwerten auf Pulsbreiten geliefert
werden, oder eine nichtlineare Abbildung kann geliefert werden,
um die Nichtlinearität
des Druckprozesses auszugleichen.
-
4C ist
ein Block-/Schema-Diagramm, das einen Pcode-Generator 206C gemäß einem
dritten Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Der Pcode-Generator 206C umfaßt Register 402A–402C (die
gemeinsam als Register 402 bezeichnet werden), und eine
Nachschlagtabelle (LUT) 442. Bei dem dargestellten Ausführungsbeispiel
sind die Register 402 als ein Zuerst-Hinein-Zuerst-Hinaus-
(FIFO-) Speicher konfiguriert, auf gleiche Weise, wie es in 4A und 4B gezeigt ist, und verschieben und halten
Pixel, während
dieselben aus der DMA-Hardware 202 getaktet werden. Die
beiden höchstwertigsten
Bits des linken Pixels 300A (ausgegeben durch das Register 402A),
die vier Bits des aktuellen Pixels 300B (ausgegeben durch
das Register 402B), und die beiden höchstwertigsten Bits des rechten
Pixels 300C (ausgegeben durch das Register 402C)
werden an die Nachschlagtabelle 442 geliefert. Die Kombination
der Bits für
jedes dieser drei Pixel 300A–300C führt zu einer
8-Bit-Eingabeadresse 440 in
die Nachschlagtabelle 442. Bei einem Ausführungsbeispiel
ist die Nachschlagtabelle 442 ein 256 × 8 RAM,
der 256 8-Bit-breite Speicherpositionen liefert, die durch
die 8-Bit-Eingangsadresse 440 jeweils eindeutig adressierbar
sind. Jede 8-Bit-breite Speicherposition speichert einen 8-Bit-Pcode 208. Auf
der Basis der empfangenen 8-Bit-Eingangsadresse 440 gibt
die Nachschlagtabelle 442 einen 8-Bit-Pcode 208 für das aktuelle
Pixel 300B an den Pulsbreitenmodulator 210 aus.
Weil die beiden höchstwertigsten
Bits des linken Pixels 300A und des rechten Pixels 300C beim
Adressieren der Nachschlagtabelle 442 verwendet werden,
anstatt allen vier Bits dieser Pixel 300A und 300C,
wie es bei dem in 4B gezeigten
Ausführungsbeispiel
gemacht wird, kann ein kleinerer (und weniger aufwendiger) RAM für die Nachschlagtabelle 442 verwendet
werden, auf Kosten einer geringeren Auflösung. Falls eine feinere Auflösung gewünscht wird,
können
mehr Bits von Pixeln 300A und 300C verwendet
werden, um die Nachschlagtabelle zu adressieren. Abhängig von den
Werten der Pcodes 208, die in die Nachschlagtabelle 442 geladen
sind, kann eine lineare Abbildung von Pixelwerten auf Pulsbreiten
geliefert werden, oder eine nichtlineare Abbildung kann geliefert
werden, um die Nichtlinearität
des Druckprozesses auszugleichen.
-
4D ist
ein Block-/Schema-Diagramm, das einen Pcode-Generator 206D gemäß einem
vierten Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Der Pcode-Generator 206B umfaßt Register 402A–402C (die
zusammen als Register 402 bezeichnet werden) und Nachschlagtabellen
(LUTs) 452 und 458. Bei dem dargestellten Ausführungsbeispiel
sind die Register 402 konfiguriert als ein Zuerst-Hinein-Zuerst-Hinaus- (FIFO-) Speicher
auf gleiche Weise, wie es in 4A–4C gezeigt ist, und schieben
und halten Pixel, während
dieselben aus der DMA-Hardware 202 getaktet werden. Die
Werte für
das linke Pixel 300A (ausgegeben durch das Register 402A)
und das rechte Pixel 300C (ausgegeben durch das Register 402C)
werden an die Ausrichtungsnachschlagtabelle 452 geliefert.
Die Kombination der vier Bits für
jedes dieser beiden Pixel 300A und 300C führt zu einer
8-Bit-Eingangsadresse 450 an
die Nachschlagtabelle 452. Bei einem Ausführungsbeispiel
ist die Nachschlagtabelle 452 ein 256 × 2 RAM,
der 256 2-Bit-breite Speicherpositionen liefert, die durch
die 8-Bit-Eingangsadresse 450 jeweils eindeutig adressierbar
sind. Jede 2-Bit-breite Speicherposition speichert einen 2-Bit-Ausrichtungswert, der
eine von vier Ausrichtungen (z. B. Links-Ausrichten, Rechts-Ausrichten,
Mittig-Ausrichten und Geteilt-Ausrichten) identifiziert. Auf der
Basis der empfangenen 8-Bit-Eingangsadresse 450 gibt die
Nachschlagtabelle 452 einen entsprechenden 2-Bit-Ausrichtungswert 454 für das aktuelle
Pixel 300B aus.
-
Der Wert für das aktuelle Pixel 300B (ausgegeben
durch das Register 402B) wird als eine 4-Bit-Eingangsadresse
zu der Pulsbreiten-Nachschlagtabelle 458 geliefert. Bei
einem Ausführungsbeispiel
ist die Nachschlagtabelle 458 ein 16 × 6 RAM, der 16 6-Bit-breite
Speicherpositionen liefert, die durch die 4-Bit-Eingangsadresse
jeweils eindeutig adressierbar sind. Jede 6-Bit-breite Speicherposition
speichert einen 6-Bit-Pulsbreitenwert, der eine von vierundsechzig Pulsbreiten
identifiziert. Auf der Basis einer empfangenen 4-Bit-Eingangsadresse gibt
die Nachschlagtabelle 458 einen 6-Bit-Pulsbreitenwert 456 für das aktuelle
Pixel 300B aus. Abhängig
von den Werten der Pulsbreiten, die in die Nachschlagtabelle 458 geladen
sind, kann eine lineare Abbildung von Pixelwerten auf Pulsbreiten
geliefert werden, oder eine nichtlineare Abbildung kann geliefert werden,
um die Nichtlinearität
des Druckprozesses auszugleichen.
-
Die Kombination der 2-Bit-Ausrichtung 254, die
durch die Nachschlagtabelle 452 ausgegeben wird, und der
6-Bit-Pulsbreite 456,
die durch die Nachschlagtabelle 458 ausgegeben wird, ist
ein 8-Bit-Pcode 208 für
das aktuelle Pixel 300B, das an den Pulsbreitenmodulator 210 geliefert
wird.
-
5 ist
ein Flußdiagramm,
das ein Verfahren 500 zum Erzeugen von Pcodes 208 von
Mehrbitbilddaten 114 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung darstellt. Bei einem Ausführungsbeispiel
sind der Computer 102 und der Drucker 120 konfiguriert,
um ein Verfahren 500 durchzuführen. In Schritt 502 werden
Daten 112, die durch den Drucker 120 gedruckt
werden sollen, in Mehrbitbilddaten 114 aufbereitet. Bei
einem Ausführungsbeispiel
werden die Daten 112, die gedruckt werden sollen, durch
den Computer 102 in Mehrbitbilddaten 114 aufbereitet,
und dann an den Drucker 120 ausgegeben. Bei einem anderen
Ausführungsbeispiel
werden die Daten 112, die gedruckt werden sollen, durch
den Drucker 120 in Mehrbitbilddaten 114 aufbereitet.
-
In Schritt 504 wird ein
Pulsbreitenwert für
ein aktuelles Pixel 300B in den Mehrbitbilddaten 114 erzeugt.
Bei einem Ausführungsbeispiel
wird der Pulsbreitenwert erzeugt durch Verketten zumindest eines höchstwertigsten
Bits des aktuellen Pixels 300B mit dem niedrigstwertigsten
Ende der Bits der aktuellen Pixel 300B. Bei einem anderen
Ausführungsbeispiel wird
der Pulsbreitenwert erzeugt durch Multiplizieren des Werts des aktuellen
Pixels 300B mit einer Ganzzahl. Bei noch einem weiteren
Ausführungsbeispiel wird
der Pulsbrei tenwert von einer Nachschlagtabelle erhalten, die Pixelgrauskalierungswerte
Pulsbreitenwerten zuordnet. Bei einer Form der Erfindung wird der
Pulsbreitenwert für
das Pixel 300B auf der Basis des Werts aller drei Pixel 300A–300C erzeugt,
anstatt dem Erzeugen des Pulsbreitenwerts auf der Basis des Werts
des Mittelpixels 300B in einem Satz von drei benachbarten
Pixeln 300A–300C.
-
In Schritt 506 werden der
Wert des Pixels 300A links von dem aktuellen Pixel 300B und
der Wert des Pixels 300C rechts von dem aktuellen Pixel 300B verglichen.
In Schritt 508 wird ein Ausrichtungswert erzeugt, auf der Basis
des Vergleichs des linken und des rechten benachbarten Pixels, der
in Schritt 506 durchgeführt
wurde. Bei einem Ausführungsbeispiel
wird der Ausrichtungswert erzeugt durch Durchführen arithmetischer Operationen
an den Werten des linken und rechten Pixels und Vergleichen der
Ergebnisse der arithmetischen Operationen mit Schwellenwerten. Bei
einem anderen Ausführungsbeispiel
wird der Ausrichtungswert für
eine Nachschlagtabelle erhalten, die Pixelgrauskalierungswerte mit
Ausrichtungswerten zuordnet.
-
In Schritt 510 wird ein
Pcode 208 an einen Pulsbreitenmodulator 210 ausgegeben.
Bei einem Ausführungsbeispiel
umfaßt
der Pcode 208 den Pulsbreitenwert, der in Schritt 504 erzeugt
wird, und den in Schritt 508 erzeugten Ausrichtungswert.
In Schritt 512 wird der Laser 214 in dem Drucker 120 moduliert
auf der Basis des Pcode 208, der in Schritt 510 ausgegeben
wird.
-
Wie es oben erwähnt wurde, wirken die Register 402 im
wesentlichen als ein Drei-Pixel-breites Gleitfenster, das jeweils
um ein Pixel über
das Mehrbitbild 114 bewegt wird, und das ein linkes Pixel 300A,
ein aktuelles Pixel 300B und ein rechtes Pixel 300C an
jeder Pixelposition präsentiert.
In Schritt 514 des Verfahrens 500 wird das Gleitfenster
zu der rechtes-Pixel-Position bewegt, und das Verfahren kehrt zu
Schritt 504 zurück.
Somit fällt
das vorhergehende linke Pixel 300A aus dem Fenster, das
vorhergehende aktuelle Pixel 300B wird das neue linke Pixel 300A,
das vorhergehende rechte Pixel 300C wird das aktuelle Pixel 300B und
das Pixel rechts von dem vorhergehenden rechten Pixel 300C wird
das neue rechte Pixel 300C. Nach jeder Bewegung des Gleitfensters
werden die Schritte 504–512 wiederholt, um einen
Pcode 208 für
das Mittelpixel 300B in dem Fenster zu erzeugen.
-
Für
einen Durchschnittsfachmann auf diesem Gebiet ist es klar, daß Funktionen,
die durch den Computer 102 oder den Drucker 120 durchgeführt werden,
in Hardware, Software, Firmware oder jeder Kombination derselben
implementiert werden können.
Die Implementierung kann über
einen Mikroprozessor, eine programmierbare Logikvorrichtung oder eine
Zustandsmaschine sein. Komponenten der vorliegenden Erfindung können sich
in Software auf einem oder mehreren computerlesbaren Medien befinden.
Der Begriff computerlesbares Medium, wie er hierin verwendet wird,
ist definiert, um jede Art von Speicher, flüchtig oder nichtflüchtig, wie
z. B. Disketten, Festplatten, CD-ROMs, Flash-Speicher, Nur-Lese-Speicher (ROM)
und Direktzugriffsspeicher zu umfassen.
-
Eine Form der vorliegenden Erfindung
liefert ein Verfahren zum Erzeugen qualitativ hochwertiger gedruckter
Bilder mit verbesserter Auflösung
ohne Implementieren eines großen
Blocks speziell zugewiesener Auflösungsverbesserungstechnologie- (RET-)
Hardware, oder einer RET-ähnliche
Funktion von Schablonen-Übereinstimmung
mit Pcode-Austausch. Bei einem Ausführungsbeispiel werden Ausrichtungsinformationen
durch den Drucker „während dem
Betrieb" von Pixelgrauskalierungsdaten
auf der Basis von umgebenden Pixeln abgeleitet, was den Bedarf eliminiert,
1-Bit-Halbtondaten zu erzeugen und die Halbtondaten an eine RET-Anwendungsspezifische
integrierte Schaltung (ASIC) zu übertragen. Bei
einer Form der Erfindung werden Ausrichtungsinformationen für ein aktuelles
Pixel auf der Basis zweier benachbarter Pixel abgeleitet (z. B.
ein Pixel nach links und ein Pixel nach rechts von dem aktuellen
Pixel), so daß es
keinen Bedarf gibt, Datenzeilen zu puffern.